USB设备控制器初始化详解与应用

需积分: 0 84 下载量 99 浏览量 更新于2024-08-10 收藏 5.26MB PDF 举报
"USB设备控制器初始化及LPC23XX相关知识" 本文主要讲解了USB设备控制器的初始化过程以及如何操作LPC23xx系列微控制器的USB功能。LPC23xx是由NXP(原飞利浦)生产的一系列基于ARM7TDMI-S内核的微控制器,适用于嵌入式系统设计。 USB设备控制器初始化的关键步骤如下: 1. **使能设备控制器**: 通过设置电源控制寄存器(PCONP)中的PCUSB位,可以开启LPC23xx的USB设备控制器。 2. **配置PLL和时钟分频器**: 需要调整锁相环(PLL)和时钟分频器,确保生成48MHz的usbclk以及适合CPU操作的cclk频率。为了保证USB控制器的同步逻辑正常工作,cclk的最小频率应为18MHz。 **USB通信中的关键概念**: - **清空缓冲区寄存器**: 表13.68描述了清空缓冲区寄存器的位,其中PO位表示Packet Over-written。当PO位为0时,表明控制端点EP0之前接收的数据包未被覆盖;为1时,则表示被后续的SETUP包覆盖。 - **确认缓冲区命令**: 当CPU向IN缓冲区写入数据后,需要发送确认缓冲区命令(0xFA),通知硬件缓冲区准备就绪,等待USB传输。内部的Buffer_Full标志会因该命令被置位,并在数据发送完成后清零,表明缓冲区为空。 - **控制端点限制**: 对于控制IN端点,如果OUT缓冲区的PO位被置位或存在待处理的SETUP包,就不能确认IN缓冲区的有效性。一旦收到SETUP包,已确认的缓冲区将失效。 - **从模式操作**: 13.12章节详细阐述了在从设备模式下如何执行各种操作,包括确认缓冲区命令的具体应用。 此外,资料还提供了广州周立功单片机发展有限公司的相关信息,这是一家提供微控制器解决方案和技术支持的公司。如果你在使用LPC23XX或其他微控制器时遇到问题,可以通过提供的联系方式获取帮助。 总结来说,这篇教程深入浅出地介绍了USB设备控制器的初始化流程,特别是LPC23xx系列微控制器的USB功能,同时强调了在USB通信中关于数据缓冲区管理的重要细节。这对于理解和实现基于LPC23XX的USB设备驱动程序开发至关重要。