線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5618
推到 Plurk!
推到 Facebook!

EZ USB韌體自動下載及ISO端點傳輸實驗

 
wjhsu
初階會員


發表:9
回覆:32
積分:48
註冊:2004-06-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-06 10:17:12 IP:61.219.xxx.xxx 訂閱
各位好, 最近在玩FX2LP (CY7C68013A), 因為懶得每次手動用CyConsole.exe下載hex檔,
所以寫了一個自動下載的程式(順便練功), 大致說明如下:
附件解開後有兩個目錄, 分別代表兩個專案...

A.\EZ_USB_AutoLoader\
功能:
雖然可以用外掛EEPROM的方式, 讓EZ-USB自動重新列舉並下載HEX檔, 不過還是要經過一些
手續, 對韌體開發中而言, 不是很方便(主要是我也沒試過...),所以就想寫個這樣的程式...
%%自動偵測EZ-USB裝置, 然後自動開啟CyConsole.exe, 並下載指定的Hex檔%%

說明:
1. 這個程式可以單獨執行(自動下載HEX檔), 或將主要的TFrame物件 "frAutoLoader", 加到自己的BCB專案中
當偵測到指定的裝置時, 就可以用frAutoLoader裏的Device物件, 對Endpoint做IN,OUT(可以參考另一個專案)
2. 對BCB Source Code有興趣的人, 說明一下:(不想看的就跳過吧...)
這個專案有兩個主要的類別, tComponent 及 TAutoLoader
a. tComponent及它的衍生類別:
這是用來"玩"其它人程式所用的類別, 主要是用Form上面各元件的位置, 取得它的Window Handle,
然後讓程式可以模擬人的操作, 此專案就是用它來啟動CyConsole.exe並找到 鈕...
要玩新其它人的程式,在第一次使用前, 要先用tForm::SaveConfiguration()來產生一個Form的資訊檔 "FormData_xxxx.ini"
然後繼承tForm, 並且Implement函式ConfigureForm(HWND TopForm, TStringList *List), 裏面主要就是
用tComponent::FindHandle(TopForm,List,index);來找到指定元件的Handle, 而index就是剛剛所提Form資源檔裏的索引值

可以參考TAutoLoader.h裏 TCyConsole 及 TCyInterface類別的用法...

** 雖然也可以用FindWindow()來找Handle, 不過對於沒有Caption或藏在Parent裏的元件, 就沒用了...所以統一用位置來找**

b. TAutoLoader(BCB的TFrame類別)
這主要是利用Cypress的CyAPI.lib提供的功能來偵測EZ-USB, 偵測到之後, Open它,
然後利用tForm的衍生類別TCyConsole及TCyInterface來開啟CyConsole.exe並自動下載指定的hex檔(模擬手按鈕)

B.\ImageRetriever\
功能:
這個最終是要用FX2LP的SlaveFIFO取得外部的CMOS影像, 不過現在還沒完成,
目前只是在實驗FX2LP的Isochronous端點的傳輸功能, 有一點成功...

說明:
這個專案將上面的frAutoLoader(TFrame物件)嵌到MainForm裏, 然後用它來自動偵測FX2LP, 並自動下載Hex檔,
當找到之後, 取得AutoLoader->Device物件, 然後用它來完成Endpoint的操作...

現在實驗的功能如下 (*** 要將PA0及PA1接腳接在一起 **):

1. PC端EP8(Bulk)送一個0到FX2LP ->
2. FX2LP收到後讓PA1=0(產生INT0的負緣中斷)->
3. 在INT0的中斷函式裏設一個Send旗標 ->
4. 在TD_Poll()裏收到Send旗標後, 填滿EP2的Buffer(值每次累加1), 並commit到SIE
5. PC端接收到EP2(ISO)的資料後顯示在Memo

實驗結果:
1. 重新插拔usb, 讓程式自動下載HEX檔, 或按下Reconnect後, 都可以如預期的動作
(按一下bbIO, 收到1024Bytes的資料)
2. 若用手動再下載一次Hex檔, 動作會怪怪地, 變成要"按二下", 才會收到資料??
但資料順序也沒亂掉....
3. 所以若Hex檔修改後, 最好重新插拔一下USB, 然後下載Hex檔
附加檔案:48489e28b08ef_EZ_USB.rar
系統時間:2024-05-16 10:21:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!