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

[STM32F429IDISCOVERY]给开发板加装SD卡

[复制链接]
waytoanswer 发布时间:2014-6-8 15:51
虽然STM32F429IDISCOVERY自带有USB OTG功能,不过对于我这个还没接触过USB 通信的人来说目前是玩不起来了,还是打算玩比较. G  g& w( Z. U6 @2 ~+ n
3 o. l# U3 [. q0 _2 _
熟悉的SD卡吧,但板子上没有SD卡座,感觉太可惜了,板子反面OTG接口的旁边明明有那么一块空白区域刚好放得下MicroSD卡座,
; c6 x* X3 |8 g9 v. u& U! R" {
0 N0 j2 G) ?7 [, _7 ^0 i, l& e但ST却为了节省这点成本没加上去。查看了一下板子的原理图,发现STM32F429大部分引脚基本跟STM32F103系列的兼容,SDIO的几
( |- F7 R. `6 j/ O& O% r0 f/ J" M1 @' b2 s. x" k/ z
个相关引脚也在OTG接口附近(PC8~12, PD2),而且也没跟别的芯片复用,看来添加起来应该比较容易。拆了很早之前的一个MP4
! {" ?. T1 g( ]% f$ e0 E! G5 W3 s6 n5 a: O( p
,把sd卡相关的部分切割下来,做成了一个SD卡模块,然后想这个模块该怎么跟开发板组合起来。起初是想做个底板,把开发板上3 g9 N$ s/ D8 b# G% F; C

+ X% P- N4 r: T) a; u的所有引脚引到底板上,然后在底板布线安置模块,后来底板也用万用板做好了,但还是放弃了,原因是底板和开发板插接好后很. M- j2 c  a9 O1 j

$ F5 \& e" T/ C, |1 S' \4 M- {难再分在,而且本来一块轻便的板子弄的很笨重,再后来一想,SD卡本来就是个常用的外设,干脆就粘在开发板上了。废话了这么% y3 L) {4 K! t5 ?# L
7 W& i& g( q: k0 g* O6 l9 F
多,下面是正题,完成之后的效果(美观什么的就不要吐槽了,能用就行-_-):0 w8 c4 D) Y+ P: l9 [- j) S& G$ K
, s  D/ q9 G2 D6 J: q7 x$ a  o: d
0 a- p9 c- b  s( @+ j7 z
4 B) F& h. B3 ^4 s
硬件完成好后,直接把STM32F4Discovery上的SD卡驱动拿过来了(主要两个文件:stm32f4xx_sdio_sd.c, stm32f4xx_sdio.c, 一) e! p0 g6 y  \1 X4 l

; w7 ~" B+ ?; `" V. p8 \4 h个是SDIO外设驱动,一个是基于SDIO驱动的SD卡读写驱动,貌似我改过文件名。。),然后加上软件包自带的FatFs,把这些添加* O# C8 r1 {9 H! T1 H5 `4 B

, k/ L/ U7 ]5 W& r到软件包里Projects\Peripheral_Examples\FMC_SDRAM这个工程下,注释掉main函数里无关的东西,加上fmount()和fread()再调& o) J0 `9 J0 ?2 I: S9 \' M
3 B- r; F5 J1 h7 I, Z! T, L0 V! x/ w
用软件包里自带的LCD驱动函数LCD_WriteBMP()来读取SD卡里的图片并显示(当然LCD要先初始化的),完成这些就开始调试了。至# o+ z' J1 i7 A5 H% Y
0 H8 G+ |4 w. T
于为什么要选FMC_SDRAM这个工程,因为这个工程包含了我要用到的LCD驱动、SDRAM相关驱动,同时也没有多余的东西。调试时发
; ]/ o$ {( P% W. C! C5 |5 g( o2 A' \1 A, C: P" u+ d' x
现SD卡底层初始化可以通过,但读数据出问题,导致最后的初始化通不过,通过反复调试发现sd卡读出的第一扇区数据跟电脑上读5 B8 }3 O6 `" B5 w) w! a

) `! g! }2 p2 q% F- S出的不一样,但单步调试却又正常。对比STM32F4Discovery例程,发现SD卡用到的SDIO_IRQHandler和SD_SDIO_DMA_IRQHANDLER(
) _6 R3 A  _; ]  E
; s* v! U# \! u( R5 V7 g宏定义,实际为DMA2_Stream3_IRQHandler)没有添加,这两个中断会分别调用SD_ProcessIRQSrc()和SD_ProcessDMAIRQ()来处理
9 h( \" j; M1 h/ T5 z6 v% y
/ K+ n4 u2 i7 i1 ~SD卡相关中断事件,上述问题的出现应该是在全速运行时SD卡数据的DMA还没传输完成便被后面的程序拿去处理,当然会出错,但
) t6 r7 m* i% ?7 O9 N4 @9 K% A" a+ ?* t1 K2 A, z8 ~$ t$ i5 A& Z
单步运行时足够DMA传输,数据完全读出因此没有问题。参照STM32F4Discovery例程在stm32f4xx_it.c中添加这两个中断处理函数
6 M3 c" {! E/ M  D: N! W9 o* b' K
7 \' ~& ^( j. Q% D4 s后问题顺利解决。图片显示出来后稍微修改了一下,在SD卡里按名称递增方式放了500多张从视屏里截取的连续图片,然后单片机
4 \  S0 {. D% `  c; ~8 C3 m  i! j9 p8 _) S/ T( k
依次循环读取图片显示,形成一个动画的效果,以下是测试效果(由于实际帧速率太高,而受制于gif图片帧速率和文件大小的限
4 }0 Z. O# Z5 m4 y- ]" T& {( ^$ G
; s3 u# j: O& S8 }" t) N; H2 m制,预览图里的效果仅供参考,实际效果更流畅):. |% F0 ~' D* ~( T' n8 D

2 j( y& Q( ~0 a9 Z( j! E, Q# R% s1 [" i0 g; @6 j$ i; M
1 C1 \) t  x: C5 B7 y! B

4 r" \% s) k$ B2 d没什么技术含量的东西,仅供娱乐。有兴趣的也可以自行添加,方便开发。4 ]. o4 N* G! }- P! P
(图片硬是显示不出来。。。)
赞 收藏 评论7 发布时间:2014-6-8 15:51

举报

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

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

兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位
stm32f103vc 回答时间: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发表:
6 b5 \" a  w! s" e# _兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位8 a9 A/ V9 K& B3 h. K
 5 i/ B4 I0 Z4 [$ e1 f1 F4 e

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

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

回复第 2 楼 于2014-06-09 16:27:54发表:4 W( h& d$ s4 ?" r$ h) y) x8 J
兄台,PC10接的lcd的R2哦这样真的可以出来么?,如果真的可以出来也未尝不可啊,毕竟只用了LCD的最低位
9 y! P. ^: y4 t* E 
6 C- |- l! |6 f$ @, T( ?
" d; y/ i1 W% g) m. G另外之后我也试过往官方的Demo的图片浏览小程序里加入从SD卡读取功能,确实也出了问题,SD卡初始化以及获取文件名都没问题,但图片就是不能从SD卡读出来显示,同时退出这个小应用之后再进去就显示找不到文件了,之前没空研究就放下了,现在看来可能就是这引起的问题。如果有人也打算这样做的话这个问题需要注意啊。
waytoanswer 回答时间:2014-6-10 00:17:20

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

回复第 3 楼 于2014-06-09 16:31:45发表:! B; b/ M2 J! M0 f! h9 H, n
佩服,你还真下的去手,我可舍不得 
, H' D9 @" D" E3 S. y
4 A% Z. L. k. x其实添加这个,开发板本身不需要做任何改动,就跟杜邦线连一样的效果,只不过我是焊上去的线而已,线是用的变压器里的那种漆包线,表面绝缘的,不存在短路问题,卡座也是用那种泡沫双面胶粘上去的可以很容易拆下来(其实也没必要拆下来,担心有影响的话取下SD卡就行了,焊接了连线的那几个脚照样还是可以接其他外设,只是加了一个上拉电阻而已)。重在动手嘛
stm32f103vc 回答时间:2014-6-10 16:30:04

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

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

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版