建立Maxim USB库
发布时间:2010-6-24 10:09
发布者:vinda
结合应用笔记3936 (Maxim USB库)说明在同一个基于ARM的硬件环境下构建USB主机(MAX3421E)和外设(MAX3420E) C程序、Keil工程文件。该评估系统硬件包括以下部分: ·MAX3421E EVKIT-1 ·Keil MCB2130 可下载软件。 该应用笔记解释了如何配置本评估板的各种元器件。 其它资料及联络信息 有关MAX3420E和MAX3421E的资料可以从Maxim网站下载,可以获得数据资料、关于Maxim USB库程序的其它应用笔记及其它与MAX3420E/MAX3421E相关的应用笔记、申请样品的途径。 如果对MCB2130电路板或Keil软件、ARM软件的开发工具有疑问,请联系Keil公司:http://www.keil.com/。 硬件配置
图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 μVision3开发环境支持。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结构框图
由于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显示有一个检测点(红圈,在板子的右上部分)。从这点可以引出Maxim评估板所需的5V电源。这个5v电源实际来自于Keil板上USB电源接口的VBUS引脚(图4)。
Keil μVision3 ARM开发软件演示版可从http://www.keil.com/下载,与Maxim软件包一起提供的μVision3工程文件是由可下载Keil文件工具mdk303a.exe创建的。由于有两个工程文件是Keil公司在其开发环境下提供的,因此必须使用这种版本的工程文件(这两个文件并不包含在Maxim USBLab10.zip文件中)。Maxim USBLab工程文件安装在路径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软件后,找到Maxim USBLab10文件夹并双击文件Maxim USBLab.Uv2。这样就在正确设置下打开该工程文件。点击“Rebuid All Target Files”按钮,工程文件就能编译。如果有ULINK单元并安装了USB 驱动,可以点击“Star/Stop Debug Session”按钮运行、修改和调试Maxim例程。 运行固件的三种方法 1.下载并查看Maxim USBLab.hex 从Maxim网站可以下载Maxim USB库(hex)文件,它包含在应用笔记3936 (Maxim USB库),是Keil压缩工程文件的一部分。可以通过免费的插件(Flash Magic,图5所示)将hex文件下载到LPC2138闪存内,该插件可以在http://www.esacademy.com/上获得。在使用该插件之前,核对Options/Advanced Options/Hardware Config下的说明部分。 在Keil板上,运行Flash Magic插件时,使用P2串行接口并将J7接到ISP上。 注意:移开J7之后S2将不再作为INT1中断源。由于Maxim 应用程序将INT1用于其它目的,可以把J7放在ISP上。
如果有Keil ULINK JTAG单元,则可编译Maxim示例代码,通过JTAG接口下载并调试它。也可以设置断点并单步调试代码。这是一种快速学习USB的好方法——研究并修改工作主机和/或外围设备代码,以满足我们的目的。 用于ARM的演示版Keil μVision3拥有μVision3的全部功能,代码大小被限制在16kB。Maxim USB库工程文件(Maxim USBLab.Uv2)在“Thumb only”模式下编译,以保证该工程代码的容量在限制范围内。 3.完全开发 对于正式开发工作,建议购买全功能版Keil μVision3 ARM工具箱。这样能不受16kB的限制,适用于更广泛的应用程序(高达512kB的LPC2138闪存)。 |
网友评论