地址指针寄存器储存指向四个数据寄存器之一的地址。对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写入配置寄存器。