LPC178x/177x微控制器MCI数据发送详解

需积分: 45 28 下载量 8 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
本文档主要讨论了LPC178x/177x系列Cortex-M3微控制器在MCI(MultiMediaCard Interface)模块中的数据发送方法,特别是涉及到了中断服务程序和数据交换机制。同时,还介绍了与SD卡交互的两个关键函数:SdHal_BeforeWriteBlock()和SdHal_WriteBlock()的实现细节。 在LPC178x/177x微控制器中,MCI中断服务程序是数据传输的核心部分,它与主程序之间的通信是通过一个名为lpc_mci的结构体全局变量来完成的。这个结构体扮演着数据交换的桥梁角色,确保中断处理和主程序间的数据同步。 SdHal_BeforeWriteBlock()函数在写入单个数据块(CMD24)或调用SdHal_WriteBlock()之前执行,主要负责初始化写操作的相关设置。函数中,首先设置了LPC_MCI的MASK0寄存器,仅启用TX中断(DATA_TX_INT_MASK),这样当数据发送完成时,系统可以及时响应中断。接着,清除清零寄存器的所有标志(LPC_MCI->CLEAR = 0x7FF),确保没有遗留的中断状态影响新的数据传输。然后,将数据控制寄存器(LPC_MCI->DATACTRL)清零,以准备新的数据传输。最后,设定DATATMR寄存器,设置写入数据的超时值(sds->timeout_write),以防止因长时间未接收到响应而导致的死锁。 标签"LPC178x下册"表明文档内容可能来自于一本关于该系列微控制器的上下册教材或者技术手册,涵盖了更深入的硬件接口和外设操作。 在提供的部分内容中,提到了5.16章节关于E2PROM存储器的描述,包括其功能、特性、寄存器描述以及操作方法。E2PROM是一种非易失性存储器,可以在不供电的情况下保存数据,常用于存储配置信息或固件更新。而5.17章节则涉及到外部存储器控制器(EMC),这是用于管理与外部设备(如RAM、闪存等)通信的关键模块,概述了其功能和特性。 此资源主要涵盖了LPC178x/177x微控制器的MCI模块在SD卡操作中的应用,以及E2PROM和EMC的相关知识,对理解这些硬件接口的编程和使用具有重要指导价值。