完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
压力传感器有广泛的应用,工程师在选择压力传感器时候,有着不同的参数要求。而今天向各位工程师推荐是TE品牌的压力传感器MS5837-30BA,压力量程从0到 30bar,在-20到 85°C工作温度范围内其精度:±0.4bar,每一年精度漂移为±30mbar,电源工作电压:1.5至3.6V,具有极其低的功耗:0.6 µA,静态电流《 0.1 µA,非常适合电池供电产品应用。
工程师在设计和使用压力压力传感器MS5837-30BA可能会遇到一些问题,比如I2C地址不正确导致无法通信等。而本文向大家介绍压力传感器MS5837-30BA软件调试过程。
图1. MS5837-30BA实物图
压力传感器MS5837-30BA的硬件支持I2C接口,所以工程师要根据MCU的资源来设计一个I2C接口给压力传感器MS5837-30BA。
图2. MS5837-30BA压力传感器的I2C接口电路
首先,压力传感器MS5837-30BA是标准I2C接口,SCL的最高为400KHz。一般建议通信速率控制在60Khz-100khz之间。
其次,当MCU外接压力传感器MS5837-30BA时候,外围电路只需要2个10K上拉电阻和100nF的去耦电容即可,具有硬件电路简单,方便调试的优势。
第三,压力传感器MS5837-30BA的I2C地址为1110110x (write: x=0, read: x=1),这部分要在MCU的I2C通信时候会使用到。
第四,当MCU要给MS5837-30BA进行复位操作时候,可以按照下面格式进行写I2C代码,其中MS5837-30BA的复位命令是0x1E。注意MS5837上电操作之后,务必要进行复位才读取到EEPROM的数据。
图3.压力传感器MS5837-30BA的复位命令格式
第五,压力传感器MS5837-30BA内部的温度传感器测量温度值需要除以100,才能得到真实的温度值。
第六,压力传感器MS5837-30BA内部含有4-bit 的CRC校验,在MCU中CRC计算算法如下:
unsigned char crc4(unsigned int n_prom[])
{int cnt; // simple counter
unsigned int n_rem=0; // crc remainder
unsigned char n_bit;
n_prom[0]=((n_prom[0]) & 0x0FFF); // CRC byte is replaced by 0
n_prom[7]=0; // Subsidiary value, set to 0
for (cnt = 0; cnt 《 16; cnt++) // operation is performed on bytes
{ if (cnt%2==1) n_rem ^= (unsigned short) ((n_prom[cnt》》1]) & 0x00FF);
else n_rem ^= (unsigned short) (n_prom[cnt》》1]》》8);
for (n_bit = 8; n_bit 》 0; n_bit--)
{if (n_rem & (0x8000)) n_rem = (n_rem 《《 1) ^ 0x3000;
else n_rem = (n_rem 《《 1);}}
n_rem= ((n_rem 》》 12) & 0x000F);
return (n_rem ^ 0x
|
|
3334 浏览0 评论
3769 浏览0 评论
5763 浏览0 评论
《电子工程师必备——九大系统电路识图宝典》之浅读负反馈以及四种组态
4379 浏览0 评论
2851 浏览0 评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-8-24 21:23, Processed in 0.564649 second(s), Total 63, Slave 46 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号