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.

[参考译文] ADS1248:传感器读数的恒定漂移;ADS1248

Guru**** 2539460 points
Other Parts Discussed in Thread: ADS1248

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/921193/ads1248-constant-drift-in-reading-of-sensor-ads1248

器件型号:ADS1248

我使用的是随附的传感器数据表、并随附了原理图中的 ADS1248。

2.在测量热敏电阻读数时、问题是它会不断漂移。 我没有使用任何过去的读取滤波器。 读取超过1秒、对其求平均值并进行转换。 使用 PFA=1。

例如、如果初始读数为25.70C、则加班时间会从24.34C 漂移到27.40C。  

但是、具有相同传感器的校准设备不会移动读数。

3. 卸下 C4会产生一些积极影响,但读数仍会漂移。 我选择的 R8、R9、R10、R11、C13和 C14是否正常?   

由于使用 PGA = 1、因此使用 R8和 R9将热敏电阻置于 CMR 范围内。  

e2e.ti.com/.../OTP_2D00_638D2_5F00_datasheet_2800_R_2800_0_2900_-and-application_2800_0_2D00_50_2900_-_2D00_-Copy.pdf

e2e.ti.com/.../3858.sch.pdf

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

    您好 VT、

    原理图对我来说看起来很好。 我认为您选择的值将适用于此应用。  

    如果没有其他信息、很难说出到底会导致此问题的原因。 要尝试的几件事是探测 ADS1248的输入、以查看电压是否稳定或是否漂移、这与您所描述的行为类似。  

    另一个需要考虑的因素是测量的分辨率。 使用了多少满量程范围? 如果您增加 PGA 的增益以使用整个输入范围、问题是否会消失? 可能只是这个"漂移"实际上只是噪声。

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

    您好!

    什么是将 ADC 数据转换为电压的前视图?

    我正在使用 PGA 32、64、128?

    VREF = 3.3V

    1.对于 PGA=1,Vmeased =(3.3 * ADC 值)/(2^24-1)

    2.如果 PGA=32,则 Vmeasored =(3.3 * ADC 值)/((2^24-1)* 32)

    2.如果 PGA= 64,则 Vmeasored =(3.3 * ADC 值)/((2^24-1)* 64)

    不在24位 ADC 中、第24位是符号位? 那么、有效转换仅为23位?  那么、在上方、是(2^23-1)还是(2^24-1)?

    这里是我用于转换 ADC 结果的代码? 还可以吗? 或更好/正确的方法来实现它?

    int32_t get_burse_adc_result (void)
    {
    uint32_t ADC_Result;
    uint8_t temp;
    int32_t valueShifted;
    int32_t 值;
    
    ADC_Result = ADS1248_Three _Bytes ();
    
    
    //来自 ADC 的原始值是一个24位数字,所以现在是符号位
    //驻留在 uint32_t 容器的位23 (0是 LSB)上。 电容
    //值向左移动符号位到 uint32_t 容器的 MSB。
    //通过转换为有符号的 int32_t 容器,我现在已正确恢复
    //原始值的符号
    ADC_Result = ADC_Result << 8U;
    ValueShift=(int32_t) ADC_Result;
    值=值移位>> 8;
    
    
    
    返回值;
    } 

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

    您好 VT、

    当使用 AVDD = 3.3V、AVSS = 0V 时、3.3V 的基准电压对该器件无效。 ADS1248要求基准电压相对于 AVDD-AVSS 的余量为1V。 您是否使用2.048V 的内部基准电压、或者您是否在外部连接了基准?  

    如果您在外部连接了参考、能否提供更新的原理图?  

    如果您尚未看到热电偶测量的基本指南 :https://www.ti.com/lit/an/sbaa274/sbaa274.pdf?ts=1595449398737&ref_url=https%253A%252F%252Fwww.google.com%252F、这可能会对您的设计有所帮助

    要将输出代码转换为电压、必须首先计算最低有效位大小或 LSB。 一个 LSB 表示一个代码的电压权重。 换句话说、为了增加/减少 ADC 输出、输入电压必须改变一个 LSB 大小。 ADC 的满量程范围(FSR)除以总数代码、得到 LSB 大小:

    LSB = FSR /(2^n - 1)、其中"n"为 ADC 分辨率。

     在 ADS1248中、每个 ADC 的差分输入电压范围为-VREF 至+VREF、因此满量程范围= 2 x VREF。 请记住、每个 ADC 前面还有一个 PGA、因此每个 通道的差分输入 必须限制在(- VREF/增益)到(+VREF/增益)之间。 然后、LSB 大小的计算公式如下:

    LSB =(2 x VREF)/增益/(2^24 - 1)

    接下来、您必须了解 ADC 的输出数据格式。  ADS1248 以二进制补码输出数据、其中0x7FFFFF 表示正满量程、0x800000表示负满量程。

    将输出代码转换回输入电压的最简单方法是使用0x800000和数据、并测试 MSB (最高有效位)。 如果 MSB 等于0、只需将等效的十进制数乘以 LSB 大小。 如果 MSB = 1、必须首先从等效的十进制数中减去2^n、然后乘以 LSB 大小。  

    例如、使用 VREF = 2.5V、N = 24位、增益= 4、我们可以计算出 LSB 大小为74.506nV。 输出代码0x147AE1对应于+100mV 的输入电压。 同时、输出代码0xD70A3D 将对应于-200mV 的输入电压。

    希望这有助于回答您的问题。