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.

[参考译文] ADS7138:I2C 时钟扩展

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/998361/ads7138-i2c-clock-stretching

器件型号:ADS7138

您好!

我对 ADS7138上的手动模式有疑问--我发现该器件的工作方式与数据表描述的不完全相同。

对于手动模式:

也就是说、您应该发送一个 Start 命令、7位从器件地址、R 位、然后您将获得一个 ACK、然后时钟扩展将开始。

在我的器件上、我发送 Start、ADDR、R 位、获取 ACK、然后器件立即退出最后一次转换。  在我接收到转换结果后、它会启动一个时钟拉伸周期。

我希望在启动/ ADDR/R/ ACk 之后、器件会将 SCL 保持在低电平、直到转换完成、然后将2字节结果发出。  根据施加到模数转换器输入端的电压的外部测量结果、我得到的结果似乎是正确的。 (上面屏幕截图中的器件 ADDR 为0x17)

我想调整代码以读取4个字节,看看它做什么--如果它在停止通信之前再等待2个字节。  但器件的这种预期运行方式是什么?

此外、我正在使用的 I2C 控制器在接收2个字节后似乎没有发送 ACK。  我不确定原因、也不确定这是否与我看到的问题有关。

谢谢、

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

    您好!

    总体而言、该器件似乎运行良好。 我建议确保 MANUAL_Chid 字段已正确编程。

    我还建议查看缺少 ACK 的情况、器件会期望这一点。 如果没有、我将假定器件在发送 ACK 之前不会继续响应。  

    此致

    Cynthia  

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

    好的,所以我想我理解为什么它会发送一个否定应答--这似乎是 I2C 协议在一条读取消息后应该如何工作的。  然后发送 nA、再发送 STOP 命令。

    例如、请参阅此处: https://github.com/torvalds/linux/blob/master/Documentation/i2c/i2c-protocol.rst

    对于简单阅读的消息、格式为:

    S 地址 Rd [A][数据] A [数据] A ... A [数据] nA P 

    我知道 ADS7138文档显示它应该是一个 ACK --看起来很奇怪,可能违反了 I2C 协议?  例如、请参阅此处、其中对其进行了更好的解释:

    https://stackoverflow.com/questions/37040696/nack-and-ack-responses-on-i2c-bus

    "在传输中:读取一个字节的端(接收时的主器件或发送时的从器件)接收到一个字节后、它必须发送一个 ACK。 主要的例外是、如果接收器控制发送的字节数、它必须在最后一个字节发送后发送一个 NACK。 例如、在从器件到主器件的传输中、主器件必须在发送停止条件以结束传输之前发送一个 NACK。 (这是规范要求的。)"。

    因此、根据我的经验、ADS7138似乎不像广告中所说的那样工作、但仍能提供正确的结果。 我已验证通道是否正确、因为我已将输入信号更改为已知值、并且它已正确读取这些值。

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

    Brett、

    更仔细地查看您的图。 SDA 数据似乎没有被正确驱动。 请注意、低电平状态远高于接地值、我无法确定值是多少、但确实似乎存在不一致。 低电平和高电平状态值由 DVDD 定义。 请注意、在通信结束时、低电平状态会发生电平变化。  
    我建议您查看此处的连接并确保正确驱动。  

    此致

    Cynthia