被TMS320C5509A的MMC搞伤心了

1224阅读 0评论2011-06-30 enjoying-spring
分类:嵌入式

   该芯片的MMC时钟本可以达到25MHz,按理来说,写速度应该能够达到8MB没有问题,可实际中远没有这么理想。
 
   首先提供的CSL库中的MMC函数基本是没什么用,写速度在20kB左右,死等DATAEN位,真是晕人。而且感觉它有硬件Bug。千万别用CSL库的函数,你会发现写几K的东西可能等上几秒钟。CSL库仅实现了单块读写。可不知为什么,手册中从来没提到,发单块要写发送计数器寄存器为1,可要不写铁定发不出去,你写了该寄存器,会发现,你发送完后,它还不减到0,晕不,造成,DATAEN BIT位要等50000个机器周期才能置位,当然你可以不等,霸王硬上弓,但下次发送肯定自刎乌江。
   后来自己重写了驱动,实现了多块连续写,速度跑24MHz,4线制,支持了SD2.0,可以读写大容量SD了,才勉强达到了3MB多,后来又加上了DMA,似乎达到了4MB,以上结果都是拿定时器测4K数据的结果,有人问为何才测这么小的,5509A的一个软肋就是定时器只有20bit,就是再怎么折腾也大不了哪里去。
   感觉该芯片的MMC一个主要问题是对操作命令的反应出奇的慢。或许这是速度上不去的一个主要原因。更令人费解的是发送第一个4K,速度可达8MHz,可再发送第二个速度一下子就下来了,只有2MB了。百思不得其解啊,SD卡在读卡器下是稳定的8MHz。可能是TI为了降低成本MMC没做的完善。当然它的MMC没有FIFO也是慢的原因之一吧,还耗CPU,除非用DMA.
   现在无语了,准备把ADC数据降采样后再存储了。
   有哪位大侠把速度做上去了,请留言,咱们切磋,可以有偿购买你的程序,前提是速度上去了。
上一篇:USB相关知识学习随记-相继更新
下一篇:TI-TMS320C5509A out文件转bin文件