微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 用MAXQ3212微控制设计数字温度监控器

用MAXQ3212微控制设计数字温度监控器

时间:03-19 来源:互联网 点击:

Bit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8
SignSignSignSignSign262524

温度低有效位
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
232221202-12-22-32-4

这个温度传感器的分辨率可以由用户配置为9、10、11或12位,对应的温度分辨率为0.5°C、0.25°C、0.125°C、0.0625°C。DS18B20上电时的默认分辨率是12位,本应用中被初始化为10位,此时,第1位和第0位(2-3,2-4)没有意义,可以分辨最小温度值是0.25°C。

在这个应用里,以华氏温度为单位显示温度。利用下列方程进行转换:

华氏温度 = (摄氏温度 × 1.8) + 32(式1)

因为温度以小数形式表示,而且转换时需要乘以1.8,所以用二进制数进行计算。进行实数乘法运算时,需要在不浪费处理器资源的情况下尽量减小计算误差。DS18B20初始化时,温度值的分辨率设置成10位,所以第1位和第0位没有意义。在温度小数部分的其余2位(第3位和第2位)提供 0.25°C (0.45°F)的分辨率。因为MAXQ3212累加器的字节宽度为8位,可以方便地用一个字节作为温度换算的小数部分,乘法器可以包含6位小数信息。从下面可以看出,可以用6位小数近似表示到0.8至0.8的99.61%。

2-1 = 0.500000 => 0.8的62.50%
2-2 = 0.250000 + 0.50000 = 0.750000 => 0.8的93.7%
2-5 = 0.031250 + 0.0750000 = 0.781250 => 0.8的97.65%
2-6 = 0.015625 + 0.781250 = 0.796875 => 0.8的99.61%

用这个精度的数值转换华氏度数据,足以满足这个温度传感器的精度要求。

作为一个例子,我们可以计算测量温度+24.2510,(018.116)摄氏度,可表示为:

温度高有效位
Bit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8
0 (sign)0 (sign)0 (sign)0 (sign)0 (sign)001

温度低有效位
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
100001xx

换一种方式表示,上面的数值可以表示为00000001 1000.01xx2,这个数乘以1.810。把1.810转换成二进制数,用6位表示小数,结果转换成常数0001.1100112。这种转换方法如下:

0000s0 011000.012 = 006116
× 00000000 01.1100112 = 007316
-----------------------
00101011 .100100112 = 2B9316
+ 00100000 .000000002 = 32.010
-----------------------
01001011 .100100112 = 4B9316 = 75.57421910

可以看出,75.574219是精确的计算结果。如果把这个结果去掉2位小数,得到75.5°F,可以达到用计算器进行浮点运算时的0.15°F精度。如此精确的结果足以满足这种应用的要求。

双FET线圈驱动

本应用使用两个场效应管(FET)与处理器的输出端口连接,控制继电器开关。MAXQ3212端口的复位默认状态是弱上拉,高电平。因此,上电时其端口引脚为高电平,直到应用软件改变其状态。如果利用一路n沟道FET (BS-170)控制继电器线圈的供电,在处理器上电时,这个端口的默认状态就会触发继电器动作。直到应用软件将其置0为止。这种状态是不期望出现的,因为继电器被错误地触发,导致了一次不需要的动作。为了解决这一问题,电路采用了2个串联FET,共同控制继电器动作,处理器上电后的默认状态不会触发继电器。

例程

该应用的配套软件可从: 下载(ZIP),其中包含源代码文件:Thermostat.asm、1-Wire.asm、BCD.asm、ThermDisp.asm和头文件maxq3120.inc,其中头文件包含MAXQ3210/MAXQ3212的寄存器定义。压缩文件还包含MAX-IDE项目文件Thermostat.prj和可装载十六进制文件Thermostat.hex。把这些压缩文件解压到一个目录下,即可在MAXQ3210评估软件上编译和运行。2007年9月12日,在an3965_sw.zip程序文件中增加了另一个文件(Temp3Gerber.zip),所增加的文件包括Gerber数据、训练数据以及实现该设计的双层印制电路板所需的器件列表。

结论

MAXQ3212是一个用途广泛的高性能RISC处理器,具有小尺寸、低成本特性,提供强大的功能支持,特别适合大批量生产的应用。本应用笔记介绍了一个基于MAXQ3212 RISC微控制器的数字温度控制器。通过MAXQ3212将检测到的环境温度与用户设置的温度门限进行比较,用于继电器控制。利用DS18B20 1-Wire温度传感器检测环境温度,并将温度显示在由Maxim的8引脚LED显示驱动器ICM7218驱动的4位、7段LED显示器上。所选择的微控制器和高集成度显示驱动器,使系统的元件数量大大降低。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top