TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS7924: STM32 IIC读取寄存器没有ACK

Part Number:ADS7924

最近在用STM32调试读取ADS7924,在读取寄存器测试中。发现ADS7924经常没有响应ACK导致读写失败。

这是我的读写流程

while (1) 

{

   写ADS7924 0x0A寄存器 0x5A;

   读ADS7924 0x0A寄存器;

   延时100ms;

}

我使用逻辑分析仪和示波器抓取了波形,STM32发的波形都满足手册里面的读写Timing Diagram,造成没有acknowledge的原因可能有哪些?下面分别是正常波形和异常波形,

Lydia:

感谢您对TI产品的关注!关于你的咨询,我们正在确认你的问题,稍后回复您。

,

Alice:

您好,

       ADS7924不返回ACK,或者是I2C时序不对,或者是命令无法正确解析。

      现在用的fSCL频率是多少?

      I2C上拉电阻是多大?(数据手册Figure 57)通常来说,频率越高,上拉电阻相应减小。

      ADS7924 2.2 V, 12-Bit, 4-Channel, MicroPOWER Analog-to-Digital Converter With I2C Interface datasheet (Rev. C)

,

sw w:

我的频率是100K。上拉电阻是2K。我使用 ADS7924EVM 板和MCU进行测试,并用飞线将它们连接起来。控制芯片的 SDA 和 SCL 连接到 EVM 上 J10 的 SDA 和 SCL。此外,我将两个传感器连接到 EVM 上 J1A 的 CH0 和 CH1。EVM 板上的 VDD 设置为 5V,BVDD 设置为 3.3V。最后,我移除了 EVM 的 RA1 电阻器。另一幅图是硬件连接图。

,

Alice:

您好,

       ADC板载的I2C总线上还挂有其他芯片,如果这些芯片没用,请断开连接。

      否则,需要通过器件地址区分,以免总线冲突。

       另外,MCU板与ADC板共地,还有一种可能是I2C外接引线有干扰,可缩短I2C引线,或使用屏蔽线。

,

sw w:

I2C总线上只有一个芯片,并且两块板子也共地,I2C引线只有10厘米长的杜邦线。接头焊接后还打了胶。确认一下,软件层面应该没有什么问题吧?这种情况硬件方面或者干扰或者接触不良等情况的可能性更大?

,

Alice:

您好,

      如果使用同样的驱动代码,MCU与ADC具有完整的通讯交互过程,不会怀疑程序方面。

赞(0)
未经允许不得转载:TI中文支持网 » ADS7924: STM32 IIC读取寄存器没有ACK
分享到: 更多 (0)