與DS1620數(shù)字溫度傳感器IC的通信通過簡單的3線接口實現(xiàn)。此接口與摩托羅拉 SPI 之間存在許多差異?接口。然而,只需對DS1620進行一些小的硬件和軟件修改,就可以有效地集成到基于SPI的系統(tǒng)中。
介紹
DS1620數(shù)字溫度計和恒溫器提供9位溫度讀數(shù),指示器件溫度。DS1620具有三路熱報警輸出,還可用作恒溫器。溫度設(shè)置和溫度讀數(shù)均通過簡單的1620線接口與DS3通信。
但是,許多摩托羅拉處理器上的SPI接口不能直接與DS3上的1620線接口通信。首先,進出DS1620的數(shù)據(jù)流僅由一個引腳(DQ)多路復(fù)用,而SPI需要兩個獨立的信號(MOSI、MISO)。
其次,大多數(shù)SPI接口僅限于8位數(shù)據(jù)傳輸,使得DS9之間發(fā)送和接收1620位溫度讀數(shù)變得復(fù)雜。此外,DS1620的接口首先傳輸LSB,而SPI是MSB優(yōu)先的通信協(xié)議。
最后,RST條與CS-bar(片選)信號不同,因為RST條從傳輸(協(xié)議)的開始到所有數(shù)據(jù)傳輸?shù)慕Y(jié)束(例如,讀取溫度值時傳輸?shù)牡?位)必須很高。
盡管存在所有這些限制,我們還是可以找到一個相當簡單的方案,允許SPI接口與DS1620通信。本應(yīng)用筆記介紹了該技術(shù)。
SPI 接口
圖1所示電路可通過與DS1620接口的SPI總線來控制數(shù)據(jù)流方向。如果需要,該電路可以集成到小型PAL中。
DIR信號的目的是在向DS1620發(fā)送數(shù)據(jù)或從DS1620接收數(shù)據(jù)之間進行選擇。當DIR為低電平時,DS<>接收數(shù)據(jù);如果DIR很高,則SPI控制器正在讀取數(shù)據(jù)。
電阻是防止MOSI線路上的三態(tài)緩沖器輸出與DS1620的DQ引腳之間發(fā)生爭用所必需的,因為DS1620收到READ命令協(xié)議后,其DQ引腳會在幾百納秒內(nèi)改變輸入到輸出的方向。這個時間太短,控制DIR信號的微處理器無法采取行動。
在同一SPI總線上連接多個外設(shè)時,當DS1620無法訪問時,MISO信號必須三態(tài),以防止與其他外設(shè)的MISO信號爭用。這就是為什么RST條形信號在確定數(shù)據(jù)方向的邏輯中是必要的。
注意,SPI時鐘直接連接到DS1620的CLK引腳。軟件必須注意SPI時鐘的極性和相位,以符合DS1620的CLK時序要求。
圖1.SPI 至 DS1620 接口電路。
界面軟件
雖然接口的硬件相對簡單,但SPI/DS1620接口的其余部分必須由軟件處理。以下示例給出了從DS1620讀取溫度的方法。該代碼段假設(shè)DS1620已經(jīng)初始化,配置寄存器設(shè)置正確,溫度轉(zhuǎn)換已經(jīng)啟動。有關(guān)這些工作模式的詳細信息,請參見DS1620數(shù)據(jù)資料。
unsigned char mirror(unsigned char value) { unsigned char i; unsigned char value_mirrored = 0x00; for (i=0;i<=7;i++) { value_mirrored = value_mirrored | (((value>>i)&0x01)<<(7-i)); } return (value_mirrored); }
發(fā)送協(xié)議后,DIR從低電平變?yōu)楦唠娖剑ìF(xiàn)在表示讀取傳輸),因為DS1620已準備好發(fā)送9位值。請注意,RST 欄仍然很高。SPI控制器讀取9位值的前9位(LSB優(yōu)先)。軟件必須“鏡像”收到的字節(jié)。第 1620 位(后跟七個虛擬位)通過進行另一個 READ 傳輸并保持 DIR 和 RST 欄不變來拉出。當收到第二個字節(jié)時,軟件再次鏡像它并將RST條拉低,終止與DS<>的通信。
#define RST_bit 0 /* PB0 */ #define RST_port PORTB #define DIR_bit 1 /* PB1 */ #define DIR_port PORTB #define READ_TEMP_CMD 0xAA unsigned int read_temp(void) { unsigned char temp_value_lo; unsigned char temp_value_hi; DIR_port = DIR_port & ~(1<審核編輯:郭婷
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
3045瀏覽量
159076 -
接口
+關(guān)注
關(guān)注
33文章
9005瀏覽量
153782 -
SPI
+關(guān)注
關(guān)注
17文章
1805瀏覽量
96055
發(fā)布評論請先 登錄
Applying and Using the DS1620

Interfacing the DS1620 to the

DS1620接口與單片機DS5000/8051

摩托羅拉Wilder正式發(fā)布
接口的SPI RTC與摩托羅拉DSP

DS1620 DS1620 - (Maxim Integrated) - 溫度傳感器 - 模擬和數(shù)字輸出

DS1620與DS5000/8051微控制器接口

評論