2013年9月26日 星期四

孫小毛USB專題週記7

分配完工作的宜靜怕小毛又變成超人氣神隱美少男讓大家狂call,就在解散之前讓大家仔細想一想並在隔天討論一下安排的工作有沒有問題。

XXXXXX

「回去仔細想了一下老師的話,之前我們真的沒有學到什麼東西,最多只是提升工具的使用熟練度和原廠範例程式的熟悉度而已。」小毛好像突然精氣神都回復到滿,非常激動地講著「難怪之前家聚的時候向學長請教未來的生涯規劃時,學長也說不清楚」

「我想通了,我們應該趁實作題目很小的情況下從頭打造一套屬於我們自已的系統,用以檢驗我們大學前三年到底學得怎樣。宜靜同時妳也可以嘗試真正PM的工作。」

「我也是這麼覺得,上個月我們雖然一下就把東西做出來了,但心裡總覺得很空虛不知道到底學到了什麼,網路上查到關於PM的資料大部份也都是一堆名詞和術語,不知道實務上到底要怎麼做。」宜靜無奈地說

「我早就說沒那麼簡單吧,上次我報告的時候就只會照著唸一堆術語和數字而已,完全不知道我唸的術語是什麼意思耶!我也是要回去深入研究一下那600多的USB 2.0規格書」大頭心裡直想著這專題大概要被當掉了

「看樣子你們二人都還要再去找資料,那這一輪就照昨天分配的進度由我先拿開發板來實驗囉,下週我會在小組內報告將我的實驗筆記心得與你們分享,之後再讓你們報告計畫、軟體、技術規格吧」小毛說

「聽起來很不錯就這麼辦吧」就在大家取得共識之下大家各自又回去了

XXXXXX

「以前我修微算機應用設計的時候也是用8051的MCU,也有做一個期末作業要用RS232傳資料到電腦上啊,USB也是一種傳資料的界面,應該沒有差太多吧,我先來想想看以前怎麼學RS232的再把名詞改掉應該就可以了吧,USB也只不過是個傳輸界面而已,有什麼困難的?」小毛一直覺得USB沒什麼了不起的「就依以前的經驗來做吧」

  1. 建立一個空程式
  2. 時脈和電源設定
  3. 週邊模組設定
  4. 辨別硬體狀態
  5. 存取緩充區

「perfect! 100分啦」小毛就這樣計畫著

XXXXXX

「難道是神安排我要跟正妹通電話嗎?怎麼datasheet看來看去都看不懂,廠商根本在騙人,這IC難用死了,跟我學的8051完全不一樣嘛,也好,趁機跟正妹通個電話......嘿嘿」

「喂,請問是正妹嗎,我是之前去參加研討會的XX大學小毛,我覺得妳們的8051超級複雜的都看不懂耶,跟我以前在學校學的都不一樣,可以請妳們幫我一下嗎」小毛又找到藉口打電話給正妹了

「可以啊,技術問題就交給我們的FAE副理傑夫囉,研討會上他應該有示範這些工具要怎麼使用,我幫你把電話轉給他…登等登等登等等 等等登 等等登」正妹很熟練地回應並轉接給FAE

「喂,喂,傑夫也是正妹嗎?不是正妹我可能會學得比較差」小毛才剛打去沒多久電話就被轉給工程師了

「喂益智科技您好,請問有什麼可以幫忙的嗎?」傑夫接了電話

「我想請教一下,你們的8051要怎麼設定啊,怎麼看你們8051怎麼跟我以前學的不一樣呢?的datasheet都看不懂」小毛因為沒跟正妹聊太久其實有點生氣了

「我們研討會上有示範一套軟體工具叫 configuration wizard,你可以用點選的方式來設定MCU並且產生設定程式碼哦,都不用看datasheet就可以寫了」傑夫又講解了一次研討會上講的工具

「哦,我想起來了,我先回去自己試囉」小毛覺得自己理虧就趕快掛電話了

XXXXXX

「可以從PC上接收到一串資料,但是接收到之後要幹嘛呢?不是自己講好資料的格式就好了嗎?」小毛依以前RS232的想法和廠商提供的工具軟體寫出了下面這個程式碼,但腦中浮現一大堆問題「80 06 00 01 00 00 40 00 是幹嘛的啊?不管了去唸書就交給大頭啦」

展開詳細過程請點選

孫小毛USB實驗外傳-

孫小毛USB實驗外傳-

XXXXXX

歡樂的時光總是過得很快, 一週一度的meeting時間又快到了

「小毛,USB晶片你應該能控制了吧」宜靜還是很相信小毛的能力的

「晶片控制就幾個基本步驟而已,換別家的晶片也是一樣的步驟」小毛這樣就是所謂的趾高氣昂嗎?「但是收到資料之後要怎麼處理我還沒搞清楚,這應該是大頭的專長,大頭可以教我80 06 00 01 00 00 40 00是什麼意思嗎?」

「叫你讀書不讀書,剛好我有看到, 下禮拜再向大家報告」大頭看來沒那麼耽心被當掉的樣子了

「哦,那走吧,我們進去跟老師討論囉」宜靜也如釋重負的樣子

XXXXXX

「你們有更深入掌握能不受廠商控制了嗎?」大咖教授還是很關心大家的是否有心學習

「晶片的控制我們已經掌握了,其實不難.但是解析指令及流程控制我們還要再深入研究一下」宜靜顯然已經很有把握了

「不錯不錯」大咖教授很滿意的樣子「如果沒有別的問題我們就到隔壁會議室看你們的報告吧」

XXXXXX

「老師助教還有各位伙伴大家好,」小毛依照貫例接上隨身碟跟簡報筆「這週我們開始從晶片的控制開始著手」

1.建立一個空程式

2.時脈和電源設定

3.週邊模組設定

4.辨別硬體狀態

5.存取緩充區

完整的程式

測試的畫面

80 06 00 01 00 00 40 00

「本週其他的工作主要控制晶片,但收到資料和指令要做的事我們還在研究,實驗的歷程我也寫在我的實驗記錄簿裡了」小毛很自信地報完了

「不錯,真的很用心,很其待你們接下來的成果」大咖教授再次表現出很滿意的樣子

XXXXXX

「我在研究 Plug&Play 時有看到你剛才的80 06 00 01 00 00 40 00, 剛好下禮拜可以跟大家來報告」大頭看來很輕鬆的樣子「應該沒什麼好耽心的了,而且我真的學到了很多知識」

「那太好了,現在一切都很順利地在進行,今天應該不用再討論什麼大家就可以解散了」這次的meeting也在宜靜這句的話中畫下句點了

XXXXXX

大頭下週會講什麼呢?未完待續

相關文章:

孫小毛USB專題週記6

孫小毛USB專題週記8

展開卷軸...

2013年9月19日 星期四

孫小毛USB專題週記6

「網拍買的儲犬箱收到了,先開箱試一試」小毛收到物品還蠻興奮的想「然後再拆開來研究」

XXXXXX

儲犬箱1

還沒有開箱之前先幫小汪照張相

儲犬箱2

從這個角度看起來小汪看到飼料盆非常興奮

儲犬箱3

這個角度看起來非常地無辜, 大概是肚子空空的關係

把電池裝起來試試看吧, 先檢查看看買來的東西有沒有問題. 沒問題然後再用三用電錶量一下馬達運轉時的電流. 最高大約300mA

拆機1

接下來要幫小汪開刀研究裡面的接線, 好讓我們改裝成USB可以控制的儲犬箱

拆機2

外殼的機構很簡單, 把四顆螺絲轉開即可

拆機3

小汪肚子被打開倒在地上,不知道開刀前有沒有打麻醉針啊?還是像關羽一樣有超人般的忍耐力?

拆機4

研究一下內部的接線, 把三用電錶轉到歐姆檔測量一下, 原來只要飼料盆上有東西這一組白線就會導通

拆機5

另外這裡還有一個齒輪帶動的延時開關, 飼料盤跟這個延時開關是並聯的, 用來連通馬達電源的負極

XXXXXX

「接線很簡單, 就飼料盤和延時開關二組輸入, 還有馬達負極一組輸出」 「很快就可以銲到開發板上做控制了,輸入開關就一條接IO腳,一條接地就好了. 馬達使用MOS來控制」看樣子小毛以前學微算機應用設計真的學得很好,才剛拆完就想到要怎麼做了「另外我還想用個降壓IC從USB電源供電給馬達用,剩下全部交由PC端的軟體來管了」

展開詳細過程請點選

孫小毛USB實驗外傳-

孫小毛USB實驗外傳-

XXXXXX

歡樂的時光總是過得很快, 一週一度的meeting時間又快到了

「小毛,你改得怎樣?專題的計畫我毫無頭緒」看樣子宜靜找專案管理的資料並不怎麼順利「我被網路上找到的一大堆流程給搞混了」

「硬體要怎麼接我已經想好了,系統應用我想可以跟臉書連結在一起, 例如有人按讚就讓小汪一直動一直到餵牠吃硬幣為止」小毛很有自信地說著「計畫的問題等一下可以跟老師討論嘛」

「小汪??」顯然宜靜跟大頭都很困惑

儲犬箱2

「就是它啊,我幫它取名字叫小汪啦」小毛拿出手機上的照片給宜靜跟大頭看

「原來哦,那走吧,我們進去跟老師討論囉」

XXXXXX

「你們的計畫做好了嗎?題目有確定了嗎」大咖教授還是很關心大家的進度

「我們要做一個可以跟臉書互動的玩具電子寵物,但是計畫我不知從何下手」宜靜有點害怕地實話實說「網路上找到一大堆專案管理的資料,看完了還是沒有頭緒」

「沒關係,等一下報完再一起說」大咖教授好像本來就料到了的樣子「如果沒有別的問題我們就到隔壁會議室看你們的報告吧」

XXXXXX

「老師助教還有各位伙伴大家好,」小毛依照貫例接上隨身碟跟簡報筆「這週我們開始分析玩具撲滿的線路並且開始設計電路接到我們的開發板上」

架構

「首先講解一下我們的系統架構,我們想要藉由USB來讓這個玩具撲滿與臉書互動」

「硬體部份就是想辦法將撲滿的線透過一些零件接到開發板,詳細電路等一下會報告」

「韌體就很單純地解析上面的指令來控制馬達, 或是將開關狀態回傳」

「驅動程式我們使用原廠的驅動程式」

「應用程式則是取得臉書的資訊和開關狀態後, 依照我們所定義的邏輯來下達馬達控制指令」

電路

「電路還算蠻簡單的,利用一個GPIO控制NMOS去控制馬達負極是否導通」

「另外就是將開關接到輸入的GPIO」

「本週其他的工作主要是在研究玩具撲滿,我也寫在我的實驗記錄簿裡了,今天就不耽誤大家時間報告了」小毛很快地報完了

「不錯,還蠻有創意的」

「關於計畫,我可以給你們一些建議,不要拘泥在網路上找的那些流程,期末的時候我會讓你們自己打分數當做學期成績,但是要依照下面10個項目的了解程度來打,每個項目佔10分」

    1.USB晶片的動作
    2.Plug & Play 的機制
    3.USB 效能評估
    4.USB 系統偵錯
    5.換一家USB晶片要如何上手
    6.沒有廠商給的程式庫要怎麼寫軟體
    7.Android 可以用嗎
    8.USB規格的物理意義
    9.你們來報告接的USB裝置怎麼不用裝驅動程式
    10.如何驗證USB產品

XXXXXX

「完了,我大概要被當掉了」大頭緊張地講

「題目都給我們了,我們趕快去找答案不就好了.我先開始去把USB晶片動作搞清楚」小毛淡定地講

「那小毛,就先交給你囉.然後大頭再把上次meeting被問倒的 Plug&Play 看懂來報告, 我就去看USB效能評估囉」宜靜把接下來一個月的工作分配下去了

「那今天謝謝大家的幫忙,大家就解散了」這次的meeting也在宜靜這句的話中畫下句點了

XXXXXX

小毛回去又要如何搞懂USB晶片的動作呢?未完待續

相關文章:

孫小毛USB專題週記5

孫小毛USB專題週記7

展開卷軸...

2013年9月12日 星期四

曾宜靜USB開發筆記-裝置驅動程式軟體安裝不成功

宜靜一開始試著編譯原廠範例程式的時候除了原廠不提供64位元程式庫之外(詳見曾宜靜USB開發筆記-試圖載入格式錯誤的程式),就是被驅動程式的安裝給困擾著......

這同時也是孫小毛USB專題週記5的細節展開

error2

把燒好範例程式的開發板接到PC上就一直出現上面的畫面,最後也是好不容易找出了解決的方法記在下面.

win7manager1

先點選Win7的控制台

win7manager2

再點選系統及安全性

win7manager3

再點選裝置管理員

win7manager4

找到其他裝置的 USB API 後點右點, 選擇更新驅動程式軟體

win7manager5

選擇手動尋找並安裝驅動程式軟體

win7manager6

選到 C:\Silabs\MCU\USBXpress_SDK\Driver

win7manager7

終於正常安裝好驅動程式了

win7manager8

再看一次裝置管理員, 已經可以在通用序列匯流排控制器底下看到安裝好的USBXpress Device了

如果是在WinXP 下安裝就會省下一些工夫

xp device1

在第一次接上開發板時, 系統會問是否要自動搜尋驅動程式, 這時選擇 不,現在不要

xp device2

接下來 選擇從清單或特定位置安裝

xp device3

再來一樣是選到 C:\Silabs\MCU\USBXpress_SDK\Driver

xp device4

系統就會進行接下來的所有動作

xp device5

等待一段時間之後就會出現已經安裝完成的訊息了

相關文章:

曾宜靜USB開發筆記-試圖載入格式錯誤的程式

曾宜靜USB開發筆記-初步使用Visual C# 2010 Express 控制USB

孫小毛USB專題週記5

展開卷軸...

2013年9月10日 星期二

曾宜靜USB開發筆記-試圖載入格式錯誤的程式

在順利依照曾宜靜USB開發筆記-初步使用Visual C# 2010 Express 控制USB流程完成USB軟體開發工具安裝測試前, 其實宜靜一直被 試圖載入格式錯誤的程式 這個錯誤給困擾.

這同時也是孫小毛USB專題週記5的細節展開

error1

把原廠的範例建置之後, 每次執行都會出現 試圖載入格式錯誤的程式 的錯誤而不知道該如何處置.

還好現在網路很發達, 原來是原廠所提供的SiUSBXp.dll是32位元的,而宜靜是在64位元的Win7環境下建置範例程式.

X86_1

首先使用文字編輯器 (如PSPad)打開USBXpress_TestPanel這個C#專案檔

X86_2
搜尋Platform這個字串, 並且加上畫線線的二行後存檔.

testpanel
重新建置一次程式, 修改之後真的可以正常執行了

相關文章:
曾宜靜USB開發筆記-初步使用Visual C# 2010 Express 控制USB
曾宜靜USB開發筆記-裝置驅動程式軟體安裝不成功
孫小毛USB專題週記5

展開卷軸...

曾宜靜USB開發筆記-初步使用Visual C# 2010 Express 控制USB

宜靜從Silicon Labs網站下載了最新的USBXpress 4.0後還是不知道要如何使用Visual C# 2010 Express來控制USB. 參加研討會時原廠的工程師也只是一直強調USBXpress 非常方便而已, 在沒有人可以協助的情況下宜靜只好靠自己了.

這同時也是孫小毛USB專題週記5的細節展開

首先連上Silicon Labs網站上的USBXpress網址可以把USBXpress下載下來

usbxpress1

下載回來後, 點選install_USBXpress_SDK來安裝USBXpress

usbxpress2

安裝的過程也是非常地自動化, 不需要特別了解什麼, 就一直選下一步就好了.

如果還沒有PC上的軟體開發工具, 可以到微軟的官方的Visual Studio 2010 Express下載網址下載免費的軟體開發工具

VCSExpress1

下載下來之後就先把Visual C# 2010 Express安裝起來, 安裝的過程也是非常自動化

VCSExpress2

安裝完之後就可以直接使用了, 不過只能使用30天. 我們可以透過向免費微軟註冊這個小動作來獲得長期使用的權利.

VCSExpress3

點選 說明 下的 註冊產品就可以開始註冊的動作了

VCSExpress4

接下來點選 線上取得註冊金鑰

VCSExpress5

沒想到現在MSN帳號還有它的用途

VCSExpress6

再來就是把自己的個人資料填好送出即可

VCSExpress7

送出之後就會得到一組產品金鑰, 把金鑰複製下來備用

VCSExpress8

再回來把金鑰貼上再按下立即註冊就完成了

VCSExpress9

再重新進來看一下註冊訊息, 已經完成註冊手續可以長期使用Visual C# 2010 Express了

TestPanel1

再來我們開始原廠的範例程式來試試看是否安裝成功, 但原廠沒有文件說明C#的程式放哪.

在安裝USBXpress的目錄下找到了一個範例位於C:\Silabs\MCU\USBXpress_SDK\Examples\TestPanel\Host\Windows\VC2005\USBXpress_TestPanel

TestPanel2

點選USBXpress_TestPanel 這個Visual C# project檔之後,Visual C# 2010 Express會先將原廠所提供的舊版範例程式轉換成新版的格式, 下一步給它按下去就對了.

TestPanel3

轉換好之後, 就可以先點選 偵錯 下面的 建置方案 , 先來試試看我們安裝的工具是可以正常編譯原廠的程式

TestPanel5

在測試執行檔之前還要將SiUSBXp.dll複製下來

TestPanel7

再將剛複製的SiUSBXp.dll 貼到應用程式所在的目錄

TestPanel8

執行剛才所建置出來的應用程式

TestPanel9

看起來一切都正常了

TestPanel10

按下開發板的按鈕, PC上也會跟著改變按鍵指示

到這裡為止, 應該軟體開發工具算是可以正常使用了.也可以修改原廠的範例程式來玩玩了

相關文章:
曾宜靜USB開發筆記-試圖載入格式錯誤的程式
http://top.ampbb.net/2013/09/64-usb.html
孫小毛USB專題週記5

展開卷軸...

2013年9月8日 星期日

孫小毛USB專題週記5

「我記得在研討會時原廠的工程師說Silicon Labs已經提供了一個很簡單的程式庫叫USBXpress」宜靜對正妹的興趣沒有很大,在原廠技術研討會很專心地聽,不過聽完還是要實際動手做才會發現問題「網頁上顯示4.0版之前的USBXpress不再維護了,那就下載USBXpress 4.0來吧」

「奇怪,怎麼沒有Visual C#如何控制USB的說明文件呢?」宜靜返覆地在原廠網站和抓下來的USBXpress中找如何Visual C# 2010 Express就是找不到「原廠的工程師說有支援Visual C#啊而且在研討會上說原廠的AN169有很詳細的說明,我怎麼都看不到什麼說明啊!?算了,自己去每個目錄慢慢找找看吧」

XXXXXX

API Functions

「終於找到了原來在SiUSBXp.cs裡,對照AN169裡的API functions列表一起來看就清楚多了,開始來連上電路板吧」宜靜一邊參考範例程式一邊測試小毛給她的開發板,出了一些問題要找小毛也找不到「呼,花了三天總算都試好了,內容到是沒有什麼困難,都是在處理USB和編譯器的問題.」

展開詳細過程請點選

曾宜靜USB開發筆記-初步使用Visual C# 2010 Express 控制USB
曾宜靜USB開發筆記-試圖載入格式錯誤的程式
曾宜靜USB開發筆記-裝置驅動程式軟體安裝不成功

XXXXXX

歡樂的時光總是過得很快, 一週一度的meeting時間又快到了

「宜靜,妳試的結果如何?」小毛神隱了一週,要meeting前又突然出現了

「你還敢說?你到底灌了什麼測試程式?我根本不能用,最後只好自己再灌新的程式進去」看得出來宜靜現在很火

「就IDE裡附的範例啊,我用他PC上的程式可以用啊」小毛一臉無辜的樣子

「那個不行啦,要灌USBXpress裡附的啦」宜靜平靜了些

「我們都才剛學而已,很多不懂的很正常的啦.進去找大咖教授囉」大頭看氣氛好一點就提醒大家不要遲到了

XXXXXX

「這週你們進展如何?決定成品的題目了嗎?」大咖教授先問大家的進度

「這週我們試著學習如何在PC上控制USB裝置,等一下也會將心得跟老師報告.實作的成品我們想要改裝一個玩具變成具有互動性的電子寵物」

「嗯,我的好奇心都被引發了,真希望能早點看到成果.」大咖教授看起來很滿意的樣子「如果沒有別的問題我們就到隔壁會議室看你們的報告吧」

XXXXXX

「老師助教還有各位伙伴大家好,」宜靜將他的USB隨身碟和大頭買的USB無線翻頁雷射筆接收器插入會議室的電腦後開始做簡報「這週我們大部份的時間都花在試著打通從PC到電路板的資料通路,比較沒有需要引證的資料程理論.我將會把我這週所體會的心得跟大家分享」

usb sw develop mind map

「依我們這組的慣例,一開始先請大家看一張心智圖」宜靜開始報告「這週我的心得就是不管在開發哪一種軟體,除了功能外最重要的一步就是把界面定清楚」

「跟人互動的應用程式當然就是要定好人機界面,提供服務給應用程式的驅動程式則要把應用程式界面(API)定義好供應用程式呼叫,韌體則是要把控制硬體的方式和接腳弄清楚」

api example

「我舉個Silicon Labs的例子,他們提供的USBXpress驅動程式就把每個method 或 function 的功能和傳入傳出變數的意義及型態詳列於文件當中,對開發應用程式的人來說只要按照這份文件來呼叫就好了,剩下的細節就可以乎略不管」宜靜換頁接著說

data flow

「還是以Silicon Labs的文件來說明,上面這個資料流模型中每個方框都是獨立的系統,方框跟方框間必是各自獨立的.大家只要專注在自己負則的方框裡就好了.這樣可以讓各層面的負責人員發揮最大的創意而不用一直重覆發明輪子」

「這是我今天要跟大家分享的心得, 其餘的時間大部份都是實作的細節, 我有記錄在我的開發筆記本裡, 有興趣可以跟我借去看今天就不耽誤大家時間了, 謝謝各位」宜靜很快地報告完

「關於不用重覆發明輪子所以不用了解別的層面的細節我有點不同的見解」大咖教授聽完後給了一些意見「專案通常會在比較受限的平台上執行,可以儘量整合現有的系統當然最好.但如果今天你是賣軟體的產品給一般的使用者去安裝並執行,如果對驅動程式掌握在別人手上使用者出了問題還是來找你客訴,這時如果能對驅動程式細節掌握較清楚就能儘快處理而不用轉給原廠處理了」

「做專題沒有什麼標準答案,前面只是我自己的看法大家可以互相交換一下心得」

「老師說的很有道理,我這禮拜花了很多時間在處理64位元作業系統的問題,我都寫在筆記本裡了.還好現在網路很發達很快就可以找出問題所在,不然原廠大概也沒什麼空來理我吧」宜靜回應大咖的想法

XXXXXX

「哇宜靜妳真的很強耶,文件不清楚都有辦法搞定」大頭也不忘讚提一下宜靜

「剛好有機會多學一些新的東西,覺得很新奇自然就會很想把問題都解決」宜靜回答

「小毛你的小狗撲滿呢?」宜靜問小毛

「我收到貨了,正在量電路和規畫如何改裝.宜靜我覺得好今天報告說做韌體要把硬體界面弄清楚很有道理哦」小毛說道

「那小毛,我把開發板先還給你去接撲滿」宜靜向大家分配接下來的工作「下週又輪到你報告了」宜靜跟大家分配下週的工作「我也再把整個專題的計畫定清楚」

「那今天謝謝大家的幫忙,大家就解散了」這次的meeting也在宜靜這句的話中畫下句點了

XXXXXX

小毛回去又要怎麼改裝撲滿呢?
未完待續
相關文章
孫小毛USB專題週記6
孫小毛USB專題週記4

展開卷軸...