前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >stm32 sd卡读写_sd卡引脚定义图

stm32 sd卡读写_sd卡引脚定义图

作者头像
全栈程序员站长
发布2022-11-15 11:28:44
1.6K0
发布2022-11-15 11:28:44
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

SD卡 SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。 SD卡按容量分类,可以分为3类:SD卡、SDHC卡、SDXC卡 容量 命名 简称 0~2G Standard Capacity SD Memory Card SDSC或SD 2G~32G High Capacity SD Memory Card SDHC 32G~2T Extended Capacity SD Memory Card SDXC

SD卡一般支持SDIO和SPI俩种传输方式

注意:很大一部分TF卡(小卡)不支持SPI访问,用SPI方式最好使用大卡

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

SD卡的SDIO模式及SPI模式引脚的定义如下

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

SD卡的5个寄存器

名称

宽度

描述

CID

128

卡标识寄存器,提供制造商ID、OEM/应用ID、产品名称、版本、序列号、制造日期等信息。

RCA

16

相对卡地址(Relative card address)寄存器,提供本地系统中卡的地址,可动态变化,在主机初始化的时候确定。 注意:仅SDIO模式下有,SPI模式下无RCA

CSD

128

卡描述数据寄存器,提供SD卡操作条件相关信息和数据

SCR

64

SD配置寄存器,提供SD卡一些特定的数据。

OCR

32

操作条件寄存器,主要是SD卡的操作电压等信息。

STM32的SDIO接口

简介:SDIO Secure Digital Input and Output,安全数字输入输出接口,在SD卡接口的基础上发展而来,兼容SD卡,并可以连接SDIO设备

与SD卡规范的区别:增加了低速标准,低速卡的目标应用时以最小的硬件开支支持低速IO能力

STM32的SDIO接口提供 APB2 外设总线与多媒体卡 (MMC)、SD 卡、SDIO 卡以及 CE-ATA 设备之间的接口。

特性:

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

注意:F1的SDIO挂载在AHB总线,F4的挂载在APB2总线 原因:总线的时钟

SDIO适配器框图

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

三个时钟信号:卡时钟SDIO_CK(传输速率0-25MHZ)、SDIO适配器时钟SDIOCLK(用于驱动适配器来产生卡时钟,与所挂载的总线时钟相同)、总线时钟PCLK2(F1为HCLK2)

SDIO_CK计算公式:SDIO_CK=SDIOCLK/(2+CLKDIV) CLKDIV为可配置的分频系数 在初始化时不可以超过400khz ,初始化完成后可全速运行

命令及命令格式

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

所有的命令都是由单片机发出,其中起始位、传输位、CRC7和结束位由SDIO硬件控制,我们只需要配置命令索引及参数部分,命令索引配置寄存器SDIO_CMD,命令参数配置SDIO_ARG

一般SD卡接收到命令后都会有一个应答(除ACMD0),有长(136位)短(48位)之分

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

与命令类似,硬件会自动滤除起始位、传输位、CRC7以及结束位等信息 段响应:命令索引存放在SDIO_RESPCMD 参数存放在SDIO_RESP1 长响应:仅保留CID/CSD 存放在SDIO_RESP1~SDIO_RESP4 有六种响应(R1、R1b、R2、R3、R6、R7)详细的看F4XX中文参考手册

SD卡的SDIO操作模式配置流程

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

这个图是一个极为重要的图要重点理解。

从SD卡初始化流程可知,不管什么卡(这里我们将卡分为4类:SD2.0高容量卡(SDHC,最大32G),SD2.0标准容量卡(SDSC,最大2G),SD1.x卡和MMC卡),首先我们要执行的是卡上电(设置SDIO_POWER[1:0]=11),上电后发送CMD0,对卡进行软复位,之后发送CMD8命令,用于区分SD卡2.0,只有2.0及以后的卡才支持CMD8命令,MMC卡和V1.x的卡,是不支持该命令的。

SD卡的读写都是以扇区为单位操作的

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

单个扇区读操作

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

多个扇区的读取操作

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

单个扇区写操作

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

多个扇区的写操作

stm32 sd卡读写_sd卡引脚定义图
stm32 sd卡读写_sd卡引脚定义图

代码就不贴了,参照原子的SD卡实验的例程即可,原子的代码写的还是很完善的,参照原理及流程图读几次代码就会熟练对SD卡的SDIO操作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186525.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SD卡 SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。 SD卡按容量分类,可以分为3类:SD卡、SDHC卡、SDXC卡 容量 命名 简称 0~2G Standard Capacity SD Memory Card SDSC或SD 2G~32G High Capacity SD Memory Card SDHC 32G~2T Extended Capacity SD Memory Card SDXC
  • SD卡一般支持SDIO和SPI俩种传输方式
  • 注意:很大一部分TF卡(小卡)不支持SPI访问,用SPI方式最好使用大卡
  • SD卡的SDIO模式及SPI模式引脚的定义如下
  • SD卡的5个寄存器
  • STM32的SDIO接口
  • 简介:SDIO Secure Digital Input and Output,安全数字输入输出接口,在SD卡接口的基础上发展而来,兼容SD卡,并可以连接SDIO设备
  • 与SD卡规范的区别:增加了低速标准,低速卡的目标应用时以最小的硬件开支支持低速IO能力
  • STM32的SDIO接口提供 APB2 外设总线与多媒体卡 (MMC)、SD 卡、SDIO 卡以及 CE-ATA 设备之间的接口。
  • 特性:
  • 注意:F1的SDIO挂载在AHB总线,F4的挂载在APB2总线 原因:总线的时钟
  • SDIO适配器框图
  • 三个时钟信号:卡时钟SDIO_CK(传输速率0-25MHZ)、SDIO适配器时钟SDIOCLK(用于驱动适配器来产生卡时钟,与所挂载的总线时钟相同)、总线时钟PCLK2(F1为HCLK2)
  • SDIO_CK计算公式:SDIO_CK=SDIOCLK/(2+CLKDIV) CLKDIV为可配置的分频系数 在初始化时不可以超过400khz ,初始化完成后可全速运行
  • 命令及命令格式
  • 所有的命令都是由单片机发出,其中起始位、传输位、CRC7和结束位由SDIO硬件控制,我们只需要配置命令索引及参数部分,命令索引配置寄存器SDIO_CMD,命令参数配置SDIO_ARG
  • 一般SD卡接收到命令后都会有一个应答(除ACMD0),有长(136位)短(48位)之分
  • 与命令类似,硬件会自动滤除起始位、传输位、CRC7以及结束位等信息 段响应:命令索引存放在SDIO_RESPCMD 参数存放在SDIO_RESP1 长响应:仅保留CID/CSD 存放在SDIO_RESP1~SDIO_RESP4 有六种响应(R1、R1b、R2、R3、R6、R7)详细的看F4XX中文参考手册
  • SD卡的SDIO操作模式配置流程
  • 这个图是一个极为重要的图要重点理解。
  • 从SD卡初始化流程可知,不管什么卡(这里我们将卡分为4类:SD2.0高容量卡(SDHC,最大32G),SD2.0标准容量卡(SDSC,最大2G),SD1.x卡和MMC卡),首先我们要执行的是卡上电(设置SDIO_POWER[1:0]=11),上电后发送CMD0,对卡进行软复位,之后发送CMD8命令,用于区分SD卡2.0,只有2.0及以后的卡才支持CMD8命令,MMC卡和V1.x的卡,是不支持该命令的。
  • SD卡的读写都是以扇区为单位操作的
  • 单个扇区读操作
  • 多个扇区的读取操作
  • 单个扇区写操作
  • 多个扇区的写操作
  • 代码就不贴了,参照原子的SD卡实验的例程即可,原子的代码写的还是很完善的,参照原理及流程图读几次代码就会熟练对SD卡的SDIO操作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档