[讨论] STM32 F407读取高速tf卡的奇葩现象

xqxayjr2010   2014-8-7 12:58 楼主
      由于项目需要本人需要用STM32 F407 SDIO读取高速tf卡,并用FSMC将数据发送出去,但读取速度一直无法满足要求。经过测试,本人发现如下奇葩现象,在此贴出供大家讨论。
      407主频超频到216MHZ,tf卡时钟总线频率为432/3=144MHZ(再高了,卡就无反应了),采用 DMA方式传输数据,外设总线宽度32位,内存总线宽度16位(设置成32位总是出现读取数据错位)。卡初始化时必须降频,初始化 后再升高频率。
      设置成以上参数后,通过内部24位定时器进行计时,精度为1/216us 。
      以下为读取数据速率测试,(采用连续读方式)
      读取1扇区     用时843.287037 us
      读取2扇区     用时850.5833333us        读取1个扇区同读取2个扇区用时竟然只差7.296296296us,计算下来读取第2扇区速率为512*8*1000*1000/7.296296296/1024/1024=535.3743655Mbps(神速)。
      读取3扇区
      读取4扇区
       。。。。。
      读取8扇区      用时882.7777778us       从读1个扇区到连续读8个扇区,每增加1个扇区时间多出大概7.4us,相应读取速率为530Mbps那片。
      读取9扇区      用时1478.240741us       我晕,竟然比读取8扇区多出近600us,读卡速率瞬间下降至7Mbps,然后继续测试,连续读取10、11、12、13、14、15、16扇区,相邻之间差距差不多在7.5us。相当于同前八次读取速率差不多。然而连续读17扇区时,连续读取9扇区的情况又出现了,多读一个扇区时间竟差了500多us。
      总结起来,卡速度提不上去,瓶颈是在于开始阶段以及每读八个扇区后再读一个扇区的延时。不知这是卡内部机制,还是407 SDIO本身问题。各位大神如有想法,请告知小弟,不胜感激。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复