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.

[参考译文] ADS1112:同时读取两个通道时出现问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1227702/ads1112-issue-when-reading-two-channels-at-the-same-time

器件型号:ADS1112

大家好、

通过驱动器中的 I2C 同时读取两个通道时会存在延迟、并且可能会显示通过读取第二个通道的值来获得第一个通道的值。

SW 代码如下所示:

在两次读取之间增加延迟的程序可能会导致其他问题。

您能帮助评论一下如何解决它吗? 非常感谢。

William

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

    您好、William、

    从代码来看、不清楚何时确定读取转换结果。  最可能发生的情况是、即使配置已更改、连续转换的工作模式也不会更改通道、直到正在进行的转换结束。  这将导致从先前选定的输入通道读取转换数据。

    在循环多路复用器时、我建议使用单次转换模式而不是连续模式。  这样做的结果是、在写入新配置时、新配置将立即应用。  使用连续转换模式时、您不确定所需的通道数据何时会显示为转换结果。  使用连续转换模式时、您应始终忽略信道更改后的第一次转换。

    此致、

    Bob B

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

    尊敬的 Bob:

    我是 William 的同事。正如您所说、我们将模式更改为单次转换、但问题仍然存在。 读取转换结果的代码如下。

    上述代码大约每40ms 调用一次。 我们发现即使是单模式也需要被读取两次以获得正确的值、并且需要添加 msleep。  如果不添加 SLEEP,或读取一次、 两者都会得到错误的值。  我必须读两次并增加循环复用的延迟吗?期待您的回复。

    此致、

    Qun Wu

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

    尊敬的 Qun Wu:

    我不清楚函数 MOTOR_ADC_UPDATE 中发生了什么。  无论您是对器件进行读取还是写入、功能似乎都是相同的。  您可以添加另一个参数、使"0"仅写入器件、而"1"读取转换结果。

    有两种使用该器件的方法。  一种方法是使用计时器在转换开始后延迟读取转换结果。  第二种方法是监控配置寄存器状态位上的位7是否为低电平。

    让我们保持简单、并将延迟与单次转换模式结合使用。

    • MOTOR_ADC_UPDATE (MOTOR_Focus、0)、其写入通道1的 ADC 配置11010100 (0xD4)并开始转换
    • msleep (20)、将延迟20ms 以允许转换完成
    • MOTOR_ADC_UPDATE (MOTOR_Focus、1)、仅读取通道1转换结果
    • MOTOR_ADC_UPDATE (MOTOR_ZOOM、0) 、写入通道2的 ADC 配置11110100 (0xF4)并开始转换
    • msleep (20)、将延迟20ms 以允许转换完成
    • MOTOR_ADC_UPDATE (MOTOR_ZOOM、1)、仅读取通道2转换结果

    我认为正在发生的情况是您的 MOTOR_ADC_UPDATE 函数在同一 环路中启动转换和读取。  验证通信和时序的最佳方法是使用逻辑分析仪。  这将显示进出 ADC 的实际通信流。

    此致、

    Bob B

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

    您好,Bob,ć

    问题已经解决、非常感谢您的帮助。

    此致,

    Qun Wu