ds18b20溫度傳感器數(shù)據(jù)手冊,ds18b20溫度傳感器測溫范圍
chanong
來源:百文網(wǎng)_Embedded Linux wiki_jz2440 新視頻Wiki教程(視頻文字版) 作者:Wei Dongshanmoto 字數(shù):1322,閱讀時間:2分鐘
比DHT11溫濕度傳感器準確得多
DS18B20只通過一根數(shù)據(jù)線傳輸數(shù)據(jù),控制器必須向芯片傳輸數(shù)據(jù),芯片也必須向控制器傳輸數(shù)據(jù),所以這是一種雙向數(shù)據(jù)傳輸。
如何實現(xiàn)引腳上數(shù)據(jù)的雙向傳輸: 請參閱本視頻第19 分鐘開始的內容: 第19 課_第001 節(jié)_I2C 協(xié)議和EEPROM
需要主控芯片來檢測溫度
如果你有多個溫度傳感器,就需要一個主控制器來管理它們,發(fā)送命令和發(fā)送數(shù)據(jù),并且每個設備在芯片內部都有一個64位的ID ROM來區(qū)分不同的設備,它是固化的。
如果主控制器想要訪問該設備,則必須發(fā)送帶有ID返回值的命令。
如何訪問指定的DS18B20
0 發(fā)送低脈沖提醒準備工作: 初始化1 發(fā)出ID 命令:ROM 命令2 發(fā)出功能命令: 功能命令a 轉換溫度b 讀取溫度并讀取數(shù)據(jù)每個操作都需要重復以上過程
內部框圖
溫度傳感器溫度ADC
SCRATCHPAD實際上是9個字節(jié)的內存,這9個字節(jié)的說明如下所示。
溫度值存儲在內存的9 個字節(jié)中:BYTE0 和BYTE1。即發(fā)送溫度值命令后,需要發(fā)送內存讀命令來讀取溫度值。
最后一位是CRC校驗碼,通過將數(shù)據(jù)的前8位與校驗碼的最后一位進行比較,64位數(shù)據(jù)中的8位就成為校驗碼。
如何采樣溫度?
1 初始化2 ROM 命令3 FunctionCommand 設置某些值,如轉換溫度4 等待完成5 init6 Rom cmd7 Function Command 讀取RAM 中的值EEPROM 寄存器的前兩個字節(jié)是供您自己使用的,可以用來設置。要配置Th Tl 寄存器,請使用Th Tl 寄存器設置警報、溫度上限或下限。當溫度超過一定值時就會觸發(fā)警報。所謂報警只是在DS18B20上設置一個狀態(tài),而不能主動通知主芯片的主人。芯片可以發(fā)出特定的命令來確定哪個芯片發(fā)出了警報。配置寄存器用于設置精度。準確度越高,持續(xù)時間越長。轉換時間。
如何使用EEPROM
1. 上電時,EEPROM自動寫入RAM以控制精度。
2 寫入EEPROM a. 先發(fā)送寫入RAM 的命令。
RAM 至EEPROM
3 讀取EEPROM 值。 a 將EEPROM 值保存到RAM。
b 發(fā)出讀取RAM 的命令。
關于ROM 命令和功能命令匯總表
信號傳輸
1 初始化(initialization)方法
2 如何發(fā)送數(shù)據(jù),如何發(fā)送1位,如何發(fā)送位0
如何發(fā)送bit1
3 如何讀取數(shù)據(jù)==如何讀取1位,如何讀取0
如何判斷是否已讀1
初始化時序
第一個是高水平。如果要開始發(fā)送信號,至少需要480us的低電平來釋放總線。 15~60us后,DS18B20將該線拉低60~240us。
2 如何發(fā)送數(shù)據(jù),如何發(fā)送1位
Bit0傳輸方式、Bit1傳輸方式、數(shù)據(jù)寫入時序
不管你寫的是0還是1,計時都會長于60us。寫入0 強制總線保持低電平超過60us。當你寫一個1時,信號線會變低1us,提醒你寫數(shù)據(jù),然后又變高,寫1位的時間間隔是1us。
數(shù)據(jù)讀取時序也由主機發(fā)起。如果提醒脈沖大于1us,主機立即釋放總線。 15us內讀取信號。讀取周期至少為60us,以及每一位之間的間隔。 1s。
提供了DS18B20 的編程圖。
電源
《新品發(fā)布會》STM32MP157開發(fā)板現(xiàn)已接受預訂!初期產量僅為300套。








