本帖最后由 wdzfd-25908 于 2018-11-15 21:11 编辑
LPC11U6X USB2.0外设的初步使用
LPC11U6X是NXP半导体基于Cortex M0+内核出的低成本MCU, 该系列芯片都包含有一个USB 模块,其功能特性如下:
• USB2.0 全速设备控制器。
• 支持10个物理(5个逻辑)端点,包括一个控制端点。
• 支持单缓冲和双缓冲。
• 每个非控制端点都支持批量、中断或同步端点类型。
• 支持从USB 活动上的深度睡眠模式唤醒和远程唤醒。
• 通过内部1.5K上拉电阻的开关来支持SoftConnect。
• 支持链路电源管理(LPM)。
• 在USB_DP和USB_DM信号线串有33欧姆端接电阻。
• 支持无晶体的低速USB。 另外该系列芯片的boot ROM包含有USB的驱动用来简化USB应用的开发,USB驱动实现了CommunicationDevice Class (CDC), the Human Interface Device (HID), and the Mass StorageDevice (MSC) device class三个类别,另外还带有Device FirmwareUpgrade (DFU) class类别。USBD device ROM stack 的框图如下图示:
NXP半导体官网有个关于USB的应用笔记: 《USBD Library for LPC1100 SeriesMCUs 》描述了USBD的基本使用,还包括一些demo代码,值的下载来研究,下载内容见附件。
下面以一个USB CDC应用DEMO来初步使用下LPC11U6X USB2.0外设。
1、把下载的TN00036.zip解压,
2、用MDK5打开TN00036\usbd_lib_lpc11u6x\prj_xpresso11u68\keil\lib_chip_11u6x下的lib_chip_11u6x.uvprojx工程文件,编译生成chip_11u6x_lib.lib库。
3、用MDK5打开TN00036\usbd_lib_lpc11u6x\prj_xpresso11u68\keil\lib_board_lpcxpresso_11u68下的lib_board_lpcxpresso_11u68.uvprojx工程文件,编译生成board_nxp_lpcxpresso_11u68.lib库。
4、用MDK5打开TN00036\usbd_lib_lpc11u6x\prj_lpc_usbd_lib\keil下的LPC_USBD_Lib.uvprojx工程文件,编译生成LPC_USBD_Lib.lib库。
5、用MDK5打开TN00036\usbd_lib_lpc11u6x\prj_xpresso11u68\keil\usbd_lib_cdc下的usbd_lib_cdc.uvprojx工程文件。
6、把工程内的调试下载工具修改为和LPC11U6X开发板上的一样,如何进行代码编译,成功后把代码下载到LPC11U6X开发板上。
7、把usb线连到J3, LPC11U6X器件的USB口上,任何连到电脑USB口,可以识别到一个虚拟串口,我的电脑为COM8, 如下图示:
8、打开串口调试助手,选择COM8,波特率为115200 bps, 一个停止位,用HEX发送,HEX显示,可以看到串口的回环数据, 如下图示:
至此,DEMO工程已经正常跑起来了,接下来可以通过读工程源码和用调试器查看代码执行情况的方式进行进一步的研究使用。
|