【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(三)-SD卡的操作流程
其他链接
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(三)-SD卡的操作流程
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(四)-介绍库函数,获取一些SD卡的信息
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(五)-文件管理初步介绍
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(七)-准备移植FatFs
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(八)-认识内存管理
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(终)-配合内存管理来遍历SD卡
首先放上的这张图片,是SD卡的完整流程图
图片看不清楚的,我也不知道要怎么调整了,麻烦暂时用新分页开启这张图片,或是另存图片在自己的电脑里,谢谢了
分割线上方(红线以上)是【卡识别模式】(卡初始化模式)
分割线下方(红线以下)是【数据传输模式】
来说说靠近分割线(红线)的几个命令
在【卡识别模式】下,发送CMD3,获取RCA地址,就可以进入红线下方,也就是进入【数据传输模式】了(前提是你已经经过一系列的识别了)
在【数据传输模式】下,发送CMD3,SD卡会返回新的RCA地址
在【数据传输模式】下,发送CMD15,会进入无效状态,并非进入卡识别状态,这感觉很像把U盘插入电脑,然后我就直接退出U盘,就进入无效模式了,我想再次使用U盘,我必须重新上电(重新拔插U盘)
在【数据传输模式】下,发送CMD0,SD卡会重新进入空闲状态,然后又可以对SD卡进行识别了
其他的详细流程介绍,我会如图片所说,分别再用两张图片来说明
先说明 【卡识别模式】,此阶段的时钟频率FOD,最高为400KHz
这流程图和我上方完整的流程图,有些出入
在SD2.0协议的PDF文档里面,有更详细的卡识别流程图(卡初始化流程图)
你要仔细对比的话,上电后,不都是发送CMD0吗?后续不是还接着CMD8?识别成功后,下方不是还有ACMD41吗?
这个初始化流程图,就和红线以上的【卡识别模式】是一样的,只是更详细
至于介绍的话,初始化流程图已经说的很清楚了
再先说明 【数据传输模式】,此阶段的时钟频率FPP,默认最高为25MHz,配置寄存器后,最高可达50MHz
大致的流程就是这样
图片已经说明的很清楚了
对照我第二章写的博客,有一大堆CMD相关的命令
再来看这张图,就会很清楚了
这些图片我都是截取SD2.0协议的PDF文档
文档在SD卡协会的官网有的
那么下一章就开始代码操作了