MPU6050读取ID正常,但数据值为零——可能存在硬件问题

介绍:

        近期自己画一个MPU6050模块,电路设计只实现基本读取数据功能。在网上参考了不少的电路原理图,都大同小异,在一些电容电阻的取值有些许不同。笔者在实现电路时遇到了MPU6050能读ID但读值为零的硬件电路问题,经过许久调试最终能够读取数据值,在这里做个记录,希望对遇到同样问题的伙伴能有所帮助。


问题描述:

        图1是有问题的电路原理图,在网上随意找的一个电路参考,结果就翻车了。能够读取MPU6050的ID值(0x68),但在读取三轴加速度、三轴角速度的运动数据以及温度数据时,读取的数据值都为零。刚开始以为是软件IIC读取时序不对,但用示波器观察波形时,发现时序没有问题,但读数据值的时侯就一直低电平(值为零)。在查看网坛上的一些电路参考,发现20脚的电容C28值有些异同,说法是10uF和2.2uF都可以,先前也觉得电容值差别不大就没管。结果确实是这个电容的问题,将这个电容换成2.2uF就可以读出数据值了。

                                                                图1  有电容问题的电路图 

        那么20脚的作用是什么呢,笔者就翻开数据手册查看,CPOU功能是这么描述的:板载电荷泵产生MEMS(微机电系统)振荡器所需的高电压。关于电荷泵的相关知识大家可查看这篇知乎charge pump的原理介绍 – 知乎 (zhihu.com)。数据手册上推荐引脚CPOUT的电容就是2.2nF,数据手册推荐的电路图如图2所示,推荐的电容值如表1所示:

                                                         图2  数据手册上参考电路 

                                                         表1 数据手册上推荐的电容值

总结:

        作为新手在查阅网上电路时,遇到有差异的地方,还是要参考数据手册上的电路。网上都是各博主自己实践出来的确实有很大的参考价值,但多少也有些许不对的地方。就比如此处我换成10uF就是不行,就是读值为零。最后附上我目前使用且验证没问题的MPU6050模块电路原理图,如图3所示。初次文章会有许多欠缺地方,欢迎大家指正及相互学习借鉴。

 

物联沃分享整理
物联沃-IOTWORD物联网 » MPU6050读取ID正常,但数据值为零——可能存在硬件问题

发表评论