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.

[参考译文] ADS1293:增益问题和设计问题-模拟和数字滤波- 2导联动态心电图通过 IEC 60601-2-47

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1420822/ads1293-gain-issue-and-design-question---analog-and-digital-filtration---2-lead-holter-to-pass-iec-60601-2-47

器件型号:ADS1293

工具与软件:

嗨!

我在 ADS1293器件上遇到增益精度问题、其中我看到 ADS 输出上的输入信号偏移约为15-17%。  

我们拥有电池供电的 Holter 设备、可通过2导联3电极配置(IN1 = RA、IN2 = LA、IN3 = LL)记录 ECG 数据。

我们使用两个通道、配置为:

INA_CH1 = LA-RA

INA_CH2 = LL-RA。

CMDET 启用、将三者置于中、并通过10k Ω 电阻器将其通过 CMOUT 路由至 RLDINV、通过1M Ω 电阻器将其路由至 RLDOUT。 RLDOUT 在 PCB 上通过三个分立10M Ω 电阻器和150pF 电容器布线到三个引线。  

我们在 SW 中有一个一阶高通巴特沃斯滤波器、我可以尽可能对其启用/禁用和编辑。 PCB 设计大致设置了、如有必要、我们可以更改一些值。 我们需要符合 IEC 60601-2-47、其中增益精度的通过标准为10%。  

问题:  当我从信号发生器向 ADS 发送已知输入信号时、与输入相比、测量的输出得到了大约15-17%的偏移、并且都启用和禁用了数字滤波器。 输入是一个振幅为2mV-10mV 的100ms 脉冲。 什么会导致该恒定增益变化?  

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

    尊敬的 Pontus:

    感谢您发帖。 您是否想 分享完整的寄存器设置以及原理图中显示相关输入和 RLD 电路的 ADS1293部分?

    此致、

    Ryan

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

    Ryan、您好!  

    感谢您的快速回复。  

    下面是原理图的相关部分、并附有一些备注:

    1.在输入端、左下方是用于 ESD 保护的 TVS 二极管。

    2.在输入端,有100欧姆的串联电阻,在新的设计中(以上未测量),每根引线都有额外的100k 串联电阻。

    3.可以看到 RLD 以及与输入端的连接。

    我提供了下面的简化方框图:

    这是我当前设置为将输出置于24位测量值中间的软件部分(也测试了将幻数更改为0x800000):

    这是完整的寄存器设置:

    ads1293_regdata_t ads_configuration_267hz[]=

    {TI_ADS1293_FLEX_CH1_CN_REG、0x11}、

    {TI_ADS1293_FLEX_CH2_CN_REG、0x19}、

    {TI_ADS1293_CMDET_EN_REG、0x07}、

    {TI_ADS1293_OSC_CN_REG、0x04}、

    {TI_ADS1293_AFE_RES_REG、0x00}、

    {TI_ADS1293_R2_RATE_REG、0x08}、

    {TI_ADS1293_R3_ratE1_REG、0x08}、

    {TI_ADS1293_R3_Rate2_REG、0x08}、

    {TI_ADS1293_DRDYB_SRC_REG、0x08}、

    {TI_ADS1293_CH_CNFG_REG、0x30}

    };

    然后、对于启动转换、我调用:

    ads1293_write_reg(TI_ADS1293_CONFIG_REG, 0x01);

    如果我应该尝试其他方法、请告诉我。

    祝你一切顺利!

    Pontus

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

    谢谢、Pontus。 所有电阻值是否都具有1%的容差? 您能否尝试将其降低到0.1%并尽可能减小电容器容差?  

    您是否可以尝试移除电容器并重新测试?

    此致、

    Ryan

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

    电阻值确实为1%、我们使用以下元件:用于 R22的 RC0402FR-07100RL、R23和 R24。 容差对于 RLDOUT (R26、R33和 R38)和 CMOUT (R14、R15)是否也很重要?

    为了实现最小的电阻器容差、更改 C5、C35和 C36是否足够?

    遗憾的是、拆卸盖子的工具和空间有点有限。 还有其他建议要尝试吗?  

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

    您一般对寄存器设置和配置有什么看法?

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

    尊敬的 Pontus:

    RLD 和 CM 电路的电阻器容差不太重要、因为这些信号对患者而言变得很常见。 低容差的重要性主要在于输入信号路径上、在该路径中、共模噪声可能会由于元件不匹配而成为差分噪声。

    我将在下周早些时候介绍一下寄存器设置。

    此致、

    Ryan

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

    非常感谢您有关电阻和电容容差的输入。  

    我已经使用 Fluke Pro SIM 2运行了几个额外的实验、我很惊讶地看到相同的结果。 存在增益差异、但我不确定我尚未尝试的众多振幅上的增益是否相同。

    对于 ADS 1293、它具有恒定增益3.5。 我将为其提供3.3伏的 VDD。 我是否需要先对转换后的广告值进行缩放、然后才能使用它们?

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

    目前、这是我在 DRDY 之后所执行的操作:

      // 0。 获取数据

      uint8_t rx_buff[7];

      ads1293_read_ECG (rx_buff);

      // 1. 归一化数据

      int32_t data_i =(int32_t)(((rx_buff[1]<< 16)|(rx_buff[2]<< 8)|(rx_buff[3]))- 0x798000);

      int32_t data_ii =(int32_t)(((rx_buff[4]<< 16)|(rx_buff[5]<< 8)|(rx_buff[6])- 0x798000);

      // 2. 效率

      浮点 LEAD_IT = DSP_HPF_I (DATA_I);

      float lead_iit = DSP_HPF_II (data_ii);

      // 3. 更改为16位范围

      int16_t LEAD_I =(int16_t)(LEAD_IT/8);

      int16_t lead_ii =(int16_t)(lead_iit/8);

    没有相对于增益、Vref 或 VDD 进行数据调节。 是这样吗?

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

    尊敬的 Pontus:

     ADC 输出代码的计算包括3.5V/V 的固定增益 因此、您必须重新排列以下公式来计算 INA 输入端的差分电压:

    如您所见、输出代码仅随差分输入电压和提供的基准电压而变化。 VDD 未包含在 ADC 传递函数中。

    此致、

    Ryan

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

    Hej Ryan、  

    感谢您的答复。

    因此、如果我正确理解您和数据表、我可以将其改写为以下内容:

    或者会与

    应将 ADC max 设置为什么? 我在低分辨率下运行它、所以我把数据表解释为17.8位的分辨率、虽然 ADC 是24位、这是正确的:

    根据 ADC 最大值、我可以编写以下代码:

        float V_ref = 2.4f;
        float gain = 3.5f;
        uint32_t ADC_max = 16777215; // 24-bit max value
    
        // Calculate lead_i
        float lead_i = (2 * V_ref / gain) * (((float)ADC_max / (float)data_i) - 0.5f);
        
        // Calculate lead_ii
        float lead_ii = (2 * V_ref / gain) * (((float)ADC_max / (float)data_ii) - 0.5f);

    ***编辑2024年10月16日:我的回复被截断、缺少所有方程式。****

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

    尊敬的 Pontus:

    ADC 输出公式的重新排列看起来是正确的。  

    ADC_max 取决于数字滤波器的配置。 ECG 通道的最大值为24位、PACE 通道的最大值为16位。 请参阅数据表中的表8至11。

    此致、

    Ryan

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

    太好了、感谢 Ryan。

    我明天将测试此设置。

    否则、您是否对寄存器设置有任何输入?

    祝你一切顺利!

    Pontus