SD controller CRC error 分析
来源:互联网 发布:淘宝订单体检清洗过期 编辑:程序博客网 时间:2024/05/21 19:25
最近做自己公司芯片的sd/mmc 模块,在enable SD高速模式下时会出现crc 错误。可气的是做为公司的fae竟然没有除datasheet之外的资料!这个fae也太可怜了。。。。
现象为:SD速度较低的SDclk=31Mhz会出现writing CRC error.但高速mode下(通过cmd6,switch command设置)clk>31Mhz以及SD低速mode就不会出现问题。
怀疑:1. 高速mode timing
2. Nac超时
3. DMA错误
高速mode timing要求Twl Twh 最小为7ns. Ttlh,Tthl最大为3ns,抓图如下:
31Mhz
50Mhz
330Mhz
都为TTL电平,低=0.7V,高=>2.4V.
发现timing满足高速要求。
继续发现DMA也没有问题。而且系统也没有报nac之类的time out,应该不是超时。
那究竟是什么问题呢,在read时没有问题,write缺会crc error!
继续说代码检查,发现发cmd12时会disable clock frozen ! 会不会出现这样的问题?用实验说明问题,cmd12是multi-block时,发stop command来停止读写的。如果全部使用single block问题会消失的话,应该就是它的问题。
实验发现single block问题解除。看来就是multi-block的问题。继续究。
《后记》
问题解决,原来是在sd的data transfer的dma结束时没有等待sd card data transfer complete所致。dma已经传输结束,但是在写数据时,数据还没有传到sd card memory里的flash中,如果此时再次起动sd传输,就会导致写入错误数据。
解决方法:在dma结束的callback中,等待sd_status_dd.
- SD controller CRC error 分析
- OpenRisc-30-SD card controller模块分析与验证
- 还是SD controller
- crc error systerm resetting
- CRC make error
- CRC校验源码分析
- CRC校验源码分析
- CRC校验源码分析
- CRC校验源码分析
- 全面分析CRC算法
- CRC校验源码分析
- uClinux crc error system halt
- 操作 sd卡 error
- 关于crc的算法分析
- CRC校验算法原理分析
- PCI device about MMC/SD host controller
- adb读取SD卡CID的CRC错误
- Loadrunner Controller错误分析
- 如何通过Makefile编译iphone的openSSL
- C语言 通过指针从函数返回一个数组
- android Preference之android:dependency
- 转别人一个样式好看的导航
- hbase开启lzo压缩
- SD controller CRC error 分析
- 我的farewell letter
- Hadoop MapReduce数据流程(上)
- FW - Prompt Type Property (need to H)
- 趣味题集粹
- 菜鸟成长之中序遍历
- amcharts使用方法
- Java Web 开发错误解决办法
- tlf简单应用