欣寶科技(上海)有限公司網标
欣寶科技(上海)有限公司
設爲首頁
聯系站長(cháng)
加入收藏

首 頁 公司動态

産品信息

芯片銷售

技術開發

資料下(xià)載

客戶服務

聯系我們

     

當前位置:

>> 技術開發 >> 技術討(tǎo)論
技術開發 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SY2100 EZ-USB開發使用(yòng) (0) (1) (2) (3) (4) (5)
   
EZ-USB程序設計應用(yòng)舉例
 

這(zhè)裏隻是簡單介紹一些例子,在examples目錄裏有更多(duō)的(de)實例。

 
1. 塊傳輸測試(ezbulk.hex)  

這(zhè)是一個(gè)用(yòng)彙編語言編寫的(de)快(kuài)傳輸測試的(de)例子,使用(yòng)端點2 IN和(hé)OUT來(lái)進行快(kuài)傳輸。有關用(yòng)C語言編寫的(de)快(kuài)傳輸測試的(de)例程請參閱14.2.5節和(hé)14.5.6節。該程序中首先用(yòng)64至1的(de)遞減計數器的(de)值填充端點2 IN緩沖區(qū),保持對(duì)端點2 IN和(hé)OUT傳輸的(de)計數,對(duì)端點2 OUT接受到的(de)數據不作任何處理(lǐ),但隻改變端點2 IN緩沖區(qū)的(de)前倆個(gè)字節,其中第一個(gè)字節(0)用(yòng)端點2 IN傳輸次數的(de)計數值代替,第二個(gè)字節(1)用(yòng)端點2 OUT傳輸次數的(de)計數值代替。

使用(yòng)控制面闆進行測試的(de)步驟如下(xià):
* 下(xià)裝程序。既可(kě)以Keil的(de)集成環境,也(yě)可(kě)以用(yòng)控制面闆的(de)Download按鈕來(lái)下(xià)載..\cypress\usb \Examples\EzUsb\ EzBulk_asm\ezbulk.hex文件。
* 設置Interface o, alternate aetting 1。确定EP2端點使用(yòng)最大(dà)包長(cháng)度64字節,按Get Pipes來(lái)更新設置。
* 在塊傳輸按鈕條中選擇端點2 IN,單擊塊傳輸按鈕,可(kě)看見64到1遞減計數的(de)64個(gè)字節。
* 再次單擊塊傳輸按鈕以執行另一個(gè)EP2 IN傳輸,現在除了(le)字節0的(de)數值發生了(le)變化(huà)外,其它的(de)數值均相同。字節0用(yòng)來(lái)指示IN傳輸的(de)次數,每發生一次IN傳輸,其計數值加1。
* 在塊傳輸按鈕條中選擇端點2 OUT,單擊塊傳輸按鈕,發送64個(gè)字節到EP2OUT,該數據被忽略。
* 選擇端點2IN,單擊塊傳輸按鈕,發現第二個(gè)字節的(de)數值發生了(le)變化(huà),字節1用(yòng)來(lái)指示OUT傳輸的(de)次數,每發生一次OUT傳輸,其計數值加1。

該程序使用(yòng)查詢法,不斷地對(duì)端點忙位進行查詢。比較好的(de)方法是中斷向量法。程序清單如下(xià)。

 
下(xià)載 ezbulk.hex
 
2. 利用(yòng)塊端點對(duì)進行環路測試(ep_pair.hex)  

該程序使用(yòng)端點2和(hé)端點3組成端點對(duì),并将主機發送到端點2 OUT緩沖區(qū)的(de)一組數據傳輸到端點2 IN緩沖區(qū),在由主機讀回。程序采用(yòng)C語言編寫,并使用(yòng)EZ-USB的(de)固件函數庫和(hé)程序框架。通(tōng)過控制面闆可(kě)下(xià)載ep-pair.hex文件到EZ-USB 8501的(de)内部RAM中并運行。

複位開發闆上的(de)Reset按鈕; 用(yòng)Download按鈕下(xià)載..\cypress\ usb\ examples\ ep_pair.hex固件; 單擊Get Pipes按鈕; 選擇端點2Out管道,Length=64,Hex Bytes參數爲8,單擊Bulk Trans按鈕,64個(gè)字節的(de)數據0x08被發送出去; 現在我們強制在usb總線上出現錯誤,怎麽辦?很簡單,隻需返回32字節的(de)數據,而ep_pair總是要發送64個(gè)字節的(de)數據,這(zhè)将違反USB協議(yì),導緻錯誤發生。選擇端點2 IN管道,Length=32,單擊BulkTrans按鈕。 單擊URB Stat按鈕,将獲得(de)當前狀态下(xià)的(de)詳細信息。

将Length改回到64,選擇端點2 OUT管道,Length=64,Hex Bytes參數爲8,單擊Bulk Trans按鈕。
選擇端點2IN管道,Length=64,單擊Bulk Trans按鈕。這(zhè)時(shí)會出現如圖所示的(de)出錯信息,因爲管道已經處于stall狀态;
在Reset Pipe的(de)Pipe條目中選擇0:Endpoint 2 IN,然後單擊Reset Pipe按鈕清除該管道的(de)stall條件,使得(de)設備重新恢複正常。

 
下(xià)載 ep_pair.hex
 
3. USB同步傳輸(eziso.hex)  

這(zhè)是一個(gè)很簡單的(de)同步傳輸的(de)例子,用(yòng)彙編語言編寫。程序從端口A,B和(hé)C讀取數據,通(tōng)過EP8IN連續發送5個(gè)字節的(de)包:
;字節0:幀計算(suàn)器H
;字節1:幀計算(suàn)器L
;字節2:端口A引腳
;字節3:端口B引腳
;字節4:端口C引腳

通(tōng)過該程序,可(kě)以學會如何傳輸I/O端口的(de)數據到同步端點緩沖區(qū)EP8IN,以及如何采用(yòng)自動地址指針。爲了(le)便于理(lǐ)解,程序未使用(yòng)中斷系統,代替以查詢SOF位來(lái)探測是否有SOF令牌到達。
使用(yòng)控制面闆的(de)步驟如下(xià):
(1) 下(xià)載..\Cypress\usb \examples\ezusb\eziso_asm\eziso.hex文件;
(2) 在Iso Trans欄設置:
PiPe=7: Endpoint 8 IN
PktCount=1
PktSize=5
BuffCount=1
FrmPerBuff=1
單擊Iso Trans按鈕多(duō)次,幀計數器值和(hé)24個(gè)輸入引腳的(de)值将顯示在數據窗(chuāng)口。

 
下(xià)載 eziso.hex
 
4.Vendor 專用(yòng)命令程序(Vend_ax.hex)  

通(tōng)過EZ-USB控制面闆的(de)download按鈕可(kě)下(xià)載該程序到EZ-USB開發闆上運行。它主要解釋執行vendor的(de)幾個(gè)命令:
--A0下(xià)載:
--A2讀取EEPROM;
--A3讀取外部RAM;
--A4設置IC地址;
--A5讀取IIC的(de)類型(1字節或2字節);
--A6讀取芯片版本信息;
--A8重枚舉。

該固件程序是基于EZ-UEB固件框架開發的(de)。

 
下(xià)載 Vend_ax.hex
 
5、ISO流傳輸程序(isostrm.hex)  

該程序由3個(gè)部分(fēn)組成:基于wendows的(de)test應用(yòng)程序(isostrm.exe)、EZ-USB通(tōng)用(yòng)目的(de)驅動程序GPD(ezusb.sys)和(hé)執行簡單的(de)同步傳輸的(de)EZ-USB固件(isostrm.hex)。主要目的(de)是驗證使用(yòng)GPD執行ISO流的(de)能力。ISO流使用(yòng)下(xià)面的(de)IOCTL:
IOCTL_EZUSB_START_ISO_STREAM
IOCTL_EZUSB_STOP_ISO_STREAM
IOCTL_EZUSB_READ_ISO_BUFFER

test應用(yòng)程序用(yòng)來(lái)啓動或停止ISO流,Start Read Thread按鈕啓動流傳輸,調用(yòng)IOCTL_EZUSB_READ_ISO_BUFFER,并保持對(duì)讀出包的(de)計數,因爲ISO包的(de)第一個(gè)字節是遞增計數的(de),所以可(kě)以判斷出是否有包丢失,記錄丢失的(de)包。 Isostrm.exe使用(yòng)控制面闆裝入isostrm.hex到USB外設,然後單擊Start Iso Stream 按鈕,啓動ISO流,再單擊Start Read Thread按鈕,開始連續讀一個(gè)ISO流,等待一會兒(ér),最後單擊Stop Iso Stream按鈕來(lái)停止ISO流的(de)傳輸。通(tōng)過Start Read Thread按鈕,将會看到數據傳輸的(de)幾個(gè)緩沖區(qū),可(kě)用(yòng)來(lái)觀看丢失的(de)幀。

Isostrm固件是基于固件框架編寫的(de),使用(yòng)單個(gè)ISO IN端點。在每一個(gè)SOF幀,複制64個(gè)字節到ISO8IN緩沖區(qū),緩沖區(qū)的(de)前2個(gè)字節是當前USB傳輸的(de)幀号,其餘的(de)是增量計數值。

 
下(xià)載 isostrm.hex
 
6 開發闆SIO-0 RS232串行口演示  

在光(guāng)盤中..\ LoopRS232V1.0.1的(de)目錄下(xià),提供了(le)開發闆SIO-0 RS232串行口演示程序。這(zhè)是一個(gè)開發好的(de)演示程序。首先,安裝.. \ LoopRS232\ Host下(xià)的(de)setup.exe程序進行安裝,應用(yòng)程序安裝後可(kě)以在Windows的(de)"開始"菜單中發現安裝好的(de)程序。用(yòng)RS232串行電纜将開發闆的(de)SIO-1口和(hé)主機COM1口相連接,啓動控制面闆程序,Download目錄..\ .. \ LoopRS232\Target下(xià)的(de)LoopRS232.hex到開發闆,然後,運行應用(yòng)程序。詳細情況可(kě)閱讀Readme。

 
下(xià)載 LoopRS232.zip
 
7 按鈕和(hé)燈  

在光(guāng)盤中的(de)...\buttons and lights\dev_io目錄下(xià),提供了(le)按鈕和(hé)燈的(de)源程序和(hé)編譯好的(de)結果。連接開發闆,啓動控制面闆程序,Download目錄\buttons and lights\dev_io\下(xià)的(de)dev_io.hex到開發闆,就可(kě)以運行程序了(le)。

按鈕和(hé)燈程序運行後,當分(fēn)别按下(xià)開發闆上的(de)F1、F2、F3、F4按鈕時(shí)将有不同的(de)現象。七段LED可(kě)顯示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。按鈕功能如下(xià):
F1:七段LED置0顯示;
F2:七段LED遞減顯示;
F3:七段LED遞增顯示;
F4:七段LED置F顯示;

 
   
   
上一頁
下(xià)一頁
 
 
 
 

 

 
 
   
 
欣寶科技(上海)有限公司網标
欣寶科技(上海)有限公司 (Shanghai Siyue Electronics Co., Ltd.)
電話(huà): 086-021-54170805, 54170905 傳真:086-021-54170905
Copyright © 2012 www.shsiyue.com All rights reserved.

經營許可(kě)證号 : 滬ICP備10001390号
信息确認