在进行AM335x 的SD卡多块写时,只能正确写入第一个块的数据。
我是按照以下步骤来进行的:
1.配置ACE(auto cmd12),MBS(multiblock select),BCE(block count enable)
2.发送ACMD23,设置要写入块的个数;
3. 发送CMD25;
没有成功,请问还有其他需要注意的细节吗?
Jian Zhou:
请问你是修改了Linux下的SD卡驱动么?
Shine:
运行的是哪个例程?PDK里EDMA那个例程可以多块读写。https://e2e.ti.com/support/arm/sitara_arm/f/791/t/524097
zhijie guo1:
回复 Jian Zhou:
不是 Linux, 是rtems系统下的驱动
zhijie guo1:
回复 Shine:
不是运行的例程, 是自己的写的驱动程序
zhijie guo1:
回复 Shine:
是自己写的驱动程序
Jian Zhou:
回复 zhijie guo1:
你有参考过AM335x TRM里SD卡的标准读写流程么?TI的SDK里发布的驱动都是遵循标准读写流程的,你自己的驱动和标准流程有差异么?
zhijie guo1:
回复 Jian Zhou:
之前参考的是starterware,可以实现单块读写,但是速度很慢;
为了提高读写性能尝试使用多块读写。
现在多块读写的问题就是:多块的BLK_CNT最大只能设置为2,否则发送之后的多块写命令就会超时。
还有,AM335x的控制器不支持UHS-I卡的操作吗?为什么我发送CMD11可以得到正确的reponse,但是之后的CMD2就不能正常获取response。
zhijie guo1:
回复 Jian Zhou:
请问,AM335x的控制器支持UHS-I卡的操作吗?
为什么我发送CMD11可以得到正确的reponse,但是之后的CMD2的response全为0。
Jian Zhou:
回复 zhijie guo1:
UHS-I卡和普通的SD卡有什么区别?支持哪种SD协议?
zhijie guo1:
回复 Jian Zhou:
UHS-I卡是超高速卡(Ultra High Speed),只能操作在SD模式下,不能在SPI模式下操作。
我现在用的就是这种卡。