模拟技术学习
直播中

王旭

7年用户 174经验值
私信 关注
[问答]

MPU6050 I2C电路布线问题


用这个布线去,芯片是MPU6050三轴陀螺仪加速度计,很奇怪!
#define delays delay_ms(2)     //delays;//初始化IIC
void IIC_Init(void)
{         
  RCC->APB2ENR|=1<<3;//先使能外设IO PORTB时钟         
GPIOB->CRL&=0X00FFFFFF;//PB6,PB7
GPIOB->CRL|=0X33000000;   
}
//产生IIC起始信号
void IIC_Start(void)
{
SDA_OUT();     //sda线输出
      
IIC_SCL=1;
delays;
IIC_SDA=1;
delays;
  IIC_SDA=0;
delays;
}
就是设置那个delay的延时来控制I2C的读取速度,好奇怪的是,在读芯片存放地址的寄存器: WHO_AM_I的时候,DELAY可以取到2US没问题但是读到数据寄存器时,这次
测的是X轴加速度,竟然 DELAY要弄到2MS才能读出数据
,感觉很悲剧,结果试验了一下,一秒钟才出了5个数据左右(用串口打到PC机上扣去串口通讯目测的)。这个小板子是
玩四轴的,感觉有点小郁闷,不知1S打那么点数据够用不,所以在这里请教一下PCB的布线如上图,有什么需要注意的地方。

回帖(10)

王文雨

2019-4-25 09:39:04
1 线长很短,周围又没其他干扰源
2 你的Bottom层应该是铺地了吧 .
通常 stm32这个速度,不需要加延时肯定也没什么问题, 你可以找找其他原因吧 。
举报

李桂香

2019-4-25 09:44:57
我用原子哥的板子和自己的板子程序一样。。。。结果还是原子哥的板子跑的频率快,原子哥的板子线长比我长好多,线间距也差不多,但是唯一的区别是原子哥的板子出门都是直线,会不会是我出门的拐弯给弄了.... 都铺地了。。。感觉现在还勉强凑合。。刚才试试了电机开的情况下数据的抖动情况,感觉抖动不是很厉害。
举报

杨梦月

2019-4-25 09:50:53
是不是这个模块的输出速度问题?
举报

王若峰

2019-4-25 10:01:23
三轴MPU6050模块都是用一个模块,拆过来拆过去。。。MPU6050里面说支持达到400KHZ的。估计是我的布线不太行,下次把两个引脚不弄相邻再试试


模块是用排插,然后芯片一往上插这样来做的,因为考虑到用你的板子是用杜邦线接的所以我后来又改用了杜邦线的接法,速度一样提不上去,感觉估计就是板子的问题
所以只能下次注意一点了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分