阅读:2073回复:0
sd over spi 问题请教
我的开发板芯片有SPI控制器,外接一片EEPROM和一个SD/MMC插槽。
现在EEPROM能正确工作。 但是,对于SPI上的SD卡却不能正确工作,问题如下 (driver/mmc/host/mmc_spi.c驱动): 初始化时,能正确读出CIS、CSD等数据,仅仅读取8、16、64字节数据。 但是当发送命令COM18(multi-read blocks)读取分区表时(读取512字节数据),得到的第一块数据绝大部分都是正确的,但是有个别数据错误,并且这些数据错的很奇怪, 对于错误数据,总是错在最低位上,也就是bit0的数据和下一个字节的最高位(bit7)一致,比如,两个连续的数据,0x7e 0x85,那么读回来的数据却成了 0x7f 0x85,又或者两个数据,0x5f 0x75,读回来的数据却成了0x5e 0x75. 对于错误的分析: 由于相同的SPI驱动对于EEPROM能正常工作,所以,驱动本身应该没有什么大问题了。 我尝试着将系统时钟从250MHz降到80MHz,也就是CPI_CLK从1.2MHz降到416KHz,但是还是同样的错误。 请问大侠,这样的错误可能是什么原因引起的? 先谢谢了! |
|
|