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:ADC 计数值问题

Guru**** 2620205 points

Other Parts Discussed in Thread: MSP430FR2311, ADS122C04

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/686078/ads122c04-adc-count-value-issue

器件型号:ADS122C04
主题中讨论的其他器件:MSP430FR2311

大家好、

我将 ADS122C04 24位 ADC 与 MSP430FR2311搭配使用。  

问题是我没有正确获取 ADC 计数。  

我可以通过 I2C 上的 MSP430FR2311微控制器来配置 ADS122C04。

我已经完成以下 ADS122C04的寄存器配置:

a.寄存器0 (0x40)= 0x81;

b.寄存器1 (0x44)= 0x00;

C.寄存器2 (0x48)= 0x00;

d.寄存器3 (0x4C)= 0x00;

有人能帮我解决这个问题吗?

请勿庸置疑。

此致、

开尔文

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

    您好、开尔文、

    当您说"ADC Count"时、您是否指的是实际的转换结果?  或者您是否在谈论转换计数器、该计数器提供与最近完成的转换相关的数字?

    如果它是转换计数器、则必须首先 在寄存器2中启用该计数器。  此外、由于您使用的是单次转换模式、因此每次要进行转换时都必须发出 START 命令。

    此致、

    Bob B

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

    我要谈论的是实际的对话结果而不是对话计数器。
    此外、每次发送 START 命令并等待 DRDY 引脚的下降沿。

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

    您好、开尔文、

    您是否已读回寄存器设置并验证此通信是否正常工作?  至于实际的转换结果、您的输入电压是多少?  返回的值是多少?  您是否有可共享的通信的示波器或逻辑分析仪快照?

    此致、

    Bob B

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

    尊敬的 Bob:

    我已检查寄存器设置、通信工作正常。
    我向 AIN0通道施加了1.1V 电压。
    我得到了单通道输入电压的三组值[127、255、255]。
    请允许我建议我得到的值是否正确?
    并帮助我如何转换其等效的24位值???
    实际上、我已经从数据表中了解了第8.5.2个主题、但我并不清楚。 您能给我一个相同的例子吗? 如何将此原始数据转换为原始数据。


    此致、
    开尔文

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

    您好、开尔文、

     根据您上一篇关于"已检查的寄存器设置"的文章、我假设您在对寄存器进行写操作以进行验证后实际读回这些寄存器。  我还将假定您已发出 START 命令进行转换、并且您已等待转换完成。  您显示为十进制的值更容易解释为十六进制。 127是0x7F、255是0xFF。  按照得到正满量程0x7FFFFF 的顺序汇编字节。  捕获返回的数据时、需要存储在有符号32位整数中。

    长数据字节;

    //传输数据的 MSB 127 (0x7F)

    DataByte = MSB;

    //传输数据中点255 (0xFF)

    DataByte =(DataByte << 8) | MID;

    //传输数据的 LSB 255 (0xFF)

    DataByte =(DataByte << 8) | LSB;

    当您连接单端(其中信号源连接到 AIN0 =信号(+)(或1.1V)、而 AVSS (AGND) 连接到信号(-)时、您只会看到0x000000至0x7FFFFF 范围内的正代码。  ADS122C04数据表的等式8中给出了1个代码的值。  选择的内部基准电压为2.048V、增益为1、因此1代码(LSB)的值等于2.048V / 2^23。  要将代码值转换为电压、您需要将代码数乘以1个代码的值。  在本示例中、您将采用:

    DataByte * 2.048V / 2^23

    最终为2.048V、因此出于某种原因、输入等于 或大于2.048V。  您很可能遇到连接问题。  确保您的信号(-)已连接到 ADS122C04上的 AGND。

    您的预期代码将接近1.1V/2.048V * 2^23。

    此致、

    Bob B   

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

    感谢您提供足够的信息。
    通过选择模拟电源 AVDD 和 AVSS 作为基准电压、我获得了预期输出。

    此致、
    Kelvin Kalariya