用I2C总线实现AD7416的多点温控系统
1 AD7416器件结构 AD7416采用节省空间的SO-8和小型SOIC封装。
AD7416引脚说明 引脚号 名 称 说 明 1 SDA 数字I/O。双向数据串行总线,漏极开路输出 2 SCL 数字输入。串行总线时钟 3 OTI 数字输出。超温掉电输出(漏极开路) 4 GND 电源地 5~7 A2~A0 数字输入。串行总线地址可编程低3位 8 +VS 正电源电压,+2.7~+5.5V 2 系统软硬件设计
2.1 硬件设计 用单片机AT89C2051来实现对AD7416的信号采集和输出控制,硬件设计简单可靠,系统温度节点可扩展性强。为确保系统不受电源波动的干扰,采用电源电压监视器TL7705A作系统复位控制器。如果AD7416要装在离电源较远处,AD7416必须用一个0.1μF的陶瓷电容接在+VS和地之间去耦。
如所有的I2C兼容器件一样,AD7416有一个7位串行地址。这个地址的高4位设定为1001,而低3位可由用户通过将A2~A0脚连接到无论是+VS或GND来设置。通过它们不同的设定地址,可将多达8个AD7416接到一条串行总线,超过8个,则将与总线上的其它器件发生冲突。 如果需要采集更多的温度节点,可采用多条串行总线的形式来扩展。 此例中,AT89C2051的P1,1脚用作I2C串行总线的时钟信号线,P1.0脚用作双向串行数据总线。通过从硬件上将AD7416的地址引脚A0、A1、A2接至不同电平,从而实现对每片AD7416的编址。
2.2 寄存器结构
对AD7416编程要注意其内部寄存器的结构,每片AD7416有5个内部寄存器,其中4个是数字寄存器而1个是地址指针寄存器。地址指针寄存器是一个8位寄存器,储存指向4个数据寄存器之一的地址。AD7416每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。这个寄存器只须最低两位被用来选择一个数据寄存器,。
地址指针寄存器 P7* P6* P5* P4* P3* P2* P1* 0 0 0 0 0 0 0 地址指针寄存器最低两位所选的数据寄存器。
寄存器地址 P1 P0 寄存器 0 0 温度值(只读,上电缺省) 0 1 配置(读/写) 1 0 THYST(读/写) 1 1 TOTI(读/写) 温度值寄存器是一个16位只读寄存器,它的高10位以2的补码格式储存由A/D转换器送来10位温度读数,低6位未用。温度数据格式。
温度数据格式 温度/℃ 数字输出 温度/℃ 数字输出 -75 10 1101 0100 +0.25 00 0000 0001 -50 11 0011 1000 +10 0 0001 01000 -25 11 1001 1100 +25 0 0011 00100 -0.25 11 1111 1111 +50 0 0110 01000 0 00 0000 0000 +75 0 1001 01100 配置寄存器是一个8位读/写寄存器,用来设置AD7416的工作方式。 TRYST设点寄存器是一个16位读/写寄存器,它的9个最高位储存以2的补码格式表示的低温度门限设点。 TOT1设点寄存器是一个16位读/写寄存器,它的9个最高位存储以2的补码格式表示的高温度门限设点。 AD7416上电时地址指针指向温度值寄存器,TOT1设点寄存器的值为80℃,THYST设点寄存器的值为75℃,这些缺省使得AD7416可以用于标准的恒温器而不需要与任何行总线连接。
2.3 工作方式选择 AD7416有两种工作方式,方式的选择由系统工作情况来决定。 在工作方式1情况下,配置寄存器高3位D7~D5必须保持位0,最低位D0=0为正常工作方式。每400μs进行一次转换,旦转换结束,器件将部分地降低功耗(典型情况为350μA),直至下一次转换开始。 工作方式2由配置寄存器的最低位D0=1来启动,适合于比较慢的速率测温系统中。通过写AD7416使之进入一个在两次读操作之间处于全掉电状态,这样,器件的功耗可以更低。在全掉电时,电流消耗典型值为0.2μA。
2.4 软件设计 软件设计采用虚拟I2C总线软件包VIIC[1],该软件包具有最佳包容性设计、归一化设计以及应用界面设计等特色。在此软件包为平台来进行软件设计可以不必了解I2C总线原理、协议和时序,只要了解该软件包的应用操作即可,使程序更具模块化、调试简单等优点。 软件包规定了读/写N字节数据子程序为惟一出口界面
- 基于WinCE的I2C驱动程序设计(04-24)
- 一种基于DSP的张力、深度、速度测量系统(04-15)
- DSP虚拟I2C总线软件包的设计及应用实例(05-29)
- 基于DSP和OZ890的电池管理系统设计(01-12)
- 基于DSP和OZ890 的电池管理系统设计(03-13)
- I2C总线及EEPROM的Linux驱动程序的设计(01-05)