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.

[参考译文] ADS122C04:I2C 偶尔挂起

Guru**** 2387080 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1382881/ads122c04-i2c-hang-occasionally

器件型号:ADS122C04

工具与软件:

我在4个不同的应用上使用过这款器件、器件运行良好。

问题是、当我写入寄存器或获取数据时、我的最新应用程序偶尔会挂起。 这个应用有一个主要区别:在本例中、我是从芯片输出一个电流源。  使用该芯片的所有功能电路在电气方面是相同的、并且以相同的方式进行控制。

它们之间的唯一区别在于寄存器设置。

 

  • 这是当东西正常工作时我初始化的典型寄存器值的示例。

寄存器40h = 0xB1、设置输入配置、无增益

寄存器44h = 0x00、默认为20SPS、单次模式

寄存器44h = 0x00

寄存器4Ch = 0x00

 

  • 使用这些寄存器设置时、偶尔会挂起。

寄存器40h = 0x72、设置输入配置和 X2增益

寄存器44h = 0x48、设置为90SPS、单冲模式

寄存器44h = 0x01、将电流源设置为10ua

寄存器4Ch = 0xA0、将 REFP 设置为 DAC1电流源输出

 

再说一次、电路工作正常、我们每秒钟左右采样一次。 在8小时的运行期间、I2C 可能会挂起2-3次。

 

对此问题有何看法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Randall:

    感谢您的提问! 我们将在几天内与您联系、因为我们因7月4日假期不在办公室。 谢谢!

    此致、

    Samiha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Randall:

    使用所示的第二组寄存器设置应该不会有问题。

    是否可以提供示波器或逻辑分析仪在发生 I2C 挂起时的捕获结果? 或者任何其他详细信息/说明。

    这将有助于查看是否存在某种时序问题或导致数字通信问题的条件违规。

    如果这是硬件问题、原理图也很有用。

    此致、

    天使

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../ADS122-Hang-Scenario.pptx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Randall:  

    让我看看这个,我会在一周结束时回到你。

    此致、

    天使

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Randall:

    看一下电源点的捕获情况。

    请注意、在最后一页的图表中、未发送 RDATA 命令(0x1x)、但它似乎是错误的命令(0x1)。  因此、NACK 适用于未知命令。

    如前所述、ADS 将 SDA 保持为低电平、但这很可能是微控制器、因为微控制器在某个时刻发送数据。 一种好的 I2C 做法是提供一个例程、在有 NACK 时重新发送命令。

    这将有助于防止出现"锁定 I2C"库问题、因为 如果 NACK 情况处理不当、这是一个固件缺陷。

    此致、

    天使