JHM1203在I2C信号输出压力传感器上的应用
JHM1203在I2C信号输出压力传感器上的应用
刘海军 2021-1-10
应用简介:
本文介绍了北京js555888金沙自主研发的传感器信号调理芯片JHM1203在压力传感器上的应用。使用JHM1203为调理芯片的压力传感器,MCU端在采集压力数据时无需算法即可得到高精度的标准的压力数据。搭配数字校准板及上位机软件,就可以实现单路及批量的温度补偿和校准。基于JHM1203设计的压力传感器及仪表已经广泛应用于白色家电、医疗电子、消费类电子,汽车电子和充气设备等领域并取得了很好效果。
1、JHM1203介绍
JHM1203是一款针对差分电阻桥式或半桥式传感器信号设计的高精度、低功耗的信号调理集成电路。JHM1203内置了13.2~72X可调的前置放大器,可以适应2~50mV/V传感器芯体;ADC输入电压的偏置可设,可以适应压力芯体2.5倍满量程输出的零点偏差;JHM1203还内置了分辨率为0.003℃的温度传感器,可作为温度测量和温漂补偿使用;JHM1203集成了24bit ΔΣADC,NOB为20bit。
和普通ADC不同的是,JHM1203内置了数字信号处理电路可对传感器的温度漂、零点偏差、灵敏度偏差和非线偏差同时进行最高二阶的补偿;JHM1203片上还集成的一次性可编程存储器(OTP),掉电后仍可保存传感器的补偿系数。压力传感器微小的差分信号经过JHM1203补偿后,可直接输出标准的压力和温度数据,方便客户使用。
2、电路结构
通过图1可以看出,JHM1203的基本电路为标准的I2C电路,正常工作仅需要3个外部元件,JHM1203 的供电范围为1.8~3.6V可以和绝大多数的MCU兼容。
图1 基于JHM1203的电路结构
3、电流消耗
JHM1203是专门为低功耗的应用而设计的,它的待机功耗为0.1uA,在包括外部5K桥阻时,1Hz ODR的最小功耗约16..7uA。实测数据见表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 传感器的实际功耗
4、校准
JHM1203内部集成了数字信号处理电路,支持2~7点的校准计算,一般来说,校准点数越多得到的压力和温度的数据精度越好。北京js555888金沙专门为JHM1203开发了评估套件和批量套件,最多可同时校准1024路传感器。校准套件的作用是算出补偿系数,写入调理芯片,完成补偿过程。北京js555888金沙同时也提供JHM1203的动态链接库,方便客户开发校准系统。
5、I2C通信
以下通信指令以JHM1203的默认I2C地址(0X78)举例,JHM1203的I2C地址可以通过写OTP修改。
1) I2C时序图
图2 I2C时序图
2) 启动一次测量指令
0xF0表示默认的7bits I2C传感器从机设备地址为0x78,最后1bit 为0表示主设备MCU对从设备进行写操作。0xAC为命令字,启动从设备传感器进行一次测量。
图3 写指令,启动一次测量
3) 判断测量结束的方法
发送完写命令后需要等待一段时间,等待从设备传感器测量结束,再发读命令读取测量数据。
判断从设备传感器测量结束,除延时等待外,有以下2种检测方式。
a) 软件查询法——读状态字
图4 读状态字
0xF1表示默认的7bits I2C传感器从机设备地址为0x78,最后1bit 为1表示主设备MCU对从设备进行读操作,读取的第一个字节为状态字。
比特位 | 意义 | 描述 |
Bit7 | 保留 | 固定为0 |
Bit6 | 上电指示 (Power indication) | 1设备上电(VDDB on);0设备掉电 |
Bit5 | 忙闲指示(Busy indication) | 1设备忙,表明最近一次I2C命令所要求读取的数据还未有效。如果设备忙,新的命令将不被处理。 0表明最近一次I2C命令所要求读取的数据已经准备好被读取 |
Bit4 | 保留 | 固定为0 |
Bit[3] | 工作状态 (Mode Status) | 0 NOR mode 1 CMD mode |
Bit2 | 存储器数据完整性指示 (Memory integrity/error flag) | 0表示OTP存储器数据完整性测试 (CRC)通过, 1表示完整性测试失败。 对数据完整性的测试只在上电过程中(POR)计算一次,所以被写入的新CRC值只能在接下来的POR之后使用。 |
Bit1 | 保留 | 固定为0 |
Bit0 | 保留 | 固定为0 |
表2 状态字的比特位描述
b)硬件判断法——EOC识别或中断
启动测量后,EOC变为低电平“0”;测量结束后,EOC变为高电平“1”。
4)读取压力数值
图5 I2C读出5个字节校准后的电桥和温度值
0xF1表示默认的7bits I2C传感器从机设备地址为0x78,最后1bit 为1表示主设备MCU对从设备进行读操作,读取的第一个字节为状态字,接着读取的是三个字节的压力数值。
6、输入输出关系
MCU端接收到JHM1203返回的数据后,通过以下公式可得到准确的压力数据。
Pressure:实际压力值; Dtest:传感器的数字输出值; PMIN:传感器零点压力值; PMAX:传感器满量程压力值;DMIN:传感器零点时对应的数字输出值;DMAX:传感器满量程时对应的数字输出值。
7、换算举例
读到校准数据后,需要将以AD值形式表示的无符号数进行简单的换算。
为方便理解我们假设读到的校准数据为:0x04 0x9B 0xB0 0xC5 0x56 0xAA
0x04为状态字 Bit5为1表明最近一次I2C忙,需要等待一段时间。如果Bit5为0表明设备非忙,可以读取数据。关于状态字各比特的详细描述请参见附录。
0x9B 0xB0 0xC5 三个字节为电桥校准值
0x56 0xAA 两个字节为温度校准值
电桥校准值换算:将0x9B 0xB0 0xC5转换为十进制数为10203333,
本次计算假设校准时使用的量程为20Kpa-120Kpa,对应的AD输出为1677722~15099494(10%AD~90%AD)
根据P2输入输出关系校准公式得到:
实际压力值=(120-20)/(15099494-1677722)*(10203333-1677722)+20=83.5208 Kpa
温度校准值换算:将0x56 0xAA 转换为十进制数为22186,由于读取到的校准数据是以百分比形式表示的,这个百分比在数值上等于我们换算得到的十进制数与16bits无符号数的最大值(65535)之比,所以在换算百分比时可进行如下计算
22186/65536*100%=33.85%
温度的校准范围规定为-40℃—150℃ 所以校准值=(150—(-40))*33.85%—40=24.32℃
注释:需要注意的是,温度传感器需校准后方可使用,未校准的温度值为原始值,不具备参考价值。
8、典型应用电路
1) 基本应用电路
图6 JHM1203的基本应用电路
使用基本应用电路可以设计一些小体积、高精度、高性价比的应用,例如高度计、电子烟压力传感器等数字输出模组。
2) 低功耗恒流供电电路
图7 JHM1203的低功耗恒流激励电路
对于扩散硅芯体的应用,使用恒流激励可以降低温漂,同时可以使温漂更线性,温补更容易,补偿后精度更高。对于一些已经做过恒流补偿的芯体甚至免于做耗时的温补。
表1、表2是两只温补后压力传感器的测试数据,需要说明的是这两只压力传感器的芯体为不同的生产厂家随机抽选。这两只传感器在-20~60℃温区内可以达到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 低功耗恒流激励电路实测数据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 低功耗恒流激励电路实测数据2