SD卡的SPI模式的初始化顺序
SD卡的SPI模式的初始化顺序是指SD卡在SPI模式下的初始化过程,该过程对开发SD卡非常有帮助。下面是SD卡的SPI模式的初始化顺序的知识点总结:
1. SD卡的官方资料:了解SD卡的官方资料是非常重要的,虽然官方资料的内容可能不太友好,但对基础知识的了解是必要的。SD协议不需要看,因为它只是一个基础协议。
2. 清晰明了的MMC卡时序图:了解MMC卡的时序图可以帮助我们更好地理解SD卡的初始化顺序,虽然MMC卡和SD卡有所不同,但是在初始化时CMD0的时序是一样的。
3. SD卡的电路:SD卡的电路其实很简单,参考SD卡的官方资料中的电路链接就可以。供电问题也是一个需要注意的问题,因为SD卡的电压是3.3V,所以CPU必须支持3.3V的IO端口输出。
4. SD卡的初始化命令:为了使SD卡进入SPI模式,我们需要使用三个命令:CMD0、ACMD41和CMD55。CMD0是一个复位命令,用于使SD卡进入in-idle-state;ACMD41是一个初始化命令,用于使SD卡完成初始化准备接受下一条指令;CMD55是一个切换命令,用于切换到ACMD类命令。
5. 正确的回应内容:正确的回应内容应该是CMD0——0x01(SD卡处于in-idle-state),CMD55——0x01(SD卡处于in-idle-state),ACMD41——0x00(SD卡跳出in-idle-state,完成初始化准备接受下一条指令)。
6. CMD0的特殊处理:CMD0是一个特殊的命令,在向SD卡发送CMD0之前,需要向SD卡发送74+个时钟,为什么要74个CLK呢?因为在上电初期,电压的上升过程约合64个CLK周期才能到达SD卡的正常工作电压,他们管这个叫做Supply ramp up time,其后的10个CLK是为了与SD卡同步,之后开始CMD0的操作。
7. SD卡的SPI总线:在读入数据时SD卡的SPI是CLK的上升沿输入锁存,输出数据也是在上升沿。
8. 向SD卡写入命令的过程:首先使CS为低电平,SD卡使能;其次在SD卡的Din写入命令;写入命令后还要附加8个填充时钟,是SD卡完成内部操作;之后在SD卡的Dout上接受回应;回应接受完毕使CS为低电平,再附加8个填充时钟。
9. SD卡的Din保持高电平:在SD卡的Din没有数据写入时,应使Din保持高电平。
SD卡的SPI模式的初始化顺序需要我们了解SD卡的官方资料、电路、初始化命令、回应内容、CMD0的特殊处理、SPI总线和写入命令的过程等知识点。