STM32F103完成对SD卡的数据读取(fat文件模式)
目录
- 一、关于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.仪器
- STM32F103C8T6
- SD卡模块
- USB TO TTL
- 串口调试助手
- 杜邦线
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卡的数据读取实验,回过来看并不困难,主要问题就是连线要接稳,代码要写对!
四、参考资料
- 深入理解SD卡:协议
- 关于SD卡的故事
- 掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)
- STM32之完成对SD卡的数据读取
- STM32用cube配置FATFS模式下SPI读写SD卡
STM32F103完成对SD卡的数据读取(fat文件模式)相关推荐
- STM32F103读取SD卡的数据(fat文件模式)
实验目的 掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式). 实验原理 SD卡寄存器 SD卡总共有8个寄存器,用于设定或表示SD卡信息. 这些寄存器只能通过对应的命令访 ...
- 【嵌入式20】STM32F103完成对SD卡的数据读取详细操作
本文主要利用STM32F103完成对SD卡的数据读取,介绍该实验的详细操作 一.题目要求 二.SD卡协议原理 1.SD卡简述 2.SD卡物理结构 3.SD卡寄存器 4.SD卡操作模式 5.SD卡初始化 ...
- 使用Altium Designer 绘制原理图并且使用STM32F103完成对SD卡的数据读取
使用Altium Designer 绘制原理图并且使用STM32F103完成对SD卡的数据读取 前言 实验要求 一. 电路原理图绘制 软件安装配置过程 (一)绘制stm32最小系统的电路原理图 1.新 ...
- 基于STM32F103完成对SD卡的数据读取(fat文件模式)
文章目录 实验内容 一.SD卡协议 (一).SD卡简介 (二).SD 卡物理结构 (三).SD卡总线 二.基于STM32F103完成对SD卡的数据读取 (一).创建工程 (二).修改代码 (三).串口 ...
- STM32F103完成对SD卡的数据读取
目录 一.SD卡介绍 1.概述 2.SD模式 3.SD卡读取与写入(SPI模式) 二. STM32F103完成对SD卡的数据读取 1.代码部分 2.U盘格式化 3.电路连接 4.具体实现 三.参考资料 ...
- 用STM32F103完成对SD卡的数据读取
目录 SD卡协议原理 STM32+SD卡 的系统原理图设计 具体原理 代码 所用软件及硬件: 成果 参考文献 SD卡协议原理 功能 SD卡是存储卡,它的功能就是存储. 分类 SD卡按容量分类,可以分为 ...
- STM32F103完成对SD卡的数据读取详细操作
SD卡协议原理 SD卡简述 关于SPI协议 通讯的起始和停止信号. 数据有效性 连线 代码完整工程 修改代码 烧录结果 总结 SD卡简述 很多单片机系统都需要大容量存储设备,以存储数据.目前常用的有 ...
- STM32F103之完成对SD卡的数据读取
文章目录 一. 认识SD卡 1. 介绍SD卡 2. SD卡的物理结构 3. SD卡寄存器 4. SD卡模式 5. 初始化SD卡过程 6. SD卡读取数据 二. 实验操作--对SD卡进行数据读取 1. ...
- STM32+SD卡的原理图绘制以及用32完成对SD卡的数据读取(fat文件模式)
目录 一.下载安装AD 1.1安装方法一 1.2安装方法二 二.绘制STM32最小系统原理图 2.1元件库 2.2新建工程 2.3绘制原理图 三.SD卡协议原理 3.1SD卡简介 3.2SD卡接口 3 ...
最新文章
- 数据结构与算法:08 Leetcode同步练习(三)
- Just another Robbery LightOJ - 1079[背包形状的概率dp]
- AWS上创建的notebook实例提示没有导入pytorch模块的解决办法 直接在编辑块中执行如下命令,最后重启kernel问题解决
- nginx反向代理tomcat提示failed (13: Permission denied) while connecting to upstream
- CUDA: GPU高性能运算
- POJ 2186 Popular Cows(Tarjan)
- 文件上传fileupload文件接收
- mysql cmd 实时监控_mysql实时监听sql语句
- Mysql远程授权报语法错误
- 还怕没女朋友吗?用python做个表白吧
- 论文阅读笔记 | 分类网络——ParNet
- 算24点的一般方法及例题
- 【历史上的今天】6 月 26 日:EDSAC 计算机之父诞生;B 站成立;Skype 创始人出生
- 【教程】手机远程连接另一台手机的termux进行拍照
- 数学界再出变态神人!竟用一个比基尼方程,暴力吊打美国数学家!看完我惊了......
- Excel股票分析工具_每日连板清单
- 周测三,Linux命令如下:
- 从数学史角度看丁小平的微积分研究
- OC学习笔记[注意事项]
- 传奇游戏PC和手机版宣传页模板原版Flash动态炫酷
热门文章
- 【mysql】-【innodb数据存储结构】
- 10 个神奇的网站,助力带薪摸鱼
- python launcher下载,python launcher是什么 python的launcher用法知识点总结
- 进大厂一条龙服务(Java核心面试知识点+一线大厂Java笔试面试题+月薪3万Java优秀简历模板),看这篇就够了
- 最新 解决 VMware 虚拟机 中被提示 Sorry, this application cannot run under a Virtual Machine
- ZCash bellman版本 Groth16代码解析
- 怎么给自己的html网页加个密码,密码正确才能显示网页
- [windows]自动拨号脚本
- 如何修改百度地图上marker的icon地址
- CoffeeScript系列教程(一)—概述