STM32
直播中

杨海清

7年用户 1731经验值
私信 关注
[问答]

关于STM32G0系列内部温度传感器的几个疑问求解

最近主控MCU从F0换到了G0,用到了G0的内部温度传感器,有几个问题没能解决
1.文档上给出的出厂测量的温度的raw data只有30度的,用CubeMX生成的代码里倒是有30度和130度的
,但是130度的值比30度的值要大,意思是G0的内部温度传感器现在是PTC了?

2.现在在室温下(约20度)测量的内度温度传感器的AD值约为940,按照程序里给出的转换公式,换算出来的温度为-25度左右,
用热风枪对着MCu吹一下,AD值会增加到1100左右,证明AD检测的配置应该没什么问题。

Temperature = ((TS_ADC_DATA - TS_CAL1)
                             * (TS_CAL2_TEMP - TS_CAL1_TEMP))
                         / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP


想请教一下有哪位用过G0的内部温度传感器,例程中给出的温度计算公式是否正确。谢谢!

回帖(2)

李凤璐

2024-4-1 09:32:28
1、内部传感器本质还是使用ADC来测量的。
2、F0的ADC也是12位的,G0的ADC也是12位的。如果配置可能不同,数值有可能不同?

3、公式似乎没有问题。
4、这两个系列的MCU的TS_CAL1获取条件有点不一样:
F0: TS ADC raw data acquired at a temperature of 30 °C (± 5 °C), VDDA= 3.3 V (± 10 mV)
G0: TS ADC raw data acquired at a temperature of 30 °C (± 5 °C), VDDA = VREF+ = 3.0 V (± 10 mV)而且两个地址也不一样。
举报

陈丽

2024-4-1 16:56:03
1. 根据ST的官方文档,STM32G0系列的温度传感器是通过内部温度传感器(internal temperature sensor,简称ITS)进行测量的,而非PTC。其原始数据是根据校准的温度参数进行转换的,并不是以实际温度为基准。

2. 根据你提供的信息,室温下的AD值约为940,转换为温度后得到的结果为-25度左右。这个结果明显不合理。可能的原因包括传感器校准不准确、转换公式有误、或者传感器本身存在问题。建议先检查转换公式的正确性,确保没有错误的变量或运算。如果公式正确,可以尝试重新校准温度传感器,或者进行更多的测试,以排除其他因素导致的不准确读数。

另外,还可以查阅ST的官方文档或咨询ST的技术支持,以获取更详细的信息和帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分