緒論
結(jié)合應(yīng)用筆記3936,"Maxim庫(kù)"說(shuō)明在同一個(gè)基于ARM?的硬件環(huán)境下構(gòu)建USB主機(jī)(MAX3421E)和外設(shè)(MAX3420E) C程序、Keil?工程文件。該評(píng)估系統(tǒng)硬件包括以下部分:- MAX3421E EVKIT-1
- Keil MCB2130
該應(yīng)用筆記解釋了如何配置本評(píng)估板的各種元器件。
其它資料及聯(lián)絡(luò)信息
有關(guān)MAX3420E和MAX3421E的資料可以從Maxim網(wǎng)站下載,可以獲得數(shù)據(jù)資料、關(guān)于Maxim USB庫(kù)程序的其它應(yīng)用筆記及其它與MAX3420E和MAX3421E相關(guān)的應(yīng)用筆記、申請(qǐng)樣品的途徑。如果對(duì)MCB2130電路板或Keil Software?、ARM軟件的開(kāi)發(fā)工具有疑問(wèn),請(qǐng)聯(lián)系Keil公司:www.keil.com。
硬件配置
圖1. Maxim MAX3421E EVKIT-1插入Keil MCB2130電路板。
圖1所示為雙板配置,其中藍(lán)色的是Keil MCB2130板,包括一片Philips? LPC2138、ARM7?微控制器。LPC2138提供兩個(gè)SPI硬件單元,每個(gè)單元連接一個(gè)USB控制器。
圖1中豎著放置的電路板是MAX3421E EVKIT-1。如圖1所示,MAX3420E外圍控制器連接到其中一個(gè)ARM SPI口,并連接到標(biāo)有“3420P” (P表示外圍)的USB B口(J5)。MAX3421E主機(jī)/外設(shè)控制器接到另一個(gè)ARM SPI口,并連接到標(biāo)有“3421P” (J2)和“3421H” (J1)的接口(H表示主機(jī))。由于USB庫(kù)程序?qū)AX3421E作為主機(jī),所以評(píng)估板中間的USB接口(J2)未使用。
MCB2130 (P1)有兩個(gè)串行接口,主機(jī)程序使用其中一個(gè)將USB描述信息發(fā)送到運(yùn)行終端仿真程序的PC機(jī)。終端程序,如Tera Term Pro,可以仿真終端(VT100),識(shí)別由程序發(fā)出的特殊的“換碼”序列,清除屏幕并將光標(biāo)移到起始位置。終端程序的設(shè)置為38400,N,8,1,沒(méi)有流控制。
圖1中的米色盒子和排線為Keil ULINK? JTAG下載調(diào)試器,由Keil μVision3開(kāi)發(fā)環(huán)境支持。MCB2130板帶有μVision3評(píng)估程序(Keil工具箱的全功能版本)。評(píng)估板將程序代碼限制在16kB。
在雙板配置中有四個(gè)USB接口,Keil MCB2130板上的USB接口只接VBUS和地。將該接口插入U(xiǎn)SB主機(jī)即可為雙板系統(tǒng)提供5V電源。有些USB集線器可能無(wú)法提供驅(qū)動(dòng)板子的足夠電流,所以最好直接從PC機(jī)的備用USB口上取電。
Maxim評(píng)估板上有三個(gè)USB接口,如上所述,B口連接到MAX3420E,圖1標(biāo)有3420E P。MAX3421E (即可作為USB主機(jī)也可作為外設(shè))連接到兩個(gè)USB口(3421P和3421H)。這些接口將D+和D-引腳接到一起,并在某一時(shí)刻只接通一個(gè)。USB庫(kù)程序不使用中間的USB口(3421P)。
MAX3420E和MAX3421E連接到ARM微控制器兩個(gè)獨(dú)立的SPI口。這種配置便于對(duì)同時(shí)運(yùn)行同一個(gè)程序的主機(jī)和外設(shè)進(jìn)行寫操作,同時(shí)也能提供一個(gè)理想的USB訓(xùn)練和調(diào)試系統(tǒng)。主機(jī)可將USB請(qǐng)求發(fā)送給外圍設(shè)備,外圍設(shè)備產(chǎn)生響應(yīng),主機(jī)再對(duì)結(jié)果進(jìn)行評(píng)估,所有操作都在一個(gè)C程序里。圖1中黑色的USB線用于連接MAX3420E和MAX3421E。
Keil MCB2130板可以從Keil和其它渠道獲得。上述Maxim網(wǎng)頁(yè)提供了Keil產(chǎn)品的最新信息。
MAX3421E EVKIT-1結(jié)構(gòu)框圖
圖2. MAX3421E EVKIT-1結(jié)構(gòu)框圖,圖中橢圓陰影部分為應(yīng)用程序模塊。
圖2提供了兩個(gè)USB控制器與USB口的連接方式(J1、J2、J5)。將36引腳插頭(J4)插入Keil MCB2310開(kāi)發(fā)板。本設(shè)計(jì)使用了ARM處理器兩個(gè)獨(dú)立的SPI端口,方便對(duì)兩個(gè)USB控制器(U1和U2)獨(dú)立操作。主機(jī)程序以后臺(tái)方式運(yùn)行(main{}中的程序),外圍程序通過(guò)LPC2138 中斷EINT0調(diào)用。
由于U1以主機(jī)方式操作,系統(tǒng)必須給USB A口(J1)提供電源VBUS。通過(guò)連接到J3-3的飛線,我們給評(píng)估板提供5V電源。該5V電源可以從Keil板上標(biāo)有“5V IN”的測(cè)試點(diǎn)引出,也可以由一個(gè)實(shí)驗(yàn)室電源提供。U3 (MAX4793)控制VBUS的通斷并提供限流。U3通過(guò)其GPO-7引腳控制VBUS給J1供電,并可檢測(cè)出GPIN-0的過(guò)流(超過(guò)300mA)。
評(píng)估板上的按鈕和指示燈接到兩個(gè)控制器,U1驅(qū)動(dòng)一個(gè)7段數(shù)碼管并連接至4個(gè)按鈕(PB1-PB4)。U2驅(qū)動(dòng)4個(gè)LED并連接到按鈕PB5至PB8。
Keil MCB2130板準(zhǔn)備工作
圖3. 將36引腳插頭安裝到圖中紅框所示區(qū)域
Keil MCB2310板設(shè)計(jì)了用于安裝多個(gè)2引腳和8引腳接頭的區(qū)域(圖3)。Maxim評(píng)估板通過(guò)一個(gè)36引腳的插頭(板上已附)連接到Keil MCB2310,其中包括3.3V電源引腳、三組8引腳接頭和兩個(gè)GND引腳(圖3紅線區(qū)域所示)。因?yàn)镵eil板上各接頭間有間隙,因此在安裝36引腳接頭前應(yīng)該將某些引腳去掉。在確信不需要的引腳已經(jīng)從接頭上拿掉之后再將插頭安裝到Keil板上。
圖3顯示有一個(gè)檢測(cè)點(diǎn)(紅圈,在板子的右上部分)。從這點(diǎn)可以引出Maxim評(píng)估板所需的5V電源。這個(gè)5V電源實(shí)際來(lái)自于Keil板上USB電源接口的VBUS引腳(圖4)。
圖4. 通過(guò)飛線為Maxim評(píng)估板提供VBUS。
Keil軟件安裝
Keil μVision3 ARM開(kāi)發(fā)軟件演示版可從www.keil.com下載,與Maxim軟件包一起提供的μVision3工程文件是由可下載Keil文件工具mdk303a.exe創(chuàng)建的。由于有兩個(gè)工程文件是Keil公司在其開(kāi)發(fā)環(huán)境下提供的,因此必須使用這種版本的工程文件(這兩個(gè)文件并不包含在MaximUSBLab10.zip文件中)。MaximUSBLab工程文件安裝在路徑C:\Keil下,當(dāng)安裝Keil演示工具箱時(shí),一定使用缺省安裝目錄C:\Keil,以保證Keil文件正確的路徑。對(duì)于Keil中mdk303a.exe工具箱而言,Keil提供的兩個(gè)文件路徑名為:
C:\Keil\ARM\RV30\Boards\Keil\MCB2130\Blinky\startup.s
C:\Keil\ARM\RV30\Boards\Keil\MCB2130\Blinky\retarget.c
Keil演示版工程包括很多版本的“Blinky”。一定要使用和MCB2310板相對(duì)應(yīng)的文件,Maxim的軟件使用MCB2310。
如果有Keil ULINK JTAG調(diào)試單元,則需要從Keil網(wǎng)站上下載USB驅(qū)動(dòng)。Maxim程序已經(jīng)使用3071.zip文件(從Keil網(wǎng)站上下載)檢測(cè)過(guò)。在安裝了演示版μVision開(kāi)發(fā)軟件之后,雙擊該文件即能安裝USB驅(qū)動(dòng),將μVision3和ULINK單元連接。
安裝完演示版Keil軟件后,找到MaximUSBLab10文件夾并雙擊文件MaximUSBLab.Uv2。這樣就在正確設(shè)置下打開(kāi)該工程文件。點(diǎn)擊“Rebuid All Target Files”按鈕,工程文件就能編譯。如果有ULINK單元并安裝了USB 驅(qū)動(dòng),可以點(diǎn)擊“Star/Stop Debug Session”按鈕運(yùn)行、修改和調(diào)試Maxim例程。
運(yùn)行固件的三種方法
- 下載并查看MaximUSBLab.hex
從Maxim網(wǎng)站可以下載Maxim USB庫(kù)(hex)文件,它包含在應(yīng)用筆記3936,"Maxim USB庫(kù),是Keil壓縮工程文件的一部分??梢酝ㄟ^(guò)免費(fèi)的插件(Flash Magic,圖5所示)將hex文件下載到LPC2138閃存內(nèi),該插件可以在www.esacademy.com上獲得。在使用該插件之前,核對(duì)Options/Advanced Options/Hardware Config下的說(shuō)明部分。
在Keil板上,運(yùn)行Flash Magic插件時(shí),使用P2串行接口并將J7接到ISP上。
注意:移開(kāi)J7之后S2將不再作為INT1中斷源。由于Maxim 應(yīng)用程序?qū)NT1用于其它目的,可以把J7放在ISP上。
圖5. Flash Magic用于MCB2310的典型設(shè)置
圖6. 首先設(shè)置選項(xiàng)
- 調(diào)試和修改(受限制)
如果有Keil ULINK JTAG單元,則可編譯Maxim示例代碼,通過(guò)JTAG接口下載并調(diào)試它。也可以設(shè)置斷點(diǎn)并單步調(diào)試代碼。這是一種快速學(xué)習(xí)USB的好方法——研究并修改工作主機(jī)和/或外圍設(shè)備代碼,以滿足我們的目的。
用于ARM的演示版Keil μVision3擁有μVision3的全部功能,代碼大小被限制在16kB。Maxim USB庫(kù)工程文件(MaximUSBLab.Uv2)在“Thumb only”模式下編譯,以保證該工程代碼的容量在限制范圍內(nèi)。
- 完全開(kāi)發(fā)
對(duì)于正式開(kāi)發(fā)工作,建議購(gòu)買全功能版Keil μVision3 ARM工具箱。這樣能不受16kB的限制,適用于更廣泛的應(yīng)用程序(高達(dá)512kB的LPC2138閃存)。
評(píng)論
查看更多