《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 0.1℃單總線溫度芯片 M1820 等升級(jí)替代 DS18B20 應(yīng)用指南

0.1℃單總線溫度芯片 M1820 等升級(jí)替代 DS18B20 應(yīng)用指南

2022-06-15
來(lái)源:工采網(wǎng)電子元件
關(guān)鍵詞: 芯片 DS18B20 寄存器

不少美信 DS18B20 用戶,想要用更高精度或更快讀溫速度的單總線溫度芯片進(jìn)行應(yīng)用 升級(jí)。敏源第 4 代高精度溫度芯片 M1820(TO92S 封裝)、M1601(SOT23 封裝)、 M601(DFN8 封裝)等,最高測(cè)溫精度±0.1℃,同時(shí)也有±0.5℃精度的產(chǎn)品。溫度芯片內(nèi) 置 16 bit ADC,溫度轉(zhuǎn)換時(shí)間 10.5/5.5/4ms 可配置,客戶把原有 DS18B20 應(yīng)用例程做如 下簡(jiǎn)單修改即可:

1、溫度轉(zhuǎn)換時(shí)間 DS18B20 溫度轉(zhuǎn)換時(shí)間最快 500ms,M1820、M1601、M601 系列溫度轉(zhuǎn)換時(shí)間 10.5/5.5/4ms(默認(rèn)出廠配置 10.5ms),配置方式見(jiàn)下:

ConvertTemp();

Delay_ms(11);//不同重復(fù)性下轉(zhuǎn)換時(shí)間不同,此處延時(shí)必須大于對(duì)應(yīng)的轉(zhuǎn)換時(shí)間。

@brief 設(shè)置周期測(cè)量頻率和重復(fù)性

* @param mps 要設(shè)置的周期測(cè)量頻率(每秒測(cè)量次數(shù)),可能為下列其一

*@arg CFG_M(jìn)PS_Single:每執(zhí)行 ConvertTemp 一次,啟動(dòng)一次溫度測(cè)量

*@arg CFG_M(jìn)PS_Half:每執(zhí)行 ConvertTemp 一次,啟動(dòng)每秒 0.5 次重復(fù)測(cè)量

*@arg CFG_M(jìn)PS_1:每執(zhí)行 ConvertTemp 一次,啟動(dòng)每秒 1 次重復(fù)測(cè)量

*@arg CFG_M(jìn)PS_2:每執(zhí)行 ConvertTemp 一次,啟動(dòng)每秒 2 次重復(fù)測(cè)量

*@arg CFG_M(jìn)PS_4:每執(zhí)行 ConvertTemp 一次,啟動(dòng)每秒 4 次重復(fù)測(cè)量

*@arg CFG_M(jìn)PS_10:每執(zhí)行 ConvertTemp 一次,啟動(dòng)每秒 10 次重復(fù)測(cè)量

* @param repeatability:要設(shè)置的重復(fù)性值,可能為下列其一

*@arg CFG_Repeatbility_Low:設(shè)置低重復(fù)性,轉(zhuǎn)換時(shí)間 4ms

*@arg CFG_Repeatbility_M(jìn)edium:設(shè)置中重復(fù)性,轉(zhuǎn)換時(shí)間 5.5ms

*@arg CFG_Repeatbility_High:設(shè)置高重復(fù)性,轉(zhuǎn)換時(shí)間 10.5ms

* @retval 無(wú)

bool OW_SetConfig(uint8_t mps, uint8_t repeatability)

{ uint8_t scrb[sizeof(M1820_SCRATCHPAD_READ)];

M1820_SCRATCHPAD_READ *scr = (M1820_SCRATCHPAD_READ *) scrb;

讀 9 個(gè)字節(jié)。第 7 字節(jié)是系統(tǒng)配置寄存器,第 8 字節(jié)是系統(tǒng)狀態(tài)寄存器。最后字節(jié)是 前 8 個(gè)的校驗(yàn)和 CRC if(OW_M(jìn)1820_ReadScratchpad_SkipRom(scrb) == FALSE)

{ return FALSE; 讀暫存器組水平 }

計(jì)算接收的前 8 個(gè)字節(jié)的校驗(yàn)和,并與接收的第 9 個(gè) CRC 字節(jié)比較。

if(scrb[8] ?。?MY_OW_CRC8(scrb, 8))

{ return FALSE; CRC 驗(yàn)證未通過(guò) }

scr->Cfg &= ~CFG_Repeatbility_M(jìn)ask;

scr->Cfg |= repeatability;

scr->Cfg &= ~CFG_M(jìn)PS_M(jìn)ask;

scr->Cfg |= mps;

OW_M(jìn)1820_WriteScratchpad_SkipRom(scrb+4);

return TRUE; }

2、溫度寄存器

DS18B20 分辨率 9-12bit ADC,M1820、M1601、M601 系列為 16bit ADC,溫度 寄存器格式不同,計(jì)算公式也不同,修改如下:

float M1820_OutputtoTemp(int16_t out)

{ return ((float)out/256.0 + 40.0); }

3、睡眠模式

M1820、M601、M1601 系列進(jìn)入睡眠時(shí),需要把 Scratchpad 寄存器的 9 個(gè)字節(jié)全 部讀完,無(wú)需發(fā)送發(fā)送指令,讀取函數(shù)按如下進(jìn)行修改:

bool ReadTempWaiting_SkipRom(uint16_t *iTemp)

{ uint8_t scrb[sizeof(MY18E20_SCRATCHPAD_READ)];

MY18E20_SCRATCHPAD_READ *scr = (MY18E20_SCRATCHPAD_READ *) scrb; 讀 9 個(gè)字節(jié)。前兩個(gè)是溫度轉(zhuǎn)換結(jié)果,最后字節(jié)是前 8 個(gè)的校驗(yàn)和--CRC。 if(MY18E20_ReadScratchpad_SkipRom(scrb) == FALSE)

{ return FALSE; 讀寄存器失敗 }

計(jì)算接收的前 8 個(gè)字節(jié)的校驗(yàn)和,并與接收的第 9 個(gè) CRC 字節(jié)比較。 if(scrb[8] ?。?MY_OW_CRC8(scrb, 8))

{ return FALSE; CRC 驗(yàn)證未通過(guò) }

將溫度測(cè)量結(jié)果的兩個(gè)字節(jié)合成為 16 位字。 *iTemp=(uint16_t)scr->T_msb<<8 | scr->T_lsb; return TRUE; }

4、暫存器

使用 M1820、M1601、M601 系列時(shí),暫存器配置只需按芯片手冊(cè)定義進(jìn)行修訂即 可。

1.jpg

2.jpg

與 DS18B20 相比,M1820、M1601、M601 系列除了更高精 度外,還具有更寬電壓范圍(1.8~5.5V)、更低功耗(測(cè)溫平均電 流 5μA@3.3V,1Hz)、溫度一致性好、測(cè)溫分辨率高等優(yōu)點(diǎn)。

選型可參見(jiàn)下表。

3.jpg


4.jpg




1最后文章空三行圖片11.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。