SD卡数据读取

本文介绍了如何使用STM32F103通过SPI模式读取SD卡数据,详细讲解了SD卡协议、初始化步骤以及读写操作。在SPI模式下,SD卡的初始化涉及CMD0、CMD8等命令,读取数据包括CMD17指令,写入数据使用CMD24指令。实验中还需要正确配置HAL库并进行硬件连线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装Altium Designer 18

ADB
提取码:1108
百度网盘速度你懂的,劝你自己找,我只是给个形式。
后续:操作简单,截图太多,难得写了,给个博客
点我

二、绘制电路原理图

1.建立工程


在这里插入图片描述

2.绘制原理图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本操作

这个软件的基本操作极其反人类(不出意外它绝对不会在我的电脑待超过寒假)
CTRL+鼠标滑轮:放大缩小界面
右键:滑动界面
左键:选中
在这里插入图片描述
这里要右键才能打开选项(我不理解)
如果没反应,没事它慢的很,习惯就好。(反正我很难受)
复制的时候记得不要按太久!他会无限复制(呵呵呵)

数据读取

掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)。

原理

sd卡协议

SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。
在这里插入图片描述

结构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SD 卡主要引脚和功能
CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率;
CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;
DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。SD卡命令的格式如后表所示,其中相关参数可以查阅SD卡规范。

SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。 [3]
在SD卡3.0规范中,SD卡的理论最大容量可达2TB,理论最大读写速度可达104MB/s(在最新的4.10规范中,理论最大读写速度已提高到312MB/s)。 [3]
SD卡主要分为四部分组成:外部引脚、内部寄存器、接口控制器和内部存储介质。 [3]
引脚
SD卡主要引脚和功能描述如下: [3]
CLK:时钟信号,控制器或者SD卡在每个时钟周期传输一个命令位或数据位,在SD总线的默认速度模式下频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率,在UHS-I速度模式下,时钟频率最高可达208M。 [3]
CMD:命令和响应复用引脚,命令是由控制器发给SD卡,可以是从控制器到单个SD卡,也可以是到SD总线上所有卡;响应是存储卡对控制器发送的命令应答,应答可以来自单卡或所有卡。 [3]
DAT0~3:数据线,数据可以从卡传向控制器也可以从控制器传向卡。

寄存器

寄存器及功能描述如下: [3]
OCR(Operating Conditions Register)寄存器:32位的操作条件寄存器主要存储了VDD电压范围,SD卡操作电压范围为2~3.6V。 [3]
CID(Card IDentification Register)寄存器:卡识别码寄存器,长度为16个字节,存储SD卡唯一标识号,该号在卡生产厂家编程后无法修改。 [3]
CSD(Card-Specific Data Register)寄存器:卡特性数据寄存器,包含了访问该卡数据时的必要配置信息。
SCR(SD Card Configuration Register)寄存器:SD卡配置寄存器(SCR),提供了SD卡的一些特殊特性在这张卡内,长度为64位,这个寄存器内容由制造商在生产厂内设置。 [3]
RCA(Relative Card Address)寄存器:卡相对地址寄存器是一个16位可写的地址寄存器,控制器可通过地址选择对应地址的SD卡。 [3]
DSR(Driver Stage Register)寄存器:驱动级寄存器,属于可选寄存器,用于配置卡的驱

SD卡初始化(SPI模式)

SPI操作模式下:在SD卡收到复位命令时,CS为有效电平(低电平),则SPI模式被启用,在发送CMD之前要先发送74个时钟&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值