AD7416在低功耗系統(tǒng)中的應(yīng)用
0 引言
本文引用地址:http://butianyuan.cn/article/103924.htm在測量與儀器儀表中,溫度的檢測幾乎成為必不可少的一部分。傳統(tǒng)的模擬溫度傳感器或是外圍電路復(fù)雜,或是需要設(shè)計A/D轉(zhuǎn)換、操作煩瑣,在使用上都受到一定的限制,用數(shù)字溫度傳感器AD7416設(shè)計各種控制系統(tǒng),體積小、功耗低、編程簡單操作方便。芯片帶有自動比較、可編程控制輸出端OTI,在溫控系統(tǒng)設(shè)計中有很大優(yōu)勢,另外,AD7416功耗低,可以編程控制工作與休眠狀態(tài)的切換,在低功耗系統(tǒng)設(shè)計中也有廣泛應(yīng)用。
1 AD7416的結(jié)構(gòu)功能
1.1 管腳功能
AD7416共8個管腳,采用SOIC/MSOP封裝。1腳為數(shù)據(jù)輸入輸出口,IIC總線雙向數(shù)據(jù)端口;2腳為IIC總線時鐘端口;3腳OTI為溫度比較輸出端;4腳GND接地端;5、6、7為IIC總線地址編程位輸入端;8腳VDD為電源。
1.2 內(nèi)部結(jié)構(gòu)功能
AD7416的內(nèi)部結(jié)構(gòu)圖如圖2所示,片內(nèi)帶隙溫度傳感器和1O位AD轉(zhuǎn)換器組成測溫電路,測量結(jié)果存入溫度值寄存器。片內(nèi)有5個寄存器、一個溫度比較器、一個錯誤隊列計數(shù)器,功能在下文介紹。一個串行總線接口用于IIC地址控制和數(shù)據(jù)傳輸。
1.2.1 內(nèi)部寄存器
AD7416有5個內(nèi)部寄存器:地址指針寄存器、溫度值寄存器(00H)、上限寄存器TOTI(03H)、下限寄存器THYST(02H)、配置寄存器(01H)。 地址指針寄存器儲存指向四個數(shù)據(jù)寄存器之一的地址。對AD7416每一次串行寫操作的第一個數(shù)據(jù)字節(jié)是數(shù)據(jù)寄存器的地址,這就是隨后的數(shù)據(jù)字節(jié)要寫入的地址,這個值就存儲在地址指針寄存器中。這個寄存器只須最低兩位被用來選擇一個數(shù)據(jù)寄存器,其值對應(yīng)于寄存器地址。溫度值寄存器是一個16位只讀寄存器,它的高1O位以2的補碼格式儲存由AD轉(zhuǎn)換器送來的10位溫度讀數(shù),低六位未用。
配置寄存器是一個8位讀/寫寄存器,它用來設(shè)置AD7416的工作方式。D7、D6、D5用于通道選擇,均保持為0;D4、D3設(shè)置錯誤隊列長度;D2設(shè)置OTI輸出極性;D1設(shè)置OTI工作方式;DO設(shè)置芯片工作方式。THYST設(shè)點寄存器和TOTI設(shè)點寄存器都是16位讀/寫寄存器,它們的9個最高位儲存以2的補碼格式表示的低、高溫度門限設(shè)點,對應(yīng)溫度值寄存器的高9位,低7位未用。
AD7416上電時地址指針指向溫度值寄存器,TOT1=80℃,THYST=75℃。
1.2.2 基本工作原理
帶隙溫度傳感器和10位A/D轉(zhuǎn)換器可以按照預(yù)先設(shè)定的工作方式對環(huán)境溫度進行實時測量。同時把轉(zhuǎn)換結(jié)果以10位二進制數(shù)形式保存到溫度值寄存器。
設(shè)點比較器把實際測量到的溫度值與預(yù)先設(shè)定的高低門限值進行比較,如果超限則按配置寄存器設(shè)置在OTI端輸出高低電平。OTI在使用中需要外接一個約1O k的上拉電阻。
AD7416中有一個故障排隊計數(shù)器用以避免干擾造成的OTI輸出端誤觸發(fā),這個計數(shù)器的排隊長度由配置寄存器設(shè)定。如果排隊設(shè)置為4,那么就需要連續(xù)4次測量溫度超限才能引起OTI的有效輸出,小于4次都認為是干擾,將復(fù)位故障排隊計數(shù)器。
2 系統(tǒng)設(shè)計
2.1 硬件設(shè)計
系統(tǒng)中AD7416部分硬件原理圖如圖3所示,A2、A1、A0 分別接低、低、高電平,在八位地址中,高四位為1001表示選中7416,次三位為A2、A1、A0表示的地址,最低位表示讀寫,所以應(yīng)用中AD7416 的寫地址為10010010B,讀地址為10010011B。本例中僅使用AD7416進行測量溫度,OTI懸空,沒有利用。串行時鐘、數(shù)據(jù)總線對應(yīng)連接處理器的時鐘、數(shù)據(jù)總線端口。
2.2 軟件設(shè)計
AD7416的01H為配置寄存器,其最低位為0,則啟動芯片采集溫度值并進行AD轉(zhuǎn)換;為1則停止芯片工作。軟件開始首先啟動芯片工作,程序如下:
這段程序向AD7416的配置寄存器寫入00H,完成芯片的測溫啟動。I2C_START子程序啟動IIC總線,I2C_WwRITE子程序向IIC總線寫一個字節(jié),I2C_STOP子程序關(guān)閉IIC總線。程序首先向IIC總線寫92H,選中AD7416芯片,然后把01H寫入AD7416的地址指針寄存器,選中配置寄存器,最后把00H寫入配置寄存器。
讀取雙字節(jié)溫度值時,首先要向AD7416寫入目的寄存器地址00H,即要讀取數(shù)據(jù)的寄存器的地址,存放于地址指針寄存器中。然后發(fā)送讀命令,接收到第一個字節(jié)后,處理器向總線發(fā)送應(yīng)答信號,接收第二字節(jié)發(fā)送非應(yīng)答信號,完畢后停止總線操作。從AD7416中讀取溫度值的部分程序如下,TEMPH存放高字節(jié),TEMPL存放低字節(jié):
3 結(jié)論
系統(tǒng)設(shè)計中使用了AD7416的測溫功能,從使用過程看,該芯片結(jié)構(gòu)簡單,操作方便,功耗低,是低功耗測溫系統(tǒng)的最佳選擇。又由于使用片內(nèi)溫度傳感器,所以大大簡化了設(shè)計結(jié)構(gòu),同時也在很大程度上提高了系統(tǒng)的可靠性。
評論