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.

[参考译文] TMS570LC4357:当基准电压不为3.3V 时、温度传感器和 MibADC 的读数调节

Guru**** 2609955 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/749310/tms570lc4357-temperature-sensor-and-mibadc-reading-scaling-when-reference-is-not-3-3v

器件型号:TMS570LC4357

您好!

在我们的项目中、我们使用了 TMS570LC4357的温度传感器1。

激活温度传感器(IOMM)和 MibADC1 (PCR3、MIBADC1寄存器配置中的时钟)的所有必要步骤、并且我可以读取与环境温度匹配的 ADC 读数。

在我们的系统中、ADREFHI 上的 ADC 基准电压为2.048V。 如 TI 应用手册 SPNA216所示、校准数据是在3.3V 时由 ADREF 生成的、因此需要调节温度。 根据应用手册,这可以通过对热敏电阻_read()函数返回值应用比率因子来实现。

由于获取温度的操作为 temp_K =(ADC_Reading - Offset)* Slope、这意味着对于0x000的 ADC 读数、以开尔文为单位的温度将根据 ADREF 而变化。

如果温度传感器由另一个基准(来自 CPU 而不是来自 ADREF)供电、那么在我看来、只需要重新计算 ADC 读数。

基于这个想法、我根据 TI OTP 校准数据执行了偏移和斜率计算、但首先重新计算 ADC 读数、并使用标准线性方程 temp_K = Slope * ADC_Reading + Offset。 如果 ADREF 上的基准不相同、但偏移相同、结果会产生不同的斜率、这意味着对于一个0x000的 ADC 值、温度(开尔文)是相同的、这对我来说更有意义。

下面是我的问题:

  • 我的假设是否正确?
  • 应用手册中的缩放方法是否正确?
  • 如果 ADREF 更改通道上相同输入电压的 ADC 读数、那么温度传感器的基准电压是多少? 它是否与 ADREFHI/ADRELOW 相关? VCCAD/VSSAD? 其他电源?

此致、

盖尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gael、
    您的问题将提交给我们的 ADC 专家。
    由于美国假期,答复可能会推迟到11月26日这一周。

    此致、
    米罗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    没问题、感谢您的更新。
    盖尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gael、

    ADC 转换结果与 ADREFHI 值成反比。 假设 ADREFLO 为0V、ADC_Value = 4096 * Vin/ADREFHI。

    应用手册中使用的算法包含注释、用于根据您的 ADREFHI 值调整转换结果。 对于 ADREFHI = 3.3V、存储在 OTP 中的值是有效的。 这些值需要根据您的2.048V 基准进行缩放、即 ADC_val * 3.3/2.048

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    好的、我们同意需要对其进行扩展。
    但应用手册解释说、为了实现这一目的、我们需要对热敏电阻_read 函数给出的结果应用比例因子。
    在您的回复中、您写道 OTP 存储器中的 ADC 样本需要使用 ADC_value_Scaled = ADC_value_fin_OTP * 3.3 / 2.048进行缩放。
    在这两种情况下,如果使用另一个 ADREFHI 读取的 ADC 值为3.3V,则 Thermistor_Read()函数不会给出相同的结果。

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

    在将 ADC 值用于斜率和偏移计算之前,可以在 thermistor_calibration()例程中应用缩放。 之后不需要再进行缩放。

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

    您好!

    根据 Thermistor_Read 函数的以下注释、在计算斜率和偏移之前对 OTP 中的值应用缩放具有与应用手册 SPNA216 (关于 thermistor_read 函数返回值)中所述的缩放效果不同:

    /*

    *返回的温度将需要按基准电压差进行缩放

    *在标称电压3.30V 下获得校准值。

    *

    *开尔文=返回值*(VccADrefHi - VccADrefLow)/3.30V

    *

    为了澄清差异、我制作了一个 Excel 表格、在给定相同的 ADC 值的情况下显示每个解决方案的结果。 请参阅随附的文件。

    然后、您是否确认需要对 OTP 记忆样本进行缩放?

    如果这样做、则会使 thermister_read 函数注释错误、并且需要更正应用手册、以防止用户在3.3V 不用作 ADC 基准时计算不正确的值。

    谢谢、

    盖尔

    e2e.ti.com/.../5684.ADC-conversion-methods-comparison.xlsx

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

    我同意需要更新应用手册以指示需要在 thermistor_calibration()函数中完成不同 ADC 基准电压的调节。

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

    感谢您的澄清。

    此致、

    盖尔