最近主控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的内部温度传感器,例程中给出的温度计算公式是否正确。谢谢! |
adc采集电压
关于使用STM32G030C8T6的串口收发过程中串口接收问题
STM32G0B1的CAN自动重发
用stm32cubeide生成的STM32G030F6P6代码只要一开中断,任何中断程序都会跑飞.
STM32G0B1CBT6 双Bank升级,运行Bank2上Flash不能写问题
有关STM32G0B1RET6芯片FLASH擦除问题
STM32G030烧录程序
Stm32G071 i2c slave配置问题
STM32G030 不能下载程序 0xFFFF0040
STM32G0是否支持trace?
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)
而且两个地址也不一样。
5、关于温度和输出是正相关还是负相关。我手边暂时没有F0,就用G0测试一下吧。(待会留言告诉你结果)
6、数据是左对齐还是右对齐。不过看情况应该没有搞错。
7、你说的cubemx生成的代码有130度,这个数据是在哪里设置的?理论上硬件应该不支持吧?
不好意思,看不带编辑功能。就在这里写一下:
130度的在datasheet里面看到了:
temperature of 30 °C (± 5 °C),
VDDA = VREF+ = 3.0 V (± 10 mV)
temperature of 130 °C (± 5 °C),
VDDA = VREF+ = 3.0 V (± 10 mV)
官方的计算方法在stm32g0xx_II_adc.h:
感觉温度很不准,暂时没有看公式对错。
默认官方的公式是对的先。
温度正常竟然50度,有点不可信。但是这个温度对应的ADC在30和130度之间。
我这边假定电压是3.3V,其实可以测量一下vref的取值。也许修正一下就可以了
我算的更不对