最近主控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的内部温度传感器,例程中给出的温度计算公式是否正确。谢谢! |
STM32G030F6 ADC+DMA多通道非连续采样无法正常工作?
STM32G0B1VE的CAN过滤器个数问题
STM32G0B1adc+dma采样数据错位
有没有stm32g071 Discovery kit的micropython的固件
STM32G0B1CBT6 Flash 不能写擦除,更不要说写入?fal库示例代码哪里有,分享一下,谢谢
STM32G031G6U6 PA8无法输出高低电平
STM32G071CBT6技术支持
基于GCC编译器的initcall在STM32如何实现?
stm32cubeide新用户无法注册
关于stm32g系列usart5的问题
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的取值。也许修正一下就可以了
我算的更不对