单片机
返回首页

SD卡及STM32的SDIO接口相关原理

2018-12-26 来源:eefocus

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模式引脚的定义如下


 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操作。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章