【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卡协会的官网有的

那么下一章就开始代码操作了

posted @ 2019-12-12 08:09  夜桜が舞う  阅读(7333)  评论(0编辑  收藏  举报