用I2C总线实现AD7416的多点温控系统
发布时间:2008/6/3 0:00:00 访问次数:540
用i2c总线实现ad7416的多点温控系统 摘要:详细介绍新型数字式温度传感器ad7416的功能、结构和特性参数,并给出其在多路循环温湿度检测控制仪中的应用实例。通过实践可知,ad7416测温范围宽、准确度高、相比其它数字式温度传感器有连接及编程简单的优点,具有推广使用价值。 关键词:ad7416 i2c总线 单片机 引言 ad7416是adi公司生产的一个芯片中有完整的数字温度传感器和热监视系统的芯片,具有体积小、功耗低、温度测量范围宽(-55~+125℃)、测量精度高(10位二进制数字量输出)、高性价比、使用方便等优点,可以很容易和单片机组成多路温度检测控制系统。 在单一i2c总线上可连接多达8个ad7416,如图1所示。 1 ad7416器件结构 ad7416采用节省空间的so-8和小型soic封装,结构框图如图2所示。 引脚说明如表1所列。
表1 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和地之间去耦。硬件设计原理如图3所示。
如所有的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每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。这个寄存器只须最低两位
用i2c总线实现ad7416的多点温控系统 摘要:详细介绍新型数字式温度传感器ad7416的功能、结构和特性参数,并给出其在多路循环温湿度检测控制仪中的应用实例。通过实践可知,ad7416测温范围宽、准确度高、相比其它数字式温度传感器有连接及编程简单的优点,具有推广使用价值。 关键词:ad7416 i2c总线 单片机 引言 ad7416是adi公司生产的一个芯片中有完整的数字温度传感器和热监视系统的芯片,具有体积小、功耗低、温度测量范围宽(-55~+125℃)、测量精度高(10位二进制数字量输出)、高性价比、使用方便等优点,可以很容易和单片机组成多路温度检测控制系统。 在单一i2c总线上可连接多达8个ad7416,如图1所示。 1 ad7416器件结构 ad7416采用节省空间的so-8和小型soic封装,结构框图如图2所示。 引脚说明如表1所列。
表1 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和地之间去耦。硬件设计原理如图3所示。
如所有的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每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。这个寄存器只须最低两位