原创 STM32设备之温度传感器程序设计(一)

2009-10-25 16:11 6829 4 4 分类: MCU/ 嵌入式

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转换器的数据寄存器获得该数字量。


 


2AD转换器结构框图


从结构图上可以看到:除了电源和参考电压,AD转换器设备外侧接口主要是17个转换通道和2组触发信号。


微处理器接口方面:有地址和数据总线、有时钟控制线、DMA请求线和中断请求线。


内部分成两组:一个叫注入组,一个叫规则组。什么含义现在还不清楚。


 


3AD转换模式


单次转换:一个通道,一次转换。


连续转换:一个通道,不停地转换。


单次的组转换:对于一个通道组(注入组或规则组),逐个转换。


连续的组转换:一个组转换完成后,又从头开始。


 


非连续的规则组转换:对于规则组,一次一个短序列,整个通道组可能需要好几次触发。


非连续的注入组转换:


 


4、注入通道


触发注入:触发信号产生后,可以打断规则组的转换,完成注入转换后,再进行规则组的转换。


自动注入:在规则组一次完成后,自动进行注入组转换;注入完成后,可以重新开始规则通道的转换。


 


5、温度传感器使用流程


1)通道选择。(2)设置采样时间。(3)唤醒温度传感器。(4)起动转换。(5)读取传感数据。(4)进行数据转换。


 


6、温度计算方法


温度对应电压= 转换数字量 * VDD / 0xFFF.


电压对应温度= 25度对应电压 温度对应电压 /电压温度比 +25度。


VDD=3.3V25度对应电压=1.43V 电压温度比=4.3mv每度。


 


7AD寄存器一览


状态寄存器:是否转换中、完成标志位、电压看门狗标志位。


控制寄存器:开启看门狗、不连续模式、扫描模式、中断允许、温度和电压检测允许、软件触发转换、选择外部触发、数据对齐方式、是否DMA、复位校准、是否连续转换、软开关ADC


 


采样时间寄存器:设定采样时间。


看门狗阀值寄存器:


 


规则通道组序列寄存器:共有3个,每个采用5为表示一个通道,4+6+6规则组最多16个通道。


注入通道组序列寄存器:共有1个,最多4通道。


数据寄存器:注入通道4个,规则通道1个(可采用DMA)。


 

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条