因為乙個專案用到了ds18b20溫度感測器,剛開始使用之處,第一次對單線感測器進行控制,毫無經驗,也是碰了一頭灰,摔了一些坑。總結一下使用心得。
ds18b20是單線數位化溫度感測器。溫度採集的控制介面為1位,通過該位可進行溫度資料的讀取,以及9~12位解析度的設定,對應的精度為0.5°c ~0.01625°c。
下面是初始化的時序圖。
初始化ds18b20模組,首先通過拉低模組配置訊號dq,拉低時間大於480us,完成ds18b20的初始化,檢測到ds18b20反饋的存在脈衝之後,開始配置ds18b20。
由於我在使用過程中是單獨對乙個18b20**進行操作,因此跳過rom序列的查詢功能。整體操作流程如下:
1) 通過模組配置訊號dq寫入cc命令,跳過ds18b20的rom匹配,由於此應用中一根dq配置線只接了乙個ds18b20溫度轉換器,不需查詢匹配rom序列。
2)通過模組配置訊號dq寫入44命令,啟動溫度轉換。
3)系統採用ds18b20預設的12位精度,溫度轉換所需時間最大750ms,因此通過狀態機等待750ms,等待轉換完畢。
4)通過模組配置訊號dq寫入be命令,讀取ds18b20中暫存暫存器內的溫度資料。
5) 暫存暫存器值送入crc校驗模組,檢測crc校驗模組反饋標誌,若crc校驗正確,則更新溫度資料,否則,不更新溫度資料。
其中注意:
檢測反饋回來的存在脈衝,可採取多次採集,3取2的方式濾波,濾掉毛刺或虛假訊號。
寫時間片注意:
1、dq輸出低電平保持79us,然後dq輸出高阻狀態2us;(dq被拉低的79us狀態,完成寫0的操作);
2、dq輸出低電平保持9us,然後dq輸出高阻狀態73us;(釋放匯流排的同時,18b20通過上拉電阻拉高dq匯流排,完成寫1的操作)。
讀時間片:
拉低dq匯流排5us,然後釋放dq匯流排5us,讀取18b20反饋到dq匯流排上的溫度資料;
嚴格按照ds18b20時序(可適當放寬時序,不過要注意在正確區間取數)進行讀寫操作以及流程控制。
溫度感測器 DS18B20
1.實物圖 2.64位 激 光刻唯讀儲存器 開始8位 28h 是產品型別標號,接著的48位是該ds18b20自身的序列號,最後8位是前面56位的迴圈冗餘校驗碼 光刻rom的作用是使每乙個ds18b20都各不相同,這樣就可以實現一根匯流排上掛接多個ds18b20的目的 3.溫度暫存器 高位元組的前5位...
溫度感測器DS18B20讀寫
1.復位 主機傳送480us 960us的低電平,然後設定埠為高電平,釋放匯流排。溫度感測器接收到復位訊號,等待15 60us,拉低匯流排,發出60 240us的復位應答脈衝。主機讀取匯流排電平是否為低,如果為低,則判定溫度感測器復位。2.讀1bit資料 主機產生乙個下降沿,低電平維持至少1us,之...
DS18B20溫度感測器程式設計
本程式對應的開發板為藍橋杯嵌入式開發板stm32f103rbt6,為中型mcu。ds18b20是單線介面數字溫度感測器,具體特徵如下圖。ds18b20包括寄生電源電路 64位rom和單線介面電路 暫存器 eeprom 8位crc生成器和溫度感測器等。寄生電源電路可以實現外部電源供電和單線寄生供電,6...