- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ALIENTEK STM32开发板 AN1302
AN1302 STM32 SDIO 的使用
本应用文档(AN1302,对应ALIENTEK 战舰STM32 扩展实验2 )将教大家如何使用STM32
的SDIO 接口来驱动SD 卡,并结合FATFS,实现对SD 卡的读写操作。
本文档分为如下几部分:
1,SDIO 简介
2,硬件连接
3,软件实现
4 ,验证
1、SDIO 接口简介
STM32F103 大容量系列(FLASH≥256K )产品都含有SDIO 控制器,ALIENTEK 战舰STM32
开发板所使用STM32F103ZET6 就属于大容量产品,带有SDIO 接口。本节,我们将简单介绍
STM32 的SDIO 接口,包括:主要功能及框图、时钟、命令与响应和相关寄存器简介等,最
后,我们将介绍SD 卡的初始化流程。
1.1 SDIO 主要功能及框图
STM32 的SDIO 控制器支持多媒体卡(MMC 卡)、SD 存储卡、SD I/O 卡和CE-ATA 设备等。
SDIO 的主要功能如下:
与多媒体卡系统规格书版本4.2 全兼容。支持三种不同的数据总线模式:1位(默认)、
4 位和8 位。
与较早的多媒体卡系统规格版本全兼容(向前兼容)。
与SD 存储卡规格版本2.0 全兼容。
与SD I/O 卡规格版本2.0 全兼容:支持良种不同的数据总线模式:1 位(默认)和4
位。
完全支持CE-ATA 功能(与CE-ATA 数字协议版本1.1 全兼容)。 8 位总线模式下
数据传输速率可达48MHz 。
数据和命令输出使能信号,用于控制外部双向驱动器。
STM32 的SDIO 控制器包含2 个部分:SDIO 适配器模块和AHB 总线接口,其功能框图如
图1.1.1 所示:
2013-03-10
ALIENTEK STM32开发板 AN1302
图1.1.1 STM32 的SDIO 控制器功能框图
复位后默认情况下SDIO_D0 用于数据传输。初始化后主机可以改变数据总线的宽度(通
过ACMD6 命令设置)。
如果一个多媒体卡接到了总线上,则 SDIO_D0 、SDIO_D[3:0]或 SDIO_D[7:0]可以用于数
据传输。MMC 版本V3.31 和之前版本的协议只支持 1 位数据线,所以只能用SDIO_D0 (为
了通用性考虑,在程序里面我们只要检测到是MMC 卡就设置为1 位总线数据)。
如果一个SD 或SD I/O 卡接到了总线上,可以通过主机配置数据传输使用SDIO_D0 或
SDIO_D[3:0] 。所有的数据线都工作在推挽模式。
SDIO_CMD 有两种操作模式:
① 用于初始化时的开路模式(仅用于MMC 版本V3.31 或之前版本)
② 用于命令传输的推挽模式(SD/SD I/O 卡和MMC V4.2 在初始化时也使用推挽驱动)
1.2 SDIO 的时钟
从图1.1.1 我们可以看到SDIO 总共有3 个时钟,分别是:
卡时钟 (SDIO_CK ):每个时钟周期在命令和数据线上传输 1 位命令或数据。对于多媒
体卡V3.31 协议,时钟频率可以在0MHz 至20MHz 间变化;对于多媒体卡V4.0/4.2 协议,时
钟频率可以在0MHz 至48MHz 间变化;对于SD 或SD I/O 卡,时钟频率可以在0MHz 至25MHz
间变化。
SDIO 适配器时钟(SDIOCLK ):该时钟用于驱动SDIO 适配器,其频率等于AHB 总线频
率 (HCLK),并用于产生SDIO_CK 时钟
文档评论(0)