SDMMC配置卡参数详解-从CMD7到ACMD6

需积分: 45 28 下载量 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卡操作的实践代码和相关外围存储器的理论知识,对嵌入式系统开发者来说是很有价值的参考材料。