本文主要是介绍MMC卡SPI模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MMC/SD卡简单SPI模式驱动
1. SPI模式下CRC检验无效的。
2. 命令格式是6个字节,采用大端法进行数据传输。
3. 第一个是(命令号|0x40)。
4. 第2-5个是有些命令需要地址,用来设置地址的,而其他的可以任意填充。
5. 最后一个字节是CRC校验位,除了CMD0为95H外,其他可以任意填充。
6. 命令发送函数。
1).片选拉低。
2).发送六个字节命令。
3).再发送一8个时钟信号。
4).发送时钟信号,等待回复。
5).回复不是0xff,就可以。
6).根据时序可在发送8个时钟信号。
7).返回R1,即MMC的回复。
(完)
7. MMC卡初始化函数
1).SPI初始化。
2).发送74个时钟以上。
3).发送命令CMD0.
4).不断发送时钟信号等回复0x01.成功。
5).再不断发送命令CMD1,等回复0x00,成功则MMC卡初始化成功。
(完)
8.MMC卡读函数。
1).不断发送命令CMD17。
2).等待0x00,则成功。
3).再不断发送时钟信号,当收到0xfe时,说明可以读512字节数据,也可以通过命令设置读写数据长度。
4).读512字节数据。
5).发送CRC校验,2个字节,虽然校验无效,但一定要发送。
6).再发送时序8个时钟。
(完)
9.MMC卡写数据。
1).发送不断CMD24命令。
2).等待0x00回复。
3).成功回复,再发送至少8个时钟。
4).发送0xfe。
5).发送512字节写进去。
6).CRC校验位发送,2个字节。
7).发送时钟信号,获得回复xxx00101。
8).获得正常回复后,说明写成功。
9).等待总线释放,即回复为0xff,则总线不忙。
10).发送8时钟信号。
(完)
这篇关于MMC卡SPI模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!