我们能够读取 CH0数据、但在 ADS 缓冲区中 CH1数据未更新。 我们怀疑配置没有设置。
另一个查询:
我们在单个 I2C 总线上连接了4个 ADC 器件、那么是否可以有任何一个器件将 BUSY 线路驱动为高电平并保持 SCL 为低电平?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
另一个查询:
我们在单个 I2C 总线上连接了4个 ADC 器件、那么是否可以有任何一个器件将 BUSY 线路驱动为高电平并保持 SCL 为低电平?
您好!
启动时、器件默认设置为双通道、单端和手动模式。 但在该模式下、器件只能对 Ch0采样、这就是您无法对通道1采样的原因。
要配置为对 CH0或 CH1或两个通道进行采样、请设置 AUTO_SEQ_CHEN 寄存器中的位以选择通道(以下任一选项都是可行的选项)。
•要在自动序列中选择通道、请将 AUTO_SEQ_CHEN 寄存器中的 AUTO_SEQ_CHX 位设置为1。
•对于具有自动序列的手动模式、将 OPMODE_SEL 寄存器中的位设置为100b 或101b。
•针对具有自动序列的自主模式、将 OPMODE_SEL 寄存器中的位设置为110b。
•针对具有自动序列的高精度模式、将 OPMODE_SEL 寄存器中的位设置为111b。
任何 I2C 总线都需要在能够控制 SCL 之前进行寻址。 一旦 ADC 被寻址、它有可能将 SCL 保持在低电平。 一个原因是时钟拉伸、器件将使 SCL 保持低电平、直到完成当前任务、并在完成后将其释放。
此致
Cynthia
感谢您对 Cynthia 和 Mitesh 的支持。
问题得到解决、我们能够读取两个通道的数据。
之前、我们使用 i2c 写入函数发送从器件地址、操作码和寄存器地址、然后使用 i2c 读取函数、但我们不知道 I2C 驱动器读取函数被设计为先写入从器件地址和寄存器地址、然后开始读取操作。
将其修改为仅执行读取操作、并在调用 i2c 驱动器读取函数之前使用 i2c 驱动器写入函数发送从器件地址、操作码和寄存器地址。
此致、
Vijayalakshmi Chavan.4