TI论坛
直播中

李星童

7年用户 1058经验值
私信 关注
[问答]

ads1292采样率500 SPS,通过示波器测得DRDY中断偏差偏大怎么解决?


  • 我使用芯片内部时钟,配置连续采用模式,采样率500HZ(附件具体电路,寄存器配置下面有贴出),通过示波器测得DRDY中断脚输出中断频率并非500HZ,有一定偏差,有的硬件偏大,有的硬件偏小。

    通过主控MCU(NRF52832)采集心电点数看,60秒内有比理论值少30多个点的,也有多20多个点的。而且多次测试发现,偏大的始终偏大,偏小的始终偏小。这种情况是什么原因导致的呢?





    //寄存器配置

    const uint8_t ADS1x9xR_Default_Register_Settings[15] = {
    //Device ID read Ony
       0x00,
      //CONFIG1
       0x02,
      //CONFIG2
       0xE0,       //2.4V ref
      //LOFF
       0xF0,
    //CH1SET (PGA gain = 6)
       0x00,       //= 6
    //CH2SET (PGA gain = 6)
       0x00,
    //RLD_SENS (default)
       0x2C,
    //LOFF_SENS (default)
       0x0F,
    //LOFF_STAT
       0x00,
    //RESP1
        0x02,       //resp closed
    //0A RESP2
        0x03,       //32K
    //GPIO
        0x00
    };



    //初始化配置
    uint8_t Ads1292_Open(void)
    {
    uint8_t i, buff[20];



    //上电
    ADS1292_PWR_ON;
    nrf_delay_ms(20);



    //复位
    Ads1292_Reset();

    //关闭转换
    ADS1292_START_OFF;



    //关闭连续读
    Ads1292_WriteCmd(ADS1x9x_CMD_SDATAC);
    nrf_delay_ms(1);



    //读ID
    Ads1292_ReadReg(ADS1x9x_REG_DEVID, buff, 1);
    if (buff[0] != 0x73)
    {
      return 0;
    }



    //写配置并校验
    Ads1292_WriteReg(ADS1x9x_REG_CONFIG1, (uint8_t *)&ADS1x9xR_Default_Register_Settings[1], 11);
    Ads1292_ReadReg(ADS1x9x_REG_CONFIG1, buff, 11);
    for (i = 0; i < 11; i++)
    {
      if ((buff != ADS1x9xR_Default_Register_Settings[1 + i]) &&
       (i != 7)) //reg8 read only
      {
       return 0;
      }
    }



    //开启连续读
    Ads1292_WriteCmd(ADS1x9x_CMD_RDATAC);
    nrf_delay_ms(1);

    //开始采样
    ADS1292_START_ON;



    //开启DRDY中断
    Ads1292_IrqEnable(true);

    return 1;
    }


回帖(2)

王思敏

2024-11-30 10:18:21
您使用的是什么时钟源,如果时钟源不稳定,可能会产生偏差
举报

凌章致

2024-11-30 16:23:14
根据您的描述,您在使用ADS1292进行心电图采样时遇到了采样率偏差的问题。以下是一些建议来解决这个问题:

1. 检查时钟源:确保您的系统时钟源是准确的,因为采样率是由时钟源决定的。如果时钟源不准确,采样率也会受到影响。

2. 检查电源:确保您的电源电压稳定且在规定的范围内。不稳定的电源电压可能会导致采样率偏差。

3. 检查硬件连接:检查您的电路连接是否正确,包括地线、电源线和数据线。任何不良的连接都可能导致采样率偏差。

4. 检查寄存器配置:请确保您的寄存器配置是正确的。您可以查阅ADS1292的数据手册,以确保您正确配置了所有相关寄存器。

5. 检查中断处理:确保您的中断处理程序能够正确处理DRDY中断。如果中断处理程序有问题,可能会导致采样率偏差。

6. 检查软件滤波:如果您在软件中使用了滤波器,请确保滤波器的参数设置正确。错误的滤波器参数可能会导致采样率偏差。

7. 检查温度:ADS1292的性能可能会受到温度的影响。确保您的设备在规定的温度范围内工作。

8. 检查硬件版本:不同版本的ADS1292可能有不同的性能。请确保您使用的是正确的硬件版本。

如果以上建议都不能解决问题,您可能需要联系ADS1292的制造商或技术支持,以获取更专业的帮助。
举报

更多回帖

×
20
完善资料,
赚取积分