結合應用筆記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閃存)。 |