DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 550|回复: 0
打印 上一主题 下一主题

[待整理] 兼容SPI接口的低功耗数字温度传感器ADT7301及其接口技术

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 09:48:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
兼容SPI接口的低功耗数字温度传感器ADT7301及其接口技术

摘要:ADT7301是AD公司推出的13位数字温度传感器芯片。该芯片采用+2.7V~+5.5V电源供电,具有温度转换精度高、功耗低、串行接口灵活方便等特点。文中介绍了ADT7301的主要特性,并以其与8052接口为例,给出了ADT7301的串行接口电路、应用程序。     关键词:温度传感器;SPI;ADT7301
1 概述
ADT7301是一个完整的温度监测系统,有SOT-32和MSOP两种封装形式。在芯片内部集成了一个用于温度监测的带隙温度传感器和一个13位AD转换器,其最小温度分辨率为0.03125°C。ADT7301带有一个非常灵活的串行接口,可非常容易地与大多数微控制器接口;而且该接口还可与SPITM、QSPI及MICROWIRETM协议及DSP接口兼容,通过串口控制可使器件处于待机模式。ADT7301的宽供电电源范围、低供电电流及与SPI兼容的接口使得该器件非常适合于个人计算机、办公设备及家电设备等各种领域。
ADT7301功能特性如下:
●供电电源+2.7V~+5.5V;
●内含13位数字温度传感器;
●测温精度为±0.5℃;
●具有0.03125℃温度分辨率;
●工作电流典型值为1μA;
●带有SPI及DSP兼容的串行接口;
●工作温度范围宽达-40~+150℃;
●采用节省空间的SOT-23和MSOP封装。
2 内部结构与管脚说明
2.1 管脚描述
ADT7301模块的内部结构如图1所示。该器件具有6脚SOT-23和8脚MOSP两种封装形式,各引脚的功能如下:
GND:模拟地和数字地;
DIN:串行数据输入口。装入芯片控制寄存器的数据可在时钟SCLK上升沿通过该管脚串行输入;
VDD:供电电源正输入端。 供电电源范围为:+2.7V~+5.5V;
SCLK:与串行端口对应的串行时钟输入;
CS:片选输入,低电平有效;
DOUT:串行数据输出端口。温度值在串行时钟SCLK的下降沿通过该管脚串行输出。
ADT7301的串行接口由CS、SCLK、DIN及DOUT四线构成。将CS和DIN接地可使该接口工作于两线模式,在这种模式下,该接口只能通过DOUT来读取数据寄存器中的值。推荐使用CS端口,这样有利于ADT7301与其主控器件之间同步。DIN端口用于写控制寄存器,也可使芯片处于节电模式。使用时,在电源和地线之间应加一个0.1μF的去耦电容。


图2


    2.2 工作过程与应用时序
ADT7301内部集成有晶体振荡器,所以工作时只需在串口接入时钟,而不需再提供A/D转换时钟。该芯片具有两种工作模式,即正常工作模式和节电工作模式。在正常工作模式,内部时钟振荡器将驱动自动转换时序,从而使芯片每秒钟对模拟电路上电一次,以进行一次温度转换。完成一次温度转换一般需800μs,转换结束后,芯片的模拟电路自动断电,并在1秒钟后自动上电。因此,在温度值寄存器中总可以得到最新的温度转换值。
通过设置ADT7301控制寄存器可将其设置为节电模式。在节电模式下,片内振荡器被关闭,ADT7301不进行温度转换,直到恢复到正常工作模式。可向控制寄存器中写零使其恢复到正常工作模式。在进入节电模式前其温度转换结果即使在进入节电模式后仍可被正确读取。
在正常转换模式下,执行读/写操作时,其内部振荡器可在读写操作结束后自动复位,以使温度转换器能够重新进行温度转换。若在ADT7301进行温度转换过程中执行读写操作则会使其自动停止转换,并在串行通讯结束后又重新开始,而读取的温度值是前一次的转换结果。ADT7301执行读/写操作时的时序如图2所示。
当片选端口CS为低时,SCLK时钟输入有效,而在执行读操作后,系统会将2位零标志位、1位符号位和13位的数据位在16个时钟脉冲下降沿从温度值寄存器中取出。如果CS持续为低的时间超过16个SCLK时钟周期,ADT7301将循环输出2位零标志位加14位数值位。而一旦CS变为高电平,DOUT输出端将处于高阻状态此时输出数据将在SCLK的下降沿被锁存在DOUT线上。
ADT7301的写操作与读操作可同步进行。当写数据流中的第三位写1而其余位为0时, ADT7301进入节电模式;写数据流全为0时,为正常工作模式。在正常工作模式数据在第16个SCLK的上升沿被装入控制寄存器并立刻起作用。若CS在第16个SCLK上升沿之前变为高电平,那么,控制寄存器中的数据将不会被装入,但此时工作模式不变。
2.3 温度值编码
温度值寄存器是一个14位的只读寄存器,用于存储ADC的13位二进制补码加1位符号位的温度转换结果(最高位为符号位)。理论上,ADC测量的温度范围可达255℃,实际上,内部温度传感器能确保的温度范围为-40℃~ +150℃。温度数据格式如表1所列。

表1 温度寄存器数据格式
温度值(℃)数据输出DB13DB0
-4011,1011 0000 0000
-3011,1100 0100 0000
-2511,1100 1110 0000
-1011,1110 1100 0000
-0.312511,1111 1111 1111
000,0000 0000 0000
+0.312500,0000 0000 0001
+1000,0001 0100 0000
+2500,0011 0010 0000
+5000,0110 0100 0000
+7500,1001 0110 0000
+10000,1100 1000 0000
+12500,1111 1010 0000
+15001,0010 1100 0000
其温度转换公式如下:
正温度值=ADC转换结果代码(d)/32;
负温度值=(ADC转换结果代码(d)-16384)/32(使用符号位);
负温度值=(ADC转换结果代码(d)-8192)/32(不使用符号位)。

3 应用电路
3.1 ADT7301与单片机的串行接口电路
图3为ADT7301与单片机的串行通讯接口电路,该接口方式具有转换速度快的优点,但不能被设置成节电工作模式。
这里应注意的是:由于在单片机串行通讯中是先低后高,而ADT7301在向外串行输出温度值时是先高后低,所以要先进行高低位互换然后再进行处理,具体处理程序这里不再给出。下面是ADT7301与8051单片机进行串行接口的软件编程:
;*****主程序*****
main:
call receive ;读取温度值子程序
call dispose ;读取结果处理子程序
sjmp $
;###串行通讯子程序###
receive: setb p1.3
mov scon,#11h ;选择串行口为方式0接收
mov r7,#2 ;字节计数
mov r0,#30h ;指向温度值缓冲区
clr p1.3 ;选通ADT7301
clr ri ;清接收中断标志,准备接收
loop: jnb ri,$
mov a,sbuf
mov @r0,a
inc r0
clr ri
djnz r7,loop
setb p1.3
ret
3.2 ADT7301与单片机的全双工通讯接口
通过ADT7301与单片机的全双工通讯接口可以使ADT7301工作在节电模式。图4是ADT7301与8051单片机进行全双工通讯接口连接图。相应的软件编程如下。
###全双工通讯子程序###
setb p1.3
mov r0,#30h ;读温度值缓冲器30h31h
mov r1,#32h ;控制寄存器写入值(32h33h)
mov r6,#08h ;循环移位计数
mov r7,#02h  ;字节计数
clr p1.3  ;选通
loop0:
setb p1.0 ;控制p1.0产生下降沿
clr p1.0 ;准备读取数据
mov cy,p1.1 ;读值
mov a,@r0 ;将上次结果重装入
rlc a ;移位存储读取结果
mov @r0,a ;暂存
mov a,@r1 ;将要写入值给累加器
rlc a ;移出要写入位
mov p1.2,cy ;循环写入
mov @r1,a ;暂存
djnz r7loop0
inc r0
inc r1
djnz r7,loop0
clr p1.3
ret

4 结束语
ADT7301可用于测量物体的表面温度或空气温度。由于该器件采用低功耗设计,因此,在利用热传导粘结剂将ADT7301粘结到被测物体表面时,测得的温度与表面实际温度之差不超过0.1℃。另外,当被测物周围温度与被测物表面温度存在温度差时,应注意将器件的背面和管脚与周围空气隔离开。由于接地引脚提供了管芯最好的热传导途径,因此,管芯温度与印制电路板的地线温度最接近,所以应保证该管脚与被测表面良好接触。
该温度传感器不宜长期处于极限工作状态,当工作在+150℃时,该器件的使用寿命是其工作在+55℃时的5%。当长期工作在电压和温度极限时,器件的结构完整性也将会遭到破坏。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-5 12:19 , 耗时 0.097233 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表