主题中讨论的其他器件:MSPM0L1306、
您好!
我正在处理一个使用内部温度传感器的 MSPM0L1306应用。 我已经将 ADC12_single_conversion 示例修改为使用内部温度传感器(通道11)和1.4V 内部基准。 有了我办公桌上的开发板、我得到的值大约 TEMP_SENSE_0
是1899年、我的芯片的值为367。
下面是代码片段:
while (1){
DL_ADC12_startConversion (ADC12_0_INST);
while (false == gCheckADC){
__ WFE ();
}
gAdcResult = DL_ADC12_getMemResult (ADC12_0_INST、DL_ADC12_MEM_IDX_0);
VSAMPLE =(1.4/4096)*(gAdcResult - 0.5);
TEMP_SENSE_DATA = FACTORYREGION->TEMP_SENSE0;
VTRIM =(1.4/4096)*(TEMP_SENSE_DATA - 0.5);
TSAMPLE =(1/-0.00175)*(VSAMPLE - VTRIM )+30;
gCheckADC = false;
DL_ADC12_enableConversions (ADC12_0_INST);
}
将这些值代入 TRM 手册第2.2.5节"温度传感器"中的公式、我得到:
VSAMPLE =(1.4V / 4096)*(1899 - 0.5) = 648.9mV
VTRIM =(1.4V / 4096)*(367 - 0.5)= 125.2mV
TSAMPLE =(648.9mV - 125.2V )/(-1.75mV /°C)+ 30°C =-269.21 °C
这个值是不现实的。 然而、当使用 手册示例中的 VTRIM 时、我会得到更合理的结果:
TSAMPLE =(648.9mV - 634.5mV)/(-1.75mV /°C)+ 30°C = 21.79 °C
但是、这忽略了任何单芯片工厂校准、我不愿意在生产中使用此类修复。 我的另一个 LP-MSPM0L1306也得到了类似的结果。