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.

[参考译文] MSPM0G1105:内部温度修整电压的 ADC 基准电压?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501568/mspm0g1105-adc-ref-voltage-for-internal-temperature-trim-voltage

器件型号:MSPM0G1105
Thread 中讨论的其他器件:MSPM0G3507、MSPM0L2228、 SysConfig

工具/软件:

尊敬的专家:

从下面的示例代码中、ADC Vref 为3.3V。

https://dev.ti.com/tirex/explore/node?node=A__AMc1FKI2xb03oOLrEYYLng__MSPM0-SDK__a3PaaoK__LATEST

Vtrim =(ADC_VREF_VOLTAGE*(TEMP_SENSE0 -0.5))/(2^12)

但从数据表中、它显示为1.4V。

该校准值表示与在12位模式下使用1.4V 内部 VREF 在出厂修整温度(TSTRIM)下测量的温度传感器相对应的 ADC 转换结果(采用 ADC 代码格式)。  

哪一个是正确的或我错过了什么?

当 VDD 为2.5V 时、我应该更改以下内容、对吧?

#define ADC_VREF_VOLTAGE                          (2.5f)

Vtrim =(3.3*(TEMP_SENSE0 -0.5))/(2^12)

此外、sysconifg 中还有 ADC VDDA 设置。 我应该将低于2.5吗?

BR、

Frank

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

    您好 Frank、

    Lihui Yang 说:
    此校准值表示与在12位模式下使用1.4V 内部 VREF 在出厂修整温度(TSTRIM)测量的温度传感器相对应的 ADC 转换结果(采用 ADC 代码格式)。  [/报价]

    正确。  

    [报价 userid="115858" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501568/mspm0g1105-adc-ref-voltage-for-internal-temperature-trim-voltage

    #define ADC_VREF_VOLTAGE                          (2.5f)

    Vtrim =(3.3*(TEMP_SENSE0 -0.5))/(2^12)

    [/报价]

    否、Vtrim 需要调用宏定义"ADC_VREF_VOLTAGE"、而不是3.3V。

    Lihui Yang 说:
    此外、sysconifg 中还有 ADC vda 设置。 我是否应该更改为2.5?

    您可以修改它、更改 宏定义"ADC_VREF_VOLTAGE"足以进行计算。

    以下公式会将其修整值转换为任何基于基准电压的值:

    Vtrim =(ADC_VREF_VOLTAGE*(TEMP_SENSE0 -0.5))/(2^12)

    B.R.

    Sal

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

    SAL、

    [引述 userid="522967" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501568/mspm0g1105-adc-ref-voltage-for-internal-temperature-trim-voltage/5769810 #5769810"]
    该校准值表示与在12位模式下使用1.4V 内部 VREF 在出厂修整温度(TSTRIM)下测量的温度传感器相对应的 ADC 转换结果(采用 ADC 代码格式)。  

    正确。

    [/报价]

    但  ADC_VREF_VOLTAGE 为3.3V、而不是1.4V。 它应该低于这个值、对吧?

    Vtrim =(1.4*(TEMP_SENSE0 -0.5))/(2^12)

    根据您的建议、我只需要更改  ADC_VREF_VOLTAGE 以校正 VDDA。 那么温度就正确了吗? 但 Vtrim 基于1.4V、对吧?

    BR、

    Frank

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

    您好 Frank、

    实际上、器件存储器中没有 Vtrim、只有  TEMP_SENSE0 已经转换为12位值。 是的、 TEMP_SENSE0 根据1.4V VREF 进行转换。

    在计算温度时、您需要做的是  根据当前 ADC 基准电压将 TEMP_SENSE0转换为适当的值。 此时、与1.4V 之间没有关系。

    B.R.

    Sal

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

    SAL、

    我很困惑。 以下代码来自示例工程"adc12_internal_temp_sensor_mathacl_lp_MSPM0G3507_nortos_ticlang"。

    Vtrim 使用 3.3V 的 ADC_VREF_VOLTAGE 和 TEMP_SENSE0  来获得 Vtrim。


    /*
    *将 TEMP_SENSE0结果转换为等效电压:
    * Vtrim =(ADC_VREF_VOLTAGE*(TEMP_SENSE0 -0.5))/(2^12)
    */

    qVTrim =_IQ15div (_IQ15mpy (_IQ15 (DL_SYSCTL_getTempCalibrationConstant ()))-
    _IQ15 (0.5))、_IQ15 (ADC_VREF_VOLTAGE)、((uint32_t)(1)<< 27);

    我尝试如下所示进行更改。 但温度会变得很远。

    Vtrim =(1.4*(TEMP_SENSE0 -0.5))/(2^12)

    因此、 TEMP_SENSE0使用3.3V 进行了校准?

    BR、

    Frank

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

    您好 Frank、

    否、 TEMP_SENSE0以1.4V 进行校准。

    Vsample 使用 ADC_VREF_VOLTAGE 计算得出、与 TEMP_SENSE0不同。

    Vtrim =(ADC_VREF_VOLTAGE*(TEMP_SENSE0 -0.5))/(2^12)

    该公式会将 Vtrim 转换为  基于 ADC_VREF_VOLTAGE 的值。  或者、在此处进行测试时会得到错误的结果。

    B.R.

    Sal

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

    SAL、

    我使用 MSPM0L2228 EVM (Rev a)。

    如果使用3.3V 和1.4V 作为 Vtrim 的 Vref、结果会非常不同。

    TEMP_TS_TRIM_C 30 30
    ADC_VREF_TRIP_VOLTAGE 1.4 3.3
    ADC_VREF_VOLTAGE 3.3 3.3
    TEMP_SENSE0 1873 1873
    TEMP_TS_COEF_V_C 555.556 555.556
    ADC_Result 803. 803.
    qAdcResultV 0.646545 0.646545
    VTrim 0.640015 1.508606.
    TSAMPLE 26.3718 508.9229

     Vtrim 的1.4Vref 似乎正确。

    BR、

    Frank

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

    您好 Frank、

    我需要在此处更正我的结论:

    [引述 userid="522967" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501568/mspm0g1105-adc-ref-voltage-for-internal-temperature-trim-voltage/5769810 #5769810"]

    您可以修改它、更改 宏定义"ADC_VREF_VOLTAGE"足以进行计算。

    以下公式会将其修整值转换为任何基于基准电压的值:

    Vtrim =(ADC_VREF_VOLTAGE*(TEMP_SENSE0 -0.5))/(2^12)

    [/报价]

    抱歉、这是错误的。 有关更新、请参阅下面的:

    Vtrim 的单位为"V"、以下公式需要将 TEMP_SENSE0 (数字结果)转换为 Vtrim (模拟结果):

    Vtrim =( TRIM_ADC_VREF_VOLTAGE *(TEMP_SENSE0 -0.5))/(2^12)

    注意: 对于不同的器件、TRIM_ADC_VREF_VOLTAGE 是固定值、 对于 M0G110X、它为3.3V。 对于 Lx22x、假设它为1.4V。

    然后、以下公式将 ADC 结果从数字值转换为模拟值:

    qVSample =_IQ15div (_IQ15mpy ((adcResult << 15)-_IQ15 (0.5)、_IQ15 ( ADC_VREF_VOLTAGE )、_IQ15 (ADC_BIT_RESOLUTION));

    注意:ADC_VREF_VOLTAGE 由用户在 SysConfig 中设置。

    B.R.

    Sal