目录

  • 一、关于SD卡
    • 1.简介
    • 2.SD卡的寄存器
    • 3.SD卡读取与写入(SPI模式)
  • 二、实验操作
    • 1.仪器
    • 2.代码
    • 3.连线
    • 4.烧录程序
    • 5.串口调试助手初始化并写入文件
    • 6.sd卡里hello文档的确认
  • 三、总结
  • 四、参考资料

一、关于SD卡

1.简介

SD(Secure Digital Memory Card)卡与U盘生在同年,可以称为表兄弟,也是一种基于半导体快闪记忆器(Nand Flash)的记忆设备,只是接口不同,为9 Pin接口。SD卡家族有三个兄弟,他们除了外表尺寸不同外,实质上完全一样。普通SD卡标准为24mm×32mm×2.1mm,MiNi SD卡标准为20mmX21.5mmX1.4mm,Micro SD卡(T-Flash卡)标准为15mm x 11mm x1mm 。

图 SD/Mini SD/Micro SD

SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,2000年成立了SD卡协会,东芝一直走在SD卡最前沿。近年来,SD卡逐渐在卡的混战中胜出,广泛应用在数码相机、GPS、DV等媒体设备中。

随着数码产品体积的要求,2003年SD卡组织发布了MiNi SD卡标准,配有卡套可转接成标准SD卡接口,Mini SD卡组成、接口及功能与SD卡完全相同,但面积为SD卡的37%。MiniSD卡还未及普及开来,就被随后出来的Micro SD卡所取代。

2004年由Motolola和Sandisk共同创造的T-Flash卡,以更小的体积受到手机的青睐,之后被SD卡组织纳入SD卡系列,并更名为Micro SD。该卡15mm x 11mm x1mm的体积,约为SD卡的1/4,只有指甲大小,当之无愧的成为现时最小的存储卡。该卡一经面市,立即受到手机等更高空间要求的数码产品关注,其中Motolola为首家采用该卡的手机公司。

  • 从技术层面看,SD卡、Mini SD卡和Micro SD卡的构成是完全一样的,主控制器芯片往往共用同一颗,只是外形物理尺寸不同而已。Mini和Micro通过转接卡套可以直接当普通SD卡使用,转接卡套只是单纯物理连接线上的转换。
  • 从封装技术上看,SD卡最为简单,内部采用封装后的标准芯片贴片生产,然后使用超声波塑封外壳,而Micro SD卡受限于体积,内部主控和Nand Flash均采用晶圆体绑定后直接封装成卡,因此加工难度较大,大部分都在台湾封装生产。
  • 从市场容量看,Micro SD卡的市场容量要远远大于SD卡,因为其直接和手机量绑定。

2.SD卡的寄存器

SD卡总共有8个寄存器,用于设定或表示SD卡信息。
这些寄存器只能通过对应的命令访问,SDIO定义64个命令,每个命令都有特殊意义,可以实现某一特定功能,SD卡接收到命令后,根据命令要求对SD卡内部寄存器进行修改,程序控制中只需要发送组合命令就可以实现SD卡的控制以及读写操作。

名称 bit宽度 概述
CID 128 卡识别号(Card identification number):用来识别的卡的个体号码(唯一的)
RCA 16 相对地址(Relative card address):卡的本地系统地址,初始化时,动态地由卡建议,主机核准
DSR 16 驱动级寄存器(Driver Stage Register):配置卡的输出驱动
CSD 128 卡的特定数据(Card Specific Data):卡的操作条件信息
SCR 64 SD配置寄存器(CD Configuration Register): SD卡特殊特性信息
OCR 32 操作条件寄存器(Operation conditiongs register)
SSR 512 SD状态(SD Status): SD卡专有特征的信息
CSR 32 卡状态(Card Status):卡状态信息

3.SD卡读取与写入(SPI模式)

1、发送CMD17;
2、接收卡响应R1;
3、接收数据起始令牌0XFE;
4、接收数据;
5、接收2个字节的CRC,如果不使用CRC,这两个字节在读取后可以丢掉。
6、禁止片选之后,发多8个CLK;
以上就是一个典型的读取SD卡数据过程,SD卡的写于读数据差不多,写数据通过CMD24来实现,具体过程如下:
1、发送CMD24;
2、接收卡响应R1;
3、发送写数据起始令牌0XFE;
4、发送数据;
5、发送2字节的伪CRC;
6、禁止片选之后,发多8个CLK;
以上就是一个典型的写SD卡过程。

二、实验操作

1.仪器

  1. STM32F103C8T6
  2. SD卡模块
  3. USB TO TTL
  4. 串口调试助手
  5. 杜邦线

2.代码

代码是参考其他大神的
STM32用cube配置FATFS模式下SPI读写SD卡
链接:https://pan.baidu.com/s/1wUKjH54Kc0Ne6lUNM-leoQ
提取码:xlp5

笔者还写不出完整的SD卡读取程序,借用来学习,并做了些修改:

编译运行生成hex文件

3.连线

连线是基于代码来连接的,如下所示

STM32 SD卡模块
PA4 SDCS
PA5 SCK
PA7 MOSI
PA6 MISO
5V VCC
GND GND
STM32 USB TO TTL
5V 5V
GND GND
PA9 RXD
PA10 TXT


注意:

  • 接线很不稳!
  • 确保SD卡格式化成FAT文件模式(sd卡插入读卡器连接电脑)

4.烧录程序

用mcuisp烧录hex进入单片机

5.串口调试助手初始化并写入文件

如果连接稳定的话,如果连接稳定的话,如果连接稳定的话,如果连接稳定的话,如果连接稳定的话,(重要的事情说五遍,出现的初始化失败,或者只显示mian都是因为连接不稳!)
初始化成功的显示如下:

6.sd卡里hello文档的确认

sd卡插入读卡器连接电脑,打开sd卡里的hello文档,如果前面操作一切正确,并且代码没有出错,正确结果就如下所示:

三、总结

本次对SD卡的数据读取实验,回过来看并不困难,主要问题就是连线要接稳,代码要写对!

四、参考资料

  1. 深入理解SD卡:协议
  2. 关于SD卡的故事
  3. 掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)
  4. STM32之完成对SD卡的数据读取
  5. STM32用cube配置FATFS模式下SPI读写SD卡

STM32F103完成对SD卡的数据读取(fat文件模式)相关推荐

  1. STM32F103读取SD卡的数据(fat文件模式)

    实验目的 掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式). 实验原理 SD卡寄存器 SD卡总共有8个寄存器,用于设定或表示SD卡信息. 这些寄存器只能通过对应的命令访 ...

  2. 【嵌入式20】STM32F103完成对SD卡的数据读取详细操作

    本文主要利用STM32F103完成对SD卡的数据读取,介绍该实验的详细操作 一.题目要求 二.SD卡协议原理 1.SD卡简述 2.SD卡物理结构 3.SD卡寄存器 4.SD卡操作模式 5.SD卡初始化 ...

  3. 使用Altium Designer 绘制原理图并且使用STM32F103完成对SD卡的数据读取

    使用Altium Designer 绘制原理图并且使用STM32F103完成对SD卡的数据读取 前言 实验要求 一. 电路原理图绘制 软件安装配置过程 (一)绘制stm32最小系统的电路原理图 1.新 ...

  4. 基于STM32F103完成对SD卡的数据读取(fat文件模式)

    文章目录 实验内容 一.SD卡协议 (一).SD卡简介 (二).SD 卡物理结构 (三).SD卡总线 二.基于STM32F103完成对SD卡的数据读取 (一).创建工程 (二).修改代码 (三).串口 ...

  5. STM32F103完成对SD卡的数据读取

    目录 一.SD卡介绍 1.概述 2.SD模式 3.SD卡读取与写入(SPI模式) 二. STM32F103完成对SD卡的数据读取 1.代码部分 2.U盘格式化 3.电路连接 4.具体实现 三.参考资料 ...

  6. 用STM32F103完成对SD卡的数据读取

    目录 SD卡协议原理 STM32+SD卡 的系统原理图设计 具体原理 代码 所用软件及硬件: 成果 参考文献 SD卡协议原理 功能 SD卡是存储卡,它的功能就是存储. 分类 SD卡按容量分类,可以分为 ...

  7. STM32F103完成对SD卡的数据读取详细操作

    SD卡协议原理 SD卡简述 关于SPI协议 通讯的起始和停止信号. 数据有效性 连线 代码完整工程 修改代码 烧录结果 总结 SD卡简述 很多单片机系统都需要大容量存储设备,以存储数据.目前常用的有 ...

  8. STM32F103之完成对SD卡的数据读取

    文章目录 一. 认识SD卡 1. 介绍SD卡 2. SD卡的物理结构 3. SD卡寄存器 4. SD卡模式 5. 初始化SD卡过程 6. SD卡读取数据 二. 实验操作--对SD卡进行数据读取 1. ...

  9. STM32+SD卡的原理图绘制以及用32完成对SD卡的数据读取(fat文件模式)

    目录 一.下载安装AD 1.1安装方法一 1.2安装方法二 二.绘制STM32最小系统原理图 2.1元件库 2.2新建工程 2.3绘制原理图 三.SD卡协议原理 3.1SD卡简介 3.2SD卡接口 3 ...

最新文章

  1. 数据结构与算法:08 Leetcode同步练习(三)
  2. Just another Robbery LightOJ - 1079[背包形状的概率dp]
  3. AWS上创建的notebook实例提示没有导入pytorch模块的解决办法 直接在编辑块中执行如下命令,最后重启kernel问题解决
  4. nginx反向代理tomcat提示failed (13: Permission denied) while connecting to upstream
  5. CUDA: GPU高性能运算
  6. POJ 2186 Popular Cows(Tarjan)
  7. 文件上传fileupload文件接收
  8. mysql cmd 实时监控_mysql实时监听sql语句
  9. Mysql远程授权报语法错误
  10. 还怕没女朋友吗?用python做个表白吧
  11. 论文阅读笔记 | 分类网络——ParNet
  12. 算24点的一般方法及例题
  13. 【历史上的今天】6 月 26 日:EDSAC 计算机之父诞生;B 站成立;Skype 创始人出生
  14. 【教程】手机远程连接另一台手机的termux进行拍照
  15. 数学界再出变态神人!竟用一个比基尼方程,暴力吊打美国数学家!看完我惊了......
  16. Excel股票分析工具_每日连板清单
  17. 周测三,Linux命令如下:
  18. 从数学史角度看丁小平的微积分研究
  19. OC学习笔记[注意事项]
  20. 传奇游戏PC和手机版宣传页模板原版Flash动态炫酷

热门文章

  1. 【mysql】-【innodb数据存储结构】
  2. 10 个神奇的网站,助力带薪摸鱼
  3. python launcher下载,python launcher是什么 python的launcher用法知识点总结
  4. 进大厂一条龙服务(Java核心面试知识点+一线大厂Java笔试面试题+月薪3万Java优秀简历模板),看这篇就够了
  5. 最新 解决 VMware 虚拟机 中被提示 Sorry, this application cannot run under a Virtual Machine
  6. ZCash bellman版本 Groth16代码解析
  7. 怎么给自己的html网页加个密码,密码正确才能显示网页
  8. [windows]自动拨号脚本
  9. 如何修改百度地图上marker的icon地址
  10. CoffeeScript系列教程(一)—概述