TI论坛
直播中

麻酱

8年用户 1278经验值
擅长:MEMS/传感技术
私信 关注
[问答]

求助,关于ADS1211数据输出格式的疑问求解


  • CMR 寄存器DF位表明:


    但我设置cmd 寄存器的DF位 为1,输入信号引脚短接,差分信号为0,读取data寄存器,却发现值为0左右,将DF位置0,的时候,读取的值为0x800000左右,好像是与手册上说的相反,我将DF位 为1调试过程中的寄存器值打印出来如下,理论上信号为0的时候,值应该接近0x800000左右的值,但是取出确是0x000000,请问是怎么回事??
    15:45:15.262 ü15:45:15.360 write INSR register 0x64
    write ads1121 cmd reg value = 0x22238013
    15:45:15.980 read cmd register value = 0x22038013, now should resume normal mode
    read ocr reg value = 0x7d0000
    read fscr reg value = 0xffffff
    15:45:19.942 set extern vref on
    get adc data:
    0x0 0x0 0x0 0x0
    0x0 0x0 0x0 0x0
    15:45:20.357 get adc data:
    0x0 0x1063 0x1063 0x1063
    0x0 0x0 0x0 0x0
    16:54:56.439 get adc data:
    0x1063 0x0 0x0 0x1063
    0x1063 0x0 0x0 0x0
    16:54:56.839 get adc data:
    0x0 0x0 0x4188 0x0
    0x1894 0x0 0x28f7 0x0
    16:54:57.246 get adc data:
    0x0 0x0 0x0 0x0
    0x0 0x0 0x0 0x830

回帖(2)

李郝荫

2024-11-30 10:46:57

  • CMR 寄存器DF位表明:


    但我设置cmd 寄存器的DF位 为1,输入信号引脚短接,差分信号为0,读取data寄存器,却发现值为0左右,将DF位置0,的时候,读取的值为0x800000左右,好像是与手册上说的相反,我将DF位 为1调试过程中的寄存器值打印出来如下,理论上信号为0的时候,值应该接近0x800000左右的值,但是取出确是0x000000,请问是怎么回事??
    15:45:15.262 ü15:45:15.360 write INSR register 0x64
    write ads1121 cmd reg value = 0x22238013
    15:45:15.980 read cmd register value = 0x22038013, now should resume normal mode
    read ocr reg value = 0x7d0000
    read fscr reg value = 0xffffff
    15:45:19.942 set extern vref on
    get adc data:
    0x0 0x0 0x0 0x0
    0x0 0x0 0x0 0x0
    15:45:20.357 get adc data:
    0x0 0x1063 0x1063 0x1063
    0x0 0x0 0x0 0x0
    16:54:56.439 get adc data:
    0x1063 0x0 0x0 0x1063
    0x1063 0x0 0x0 0x0
    16:54:56.839 get adc data:
    0x0 0x0 0x4188 0x0
    0x1894 0x0 0x28f7 0x0
    16:54:57.246 get adc data:
    0x0 0x0 0x0 0x0
    0x0 0x0 0x0 0x830
举报

哔哔哔-

2024-11-30 16:22:39
根据您提供的信息,您在使用ADS1211时遇到了数据输出格式的问题。您提到当设置CMD寄存器的DF位为1时,输入信号引脚短接,差分信号为0,但读取DATA寄存器的值却是0左右。当DF位为0时,读取的值为0x800000左右,这与手册上描述的相反。

首先,我们需要了解ADS1211的数据输出格式。ADS1211的数据输出格式有两种:单端(DF=0)和差分(DF=1)。在单端模式下,数据寄存器的值表示输入信号与地之间的电压差。在差分模式下,数据寄存器的值表示两个输入信号之间的电压差。

根据您的描述,当DF位为1时,您期望读取的值为0x800000左右,但实际上读取的值为0x000000。这可能是因为以下几个原因:

1. 硬件连接问题:请检查您的硬件连接是否正确,确保输入信号引脚短接,并且没有其他干扰。

2. 寄存器配置问题:请确保您正确配置了CMD寄存器的其他位,例如PD1、PD0、GAIN、MODE等。这些位的配置会影响数据输出格式和精度。

3. 代码问题:请检查您的代码,确保您正确地读取了DATA寄存器的值。有时候,代码中的一些错误可能导致读取的值不正确。

4. ADS1211芯片问题:如果以上原因都排除了,那么可能是ADS1211芯片本身存在问题。您可以尝试更换一个芯片,看看问题是否仍然存在。

建议您按照以下步骤进行排查:

1. 检查硬件连接,确保输入信号引脚短接且无干扰。
2. 检查CMD寄存器的配置,确保PD1、PD0、GAIN、MODE等位正确配置。
3. 检查代码,确保正确读取DATA寄存器的值。
4. 如果问题仍然存在,尝试更换ADS1211芯片。

希望这些建议能帮助您解决问题。如果还有其他疑问,请随时提问。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分