搜索
bottom↓
回复: 5

STM32F103硬件SPI+DMA使用中断读取MPU6000成功

[复制链接]

出0入0汤圆

发表于 2014-6-17 19:51:02 | 显示全部楼层 |阅读模式
本帖最后由 RSMli92104 于 2014-6-17 19:51 编辑

第一次在阿莫发帖子,要是有什么不规范的话还请大家见谅。本人发的源码仅限大家交流学习使用,很多地方使用了网上的各种资源,经过移植和测试成功读取到了MPU6000的数据。
以下是我的测试环境


自己做的STM32F103VB带TXB0104双向电平转换的板子,主要是为了支持用SPI全速外接5V的模块使用,利用逻辑分析仪分析读取使用的时间和是否正确。
因为在这之前使用判断标志位的办法一个字节一个字节的进行SPI传输会因为始终不连续中间会停下2us间隔,影响数据读取的时间


其中的原因在这个帖子中有所说明
http://www.amobbs.com/thread-4948398-1-1.html
在实在没有办法的情况需啊无奈的只能给SPI加上DMA进行读取,据说是这样可以实现数据的连续读取
在移植网上使用SPI+DMA给外部Flash发送数据的例程后进行了进一步的修改。
程序中加入了由MPU6000的INT脚数据更新,利用捕捉上升沿进图中断,打开MPU6000使能端,触发DMA通道开启,等待DMA读取完成再次产生DMA传输完成中断,关闭DMA通道与MPU6000使能端,
这样使得读取MPU6000变得更加的迅速和简单,经过测试整个读取过程只需6us,将MPU6000的低通滤波关闭使得陀螺仪全速工作数据更新速率达到8KHz,也能完全将数据全部接收到。



因为程序并没有加入DMA错误判断和IMU姿态解算,这个读取也是才刚刚实现还没有进一步测试他的稳定性。
源码先暂时不上传。
现在也遇到了新的问题,在我的HMC5983中SPI的最高速度是8MHz,而我的MPU6000工作在18MHz下的,所以无奈HMC5983只能在下一步中和AT45DB161放在同一总线上了。
希望大家有啥好的传感器组合建议也欢迎提出。
还有就是在IMU上还在研究扩展卡尔曼滤波新手报到,各位高手多多指教了哈

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-8-5 08:35:49 | 显示全部楼层
楼主做的很不错,可否分享下代码学习下,刚好要用到类似的东西。

出0入0汤圆

发表于 2014-8-9 21:36:16 | 显示全部楼层
能否贴个代码学习下?

出0入0汤圆

发表于 2014-11-7 10:23:01 | 显示全部楼层
楼主能否贴个代码来参考参考,现在正用模拟SPI读,数据是可以读,温度与ID都正常,但6轴的数据变化很大,不知是哪里的问题

出0入0汤圆

发表于 2015-1-10 21:00:25 | 显示全部楼层
楼主能否把代码贴上来参考一下不?

出0入0汤圆

发表于 2015-11-5 17:24:34 | 显示全部楼层
收藏 图做的不错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 18:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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