介绍:
近期自己画一个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所示。初次文章会有许多欠缺地方,欢迎大家指正及相互学习借鉴。
文章来源:https://www.toymoban.com/news/detail-605400.html
文章来源地址https://www.toymoban.com/news/detail-605400.html
到了这里,关于【MPU6050能读ID 但读数据值为零(一个硬件问题)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!