SY2100 EZ-USB開發(fā)使用 (0) (1) (2) (3) (4) (5) |
|
|
|
EZ-USB程序設(shè)計應(yīng)用舉例 |
|
這里只是簡單介紹一些例子,在examples目錄里有更多的實例。 |
|
1. 塊傳輸測試(ezbulk.hex) |
|
這是一個用匯編語言編寫的快傳輸測試的例子,使用端點2 IN和OUT來進(jìn)行快傳輸。有關(guān)用C語言編寫的快傳輸測試的例程請參閱14.2.5節(jié)和14.5.6節(jié)。該程序中首先用64至1的遞減計數(shù)器的值填充端點2 IN緩沖區(qū),保持對端點2 IN和OUT傳輸?shù)挠嫈?shù),對端點2 OUT接受到的數(shù)據(jù)不作任何處理,但只改變端點2 IN緩沖區(qū)的前倆個字節(jié),其中第一個字節(jié)(0)用端點2 IN傳輸次數(shù)的計數(shù)值代替,第二個字節(jié)(1)用端點2 OUT傳輸次數(shù)的計數(shù)值代替。
使用控制面板進(jìn)行測試的步驟如下:
* 下裝程序。既可以Keil的集成環(huán)境,也可以用控制面板的Download按鈕來下載..\cypress\usb \Examples\EzUsb\ EzBulk_asm\ezbulk.hex文件。
* 設(shè)置Interface o, alternate aetting 1。確定EP2端點使用最大包長度64字節(jié),按Get Pipes來更新設(shè)置。
* 在塊傳輸按鈕條中選擇端點2 IN,單擊塊傳輸按鈕,可看見64到1遞減計數(shù)的64個字節(jié)。
* 再次單擊塊傳輸按鈕以執(zhí)行另一個EP2 IN傳輸,現(xiàn)在除了字節(jié)0的數(shù)值發(fā)生了變化外,其它的數(shù)值均相同。字節(jié)0用來指示IN傳輸?shù)拇螖?shù),每發(fā)生一次IN傳輸,其計數(shù)值加1。
* 在塊傳輸按鈕條中選擇端點2 OUT,單擊塊傳輸按鈕,發(fā)送64個字節(jié)到EP2OUT,該數(shù)據(jù)被忽略。
* 選擇端點2IN,單擊塊傳輸按鈕,發(fā)現(xiàn)第二個字節(jié)的數(shù)值發(fā)生了變化,字節(jié)1用來指示OUT傳輸?shù)拇螖?shù),每發(fā)生一次OUT傳輸,其計數(shù)值加1。
該程序使用查詢法,不斷地對端點忙位進(jìn)行查詢。比較好的方法是中斷向量法。程序清單如下。 |
|
 下載 ezbulk.hex |
|
2. 利用塊端點對進(jìn)行環(huán)路測試(ep_pair.hex) |
|
該程序使用端點2和端點3組成端點對,并將主機發(fā)送到端點2 OUT緩沖區(qū)的一組數(shù)據(jù)傳輸?shù)蕉它c2 IN緩沖區(qū),在由主機讀回。程序采用C語言編寫,并使用EZ-USB的固件函數(shù)庫和程序框架。通過控制面板可下載ep-pair.hex文件到EZ-USB 8501的內(nèi)部RAM中并運行。
復(fù)位開發(fā)板上的Reset按鈕; 用Download按鈕下載..\cypress\ usb\ examples\ ep_pair.hex固件; 單擊Get Pipes按鈕; 選擇端點2Out管道,Length=64,Hex Bytes參數(shù)為8,單擊Bulk Trans按鈕,64個字節(jié)的數(shù)據(jù)0x08被發(fā)送出去; 現(xiàn)在我們強制在usb總線上出現(xiàn)錯誤,怎么辦?很簡單,只需返回32字節(jié)的數(shù)據(jù),而ep_pair總是要發(fā)送64個字節(jié)的數(shù)據(jù),這將違反USB協(xié)議,導(dǎo)致錯誤發(fā)生。選擇端點2 IN管道,Length=32,單擊BulkTrans按鈕。 單擊URB Stat按鈕,將獲得當(dāng)前狀態(tài)下的詳細(xì)信息。
將Length改回到64,選擇端點2 OUT管道,Length=64,Hex Bytes參數(shù)為8,單擊Bulk Trans按鈕。
選擇端點2IN管道,Length=64,單擊Bulk Trans按鈕。這時會出現(xiàn)如圖所示的出錯信息,因為管道已經(jīng)處于stall狀態(tài);
在Reset Pipe的Pipe條目中選擇0:Endpoint 2 IN,然后單擊Reset Pipe按鈕清除該管道的stall條件,使得設(shè)備重新恢復(fù)正常。 |
|
 下載 ep_pair.hex |
|
3. USB同步傳輸(eziso.hex) |
|
這是一個很簡單的同步傳輸?shù)睦,用匯編語言編寫。程序從端口A,B和C讀取數(shù)據(jù),通過EP8IN連續(xù)發(fā)送5個字節(jié)的包:
;字節(jié)0:幀計算器H
;字節(jié)1:幀計算器L
;字節(jié)2:端口A引腳
;字節(jié)3:端口B引腳
;字節(jié)4:端口C引腳
通過該程序,可以學(xué)會如何傳輸I/O端口的數(shù)據(jù)到同步端點緩沖區(qū)EP8IN,以及如何采用自動地址指針。為了便于理解,程序未使用中斷系統(tǒng),代替以查詢SOF位來探測是否有SOF令牌到達(dá)。
使用控制面板的步驟如下:
(1) 下載..\Cypress\usb \examples\ezusb\eziso_asm\eziso.hex文件;
(2) 在Iso Trans欄設(shè)置:
PiPe=7: Endpoint 8 IN
PktCount=1
PktSize=5
BuffCount=1
FrmPerBuff=1
單擊Iso Trans按鈕多次,幀計數(shù)器值和24個輸入引腳的值將顯示在數(shù)據(jù)窗口。
|
|
 下載 eziso.hex |
|
4.Vendor 專用命令程序(Vend_ax.hex) |
|
通過EZ-USB控制面板的download按鈕可下載該程序到EZ-USB開發(fā)板上運行。它主要解釋執(zhí)行vendor的幾個命令:
--A0下載:
--A2讀取EEPROM;
--A3讀取外部RAM;
--A4設(shè)置IC地址;
--A5讀取IIC的類型(1字節(jié)或2字節(jié));
--A6讀取芯片版本信息;
--A8重枚舉。
該固件程序是基于EZ-UEB固件框架開發(fā)的。 |
|
 下載 Vend_ax.hex |
|
5、ISO流傳輸程序(isostrm.hex) |
|
該程序由3個部分組成:基于wendows的test應(yīng)用程序(isostrm.exe)、EZ-USB通用目的驅(qū)動程序GPD(ezusb.sys)和執(zhí)行簡單的同步傳輸?shù)腅Z-USB固件(isostrm.hex)。主要目的是驗證使用GPD執(zhí)行ISO流的能力。ISO流使用下面的IOCTL:
IOCTL_EZUSB_START_ISO_STREAM
IOCTL_EZUSB_STOP_ISO_STREAM
IOCTL_EZUSB_READ_ISO_BUFFER
test應(yīng)用程序用來啟動或停止ISO流,Start Read Thread按鈕啟動流傳輸,調(diào)用IOCTL_EZUSB_READ_ISO_BUFFER,并保持對讀出包的計數(shù),因為ISO包的第一個字節(jié)是遞增計數(shù)的,所以可以判斷出是否有包丟失,記錄丟失的包。 Isostrm.exe使用控制面板裝入isostrm.hex到USB外設(shè),然后單擊Start Iso Stream 按鈕,啟動ISO流,再單擊Start Read Thread按鈕,開始連續(xù)讀一個ISO流,等待一會兒,最后單擊Stop Iso Stream按鈕來停止ISO流的傳輸。通過Start Read Thread按鈕,將會看到數(shù)據(jù)傳輸?shù)膸讉緩沖區(qū),可用來觀看丟失的幀。
Isostrm固件是基于固件框架編寫的,使用單個ISO IN端點。在每一個SOF幀,復(fù)制64個字節(jié)到ISO8IN緩沖區(qū),緩沖區(qū)的前2個字節(jié)是當(dāng)前USB傳輸?shù)膸,其余的是增量計?shù)值。
|
|
 下載 isostrm.hex |
|
6 開發(fā)板SIO-0 RS232串行口演示 |
|
在光盤中..\ LoopRS232V1.0.1的目錄下,提供了開發(fā)板SIO-0 RS232串行口演示程序。這是一個開發(fā)好的演示程序。首先,安裝.. \ LoopRS232\ Host下的setup.exe程序進(jìn)行安裝,應(yīng)用程序安裝后可以在Windows的"開始"菜單中發(fā)現(xiàn)安裝好的程序。用RS232串行電纜將開發(fā)板的SIO-1口和主機COM1口相連接,啟動控制面板程序,Download目錄..\ .. \ LoopRS232\Target下的LoopRS232.hex到開發(fā)板,然后,運行應(yīng)用程序。詳細(xì)情況可閱讀Readme。 |
|
 下載 LoopRS232.zip |
|
7 按鈕和燈 |
|
在光盤中的...\buttons and lights\dev_io目錄下,提供了按鈕和燈的源程序和編譯好的結(jié)果。連接開發(fā)板,啟動控制面板程序,Download目錄\buttons and lights\dev_io\下的dev_io.hex到開發(fā)板,就可以運行程序了。
按鈕和燈程序運行后,當(dāng)分別按下開發(fā)板上的F1、F2、F3、F4按鈕時將有不同的現(xiàn)象。七段LED可顯示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。按鈕功能如下:
F1:七段LED置0顯示;
F2:七段LED遞減顯示;
F3:七段LED遞增顯示;
F4:七段LED置F顯示;
|
|
|
|
|
|
上一頁 |
下一頁  |
|
|
|
|
|
|
|
|
|