TI论坛
直播中

李娓仑

8年用户 1440经验值
私信 关注
[问答]

ADS1291的数据转换,实际值和理论值不符合是哪里出了问题?


  • 首先ads1291的寄存器是这样设置的:
    ADS1291_WR_REG(0x01,0x00);
    ADS1291_WR_REG(0x02,0xe0);
    ADS1291_WR_REG(0x03,0xf0);
    ADS1291_WR_REG(0x04,0x00);
    ADS1291_WR_REG(0x05,0x81);
    ADS1291_WR_REG(0x06,0x23);
    ADS1291_WR_REG(0x07,0x03);
    ADS1291_WR_REG(0x08,0x0f);
    ADS1291_WR_REG(0x09,0x02);
    ADS1291_WR_REG(0x0a,0x07);
    供电电源是3V
    理论上实际值和采样值的换算关系,我是这样认为的:
    (采样值/8388607*2.42)/6=实际值
    其中8388607是2的23次方减1;2.42是基准,6是增益

    但是实际上,我输入500mv正弦波峰峰值信号(0~500mv),实际采样出来的值在上位机上显示,峰峰值只有150mV左右。换了其他的值也是一样,都是有3~4倍的差值。

    这是为什么呢??我哪里出错了吗?

回帖(2)

魏双艳

2025-1-15 10:01:58
  我觉得你可以先截获通信中间走的数据, 然后来分析是 ADS1291 的问题, 还是上位机的问题?
举报

京五环以外

2025-1-16 16:32:05
根据您提供的信息,您使用的ADS1291寄存器设置如下:

1. ADS1291_WR_REG(0x01,0x00);
2. ADS1291_WR_REG(0x02,0xe0);
3. ADS1291_WR_REG(0x03,0xf0);
4. ADS1291_WR_REG(0x04,0x00);
5. ADS1291_WR_REG(0x05,0x81);
6. ADS1291_WR_REG(0x06,0x23);
7. ADS1291_WR_REG(0x07,0x03);
8. ADS1291_WR_REG(0x08,0x0f);
9. ADS1291_WR_REG(0x09,0x02);
10. ADS1291_WR_REG(0x0a,0x07);

您认为的理论换算关系是:(采样值/8388607*2.42)/6=实际值

其中,8388607是2的23次方减1;2.42是基准,6是增益。

您输入的信号是500mv正弦波峰峰值信号(0~500mv)。

首先,我们需要检查寄存器设置是否正确。根据您的设置,我们可以得出以下参数:

1. 增益(Gain):0x06寄存器的值是0x23,对应的增益是1(0x23/0x40=1)。
2. 采样率(Sample Rate):0x07寄存器的值是0x03,对应的采样率是250SPS(0x03*125=250)。
3. 滤波器设置(Filter Settings):0x08寄存器的值是0x0f,对应的滤波器设置是低通滤波器,截止频率为250Hz。

接下来,我们需要检查您的理论换算关系是否正确。根据您提供的信息,我们可以得出以下换算关系:

实际值 = (采样值/8388607)* 2.42 / 6

其中,8388607是2的23次方减1,2.42是基准电压,6是增益。

现在,我们需要检查您的实际测量值和理论值之间的差异。可能的原因有:

1. 寄存器设置不正确:请检查您的寄存器设置是否与您的实际需求相符。
2. 信号干扰:请检查您的信号线是否受到干扰,导致测量值不准确。
3. 硬件故障:请检查您的ADS1291芯片是否有故障,导致测量值不准确。
4. 换算关系错误:请检查您的换算关系是否正确,可能需要根据实际硬件和信号参数进行调整。

建议您根据以上可能的原因进行检查和调整,以解决实际值和理论值不符合的问题。
举报

更多回帖

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