JHM1203在I2C信號輸出壓力傳感器上的應(yīng)用
JHM1203在I2C信號輸出壓力傳感器上的應(yīng)用
劉海軍 2021-1-10
應(yīng)用簡介:
本文介紹了北京久好自主研發(fā)的傳感器信號調(diào)理芯片JHM1203在壓力傳感器上的應(yīng)用。使用JHM1203為調(diào)理芯片的壓力傳感器,MCU端在采集壓力數(shù)據(jù)時(shí)無需算法即可得到高精度的標(biāo)準(zhǔn)的壓力數(shù)據(jù)。搭配數(shù)字校準(zhǔn)板及上位機(jī)軟件,就可以實(shí)現(xiàn)單路及批量的溫度補(bǔ)償和校準(zhǔn)?;?/span>JHM1203設(shè)計(jì)的壓力傳感器及儀表已經(jīng)廣泛應(yīng)用于白色家電、醫(yī)療電子、消費(fèi)類電子,汽車電子和充氣設(shè)備等領(lǐng)域并取得了很好效果。
1、JHM1203介紹
JHM1203是一款針對差分電阻橋式或半橋式傳感器信號設(shè)計(jì)的高精度、低功耗的信號調(diào)理集成電路。JHM1203內(nèi)置了13.2~72X可調(diào)的前置放大器,可以適應(yīng)2~50mV/V傳感器芯體;ADC輸入電壓的偏置可設(shè),可以適應(yīng)壓力芯體2.5倍滿量程輸出的零點(diǎn)偏差;JHM1203還內(nèi)置了分辨率為0.003℃的溫度傳感器,可作為溫度測量和溫漂補(bǔ)償使用;JHM1203集成了24bit ΔΣADC,NOB為20bit。
和普通ADC不同的是,JHM1203內(nèi)置了數(shù)字信號處理電路可對傳感器的溫度漂、零點(diǎn)偏差、靈敏度偏差和非線偏差同時(shí)進(jìn)行最高二階的補(bǔ)償;JHM1203片上還集成的一次性可編程存儲器(OTP),掉電后仍可保存?zhèn)鞲衅鞯难a(bǔ)償系數(shù)。壓力傳感器微小的差分信號經(jīng)過JHM1203補(bǔ)償后,可直接輸出標(biāo)準(zhǔn)的壓力和溫度數(shù)據(jù),方便客戶使用。
2、電路結(jié)構(gòu)
通過圖1可以看出,JHM1203的基本電路為標(biāo)準(zhǔn)的I2C電路,正常工作僅需要3個(gè)外部元件,JHM1203 的供電范圍為1.8~3.6V可以和絕大多數(shù)的MCU兼容。
圖1 基于JHM1203的電路結(jié)構(gòu)
3、電流消耗
JHM1203是專門為低功耗的應(yīng)用而設(shè)計(jì)的,它的待機(jī)功耗為0.1uA,在包括外部5K橋阻時(shí),1Hz ODR的最小功耗約16..7uA。實(shí)測數(shù)據(jù)見表1。
電橋 | CAL | 溫度 | 電流(uA) |
×128 | B8 | ×8 | 105.3012 |
×64 | B9 | ×8 | 61.20482 |
×32 | BA | ×8 | 38.55422 |
×16 | BB | ×8 | 27.3494 |
×8 | BC | ×8 | 15.3012 |
×4 | BD | ×8 | 18.6747 |
×2 | BE | ×8 | 17.46988 |
×1 | BF | ×8 | 16.74699 |
表1 傳感器的實(shí)際功耗
4、校準(zhǔn)
JHM1203內(nèi)部集成了數(shù)字信號處理電路,支持2~7點(diǎn)的校準(zhǔn)計(jì)算,一般來說,校準(zhǔn)點(diǎn)數(shù)越多得到的壓力和溫度的數(shù)據(jù)精度越好。北京久好專門為JHM1203開發(fā)了評估套件和批量套件,最多可同時(shí)校準(zhǔn)1024路傳感器。校準(zhǔn)套件的作用是算出補(bǔ)償系數(shù),寫入調(diào)理芯片,完成補(bǔ)償過程。北京久好同時(shí)也提供JHM1203的動態(tài)鏈接庫,方便客戶開發(fā)校準(zhǔn)系統(tǒng)。
5、I2C通信
以下通信指令以JHM1203的默認(rèn)I2C地址(0X78)舉例,JHM1203的I2C地址可以通過寫OTP修改。
1) I2C時(shí)序圖
圖2 I2C時(shí)序圖
2) 啟動一次測量指令
0xF0表示默認(rèn)的7bits I2C傳感器從機(jī)設(shè)備地址為0x78,最后1bit 為0表示主設(shè)備MCU對從設(shè)備進(jìn)行寫操作。0xAC為命令字,啟動從設(shè)備傳感器進(jìn)行一次測量。
圖3 寫指令,啟動一次測量
3) 判斷測量結(jié)束的方法
發(fā)送完寫命令后需要等待一段時(shí)間,等待從設(shè)備傳感器測量結(jié)束,再發(fā)讀命令讀取測量數(shù)據(jù)。
判斷從設(shè)備傳感器測量結(jié)束,除延時(shí)等待外,有以下2種檢測方式。
a) 軟件查詢法——讀狀態(tài)字
圖4 讀狀態(tài)字
0xF1表示默認(rèn)的7bits I2C傳感器從機(jī)設(shè)備地址為0x78,最后1bit 為1表示主設(shè)備MCU對從設(shè)備進(jìn)行讀操作,讀取的第一個(gè)字節(jié)為狀態(tài)字。
比特位 | 意義 | 描述 |
Bit7 | 保留 | 固定為0 |
Bit6 | 上電指示 (Power indication) | 1設(shè)備上電(VDDB on);0設(shè)備掉電 |
Bit5 | 忙閑指示(Busy indication) | 1設(shè)備忙,表明最近一次I2C命令所要求讀取的數(shù)據(jù)還未有效。如果設(shè)備忙,新的命令將不被處理。 0表明最近一次I2C命令所要求讀取的數(shù)據(jù)已經(jīng)準(zhǔn)備好被讀取 |
Bit4 | 保留 | 固定為0 |
Bit[3] | 工作狀態(tài) (Mode Status) | 0 NOR mode 1 CMD mode |
Bit2 | 存儲器數(shù)據(jù)完整性指示 (Memory integrity/error flag) | 0表示OTP存儲器數(shù)據(jù)完整性測試 (CRC)通過, 1表示完整性測試失敗。 對數(shù)據(jù)完整性的測試只在上電過程中(POR)計(jì)算一次,所以被寫入的新CRC值只能在接下來的POR之后使用。 |
Bit1 | 保留 | 固定為0 |
Bit0 | 保留 | 固定為0 |
表2 狀態(tài)字的比特位描述
b)硬件判斷法——EOC識別或中斷
啟動測量后,EOC變?yōu)榈碗娖健?/span>0”;測量結(jié)束后,EOC變?yōu)楦唠娖健?/span>1”。
4)讀取壓力數(shù)值
圖5 I2C讀出5個(gè)字節(jié)校準(zhǔn)后的電橋和溫度值
0xF1表示默認(rèn)的7bits I2C傳感器從機(jī)設(shè)備地址為0x78,最后1bit 為1表示主設(shè)備MCU對從設(shè)備進(jìn)行讀操作,讀取的第一個(gè)字節(jié)為狀態(tài)字,接著讀取的是三個(gè)字節(jié)的壓力數(shù)值。
6、輸入輸出關(guān)系
MCU端接收到JHM1203返回的數(shù)據(jù)后,通過以下公式可得到準(zhǔn)確的壓力數(shù)據(jù)。
Pressure:實(shí)際壓力值; Dtest:傳感器的數(shù)字輸出值; PMIN:傳感器零點(diǎn)壓力值; PMAX:傳感器滿量程壓力值;DMIN:傳感器零點(diǎn)時(shí)對應(yīng)的數(shù)字輸出值;DMAX:傳感器滿量程時(shí)對應(yīng)的數(shù)字輸出值。
7、換算舉例
讀到校準(zhǔn)數(shù)據(jù)后,需要將以AD值形式表示的無符號數(shù)進(jìn)行簡單的換算。
為方便理解我們假設(shè)讀到的校準(zhǔn)數(shù)據(jù)為:0x04 0x9B 0xB0 0xC5 0x56 0xAA
0x04為狀態(tài)字 Bit5為1表明最近一次I2C忙,需要等待一段時(shí)間。如果Bit5為0表明設(shè)備非忙,可以讀取數(shù)據(jù)。關(guān)于狀態(tài)字各比特的詳細(xì)描述請參見附錄。
0x9B 0xB0 0xC5 三個(gè)字節(jié)為電橋校準(zhǔn)值
0x56 0xAA 兩個(gè)字節(jié)為溫度校準(zhǔn)值
電橋校準(zhǔn)值換算:將0x9B 0xB0 0xC5轉(zhuǎn)換為十進(jìn)制數(shù)為10203333,
本次計(jì)算假設(shè)校準(zhǔn)時(shí)使用的量程為20Kpa-120Kpa,對應(yīng)的AD輸出為1677722~15099494(10%AD~90%AD)
根據(jù)P2輸入輸出關(guān)系校準(zhǔn)公式得到:
實(shí)際壓力值=(120-20)/(15099494-1677722)*(10203333-1677722)+20=83.5208 Kpa
溫度校準(zhǔn)值換算:將0x56 0xAA 轉(zhuǎn)換為十進(jìn)制數(shù)為22186,由于讀取到的校準(zhǔn)數(shù)據(jù)是以百分比形式表示的,這個(gè)百分比在數(shù)值上等于我們換算得到的十進(jìn)制數(shù)與16bits無符號數(shù)的最大值(65535)之比,所以在換算百分比時(shí)可進(jìn)行如下計(jì)算
22186/65536*100%=33.85%
溫度的校準(zhǔn)范圍規(guī)定為-40℃—150℃ 所以校準(zhǔn)值=(150—(-40))*33.85%—40=24.32℃
注釋:需要注意的是,溫度傳感器需校準(zhǔn)后方可使用,未校準(zhǔn)的溫度值為原始值,不具備參考價(jià)值。
8、典型應(yīng)用電路
1) 基本應(yīng)用電路
圖6 JHM1203的基本應(yīng)用電路
使用基本應(yīng)用電路可以設(shè)計(jì)一些小體積、高精度、高性價(jià)比的應(yīng)用,例如高度計(jì)、電子煙壓力傳感器等數(shù)字輸出模組。
2) 低功耗恒流供電電路
圖7 JHM1203的低功耗恒流激勵(lì)電路
對于擴(kuò)散硅芯體的應(yīng)用,使用恒流激勵(lì)可以降低溫漂,同時(shí)可以使溫漂更線性,溫補(bǔ)更容易,補(bǔ)償后精度更高。對于一些已經(jīng)做過恒流補(bǔ)償?shù)男倔w甚至免于做耗時(shí)的溫補(bǔ)。
表1、表2是兩只溫補(bǔ)后壓力傳感器的測試數(shù)據(jù),需要說明的是這兩只壓力傳感器的芯體為不同的生產(chǎn)廠家隨機(jī)抽選。這兩只傳感器在-20~60℃溫區(qū)內(nèi)可以達(dá)到0.1%FS的精度。
溫度(℃) | 正行程(Mpa) | 反行程(Mpa) | ||||||||||
0 | 0.2 | 0.4 | 0.6 | 0.8 | 1 | 1 | 0.8 | 0.6 | 0.4 | 0.2 | 0 | |
60 | 10.000 | 26.007 | 42.000 | 58.000 | 74.002 | 89.993 | 89.994 | 73.994 | 57.996 | 41.998 | 25.997 | 9.999 |
40 | 9.992 | 25.998 | 41.993 | 58.001 | 74.002 | 90.001 | 89.990 | 73.992 | 57.986 | 41.991 | 25.991 | 9.984 |
20 | 10.013 | 26.019 | 42.015 | 58.010 | 74.003 | 89.997 | 89.992 | 73.998 | 58.003 | 42.002 | 26.013 | 10.006 |
0 | 10.016 | 26.025 | 42.012 | 57.999 | 73.983 | 89.960 | 89.964 | 73.973 | 57.980 | 41.989 | 26.004 | 10.009 |
-20 | 10.023 | 26.028 | 42.033 | 58.031 | 74.028 | 90.009 | 90.006 | 74.015 | 58.005 | 42.008 | 26.013 | 10.010 |
表1 低功耗恒流激勵(lì)電路實(shí)測數(shù)據(jù)1
溫度(℃) | 正行程(Mpa) | 反行程(Mpa) | ||||||||||
0 | 0.2 | 0.4 | 0.6 | 0.8 | 1 | 1 | 0.8 | 0.6 | 0.4 | 0.2 | 0 | |
60 | 10.005 | 26.001 | 41.994 | 57.996 | 74.001 | 90.010 | 90.005 | 73.999 | 57.996 | 41.994 | 25.999 | 10.003 |
40 | 10.005 | 26.017 | 42.025 | 58.034 | 74.051 | 90.055 | 90.050 | 74.050 | 58.036 | 42.021 | 26.015 | 10.008 |
20 | 10.019 | 26.024 | 42.029 | 58.024 | 74.023 | 90.018 | 90.017 | 74.032 | 58.019 | 42.030 | 26.022 | 10.017 |
0 | 10.027 | 26.027 | 42.013 | 58.000 | 73.980 | 89.955 | 89.967 | 73.992 | 57.995 | 42.013 | 26.030 | 10.026 |
-20 | 10.006 | 26.018 | 42.030 | 58.014 | 74.023 | 89.987 | 89.985 | 74.012 | 58.010 | 42.019 | 26.021 | 10.009 |
表2 低功耗恒流激勵(lì)電路實(shí)測數(shù)據(jù)2