打印

请教关于SD时钟速度问题.

[复制链接]
2936|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alphal|  楼主 | 2008-7-21 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SD卡驱动已经完成,但有以下问题还未解决,希望大家指点一下:
1.SD卡的读写用中断方式的时候,MCI时钟最多只能设置为6M,否则会出现underrun error,大概是接收/发送中断进入的时间赶不上SD的接收/发送时间,等到进入中断读写FIFO的时候,已经产生underrun error了,可是我的中断程序已经很简单了,为何这个时间还是慢了,有点蹊跷,难道这样只能用6M时钟?...
2.于是我用DMA来传输数据,这下MCI时钟可以跑到18M了,设为25M就不行了,一次都运行不了,等不到DMA的接收完成信号.而且用12M时钟的时候,运行读写测试程序,跑1个多小时后也会出现等不到DMA的接收完成信号,原因未明.......
3.老大要求时钟最少跑25M,看手册说SD卡普通模式时钟为0-25M,高速模式为0-50M,目前是普通模式,可跑不到25M,是个问题...下一步设高速模式看看,看DMA还会不会出问题....我的卡是TOSHIBA class6的,应该能支持该模式吧.
4.我的驱动兼容SDHC(High Capacity SD Memory Card),我测试用的SDHC卡也是TOSHIBA class6的,相同条件下,发现SDHC比SD要慢20%左右,比较奇怪,SDHC比SD速度慢吗,还是我的程序的问题?

我们用的LPC2378,开发工具是keil MDK + GCC,另外感觉GCC的优化有点不好用,有的文件必须优化,有的文件不能优化,否则就出问题,真是怪哉.

是SD总线接口.

相关帖子

沙发
古道热肠| | 2008-7-21 10:07 | 只看该作者

SD卡如果采用SPI通讯,应该是能同步的

SPI是同步串口,即同步时钟由主控器产生,SPI从机按CLK来进行响应.所以速度快点慢点都应该能正常工作的.您得仔细看程序是否结构良好,容错与超时判断是否恰当.

使用特权

评论回复
板凳
pheavecn| | 2008-7-21 10:21 | 只看该作者

貌似lpc的spi就是最多8M

以前用lpc2136的时候是这样的。
用stm32f可以跑24M

使用特权

评论回复
地板
alphal|  楼主 | 2008-7-21 10:35 | 只看该作者

是SD总线接口的.

您得仔细看程序是否结构良好,容错与超时判断是否恰当.

此话怎讲?
容错?
超时判断?

都是读MCI Status寄存器出来的,不需要我多加判断.

使用特权

评论回复
5
alphal|  楼主 | 2008-7-21 15:00 | 只看该作者

没人遇到此种问题吗?

使用特权

评论回复
6
alphal|  楼主 | 2008-7-23 10:25 | 只看该作者

我的是SD总线滴....非spi.

使用特权

评论回复
7
古道热肠| | 2008-7-23 10:49 | 只看该作者

SD卡SD总线工作没做过研究,觉得重点还是要看资料及实物时序

建议先到同行类似应用打探一下行情,确定您的硬件架构目前肯定能上到20多M的外频,出现问题仅仅是软件处理不当的问题,要把握好方向,不能一错到底.

使用特权

评论回复
8
alphal|  楼主 | 2008-7-23 11:45 | 只看该作者

对,应该先问问这个SD时钟能跑到20M以上.谢谢肠版提醒!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝