应用笔记 3937

建立Maxim USB库


摘要 : 本应用笔记和应用笔记3936,\"Maxim USB库\"配套使用,应用笔记3936主要描述了一个用于简化内置USB嵌入式主机和外设开发的硬件和软件系统。该系统中,MAX3421E为主机,MAX3420E为外设。本应用笔记解释了如何利用评估板(EV)设置硬件,并给出三种评估软件的方法。

绪论

结合应用笔记3936,"Maxim USB库"说明在同一个基于ARM®的硬件环境下构建USB主机(MAX3421E)和外设(MAX3420E) C程序、Keil™工程文件。该评估系统硬件包括以下部分: 可下载软件。

该应用笔记解释了如何配置本评估板的各种元器件。

其它资料及联络信息

有关MAX3420EMAX3421E的资料可以从Maxim网站下载,可以获得数据资料、关于Maxim USB库程序的其它应用笔记及其它与MAX3420E和MAX3421E相关的应用笔记、申请样品的途径。

如果对MCB2130电路板或Keil Software®、ARM软件的开发工具有疑问,请联系Keil公司:www.keil.com

硬件配置

图1. Maxim MAX3421E EVKIT-1插入Keil MCB2130电路板。
图1. Maxim MAX3421E EVKIT-1插入Keil MCB2130电路板。

图1所示为双板配置,其中蓝色的是Keil MCB2130板,包括一片Philips® LPC2138、ARM7™微控制器。LPC2138提供两个SPI™硬件单元,每个单元连接一个USB控制器。

图1中竖着放置的电路板是MAX3421E EVKIT-1。如图1所示,MAX3420E外围控制器连接到其中一个ARM SPI口,并连接到标有“3420P” (P表示外围)的USB B口(J5)。MAX3421E主机/外设控制器接到另一个ARM SPI口,并连接到标有“3421P” (J2)和“3421H” (J1)的接口(H表示主机)。由于USB库程序将MAX3421E作为主机,所以评估板中间的USB接口(J2)未使用。

MCB2130 (P1)有两个串行接口,主机程序使用其中一个将USB描述信息发送到运行终端仿真程序的PC机。终端程序,如Tera Term Pro,可以仿真终端(VT100),识别由程序发出的特殊的“换码”序列,清除屏幕并将光标移到起始位置。终端程序的设置为38400,N,8,1,没有流控制。

图1中的米色盒子和排线为Keil ULINK® JTAG下载调试器,由Keil µVision®3开发环境支持。MCB2130板带有µVision3评估程序(Keil工具箱的全功能版本)。评估板将程序代码限制在16kB。

在双板配置中有四个USB接口,Keil MCB2130板上的USB接口只接VBUS和地。将该接口插入USB主机即可为双板系统提供5V电源。有些USB集线器可能无法提供驱动板子的足够电流,所以最好直接从PC机的备用USB口上取电。

Maxim评估板上有三个USB接口,如上所述,B口连接到MAX3420E,图1标有3420E P。MAX3421E (即可作为USB主机也可作为外设)连接到两个USB口(3421P和3421H)。这些接口将D+和D-引脚接到一起,并在某一时刻只接通一个。USB库程序不使用中间的USB口(3421P)。

MAX3420E和MAX3421E连接到ARM微控制器两个独立的SPI口。这种配置便于对同时运行同一个程序的主机和外设进行写操作,同时也能提供一个理想的USB训练和调试系统。主机可将USB请求发送给外围设备,外围设备产生响应,主机再对结果进行评估,所有操作都在一个C程序里。图1中黑色的USB线用于连接MAX3420E和MAX3421E。

Keil MCB2130板可以从Keil和其它渠道获得。上述Maxim网页提供了Keil产品的最新信息。

MAX3421E EVKIT-1结构框图

图2. MAX3421E EVKIT-1结构框图,图中椭圆阴影部分为应用程序模块。
图2. MAX3421E EVKIT-1结构框图,图中椭圆阴影部分为应用程序模块。

图2提供了两个USB控制器与USB口的连接方式(J1、J2、J5)。将36引脚插头(J4)插入Keil MCB2310开发板。本设计使用了ARM处理器两个独立的SPI端口,方便对两个USB控制器(U1和U2)独立操作。主机程序以后台方式运行(main{}中的程序),外围程序通过LPC2138 中断EINT0调用。

由于U1以主机方式操作,系统必须给USB A口(J1)提供电源VBUS。通过连接到J3-3的飞线,我们给评估板提供5V电源。该5V电源可以从Keil板上标有“5V IN”的测试点引出,也可以由一个实验室电源提供。U3 (MAX4793)控制VBUS的通断并提供限流。U3通过其GPO-7引脚控制VBUS给J1供电,并可检测出GPIN-0的过流(超过300mA)。

评估板上的按钮和指示灯接到两个控制器,U1驱动一个7段数码管并连接至4个按钮(PB1-PB4)。U2驱动4个LED并连接到按钮PB5至PB8。

Keil MCB2130板准备工作

图3. 将36引脚插头安装到图中红框所示区域
图3. 将36引脚插头安装到图中红框所示区域

Keil MCB2310板设计了用于安装多个2引脚和8引脚接头的区域(图3)。Maxim评估板通过一个36引脚的插头(板上已附)连接到Keil MCB2310,其中包括3.3V电源引脚、三组8引脚接头和两个GND引脚(图3红线区域所示)。因为Keil板上各接头间有间隙,因此在安装36引脚接头前应该将某些引脚去掉。在确信不需要的引脚已经从接头上拿掉之后再将插头安装到Keil板上。

图3显示有一个检测点(红圈,在板子的右上部分)。从这点可以引出Maxim评估板所需的5V电源。这个5V电源实际来自于Keil板上USB电源接口的VBUS引脚(图4)。

图4. 通过飞线为Maxim评估板提供VBUS。.
图4. 通过飞线为Maxim评估板提供VBUS

Keil软件安装

Keil µVision3 ARM开发软件演示版可从www.keil.com下载,与Maxim软件包一起提供的µVision3工程文件是由可下载Keil文件工具mdk303a.exe创建的。由于有两个工程文件是Keil公司在其开发环境下提供的,因此必须使用这种版本的工程文件(这两个文件并不包含在MaximUSBLab10.zip文件中)。MaximUSBLab工程文件安装在路径C:\Keil下,当安装Keil演示工具箱时,一定使用缺省安装目录C:\Keil,以保证Keil文件正确的路径。

对于Keil中mdk303a.exe工具箱而言,Keil提供的两个文件路径名为:

C:\Keil\ARM\RV30\Boards\Keil\MCB2130\Blinky\startup.s
C:\Keil\ARM\RV30\Boards\Keil\MCB2130\Blinky\retarget.c

Keil演示版工程包括很多版本的“Blinky”。一定要使用和MCB2310板相对应的文件,Maxim的软件使用MCB2310。

如果有Keil ULINK JTAG调试单元,则需要从Keil网站上下载USB驱动。Maxim程序已经使用3071.zip文件(从Keil网站上下载)检测过。在安装了演示版µVision开发软件之后,双击该文件即能安装USB驱动,将µVision3和ULINK单元连接。

安装完演示版Keil软件后,找到MaximUSBLab10文件夹并双击文件MaximUSBLab.Uv2。这样就在正确设置下打开该工程文件。点击“Rebuid All Target Files”按钮,工程文件就能编译。如果有ULINK单元并安装了USB 驱动,可以点击“Star/Stop Debug Session”按钮运行、修改和调试Maxim例程。

运行固件的三种方法

  1. 下载并查看MaximUSBLab.hex
    从Maxim网站可以下载Maxim USB库(hex)文件,它包含在应用笔记3936,"Maxim USB库,是Keil压缩工程文件的一部分。可以通过免费的插件(Flash Magic,图5所示)将hex文件下载到LPC2138闪存内,该插件可以在www.esacademy.com上获得。在使用该插件之前,核对Options/Advanced Options/Hardware Config下的说明部分。

    在Keil板上,运行Flash Magic插件时,使用P2串行接口并将J7接到ISP上。


    注意:移开J7之后S2将不再作为INT1中断源。由于Maxim 应用程序将INT1用于其它目的,可以把J7放在ISP上。


    图5. Flash Magic用于MCB2310的典型设置
    图5. Flash Magic用于MCB2310的典型设置

    图6. 首先设置选项
    图6. 首先设置选项

  2. 调试和修改(受限制)
    如果有Keil ULINK JTAG单元,则可编译Maxim示例代码,通过JTAG接口下载并调试它。也可以设置断点并单步调试代码。这是一种快速学习USB的好方法——研究并修改工作主机和/或外围设备代码,以满足我们的目的。

    用于ARM的演示版Keil µVision3拥有µVision3的全部功能,代码大小被限制在16kB。Maxim USB库工程文件(MaximUSBLab.Uv2)在“Thumb only”模式下编译,以保证该工程代码的容量在限制范围内。

  3. 完全开发
    对于正式开发工作,建议购买全功能版Keil µVision3 ARM工具箱。这样能不受16kB的限制,适用于更广泛的应用程序(高达512kB的LPC2138闪存)。