读取多个Mpu9250数据出错

我用16路模拟开关cd4067来读取mpu9250的数据,sda共用,scl作为选择引脚,我挂载5个mpu9250的时候数据还没有问题,但是一旦挂载6个及以上,全部的9250数据就都会出错,(单步调试的时候发现,5个及以下9250获得的磁力计器件id是正确的0x48,但是6个及以上读取得到的磁力计器件id会变得乱七八糟0xff,0x6d,0x7c都出现了)

4个回答

单片机单个IO端口驱动负载的能力有限,对应的I2C接口下挂的从设备过多时,整个电路就会失效。应该可以用示波器抓取SDA触发时的波形来观察,信号电压是否不够稳。解决的话,要么SDA也用开关选通,要么限制每一路i2c总线下的从设备数量。

weixin_44849612
weixin_44849612 真的非常感谢,您提出的方法很有效,谢谢
4 个月之前 回复

是不是驱动能力不足吧

用串口调试助手调试下,感觉你的问题还是在下位机,比如说时序信号乱了或者信号不稳定,或者程序本身有bug

weixin_44849612
weixin_44849612 5个及以下没有问题啊
4 个月之前 回复
qq_43468934
itanℒ 怎么感觉你什么都会
4 个月之前 回复

试着把scl线和sda线都用模拟开关哎控制

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问