AD7416在低功耗系统中的应用
扫描二维码
随时随地手机看文章
0 引言
在测量与仪器仪表中,温度的检测几乎成为必不可少的一部分。传统的模拟温度传感器或是外围电路复杂,或是需要设计A/D转换、操作烦琐,在使用上都受到一定的限制,用数字温度传感器AD7416设计各种控制系统,体积小、功耗低、编程简单操作方便。芯片带有自动比较、可编程控制输出端OTI,在温控系统设计中有很大优势,另外,AD7416功耗低,可以编程控制工作与休眠状态的切换,在低功耗系统设计中也有广泛应用。
1 AD7416的结构功能
1.1 管脚功能
AD7416共8个管脚,采用SOIC/MSOP封装。1脚为数据输入输出口,IIC总线双向数据端口;2脚为IIC总线时钟端口;3脚OTI为温度比较输出端;4脚GND接地端;5、6、7为IIC总线地址编程位输入端;8脚VDD为电源。
1.2 内部结构功能
AD7416的内部结构图如图2所示,片内带隙温度传感器和1O位AD转换器组成测温电路,测量结果存入温度值寄存器。片内有5个寄存器、一个温度比较器、一个错误队列计数器,功能在下文介绍。一个串行总线接口用于IIC地址控制和数据传输。
1.2.1 内部寄存器
AD7416有5个内部寄存器:地址指针寄存器、温度值寄存器(00H)、上限寄存器TOTI(03H)、下限寄存器THYST(02H)、配置寄存器(01H)。
地址指针寄存器储存指向四个数据寄存器之一的地址。对AD7416每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址,这个值就存储在地址指针寄存器中。这个寄存器只须最低两位被用来选择一个数据寄存器,其值对应于寄存器地址。温度值寄存器是一个16位只读寄存器,它的高1O位以2的补码格式储存由AD转换器送来的10位温度读数,低六位未用。
配置寄存器是一个8位读/写寄存器,它用来设置AD7416的工作方式。D7、D6、D5用于通道选择,均保持为0;D4、D3设置错误队列长度;D2设置OTI输出极性;D1设置OTI工作方式;DO设置芯片工作方式。THYST设点寄存器和TOTI设点寄存器都是16位读/写寄存器,它们的9个最高位储存以2的补码格式表示的低、高温度门限设点,对应温度值寄存器的高9位,低7位未用。
AD7416上电时地址指针指向温度值寄存器,TOT1=80℃,THYST=75℃。
1.2.2 基本工作原理
带隙温度传感器和10位A/D转换器可以按照预先设定的工作方式对环境温度进行实时测量。同时把转换结果以10位二进制数形式保存到温度值寄存器。
设点比较器把实际测量到的温度值与预先设定的高低门限值进行比较,如果超限则按配置寄存器设置在OTI端输出高低电平。OTI在使用中需要外接一个约1O k的上拉电阻。
AD7416中有一个故障排队计数器用以避免干扰造成的OTI输出端误触发,这个计数器的排队长度由配置寄存器设定。如果排队设置为4,那么就需要连续4次测量温度超限才能引起OTI的有效输出,小于4次都认为是干扰,将复位故障排队计数器。
2 系统设计
2.1 硬件设计
系统中AD7416部分硬件原理图如图3所示,A2、A1、A0 分别接低、低、高电平,在八位地址中,高四位为1001表示选中7416,次三位为A2、A1、A0表示的地址,最低位表示读写,所以应用中AD7416 的写地址为10010010B,读地址为10010011B。本例中仅使用AD7416进行测量温度,OTI悬空,没有利用。串行时钟、数据总线对应连接处理器的时钟、数据总线端口。
2.2 软件设计
AD7416的01H为配置寄存器,其最低位为0,则启动芯片采集温度值并进行AD转换;为1则停止芯片工作。软件开始首先启动芯片工作,程序如下:
这段程序向AD7416的配置寄存器写入00H,完成芯片的测温启动。I2C_START子程序启动IIC总线,I2C_WwRITE子程序向IIC总线写一个字节,I2C_STOP子程序关闭IIC总线。程序首先向IIC总线写92H,选中AD7416芯片,然后把01H写入AD7416的地址指针寄存器,选中配置寄存器,最后把00H写入配置寄存器。
读取双字节温度值时,首先要向AD7416写入目的寄存器地址00H,即要读取数据的寄存器的地址,存放于地址指针寄存器中。然后发送读命令,接收到第一个字节后,处理器向总线发送应答信号,接收第二字节发送非应答信号,完毕后停止总线操作。从AD7416中读取温度值的部分程序如下,TEMPH存放高字节,TEMPL存放低字节:
3 结论
系统设计中使用了AD7416的测温功能,从使用过程看,该芯片结构简单,操作方便,功耗低,是低功耗测温系统的最佳选择。又由于使用片内温度传感器,所以大大简化了设计结构,同时也在很大程度上提高了系统的可靠性。