SDMMC配置卡参数详解-从CMD7到ACMD6
需积分: 45 145 浏览量
更新于2024-08-06
收藏 18.87MB PDF 举报
"该资源是关于嵌入式系统中设置SD/MMC卡参数的程序代码,主要涉及到LPC178x系列微控制器的SD/MMC接口操作。内容包括禁用CMD线的开漏模式、选择卡进入传输状态、设置数据总线宽度、设置块数据大小等关键步骤。此外,还提及了E2PROM存储器和外部存储器控制器(EMC)的功能和相关操作。"
在嵌入式系统中,特别是在基于LPC178x微控制器的平台上,与SD/MMC卡的通信是常见的任务,用于存储数据或执行应用程序。资源中的程序清单8.11展示了如何配置SD/MMC卡的相关参数,以确保正确、高效地与卡进行交互。以下是这些参数的详细说明:
1. **禁止 CMD 线的开漏模式** (`SdHal_OpenDrainCmd(sds, 0)`): 这一步是将CMD线设置为推挽模式,确保命令信号的清晰无误。开漏模式允许线路在未驱动时处于高阻态,但在此场景中,需要确保命令传输的直接性。
2. **进入传输状态** (`SdCmd_Select_Card(sds)`): 发送CMD7命令使SD卡进入传输状态,这使得控制器可以与选定的卡进行数据交换。
3. **设置数据总线宽度** (`SdCmd_Set_Bus_Width(sds, x)`): 这一步根据卡片类型和系统配置来调整数据总线的宽度。ACMD6命令(如果必要)用来设置卡为宽数据总线(1位或4位)或者单数据总线模式。对于SD卡,可以支持1位和4位数据总线,而MMC卡通常仅支持1位。
4. **设置块数据大小** (`SdCmd_Set_BlockLen(sds, SD_BLOCKSIZE)`): 发送CMD16命令来设定每个数据块的大小,通常是512字节。这是SD/MMC协议的标准块大小,对于读写操作至关重要,因为它定义了每次传输的数据量。
除了SD/MMC卡的配置,资源中还提到了E2PROM存储器和外部存储器控制器(EMC)。E2PROM是电可擦除可编程只读存储器,常用于存储配置信息或非易失性数据。其特性包括可重复编程、长久保存数据等。EMC是微控制器中的一个重要组件,用于控制和管理与外部存储设备(如SD卡、SRAM、DRAM等)的通信,确保数据的高速、可靠传输。
5.16章节介绍了E2PROM存储器的描述、特性、寄存器描述以及操作方法,涵盖了如何读写E2PROM的基本流程。5.17章节则概述了EMC的功能,包括其提供的特性,这对于理解如何配置和使用外部存储器以扩展系统的存储能力至关重要。
这份资源提供了关于LPC178x微控制器上SD/MMC卡操作的实践代码和相关外围存储器的理论知识,对嵌入式系统开发者来说是很有价值的参考材料。
2013-02-15 上传
2022-06-20 上传
2019-02-18 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-06 上传
沃娃
- 粉丝: 31
- 资源: 3965
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫