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:ADS1293的ERROR_STATUS和ERROR_RANGE寄存器读数

Guru**** 2542720 points
Other Parts Discussed in Thread: ADS1293

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/569415/ads1293-error_status-and-error_range-register-readings-from-ads1293

部件号:ADS1293

您好,

我正在我的项目中使用ads1293并开始读取数据。 我还在读取ERROR_STATUS和ERROR_RANGE寄存器以查看是否 有任何错误。 这是我的问题。 这些错误读数 不稳定。  这意味着,有时根本没有错误,但在其他时间,对于相同的设置,错误确实会出现。 特别是通道x仪表放大器输出信号(INA的正输出小于负输出)。 此错误的严重程度如何? 此外,当这个错误位打开时,它会对我在那个会话中收集的每个样本继续。 如何获得稳定且无错误的读数? 是否有任何调整? 此致。

纳兹鲁尔  

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

    您好,Nazrul,

    您能否分享您项目的完整设备寄存器设置和示意图? 此外,请说明如何为这些测试配置设备输入。 您是否为任何信道提供模拟输入?

    此致,

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

    以下是完整的寄存器设置:

    const unsigned char ADS1293_Default_Register_Settings[48]={
    //Reg0:配置
    0x02,
    //Reg1:Flex_CH1_CN
    0x40,//11
    //Reg2:Flex_CH2_CN
    0x40,//19
    //Reg3:Flex_CH3_CN
    0x00,//00,//40
    //Reg4:FLEX_PACE_CN
    0x00,
    //Reg5:Flex_VBAT_CN
    0x00,
    //Reg6:LOD_CN
    0x00,//08,
    //Reg7:LOD_EN
    0xFF,//00,
    //Reg8:LOD_Current
    0xFF,//00,
    //Reg9:LOD_AC_CN
    0x00,
    //Reg10:CMDET_EN
    0x07,
    //Reg11:CMDET_CN
    0x00,
    //Reg12:RLD_CN
    0x04,
    //Reg13:Wilson_EN1
    0x00,
    //Reg14:Wilson_EN2
    0x00,
    //Reg15:Wilson_EN3
    0x00,
    //Reg16:Wilson_CN
    0x00,
    //Reg17:REF_CN
    0x00,
    //Reg18:OSC _中国
    0x04,
    //Reg19:AFE_RES
    0x3F,//00,
    //Reg20:AFE_SHDN_CN
    0x24,
    //Reg21:AFE_FAULT_CN
    0x04,//00,
    //Reg22:保留
    0x00,
    //Reg23:AFE_PACE_CN
    0x01,
    //Reg24:ERROR_LOD
    0x00,
    //Reg25:ERROR_STATUS
    0x00,
    //Reg26:error_range1
    0x00,
    //Reg27:error_range2
    0x00,
    //Reg28:ERROR_Range3.
    0x00,
    //Reg29:ERROR_SYNC
    0x00,
    //Reg30:error_misc
    0x00,
    //Reg31:Digo_strength 0x03
    0x00,
    //Reg32:不存在
    0x00,
    //Reg33:R2_rate = 8
    0x08,//0x02
    //Reg34:R3_RATE_CH1=32
    0x20,//02
    //Reg35:R3_RATE_CH2=32
    0x20,//02
    //Reg36:R3_RATE_CH3=32
    0x20,//80
    //Reg37:R1_RATE=4
    0x00,
    //Reg38:DIS_EFILTER
    0x04,
    //Reg39:DRYYB_SRC
    0x08,
    //Reg40:SYNCB_CN
    0x40,
    //Reg41:mask_DRDYB
    0x00,
    //Reg42:mask_ERR
    0x00,
    //Reg43:保留
    0x00,
    //Reg44:保留
    0x00,
    //Reg45:保留
    0x09,
    //Reg46:alarm_filter
    0x33,
    //Reg47:CH_Cnfg.
    0x30,
    };
    首先,我将通道CH1和CH2设置为测试模式(将通道1/2连接到正极测试模式,请参阅上面的REG1/REG2内容)。 并获取一些读数。 我得到的值不是我应该得到的(根据测试模式),但非常接近。 同时,我读取error_status和error_range1/2寄存器。 在此期间(在测试模式下),我可以看到这些寄存器的一些位设置,包括SIGD_CH1/CH2位。 然后将CH1和CH2连接到实际的模拟输入(请参见上文注释的REG 1/2/3的内容)。 在读取模拟输入时,我还会不断读取状态/范围寄存器,并看到一些错误位出现。 但并非始终如一。 这意味着,在一个会话中,我读了1000次这些寄存器,总的来说,这些位将继续显示。 在相同的设置中,接下来的1000个读数中,这些位不再显示。 但是,他们可能随时再次出现。 我正在寻找某种稳定性或一致性。 我们非常感谢您就此问题提供的反馈。 谨致问候。

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

    感谢您的描述。 INX引脚是否浮动? 当INA输出过于靠近滑轨时,设置ERROR_RANGEX位。 如果您未将输入驱动至已知电压,则可能会发生这种情况。 尝试在通道1输入之间连接一个小直流电压(假设100mV),查看ERROR_range1位是否保持更一致。

    此致,
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Ryan:
    感谢您的回复。 我正在使用CH1和CH2。 因此,我使用了4个输入(IN1,in2,in3和in3)。 IN1,IN2,IN3作为输入,IN4作为RLD。 它们连接到相应的电极,而不是浮动电极。 在range1/2寄存器中,设置了SIGD_CH1/CH2 (INA的正输出小于负输出)。 问题是,它在整个样本采集会话中保持设置状态(例如,1000个样本,我在该会话中采集)。 我的问题是,为什么所有这些样本都要保持固定? 此致。
    纳兹鲁尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Nazrul,

    很抱歉误解了您的问题。 ERROR_RANGEx寄存器的内容被锁定在高位,直到读取错误寄存器。 此外,如果在几个内部时钟周期内仍存在该情况,则在寄存器读取后,错误位将返回高。

    我在这里的想法是,在你收集数据之前/期间,这些位是以某种方式设置的。 在您重复收集并再次轮询错误寄存器内容之前,它们将保持这种方式。

    我希望这能有所帮助。 您可以在8.3 .24-28中找到更多信息。


    此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Ryan:
    很抱歉再次回到你的位置。 根据您的说法,最初/at开头,它们(ERROR_RANGEx位)可能设置为高,但是,如果我重复数据收集,然后读取寄存器,这些位应该是清楚的。 如果是这种情况,在我的情况下不会这样发生。 在我的案例中,我正在读取样本,然后立即读取ERROR_RANGEx寄存器。 我重复这个顺序1000次。 最初,我看到一些错误位/位已设置,而在后续读数中,它们仍然设置(我将这些读数保存在阵列中)。 它们不会被清除。 请发表评论。 此致。

    纳兹鲁尔