访问多个I2C传感器C2000和仿真软件万博1manbetx

15的观点(30天)
你好,
我试图使用TI C2000单片机来访问数据从外部使用I2C adc。该ADC多个通道所以我想从他们所有人能够利用数据。现在我有代码设置将数据从一个通道,它的工作原理。它可以与ADC通信、检索数据,并实时显示在matlab范围(使用外部模式)。我甚至可以在频道之间切换手动开关,改变了I2C TX的数据块命令。
然而,我迷路了,如何在这些渠道之间循环周期性地同时,看到他们两个。我看过 例子使用函数调用序列多个TX块,但它仍然只使用一个接待块似乎两个传感器的数据是在同一时间。在我的例子中我需要发一份独立的命令每个通道的ADC(例如255 8和223年第四频道频道)和阅读每个命令后发送的ADC值。我试着做一个类似的方法与函数调用子系统中的多个TX和RX块链接在一起,但是我不能获取数据从通道当我试过。
如果有人这样做的一个例子或任何方向的建议我将非常感激。我也很好奇这些模块是如何工作的(事实上我惊讶,给定的例子)。每一块触发多次吗?如果是每次采样率或其他速度?RX阻塞等待TX块完成之前试图读取,反之亦然?同时,这种变化如何当你把一个子系统的模块吗?每一个去做一次,然后继续下一个子系统或有更多吗?
我已经为我的两个附加文件,请让我知道如果你看到什么错误的sequeced函数调用的版本。当我调查sda行可以看到一些行动,所以做一些,但它并不存在。
提前谢谢,
凯尔

答案(3)

说bensebaa
说bensebaa 2021年3月23日
凯尔Goodrick
我想知道如果你解决这个问题?如果是的,你能告诉我如何让来自不同渠道的数据没有添加一个开关和没有改变数据分割?
谢谢。
问候,
B说

马纳尔Chilapur
马纳尔Chilapur 2019年2月13日
你好,
请参考示例模型” c28x_i2c_eeprom_interrupt ”。 从这个示例模型可以观察C28x硬件中断块的使用。这一块是用于I2C Rx中断。使用这种方法更实用之间有一个延迟I2C Tx和I2C Rx取决于因素像I2C总线速度,交换的比特数和响应时间的奴隶。所以当使用Tx和Rx back2back我们需要考虑这种延迟使用while循环才能读取数据。否则,中断可以设置在处方,这样我们可以做其他工作,而主一经I2C数据让我们知道一旦完成。几个方法可以阅读所有的ADC渠道使用这个方案发送后续通道请求在ISR和宽大的缓冲区获取接收到的数据。你也可以Rx FIFO能够读取数据从所有频道在前。
HTH,
问候,
马纳尔C
2的评论
马纳尔Chilapur
马纳尔Chilapur 2019年2月14日
嗨,凯尔,
请联系我们:
同时您可以考虑在CCS导入项目进一步调试。
这里是一个链接如何导入MATLAB的CCS项目。
你也可以参考这个例子“c28x_i2c_eeprom_interrupt”研究为I2C配置硬件配置面板中。
HTH,
问候,
马纳尔C

登录置评。


马纳尔Chilapur
马纳尔Chilapur 2019年2月13日
你好,
你也可以看看示例的实现模型的c28x_i2c_sensor我们测序Tx和Rx操作,这样在当前执行步骤时间我们读数据请求中发送数据前一步。所以我们推迟了一个读取数据样本时间w.r。t的请求被派往奴隶设备读取的数据。请确保样品时间是这样,它给足够的时间传入的数据到主前阅读。
HTH,
问候,
马纳尔C

翻译的