你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[STM32F429IDISCOVERY]给开发板加装SD卡

[复制链接]
waytoanswer 发布时间:2014-6-8 15:51
虽然STM32F429IDISCOVERY自带有USB OTG功能,不过对于我这个还没接触过USB 通信的人来说目前是玩不起来了,还是打算玩比较

熟悉的SD卡吧,但板子上没有SD卡座,感觉太可惜了,板子反面OTG接口的旁边明明有那么一块空白区域刚好放得下MicroSD卡座,

但ST却为了节省这点成本没加上去。查看了一下板子的原理图,发现STM32F429大部分引脚基本跟STM32F103系列的兼容,SDIO的几

个相关引脚也在OTG接口附近(PC8~12, PD2),而且也没跟别的芯片复用,看来添加起来应该比较容易。拆了很早之前的一个MP4

,把sd卡相关的部分切割下来,做成了一个SD卡模块,然后想这个模块该怎么跟开发板组合起来。起初是想做个底板,把开发板上

的所有引脚引到底板上,然后在底板布线安置模块,后来底板也用万用板做好了,但还是放弃了,原因是底板和开发板插接好后很

难再分在,而且本来一块轻便的板子弄的很笨重,再后来一想,SD卡本来就是个常用的外设,干脆就粘在开发板上了。废话了这么

多,下面是正题,完成之后的效果(美观什么的就不要吐槽了,能用就行-_-):



硬件完成好后,直接把STM32F4Discovery上的SD卡驱动拿过来了(主要两个文件:stm32f4xx_sdio_sd.c, stm32f4xx_sdio.c, 一

个是SDIO外设驱动,一个是基于SDIO驱动的SD卡读写驱动,貌似我改过文件名。。),然后加上软件包自带的FatFs,把这些添加

到软件包里Projects\Peripheral_Examples\FMC_SDRAM这个工程下,注释掉main函数里无关的东西,加上fmount()和fread()再调

用软件包里自带的LCD驱动函数LCD_WriteBMP()来读取SD卡里的图片并显示(当然LCD要先初始化的),完成这些就开始调试了。至

于为什么要选FMC_SDRAM这个工程,因为这个工程包含了我要用到的LCD驱动、SDRAM相关驱动,同时也没有多余的东西。调试时发

现SD卡底层初始化可以通过,但读数据出问题,导致最后的初始化通不过,通过反复调试发现sd卡读出的第一扇区数据跟电脑上读

出的不一样,但单步调试却又正常。对比STM32F4Discovery例程,发现SD卡用到的SDIO_IRQHandler和SD_SDIO_DMA_IRQHANDLER(

宏定义,实际为DMA2_Stream3_IRQHandler)没有添加,这两个中断会分别调用SD_ProcessIRQSrc()和SD_ProcessDMAIRQ()来处理

SD卡相关中断事件,上述问题的出现应该是在全速运行时SD卡数据的DMA还没传输完成便被后面的程序拿去处理,当然会出错,但

单步运行时足够DMA传输,数据完全读出因此没有问题。参照STM32F4Discovery例程在stm32f4xx_it.c中添加这两个中断处理函数

后问题顺利解决。图片显示出来后稍微修改了一下,在SD卡里按名称递增方式放了500多张从视屏里截取的连续图片,然后单片机

依次循环读取图片显示,形成一个动画的效果,以下是测试效果(由于实际帧速率太高,而受制于gif图片帧速率和文件大小的限

制,预览图里的效果仅供参考,实际效果更流畅):




没什么技术含量的东西,仅供娱乐。有兴趣的也可以自行添加,方便开发。
(图片硬是显示不出来。。。)
收藏 评论7 发布时间:2014-6-8 15:51

举报

7个回答
STM32F103-34799 回答时间:2014-6-9 16:27:54

RE:[STM32F429IDISCOVERY]给开发板加装SD卡

兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位
STM32F103-34799 回答时间:2014-6-9 16:31:45

RE:[STM32F429IDISCOVERY]给开发板加装SD卡

佩服,你还真下的去手,我可舍不得
waytoanswer 回答时间:2014-6-9 23:59:35

回复:[STM32F429IDISCOVERY]给开发板加装SD卡

回复第 2 楼 于2014-06-09 16:27:54发表:
兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位
 

还真是,我看走眼了,不过确实是能用的,可能是因为没有涉及多任务,SD卡读写和LCD显示是分时复用PC10的所以没有问题,如果加上RTOS多任务调用LCD显示和SD卡读写估计会出问题。谢谢提醒
waytoanswer 回答时间:2014-6-10 00:08:24

回复:[STM32F429IDISCOVERY]给开发板加装SD卡

回复第 2 楼 于2014-06-09 16:27:54发表:
兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位
 

另外之后我也试过往官方的Demo的图片浏览小程序里加入从SD卡读取功能,确实也出了问题,SD卡初始化以及获取文件名都没问题,但图片就是不能从SD卡读出来显示,同时退出这个小应用之后再进去就显示找不到文件了,之前没空研究就放下了,现在看来可能就是这引起的问题。如果有人也打算这样做的话这个问题需要注意啊。
waytoanswer 回答时间:2014-6-10 00:17:20

回复:[STM32F429IDISCOVERY]给开发板加装SD卡

回复第 3 楼 于2014-06-09 16:31:45发表:
佩服,你还真下的去手,我可舍不得 

其实添加这个,开发板本身不需要做任何改动,就跟杜邦线连一样的效果,只不过我是焊上去的线而已,线是用的变压器里的那种漆包线,表面绝缘的,不存在短路问题,卡座也是用那种泡沫双面胶粘上去的可以很容易拆下来(其实也没必要拆下来,担心有影响的话取下SD卡就行了,焊接了连线的那几个脚照样还是可以接其他外设,只是加了一个上拉电阻而已)。重在动手嘛
STM32F103-34799 回答时间:2014-6-10 16:30:04

RE:[STM32F429IDISCOVERY]给开发板加装SD卡

嗯嗯,不错。我觉得可以把图片的内容读到sdram里,再用lcd显示也许就行了有时间我也试试。呵呵
stanleydi 回答时间:2016-7-18 20:11:24
佩服,你还真下的去手,我可舍不得

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版