OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18517|回复: 4

【Alientek STM32 实验20】--SD卡实验

[复制链接]

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2010-12-14 23:33:26 | 显示全部楼层 |阅读模式

3.20  SD卡实验

    

很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸),能满足不同应用的要求。只需要4IO口,就可以外扩一个最大达32GB以上的外部存储器,容量选择尺度很大,更换也很方便,而且方便移动,编程也比较简单,是单片机大容量外部存储器的首选。

ALIENTKE MiniSTM3开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。本节将向大家介绍,如何在ALIENTEK MiniSTM32开发板上读取SD卡。本节分为如下几个部分:

3.20.1 SD卡简介

3.20.2 硬件设计

3.20.3 软件设计

3.20.4 下载与测试


3.20.1 SD卡简介

    

SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于19998月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。

SD卡一般支持2种操作模式:

1SD卡模式;

2SPI模式;

主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。

     SD卡的引脚排序如下图所示:


3.20.1.1 SD卡引脚排序图

SD卡引脚功能描述如下表所示:


                                                                 3.20.1.1 SD卡引脚功能表

SD卡只能使用3.3VIO电平,所以,MCU一定要能够支持3.3VIO端口输出。注意:在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。

SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD0)时,CS为有效电平(低电平)则SPI模式被启用。不过在发送CMD0之前,要发送>74个时钟,这是因为SD卡内部有个供电电压上升时间,大概为64CLK,剩下的10CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400Khz!。

ALENTEK MiniSTM32开发板使用的是SPI模式来读写SD卡,下面我们就重点介绍一下SD卡在SPI模式下的相关操作。

首先介绍SPI模式下几个重要的操作命令,如下表所示:

 

命令

参数

回应

描述

CMD0(0X00)

NONE

R1

复位SD

CMD9(0X09)

NONE

R1

读取卡特定数据寄存器

CMD10(0X0A)

NONE

R1

读取卡标志数据寄存器

CMD16(0X10)

块大小

R1

设置块大小(字节数)

CMD17(0X11)

地址

R1

读取一个块的数据

CMD24(0X18)

地址

R1

写入一个块的数据

CMD41(0X29)

NONE

R1

引用命令的前命令

CMD55(0X37)

NONE

R1

开始卡的初始化

CMD59(0X3B)

仅最后一位有效

R1

设置CRC开启(1)或关闭(0)

                                             3.20.1.2 SPI模式下SD卡部分操作指令

其中R1的回应格式如下表所示:


                                        3.20.1.3 SDR1回应格式

接着我们看看SD卡的初始化,SD卡的典型初始化过程如下:

1、初始化与SD卡连接的硬件条件(MCUSPI配置,IO口配置);

2、上电延时(>74CLK);

3、复位卡(CMD0);

4、激活卡,内部初始化并获取卡类型(CMD1(用于MMC卡)、CMD55CMD41);

5.、查询OCR,获取供电状况(CMD58);

6、是否使用CRCCMD59);

7、设置读写块数据长度(CMD16);

8、读取CSD,获取存储卡的其他信息(CMD9);

9、发送8CLK后,禁止片选;

这样我们就完成了对SD卡的初始化,这里面我们一般设置读写块数据长度为512个字节,并禁止使用CRC。在完成了初始化之后,就可以开始读写数据了。

SD卡读取数据,这里通过CMD17来实现,具体过程如下:

1、发送CMD17

2、接收卡响应R1

3、接收数据起始令牌0XFE

4、接收数据;

5、接收2个字节的CRC,如果没有开启CRC,这两个字节在读取后可以丢掉。

68CLK之后禁止片选;

以上就是一个典型的读取SD卡数据过程,SD卡的写于读数据差不多,写数据通过CMD24来实现,具体过程如下:

1、发送CMD24;

2、接收卡响应R1

3、发送写数据起始令牌0XFE

4、发送数据;

5、发送2字节的伪CRC

68CLK之后禁止片选;

以上就是一个典型的写SD卡过程。关于SD卡的介绍,我们就介绍到这里,更详细的介绍请参考SD卡的参考资料。

 

3.20.2 硬件设计

    

本节实验功能简介:开机的时候先初始化SD卡,如果SD卡初始化完成,则读取扇区0的数据,然后通过串口打印到电脑上。如果没初始化通过,则在LCD上提示初始化失败。 同样用DS0来指示程序正在运行。

所要用到的硬件资源如下:

1STM32F103RBT6

2DS0(外部LED0)。

3)串口1

4TFTLCD液晶模块。

5SD卡。

            前面四部分,在之前的实例已经介绍过了,这里我们介绍一下SD卡在开发板上 的连接方式,SD卡与MCU的连接原理图如下:


       3.20.2.1 SD卡与STM32连接电路图

源码在附件中

ALIENTEK MINISTM32 实验20 SD卡实验.rar

2.13 MB, 下载次数: 3691

SD卡实验.pdf

442.87 KB, 下载次数: 1915

我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

31

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2011-5-17
在线时间
5 小时
发表于 2011-7-22 20:02:15 | 显示全部楼层
用SPI,TF卡驱动不了,读CSD会出错,搞了很久也没有搞好,用SDIO驱动,SD卡,TF卡都可以
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-7-22 20:25:09 | 显示全部楼层
是的,我也发现了.
用那个fatfs.貌似又可以.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
发表于 2013-4-24 11:14:42 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
那是什么情况啊 原子哥?
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-24 13:56:35 | 显示全部楼层
回复【4楼】cortexM3:
---------------------------------
驱动代码的问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 22:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表