1 引言
TI公司的MSP430单片机以独特的低功耗和模块化设计赢得了设计者的青睐。新型MSP430F247其性价比相当高,该16位单片机处理速度快,超低功耗,能节省很多资源;MSP430F247内置I2C模块,方便了程序编写,大大降低了程序的出错率。同时更多的I/O口可以级联更多的外围器件,而无需使用地址数据锁存器件,既方便了程序的编写,也简化了硬件电路的设计。
温度传感器TMP275可直接输出数字信号,而无需取样、放大、滤波和模数信号的转换,可以直接传输给单片机信号处理系统;而且输出信号分辨率可以达到0.0625,测温精度±0.5℃,若使用MSP430F247做控制器,可直接与其自带的I2C模块相连,使用方便。
2 电路设计
2.1 总体方案设计
该测温仪的硬件结构由温度测量、核心控制电路、显示电路和电源电路等4部分组成。总体方案框图如图l所示。
2.2 单元模块设计
2.2.1 核心控制电路
核心控制电路采用MSP4313F247完成数据的测量和处理,实现温度测量和控制输出显示功能,电路如图2所示,其中的P3.1.P3.2分别是MSP430F247自带I2C模块的SCL和SDA,可以直接连接TMP275,不用再模拟I2C口,应注意接上拉电阻。
图2 核心控制电路
2.2.2 温度测量
测温部件采用TI公司生产的温度传感器TMP275,以数字形式用I2C总线向CPU传输数据,图3给出温度测量电路。
图3 温度测量电路
TMP275是一个I2C总线的温度传感器,测温范围一40℃~+125℃,在一20℃~+100℃之间最大误差仅为±0.5℃。
TMP275内部有指针寄存器、配置寄存器、温度值寄存器、高温和低温限制寄存器等5个寄存器。
指针寄存器是通过P1,P0识别哪个寄存器来响应读写命令。其格式字如表1所示,指针地址如表2所示。
配置寄存器是一个8位可读写的寄存器,用来存储TMP275的工作模式控制字,详细资料请参见参考文献。
温度寄存器是12位补码只读寄存器,用来存储最近变换得到的数据,存储形式与TI公司的TMPl00和DALLAS公司的DSl8820相同。该寄存器通过2个字节读写数据,如表3,表4所示,且先传输高8位再传输低8位,其中第一个字节8位有效,第二个字节只有高4位有效。上电和复位后读出的是0°。图4和图5分别是I2C数据写、读时序图。
图4 I2C数据写时序
图5 I2C数据读时序
2.2.3 显示电路
图6给出显示电路,显示部分主要由3个共阴数码管组成,以达林顿集成电路ULN2003和74LS06作为反向驱动。
图6 显示电路
2.2.4 电源电路
该装置的电源由两部分组成:由三端稳压器LM7805提供的+5 V。主要给ULN2003,74LS06以及温度传感器TMP275供电:由TI公司专用电平转换器TPS76033提供的3.3 V,主要提供MSP430F247单片机工作电源,如图7所示。
图7 电源电路
3 程序流程图及部分核心程序代码
3.1 主程序
程序开始头文件加载、端口及各种寄存器初始化,然后进入显示测温程序,如图8所示。
图8 主程序流程图
3.2 测温子程序
3.2.1 测温初始化子程序
此部分程序分别对MSP430F247自带的I2C模块相关的寄存器进行设置:①设P3.1、P3.2为外部管脚,使能SW Reset;②选择I2C模块操作模式为主机,同步模式;③选择时钟,复位R/W;④设置从机地址,清除SW中断标志,使能Rx中断;⑤设置接收字节计数器是2,目的是读2个字节的温度值;⑥发送I2C开始命令;⑦接收2个字节的温度值;⑧发送I2C停止命令。
3.2.2读温度高、低字节数据子程序
3.2.3 温度值处理子程序
图9给出测温子程序流程图。
图9 测温子程序流程图
4 结语
测温仪设计系统中,对于数字温度传感器TMP275,采用了模块化的设计理念,设计思路明朗,搭建系统框架比较容易,尤其是MSP430F247本身带有I2C模块,不必再用一般的2个端口来模拟I2C,程序编写简单,在使用其他的I2C器件时也可以参考,移植使用。
全部0条评论
快来发表一下你的评论吧 !