找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1941|回复: 16
收起左侧

MPL3115A2气压传感器地址是多少?

[复制链接]
ID:72088 发表于 2020-11-11 19:43 | 显示全部楼层 |阅读模式
本帖最后由 新乡家电维修 于 2020-11-12 10:18 编辑

MPL3115A2采用总线驱动,总线驱动都有识别地址BMP280压力传感器是11101100b
MPL3115A2的资料BMPM3PR识别地址C0H,最后一位是读写位  
读BMPM3PR识别地址C1H

读出的海拔高度在01H,02H,03H中
01H读出的全是FF,明显不正确原因不知道哪里出错
02H读出的有变化,测试时也符合实际情况
03H是小数变化,可以不考虑(03H只有高4位有效,低4位没有定义)
读出的身份识别码C4也是正确的
特附上英文资料,大家看下,这是最全的英文资料了


MPL3115A2压力传感器英文资料.pdf

664.43 KB, 下载次数: 16

回复

使用道具 举报

ID:72088 发表于 2020-11-12 10:56 | 显示全部楼层
读出的温度也是正确的设别码也正确
高度也读出了部分,最高位不正确,郁闷
51hei图片_20201112102237.jpg
回复

使用道具 举报

ID:401564 发表于 2020-11-12 17:24 | 显示全部楼层
这个跟地址已经没有什么关系了,你只要能读取到一个,或者写入一个,就说明从机的地址是对的了,而且读取的的代码也是对的
剩下的就是软件或者硬件的问题了,要么是程序写得不对,要么是传感器的值原本就是这样的
回复

使用道具 举报

ID:687694 发表于 2020-11-12 17:44 | 显示全部楼层
楼上正解,应该是你数据读取程序问题。
回复

使用道具 举报

ID:72088 发表于 2020-11-13 07:47 | 显示全部楼层
Y_G_G 发表于 2020-11-12 17:24
这个跟地址已经没有什么关系了,你只要能读取到一个,或者写入一个,就说明从机的地址是对的了,而且读取的的代 ...

地址我已经在资料里找到了解决了,读出的高度刚开始是02(MSB)B3(CSB)90(LSB),舍去小数部分。02ddH=73.3M,也是正确的海拔,现在反复修改高位总是FF,改成读压强模式,高位出现66,按照16进制转换成
十进制也不对,压强也不对,再切换测高模式,高位总是FF,
有没有单独寄存器坏的可能????郁闷啊,啊,啊
回复

使用道具 举报

ID:401564 发表于 2020-11-13 08:22 | 显示全部楼层
新乡家电维修 发表于 2020-11-13 07:47
地址我已经在资料里找到了解决了,读出的高度刚开始是02(MSB)B3(CSB)90(LSB),舍去小数部分。02ddH=73.3M, ...

单独一个寄存器坏了?这可能性几乎为0,这个就不要考虑了
基本可以确定是软件的问题,主要是看数据处理部分和传感器本身数据的存放格式,英文资料太多了,加上不会英文
就算是中文的也是要看好长一段时间的,就不看了
回复

使用道具 举报

ID:72088 发表于 2020-11-13 21:42 | 显示全部楼层
温度正常显示10进制了,就是海拔最高位字节不正常,啊啊啊啊啊,要疯了
51hei图片_20201113213300.jpg
回复

使用道具 举报

ID:72088 发表于 2020-11-13 21:46 | 显示全部楼层
Y_G_G 发表于 2020-11-13 08:22
单独一个寄存器坏了?这可能性几乎为0,这个就不要考虑了
基本可以确定是软件的问题,主要是看数据处理部分 ...

00h,传感器状态寄存器,正常显示
01h压强或高度MSB,不正常
02h压强或高度CSB,正常显示
03h压强或高度LSB,正常显示
04h温度整数MSB,正常显示
05h温度小数LSB,正常显示

就中间夹着01地址寄存器不正常,不正确,气人不?
回复

使用道具 举报

ID:401564 发表于 2020-11-14 11:05 | 显示全部楼层
新乡家电维修 发表于 2020-11-13 21:46
00h,传感器状态寄存器,正常显示
01h压强或高度MSB,不正常
02h压强或高度CSB,正常显示

不会英文,我大概机翻看了一下数据手册
它的输出数据是:01H,02H,03H组成的一个"有符号""的完整数据
也就是说:01H为最高位字节,它这个是有符号的!
01H读取到了FFH,那就是负数了,所有的数据要进行补码运算才是真正的海拔高度了
你读取出来的三个地址数据实际上是补码,不知道你转换过来没有?
单独一个这寄存器坏了,这种想法就不要去想了,要真怕这样,就买两个传感器对比就知道了
回复

使用道具 举报

ID:401564 发表于 2020-11-14 14:11 | 显示全部楼层
新乡家电维修 发表于 2020-11-13 21:46
00h,传感器状态寄存器,正常显示
01h压强或高度MSB,不正常
02h压强或高度CSB,正常显示

应该是先读取01H,02H,03H这三个地址的数据,
然后,再检测01H最高位是0还是1,
如果是1,那就要进行补码运算
如果是0,那就直接采用这个数据,不用进行补码运算
回复

使用道具 举报

ID:72088 发表于 2020-11-15 13:33 | 显示全部楼层
Y_G_G 发表于 2020-11-14 11:05
不会英文,我大概机翻看了一下数据手册
它的输出数据是:01H,02H,03H组成的一个"有符号""的完整数据
也就 ...

我又买了一个压力传感器,在快递的路上
回复

使用道具 举报

ID:72088 发表于 2020-11-15 13:37 | 显示全部楼层
Y_G_G 发表于 2020-11-14 14:11
应该是先读取01H,02H,03H这三个地址的数据,
然后,再检测01H最高位是0还是1,
如果是1,那就要进行补码运 ...

读出的压强633500,这个地区的海拔是72m左右,切换到海拔模式,不该出现最高位FF,不该出现海拔负数
的现象,你说的转换正负数有一定道理,我用一个塑料袋装着传感器,往里面打起了,是不是气压高打坏了,
今天又发货一个传感器,货到试试看就知道了,谢谢
回复

使用道具 举报

ID:420836 发表于 2020-11-16 01:04 | 显示全部楼层
MPL3115A2 I2C地址为0x60。
回复

使用道具 举报

ID:401564 发表于 2020-11-16 08:19 | 显示全部楼层
新乡家电维修 发表于 2020-11-15 13:37
读出的压强633500,这个地区的海拔是72m左右,切换到海拔模式,不该出现最高位FF,不该出现海拔负数
的 ...

这个传感器的海拔数据是以有符号形式存放的,所以,严格来说,你是一定要对01H最高位进行检测的,然后还要进行处理,要么是显示负海拔,要么是不要这个数据,虽然说很少有低于海平面的时候,但数据有时候会是负数的
像你这个,我不太确定是什么原因,你可以看一下传感器的表面,那个小圆孔是不是有胶布贴在上面,如果有,就撕下来,数据就正常了
或者是你用手按住,海拔数据也会跟着变化的,一般没有什么东西刺到里面,它是不会坏的
回复

使用道具 举报

ID:72088 发表于 2021-1-18 10:54 | 显示全部楼层
Y_G_G 发表于 2020-11-16 08:19
这个传感器的海拔数据是以有符号形式存放的,所以,严格来说,你是一定要对01H最高位进行检测的,然后还要进 ...

谢谢你,我试试,解决了就反馈到帖子里
回复

使用道具 举报

ID:72088 发表于 2021-1-18 12:08 | 显示全部楼层
Y_G_G 发表于 2020-11-14 14:11
应该是先读取01H,02H,03H这三个地址的数据,
然后,再检测01H最高位是0还是1,
如果是1,那就要进行补码运 ...

这读出的好像是负数海拔,我这地理位置是70多米,
51hei图片_20210118110001.jpg
回复

使用道具 举报

ID:401564 发表于 2021-1-18 16:37 | 显示全部楼层
新乡家电维修 发表于 2021-1-18 12:08
这读出的好像是负数海拔,我这地理位置是70多米,

这都几个月了,还没有搞定呀
这并不是什么大问题的呀
1:先用手去按一下压力传感器的小孔,一般是会有变化的,再看一下里头的不干胶有没有坏,
如果不干胶没有坏,用手按下,计数能变化,大概就可以认为压力传感器是好的
如果压力传感器有胶布,那就撕下来
那就是你程序的问了
2:关于读取数据的处理方法,我上面已经说了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表