STM32设备之温度传感器程序设计(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、程序设计的背景
在STM32芯片内部集成了一个温度传感器,测量芯片内部温度。测量温度的方法是:该传感器输出连接到A/D转换器的第16通道,经模数转换转换为12bit的数据,然后经过一定的转换计算得到芯片的温度。
二、程序设计的目标
1、在shell里添加一个命令:temp,输入后显示芯片当前的温度。
2、通过编程,掌握AD转换的一些基本规律。
三、学习ADC知识中
1、根据我前面对设备的分类,AD转换器属于这样的设备:其输入通道连接一个模拟信号,在一定的时序和时间控制下,将模拟量转变成数字量。微处理器可以通过读取AD转换器的数据寄存器获得该数字量。
2、AD转换器结构框图
从结构图上可以看到:除了电源和参考电压,AD转换器设备外侧接口主要是17个转换通道和2组触发信号。
微处理器接口方面:有地址和数据总线、有时钟控制线、DMA请求线和中断请求线。
内部分成两组:一个叫注入组,一个叫规则组。什么含义现在还不清楚。
3、AD转换模式
单次转换:一个通道,一次转换。
连续转换:一个通道,不停地转换。
单次的组转换:对于一个通道组(注入组或规则组),逐个转换。
连续的组转换:一个组转换完成后,又从头开始。
非连续的规则组转换:对于规则组,一次一个短序列,整个通道组可能需要好几次触发。
非连续的注入组转换:
4、注入通道
触发注入:触发信号产生后,可以打断规则组的转换,完成注入转换后,再进行规则组的转换。
自动注入:在规则组一次完成后,自动进行注入组转换;注入完成后,可以重新开始规则通道的转换。
5、温度传感器使用流程
(1)通道选择。(2)设置采样时间。(3)唤醒温度传感器。(4)起动转换。(5)读取传感数据。(4)进行数据转换。
6、温度计算方法
温度对应电压= 转换数字量 * VDD / 0xFFF.
电压对应温度= 25度对应电压 — 温度对应电压 /电压温度比 +25度。
VDD=3.3V,25度对应电压=1.43V 电压温度比=4.3mv每度。
7、AD寄存器一览
状态寄存器:是否转换中、完成标志位、电压看门狗标志位。
控制寄存器:开启看门狗、不连续模式、扫描模式、中断允许、温度和电压检测允许、软件触发转换、选择外部触发、数据对齐方式、是否DMA、复位校准、是否连续转换、软开关ADC。
采样时间寄存器:设定采样时间。
看门狗阀值寄存器:
规则通道组序列寄存器:共有3个,每个采用5为表示一个通道,4+6+6规则组最多16个通道。
注入通道组序列寄存器:共有1个,最多4通道。
数据寄存器:注入通道4个,规则通道1个(可采用DMA)。
文章评论(0条评论)
登录后参与讨论