置頂文章

想學某項MCU 撰寫技術或系統平台開發不難,只要有錢有閒(時間)就可以! 十年二十年給你無後顧之憂的專注研究,包你不成仙,至少也可成精! 要找技術解決方法或相關程式碼,這裡可能沒有,網路上到處都有。 但如果你研究討論系統技術開發與如何結合後續資源、商業模式操作可能性時, 歡迎留言討論!!這才是能改變你工程師人生的契機。

2011年5月31日 星期二

USB DIY-- 自學計畫(十)

想瞭解之前的...可以點選以下連結:
---
關於USB 自學計畫中關於HID 的應用來說,大概就剩下關於PC Host 的軟體部分,

又因為HID 是走Microsoft 標準驅動程式的,所以,在驅動程式這邊就沒啥好說,

所以,我只要稍微點出驅動程式一些現象之後,最後我會再以原廠所附的上層

應用範例程式簡單說明一下,大概就完成了整個USB 自學計畫中的HID 部分了。

關於 USB HID 的部分真的是自學計畫啦,因為第一:我之前沒有做過USB HID

的產品,這一次要逼著學USB HID 的確是因為有系統應用上的需求,所以,

就開始著手進行了。第二:當然也是希望透過這樣子的機會,剛好也可以熟悉一下

這一家對大家來可能會比較好取得的USB MCU ,如此一來,大家也比較容易可以

跟得上我的相關學習內容的解說。當然啊,透過這樣子的解說或許對您來說:

可能還是有些許沒有交代很清楚的地方,但是,對我來說,應該是足夠我進行系統

應用開發了。至於,您認為不足的地方,我說過了:我不會拿著標準規格書一一的

比對的解說給您看的,因為:這一部份,您真的要自己好好用功念書的。

如果:您自己本身無法從標準的規格書去解讀出USB HID 或相關系統應用的方法的話,

那我會認為您真的要認真的考慮一下:您自己到底要不要走這一行了。

您也不可能想說:又想幹研發工程師,但卻又沒辦法從標準規格書去消化出工作規範,

只是想一輩子最好都有長官或前輩可以罩著您?那是不可能的...因為,很簡單:

人都會老的,永遠會有年輕力壯新生代的工程師出來的...這就是現實人生。
----------------
好吧,我們就來解說一下USB HID 所對應的PC Host 的軟體一些東西,我先說明一下,

我還是只針對Microsoft 的作業系統...唉~想一下還真感慨啦,記得我剛開始寫USB DIY

系列文章時,也只不過短短幾年而已,網路所累積的閱覽人次也才二十幾萬人次。

結果:我們就看到 Apple 之 iOS 與 Google 之Andriod 兩大陣營在科技界的較勁。

反而,昔日大家所倚賴的,或是大家認為學高科技技能所必備的就業利器的Microsoft

作業平台,竟然被冷落一旁了。現在只要您翻開一些短期進修或在職進修,乃至於

所謂就業輔導課程...幾乎都快被以上兩大陣營之行動作業平台所佔據了。

這一種幾乎不可擋的趨勢:我想Microsoft 如果不敢快想出因應對策的話,不要說:

他作業系統上的應用開發程式沒有人想學啦,我想連他自己原本強大的作業系統平台

也前途堪慮。...前幾年當Google 喊出要取代微軟的口號,我還以為是痴人說夢話,

現在我也開始有點相信了,我們當然不是說:微軟會完全被取代啦,只是人們對於

他作業系統的需求也只會停留到目前階段就夠了。已經不需要升級改版,甚至認為

沒必要再做任何未來投資了,這樣子的看法與解讀,對於所謂上市櫃公司來說:

是很危險的。因為股票市場看的是『本夢比』,沒有任何前景或願景的公司,

在股票市場一定會被唾棄的。您看我們上市櫃公司裡,尤其是高科技公司遊戲規則裡,

其實有許多公司他的營收或是獲利其實都還可以過得去,但是,股價就是被晾在那。

譬如:全年EPS  1~2 元都已經算不錯了,但因為沒有願景,也只能被定位成10 左右的

本益比...股價也頂多20~30 元,萬一市場稍微有點風吹草動的,就會被連帶的打成

票面淨值的。唉~...那就更不用說:那一些沒有跟上這一波時代潮流的高科技公司的。

您自己可以去查一下那一些主要營收項目是:微控制器的高科技公司或IC 設計公司的。

不要說營收持平,光要維持損益平衡都很辛苦了,也幾乎包辦了目前類股中低價族群。

高科技界打的是腦力密集的持續戰,不行的,就自己看著辦吧!
------------



上圖應該是我所貼圖中最長的一張圖了,先不看解說。

您可以自己看得出他是什麼東東嗎?!

其實,如果您可以從裡面看出他的USB Protocol 的話,應該算很厲害了,但如果您

還能看出微軟作業系統的USB HID 驅動程式的內容的話,那就更厲害了。

我這張圖是在 Microsoft 作業系統 XP SP2 下插拔時,USB Enumeration 時節錄的。

答案是:當我們USB HID  Device 插入PC HOST 時,作業系統的內定驅動程式會看到您的

USB HID Class 的 Get Report Descriptor 所描述內容,因為:在USB HID  Class 中,

USB Device 至少一定要定義一組 Interrupt Interface。

所以,從圖上您就可以看到當我們USB HID Device好不容易回完 Get Report Descriptor 之後,

PC Host 馬上就透過Endpoint 1 (interrupt  Interface 之Endpoint )來要資料了。

根本我們自己的上層應用程式都還沒打開呢。...這完全是PC Host 作業系統的那一支

HID 底層驅動程式搞的。其實,人家這麼做也沒錯,因為HID 本來就是要定義給

像鍵盤或滑鼠這一種人機介面(HID, Human Interface Device) 的輸出入裝置用的,當然,

當您USB Device 一掛到PC Host 之後就得要馬上動作,才能符合USB plug and play 特性。

作業系統的驅動程式只負責把USB HID 的資料抓進來擺著,您上層應用程式要不要用?

那是您上層應用程式的問題。跟他作業系統無關的。

那至於多久抓一次?其實,依據的是您自己Device Interface Descriptor 所定義的。

萬一您都沒有回的話,會如何?!我有試了一下幾分鐘都不回,作業系統也沒怎麼樣。

本來在USB 規範中,其實資料傳輸本來就是In Token 與Out token ,這樣子的東西,對於

Interrupt Interface 與Bulk Interface 來說:我們光從 USB 的匯流排分析儀來看是一樣的。

所以,只要您有正常的回NAK 完成 In/Out Token ,沒有人會說您是錯的。我講過了,

您要用NAK 擋到千年、萬年的,還是屬於USB 規範內容,就算您是微軟也不能說不對啊。

只是這樣子的擋法,一直不回PC HOST資料內容的您要作什麼用?萬一您上層應用程式

跑起來要這一部份的資料時,作業系統就有可能沒辦法回您資料...您就自己看得辦吧。

好吧,我們就把這些中間的NAK 拿掉再觀察一次:


我就可以發現:雖然我們PC Host 上層應用程式沒有跑,

其實,作業系統的那一支驅動程式,還是幫我們一直抓資料的...

而我們USB DEVICE 也是一直在送資料的。這些都跟我們有沒有打開應用程式無關。

但是我們從前面那個Packet Number 看來:也好像沒有那麼規律性的時間來抓資料,

這跟我們在PC Host 中寫MFC 程式時,用那個Timer 寫程式一樣:從來沒有人會認為

這個時間是很準的啦,...好像跟我們看電腦的時間(時鐘)一樣,沒有人會相信他的誤差

是很小的。我們還是習慣再看一下時鐘會比較安心的。
-----------------------------
好了,我們已經稍微講完USB HID 的PC Host 的驅動程式的基本動作了,最後我們會交代完

在寫上層應用程式時,所會用的一些簡單的函數庫呼叫,之後,我們就又就會將這一部份的

USB DIY 自學計畫,暫時再告一段落了。當然啊,如果有什麼新發現,或值得大家在討論的

我會找機會說明的。謝謝!
(待續)



2011年5月30日 星期一

科技權利金,但是又何奈!

在科技界付出高額的權利金,是很常見的啦,反正這檔子的事,

就如同人家財務長講的,反正公司賺錢或是也懶得投資基礎科技,這種錢不算什麼,

一副付得理所當然的。也根本不會去在乎這個金額。----公司賺錢時都是這一種口氣。

在商言商嘛!只要搞財務的看法沒錯,大老闆也沒啥看法。

但是呢?對研發工程部門來說呢,就比較辛苦了,財務長付了權利金付得很爽,

研發部門就得吞得下且得消化掉這個東西。以前只有一個作業平台,都還好,

反正大家都在同一條船上。但是呢?現在有這麼多陣營?又該壓誰啊?

前兩天朋友有點感慨的說:據他瞭解,國內專門搞Apple 的APP 公司好像不多。

(朋友的看法認為是:國內工程界還是比較缺乏腦袋裡的文化,不知道做什麼APP?)

這一點就有點呼應到這一個結果了,很簡單,只要付權利金可以馬上賺錢的,

這些搞財務的都會二話不說:馬上掏錢,眼睛也不會眨一下。至於您工程部門

該如何評估?該如何執行出績效?那就是您們部門的事。那就更不用說:改採用誰的?

甚至要不要自己投資開發?這種事您就不用跟財務部門提了,他們是沒興趣聽的。

所以呢?結果就是這些國外大廠也落得輕鬆,一開始先給您甜頭吃,等您上癮了,

就來這一招,反正就會有您們一大堆工程師們賣肝幫他們賺錢,何樂而不為呢?

所以我才說:對於這一種權利金當然得付啊,但是又何奈呢?!您搞技術開發的,

真的會比搞財務的會算嗎?! 是不是?! ...

---------------

PS : 至於國內過去推動的那個高階微處理器的計畫,也沒啥意義,倒不如真的拿這個錢

去付權利金比較快, 而對於國內這些傳統的微處理器廠來說,真的要想一想:

如果真的一樣要付權利金給ARM 之後,您還玩得過他們這些高通、TI 及Freescale 了嗎?!

如果不付?那您也得要想一想:您的未來要玩那一塊市場啊?

沒錯啊,您可以玩那一個連國際大廠不想玩的市場,8 bits 低階的~ 這個東西大家也知道

就像士林夜市的東西...去哪裡買?什麼行情價大家也都知道的。既然是夜市裡的東西,

同樣開店做生意的,就不如批貨擺地攤賣東西了,不用搞得這麼辛苦了吧。

---

權利金喊漲 宏達電頭大

花旗證券最新研究報告指出,微軟有意調高對宏達電Android平台手機授權金,每支從5美元(約新台幣145元)增至7.5美元至12.5美元(約新台幣362.5元)。業界估計,宏達電今年支付微軟權利金至少要增加五成,侵蝕逾一個股本獲利。

宏達電昨(29)日證實,今年繳給微軟的權利金確實會增加,但授權金是否真如外資所言的金額則無法透露。

宏達電財務長容覺生強調,科技業支付權利金的作法很常見。宏達電近四季毛利率都持穩在29%至30%,儘管今年可能面臨微軟要求增加權利金問題,但宏達電整體營收也會同步成長,預期加付權利金的影響不大。

Android平台由Google推出,採開放式分享,使用Android平台的手機廠,不需繳交權利金給Google,促成Android平台快速崛起。但是Android手機上使用微軟的服務時,手機廠必須支付權利金給微軟,例如宏達電手機上有msn功能時,即須另外付費給微軟,微軟此舉也可能對其他手機廠形成衝擊。

宏達電去年4月底與微軟簽約,取得旗下Android手機中微軟軟體使用權。微軟透過收取權利金,不僅搶搭Android平台熱賣順風車,也希望增加手機廠Android機種成本,降低Android平台競爭優勢。

花旗證券指出,由於Android平台手機營業利益率約僅10%至15%,此次若大漲權利金,將大幅衝擊宏達電獲利。

宏達電今年首季Android手機出貨量達970萬支,是全球Android平台出貨規模最大的手機廠,今年Android手機出貨量將有倍增的空間。宏達電今年繳給微軟的權利金近60億元,侵蝕每股獲利程度將從去年的約3元增加到約7元;一旦微軟今年調漲權利金至7.5美元,宏達電全年權利金將增至近90億元,無形間吃掉一個股本的獲利。

宏達電可能面臨加收權利金、稀釋獲利的說法,已隨著外資報告與網路討論區悄悄傳開,上周五股價逆勢下跌15元、收1,180元。

【2011/05/30 經濟日報】

-------------

微軟衝WP7市占 槓Android

微軟有意提高對宏達電旗下產品中Android平台權利金,導致品牌手機廠人人自危,業界分析,微軟此舉是項莊舞劍,希望手機品牌多採用微軟的作業系統,幫微軟打天下。

手機作業系統應用平台主要有諾基亞主導的Symbian、Google主導Android、蘋果的iOS、微軟的Windows平台。由於Android極速增長,微軟的作業平台則急速下滑,今年首季微軟手機平台全球市占僅3.6%,較去年同期的6.8%腰斬。微軟除了與諾基亞合作、欲大舉搶回市占之外,更是不遺餘力推廣Windows為基礎的手機平台。業界人士分析,微軟調高Android平台權利金,除了具有減緩Android陣營聲勢續強的消極作用,更希望藉此吸引品牌廠採用微軟的Windows phone以及以Windows為基礎的平板電腦開發,藉此影響市場版圖變化。目前包括宏達電、三星與LG都可能在未來推出Windows Phone 7。

對新崛起的Android平台平板電腦業者來說,只要先前有與微軟談授權,也難逃權利金增加、獲利受到壓縮的窘境。

新聞辭典》Android系統

Android是Google手機、平板電腦等使用的作業系統,開放程式碼給軟體業者,鼓勵更多軟體開發商可以發展應用服務。

手機業者使用Android不用支付Google權利金,包括宏達電、三星、摩托羅拉、索愛、LG等手機品牌廠,皆選擇以Android做為主力的智慧型手機平台。

【2011/05/30 經濟日報】

---------------

Wintel 不再唱獨角戲

過去Wintel獨領風騷,每回Computex電腦展,聽完微軟(Microsoft)、英特爾(Intel)的專題演說,便可大概掌握科技業下半年趨勢;但今年,平板電腦、智慧型手機等「Thin Client」大行其道,模糊了電腦與手機的界線,ARM、Google、Nvidia、Qualcomm等竄出,Computex不再是Wintel的獨角戲。

今年Computex,ARM全球總裁Tudor Brown、和負責Chrome產品開發的Google資深副總裁Sundar Pichai,都將親自來台,剖析運算科技的變革與進化。

ARM大將輝達(Nvidia)執行長黃仁勳日前已經預告,新一代的四核心Tegra晶片就緒,已獲得五家電腦大廠和五家手機大廠設計導入,推測今年Computex上可看到不少搭載Tegra 3的科技新品。

不論宏碁的ICONIA Tab、華碩的變形平板,或是摩托羅拉的Xoom,這些市面上熱門的平板電腦,清一色採用輝達的Tegra晶片,而非英特爾的處理器,使得Tegra的動態受矚目。

高通、德州儀器、飛思卡爾等晶片大廠,預料也都會在今年電腦展上推出更多ARM架構的系統單晶片(SoC)。

【2011/05/30 經濟日報】

2011年5月29日 星期日

USB DIY-- 自學計畫(九)

想瞭解之前的...可以點選以下連結:
----------
上回有提到說:我們在一般USB 的Homekeeping 韌體管理程式一定要搞清楚,

所有USB SIE 發給我們MCU 的中斷點,因為我們有提過說:如果您沒有留意

這一點的話,您根本很難塞進相關的USB 應用程式,我們拿著人家USB MCU IC

又不是只是拿來學學好玩而已,也不是像老師上課,教完了就沒事,怎麼用?

所有市面上相關的書籍都不會教您這個問題,您碰到問題想問也問不到,

甚至怎麼問?要問誰都不知道?往代理商丟?人家工程師搞不好也是菜鳥,

搞不好還要您教他呢!....

為什麼這個問題很重要?因為:我之前在USB DIY 系列文章中有提到說:

USB MCU IC 一定要優先處理完USB Protocol 的程式,再來處理PC HOST 交辦的

事宜。否則,當您收到一個USB Token Interrupt 就匆匆忙忙的急著執行相關

應用程式的話,結果,哪知道USB Protocol 上,USB SIE 還發給您MCU 一大堆

中斷,我們都知道:中斷程式都會影響我們韌體程式的Stack 及變數(以8051 來說:

就是那個RAM  Bank的切換),而這一種程式的Bug 卻又是最難追的(問題發生點

每一次不一定一樣,很難複製!)。

在我們一般觀念裡,不管哪一家USB  MCU IC ,大致上這一部份的架構都是差不多的。

至少我還沒有看過不一樣的,所以,我一開始接觸到這一棵新的USB MCU IC 時,

我就有想到這一個問題,但是他原廠資料,也只有交代說:USB 上許多Setup/In/Out ,

甚至Stall 或Reset 等都會發中斷...而原廠給的範例程式也沒有交代,甚至程式裡

根本都沒有處理這一部份的程式。

而您在使用上又沒留意到時,結果批哩啪啦寫了一大堆應用程式,整個韌體程式已經

寫得像狗皮膏藥,或是說:已經一大堆應用工程師們都塞了他們自己程式之後,

在產品實際驗證測試時,才發現好像都一些不尋常的靈異現象,又不容易抓,

最後大家只好全推給原廠,就開始怪人家的IC 不好,不穩...甚至都可以把所謂EMI/EMC ,

全抬出來...一股腦往人家身上推,結果呢?那您還要不要再換另一個MCU 啊?

大家就重新再搞一次?作事情的永遠是最可憐的工程師,如果您自己還不長進的話,

這種事情讓您多作個N 遍,再讓您多換幾家公司也是一樣的啦。
-----------------
好吧,我就從最簡單:在USB插拔時,Enumeration 第一個Get Device Descriptor 來看:



因為他是SETUP-In-外加一個Null-Out ...就是教科書說的:SETUP-Data-Status 啦。

(但是另一種為SETUP-Out- Null-in 也是SETUP-Data-Status...有不一樣嗎?

當然不一樣的啦。所以,看中文書或教科書還是要認真一點。也不要光看書啦!)

這一種Get Device Descriptor 就是先Setup 出USB 標準Command (8 Bytes) ,

然後就要跟您USB DEVICE 要資料了。然後PC Host 收到資料後,會回您一個

Null- out 跟您說他收到了。

從上圖中與我的解析說明:您可以看到說:PC Host 是很厲害的啦,他一下完 Setup 之後,

就開始一直跟您要資料:您有看到 143~157 那一大堆回NAK 的IN...代表您韌體都還沒

處理完呢。然後當您好不容易回完資料後,他又一下子就回您Null-out (ZeroSize Packet)。

所以,我們就可以看到實際上我們有收到三個 SIE發給我們MCU 的的三個中斷,

如圖中藍色箭頭所示。注意一點依原廠所附的範例程式來看,其中:從收到SETUP 中斷

之後,一直到MCU 回資料時,其實,我們的韌體程式是一直停留在SETUP 那一個

ISR (中斷服務程式)裡的。所以就說:他一回完資料之後,就又馬上被中斷叫回!

然後又被另一個Null_OUT 中斷叫回。.....

好了,以上是基本的 Setup _In_NullOut 的動作。

那另一種Setup- Out-Null_IN呢?!...他代表的是說:PC HOST會把一些數據資料

輸出給您MCU...這一種在一般標準 USB Enumeration中是沒有的,他需要跑一些

應用程式才有。....他跟Setup -In-Null_Out 不一樣的地方是:

他是Output(Setup)-Output(out)-Input(Null_IN) ,而 Setup -In-Null_Out是Output-Input-Output。



上圖就是一個利用原廠所附的上層應用程式所完成的一組Endpoint 0 的Setup Command。

這是一個HID Class 的Command ,就是 Set Feature 的一個動作。

同樣的,當PC Host 下完Setup Token 之後,我們的USB MCU 也沒辦法馬上可以接收

PC Host 下過來的資料,我們USB MCU 中的SIE 就會幫我們擋著。

直到我們把USB FIFO 清楚整理完畢才可以。...結果,PC Host 一送完資料就又馬上跟

我們要另一個Null-IN 的Status 的回覆,相對於之前提到那個Set Device Descriptor 來看。

連我們回給PC Host這麼一個簡單的Zero Size Packet 的NULL-In  都還會產生NAK。

之後,PC會緊接著下另一組Get Feature 命令,他也是屬於一般Endpoint 0 的Setup Token 。

您可以自行比對一下他跟Get Device Descriptor 是一樣的動作的。就不再解說了。

但是,並不是所有的Endpoint 0 的命令與動作都是如此的,有些命令是沒有帶任何

資料傳輸的...他可能只是一個簡單的USB 的Protocol 動作。

像我們在USB 的Enumeration 中,最後一個Endpoint 0 命令Set configuration就是:



這些命令您就自行參考原廠標準範例就可以了。這一種東西都已經是標準了。

也沒什麼好解說的。所以,我才一直強調說:USB 其實不難,他比UART(RS232)

還簡單,因為您根本無法在這些標準動作外,加入屬於自己的東西。
-------------------
除了這些東西以外還有沒有其他的?當然有啊。萬一傳輸的內容大小超過一個

In Token 或Out Token 的最大Packet Size時,他又是如何?在一般來說:

在Endpoint 0 中的  In Token 或Out Token 的最大Packet Size是 64 Bytes的。



上圖就是傳輸資料超過 64 Bytes 時的傳輸結果,我們就可以發現他每一個

In Token 都會產生Interrupt Event 的,這代表著我們的USB MCU IC 對於每一筆我們要

傳輸的資料內容都是要我們自己一筆一筆慢慢整理的..所以您就看到一大堆IN - NAK 。

所以我上回說:那個暫存器的那個幫我計數的Packet Counter 是一點鳥用都沒有。

除非他是反過來定義說:我可以把一大筆傳輸資料先塞進FIFO 中,然後SIE 他自己

可以一口氣傳完再發中斷給我們MCU。..這樣子鐵定效能是比較好的!

但是這一種有點類似DMA 的作法,不是每一個使用者容易搞得清楚的。

我之前也一直強調:傳得快,不如傳得穩。所以,人家這一種USB MCU 的設計方式

我們一點也不覺得奇怪。所以啦。下回如果您要做什麼高效能的USB傳輸介面時,

當您要選擇這一種通用型USB MCU時,就不要太在乎他的傳輸效能了,

您也不要老是把那個 USB 1.1/ 2.0 甚至USB 3.0 老是掛在嘴上。沒有人會理您的啦。
-----------------------
我相信我這樣子精闢的解說,外面應該沒有任何USB 教科書或參考書會教您的啦。

因為人家都不會理您這些最基本問題,人家只要把規格拿出來講一講,然後把人家

USB MCU 用力的 Promotion一下,剩下的就是您自己的事了...啊,您自己還要花

多少時間摸?搞不好,買一本看不懂,講不清楚,然後又得再找另一本,

買了一大堆,看來看去總覺得每一本講的內容還是都差不多,甚至還辛辛苦苦的買

了人家的開發版,結果,搞了老半天還是搞不懂。我相信有許多讀者,從我發表

第一篇USB DIY 文章之後,也就想好好學學USB...但是您真的有抓到學習重點嗎?

等我把這一系列的USB  HID 做完、講完之後,應該就沒有什麼好講的了,

那您學起來沒有呢?!...您要好好加油了囉。

(待續)





USB DIY-- 自學計畫(五)

2011年5月26日 星期四

USB DIY-- 自學計畫---外一章(一)

關於這一系列的USB 自學計畫,一定有很多人想問我說:您為什麼要選用這一家

USB MCU IC 呢?其實這也是代表一個IC 產業的趨勢,我原本也有準備另一家

的USB MCU IC。但是只要您看到以下這兩家關於USB MCU IC 中關於USB 控制

Registers 的說明書比較之後,您大概就會明白我的意思了:

以前賣USB MCU IC 會很搶手,利潤也很好,所以人家原廠會砸錢不惜成本的印那個

精美的使用手冊。打開一看就像一本大學的教科書一樣,也難怪會有老師們會想

拿這一棵USB MCU IC 來寫書,您看:光是擷取書中的一些圖片或文章段落後,

也可以很容易的貼出一本中文使用參考手冊了。您看打開書中的內容,當然也不乏

許多圖片與許多細膩的解說文字。

但是呢?現在您說:還有多少工程師們還會抱這麼一大本原廠的使用說明書來寫程式的?

您光從頭到尾讀一遍書中關於USB Control Registers 之後,大概也想投降了。

更不用說:還要一一的套用到程式裡。以前我們剛學8051單晶片時,以標準的8051

單晶片裡的一些Registers 也算是蠻精簡的...不用花多時間K 大概就可以上手寫程式了。

但是呢?現在IC 您也不能作得太簡單,否則人家會認為您的IC 沒啥特色,功能也不強。

所以啦,這些搞IC 設計的,就非得定義出一大堆Registers 來讓韌體工程師們可以

靈活應用。但不好意思,比較多Registers 的IC 也不一定有比較有學問,只是累死

一大堆系統應用工程師,令系統應用工程師們最嘔的兩件事:

第一:就是這些Registers 一大堆,K 完都快頭昏腦脹的,結果,好不容易K 完之後,

才知道:IC 又要改版了...尤其現在許多 IC 的壽命都是特別短,用沒幾個月,

突然市場殺出個程咬金,結果IC 設計部門為了Cost Down ,也只好再精簡某些功能,

連帶的受影響的就是Registers 的修改與增減。---又要重新來一遍。

第二:這才是讓系統應用工程師更嘔的是:好不容易K 完,也寫了應用程式之後,

才發現:有些Registers 的定義與應用結果不是很匹配?搞了老半天,問一下原始

設計者之後,才發現:什麼功能都有,就是您要的這個系統應用不支援,然後,

就一副要您自己想辦法,否則只好等IC 改版了囉。這時PM 還在旁邊跳腳的說:

"不行,IC 改版來不及,要您在系統應用上想辦法..."。昏倒!我為什麼要幫人家擦屁股?

搞了老半天,...運氣好一點的~或許還有得解,結果就是在一些應用程式上一大堆

看似不合理韌體程式語法...結果:IC 改版後或是工程師們人來人去的

(死的死,逃的逃...)後來接手的工程師就完全看不懂這些歷史包袱在幹啥用的?

人家老鳥就跟您說:反正您就留著不要理他...結果程式就到處一大堆狗皮膏藥看不懂

的程式段落。結果更多的人來人去,最後整個IC 的韌體程式已經2266 了。

-----
好了,講了這麼一段似曾相識的故事場景之後,您就會明白我的意思了。

所以呢,以現在IC 功能越來越強大,當然不塞多一點東西您的IC 也沒什麼賣點似的。

結果:現在許多其實看似壽命不長的IC(類似多媒體IC 啊,或是一些特殊專用IC等),

其實,他們內部的控制暫存器都不少了,隨隨便便一個像是I2C 啊,或是一個外部

記憶體的控制暫存器就不少...功能支援越多的,控制暫存器就越多,密密麻麻的,

不管您懂或是不懂的,就是一大堆,甚至有一大堆您看不懂之後,還跑去問一下

原始設計者之後,他還一副悠哉的回答您說:"哦...這個暫存器我自己IC Debug 預留的,

您可以不用管他!" ,您聽了有沒有有點想找人K 他一頓的?

好了啦,您辛辛苦苦的鑽研完這一棵IC 所有暫存器之後,您就是這一棵IC 的專業達人了。

那您有比較厲害嗎?!答案是沒有。因為我說了:現在IC 改版的速度搞不好比現代男女

換男女朋友的速度還快,您這個某專用IC 的使用達人,不用太久就像過氣藝人一樣。

所以,我是站在各位系統應用工程師的角度為大家未來幸福著想,要學一棵 USB MCU IC

來說:要不要花太多時間去K 一大堆以後不知還有多少機會,或是還有多少壽命可以

享受人稱USB MCU IC 達人的封號。...這又不是傳產那一種類似修車老師傅。

您真的還以為學這種東西有這麼有價值?我跟您說:如果您還可以找到比目前這一棵

USB MCU IC 還更少Control Registers 的,我還是會建議您們再換。

因為很簡單:暫存器越少的,某種程度代表他的IC 功能越簡單,成本越低...

所以,您們就不要以為我在替某一家USB MCU IC 在打廣告,

我說過了:現在賣IC 的,就像是士林夜市賣蚵仔煎一樣,又不是只有您一家在賣而已,

而且啊,賣得還都差不多的耶。反正他們也只會賣蚵仔煎(IC),您叫他們換點新鮮的,

他們也不會,他們就是寧願把這個市場搞爛,搞臭也不願意...他們只相信:

當別人作不下去時,我就可以獨享市場佔有率了,結果沒想到的是:這家作不下去的,

還是有人願意頂下這個店面,繼續在這個行業裡 LDS (台語:"拉豬屎"--- 瞎搞和的!)

這樣子比喻有沒有給它有點過份啊?!!但事實也好像如此喔。

------

PS:我最近也發現一些IC 通路商的業務,最怕遇到的客人是:您都還沒開口報價時,

他就搶先一步的喊出一個讓您左右為難,回去又很難交代的價格。以前我們在賣IC 時,

我們老闆都跟我們說:IC 價格的報法,最漂亮的就是讓客人覺得有點貴,又好像有點

機會的樣子。....結果,現在時代不同了:客人都比您懂得市場行情,反過來一喊,

您都只好說:我回去會跟原廠討論、討論的。...唉。時代真的不同了。

在台灣高科技這行業果然是興盛產業,他真的造就了一大堆相關人才出來,

如果不轉業的,幾年來累積下來,還真的滿街這一行的業務與工程師的。

大家碰面的第一句話就是:您又換到哪一家了?有沒有什麼新產品啦?

只會越來越多的啦。....我不會騙您的!

...

2011年5月25日 星期三

科技轉向,人才何去?

以下兩篇文章,我認為道理也是一樣的,所以我把他擺在一起,然後下了這一個標題註解。

不過呢?目前台灣科技界還是充斥著以硬體出身,起家的老闆們,

您要他們轉換心境,調整心態把新的投資標的物轉向科技文創人才?

可能是有點緣木求魚啦...可能是:還是再多開兩家IC 設計公司搶老東家市場比較快吧!

更何況台面上一大堆公司都已經應付蘋果產品帶來的衝擊了,還有時間

想這些嗎?!更不用說:您還要他花 20 %時間去物色人才?我說過了:

我們台灣高科技的大老闆們個個都已經親上火線滅火,搞得焦頭爛耳的...

所以文章就看看就好了,就當狗吠火車,也別以為您是念資訊,搞軟體的您就炙手可熱了。

等您碰到腦筋不輪轉的老闆時,或許您根本還沒那個機會碰到大老闆時,

您就碰到那個二流部門研發經理了,您也只有降格成為三流人才被使喚了。

所以,我們從人家文章也看到別人的老闆是怎樣的一個人,那我們家自己的老闆呢?

那就更不用說:我們這些高科技企業的老闆整天腦筋裡想的是:如何降低成本?

下回工廠還要搬到哪裡?!或是看看別人家的東西或市場產品,看看有沒有機會降價競爭?

尤其這一兩年:看到以前曾經往來交手過的公司...譬如原本數位相機的智基(6294)、

天瀚(6225)、鴻友(2361)等或是搞零件通路的海德威(3268) 、普格(3073) 等,

或是以前也曾經是競爭者的倚強(3219)...好像這一兩年的營收與市場產品都不盡理想,

不要說股價啦,連公司淨值都令人捏一把冷汗的。也好像這幾家也好多年都沒有配股配息了?

---- 其實,道理都很簡單:就是蘋果惹的禍啦,千錯萬錯都是蘋果的錯啦...

什麼啟示錄?根本就是台灣高科技的悲慘浮生錄啊!所以啦,人家要搞那個Windows 8時,

誰會理您啦?!我們在做系統設計時,每一個人客人嘛都跟您說:您先別管工廠啦,

等您東西做來了,再來想辦法的啦!...工廠再找就有了啦。一樣的道理:

在人家微軟、Intel 、Google 或是蘋果這些公司眼中:我們就是工廠啦。

您看USB 所有規格書裡,不要說主要規格書啦,連一些分項Class 的規格書裡,

哪一家台灣高科技公司有上榜過的?!我相信虧我們應該還是USB 相關產品產值最大

的國家吧! ....就算人家真的邀您參與時,我們這些公司敢嗎?!搞不好老闆還會跟您說:

參加這個幹嘛?!我們等規格出來,有生意做就好了。...

這些就是我們引以為豪的高科技重點產業。

--------------------

蘋果啟示錄

臧聲遠/Career職業情報誌總編輯

小筆電不敵蘋果的i-Pad旋風,宏碁連續3度下修業績目標,股價崩跌腰斬,執行長黯然下台,科技業的風雲變幻,眼看它樓起、眼看它樓塌,令人觸目驚心。

宏碁與蘋果之戰,牽動的不只是個別公司的興衰,更揭開人才重新洗牌的序幕。在雲端運算的時代,科技產品的硬體規格大為簡化,許多功能直接從網路下載即可,決戰點從硬體轉向軟體與數位內容,而這正好打到台灣科技業的罩門。

在硬體掛帥的年代,電子、電機人才是當紅炸子雞,未來將會讓位給資工、資管等軟體人才,以及影像多媒體設計、資訊傳播、遊戲等數位文創人才。同樣與蘋果對壘,宏達電不僅立於不敗,公司也登上股王、老闆躍居首富,看看王雪紅不惜重金吃下香港TVB電視台與多家手機遊戲公司,積極在數位內容進行布局,並大舉網羅國內頂尖軟體好手,未來科技人才誰領風騷,答案已呼之欲出。

如何汲取台灣充沛的文創能量,攸關台灣科技業能否重新翻身。在這次花博會中,夢想館展示的數位互動藝術驚艷全球,也為科技與文創的結合,點出一條全新的道路。唯有植入文創的基因,科技產品才不再是沒有靈魂的硬殼,正如賈布斯在皮克斯(Pixar)動畫工作室的沉潛,成就了蘋果王國的霸業,台灣也需要更多喜愛電影、奇幻文學、遊戲動畫、數位閱讀,身上流有文創熱血的科技人。而台灣文創產值相對於科技業,不啻九牛一毛,文創人若能克服科技恐懼症,勇於跨界嘗試,將有希望從窮酸的邊緣產業,進佔主流科技業的神經中樞。

在硬體製造領域,「上肥下瘦」成為產業定律,台灣科技業「力爭上游」、進軍上游關鍵零組件與材料,企圖心相當明顯,從太陽光電矽晶圓、電動車鋰電池、到LED藍寶石基板,布局動作都已展開;而日本震災的斷鏈效應,更為台灣提供絕佳的契機。愈是朝上游研發走,愈有賴於物理、化學、化工、材料等基礎科學人才;台大物理系去年擊敗台大電機系,躍居大學指考二類組的第一志願,正反映了人才板塊移動的趨勢。

未來開拓中國內需市場,從餐飲、醫療到科技業都需要商管人才;而台灣內需市場在陸客商機加持下,各行各業則都需要觀光人才。人才市場劇烈洗牌的此刻,從學生到上班族,務必請多留心財經時事,否則宏碁的冏境就是你的寫照!

-更多精采文章請見5月號(421期)Career職場情報誌-

----

李開復:老闆要放下架子去請人才

http://www5.cnfol.com/big5/news.cnfol.com/110513/101,1596,9860747,00.shtml

IT時代週刊》
一個特別重視人才的老闆,他就必須要放下自己的架子,三顧茅廬去招人,而不是說招聘是人事部門的工作,你們自己去做。任何一個好的老闆應該至少把20%的時間放在招聘上。我從來沒有少過20%,我曾經的老闆比爾·蓋茨也從來沒有少過20%。而Google的前任CEO施密特要親自審閱每一家公司將要雇用的人。想想,一家員工達2萬多人的公司,一年可能要雇用好幾千人,但是每一個人他都親自看一遍,他甚至可以不參加戰略並購方案討論,而去看每一份簡歷。

  為什麼要這麼做?真的是因為他能判斷誰該雇、誰不該嗎?不是,重要的是,他認為,作為領導要以身作則,要讓整個團隊知道雇人不是這麼容易的,公司的人才標準非常高,不要隨便雇用人。儘管這麼做程式上慢一些,但傳遞了一個資訊:大老闆重視人才的程度非常高。

  在世界上,總有一些很優秀的人不想去微軟,比爾·蓋茨就會放下身段,花很多的時間來說服這些人加入公司。曾經有一個很厲害的人,叫做傑姆·萊恩,手裏有不錯的軟體,想自己創辦公司,為了邀請他加盟微軟,比爾·蓋茨親自跟他約見幾次,傑姆·萊恩說:好吧,既然你願意見我,我不能不見。比爾·蓋茨說:微軟很好,你要不要來我們公司?傑姆說:不,你們的產品是我見過的軟體中做得最爛的。

  比爾·蓋茨怎麼回答?他當時並不是首富,但他是天才,已經上了媒體,他說:傑姆,正因為你說我們公司的產品做得爛,才需要你來拯救我們。他心裏覺得他的產品做得爛嗎?不一定,他是為了吸引這個人才。兩人見了幾次面後,比爾·蓋茨感動了傑姆,最後傑姆才來到微軟。

  記得1998年我加入微軟的時候,希望招入一個很牛的同學。第一次找他的時候,他說:不行,我在IBM,負責深藍計劃,研發打敗國際象棋冠軍這樣的一部機器。我說:沒關係,就是聊一聊,他不來。

  第二年又見面,還要請客,還是不行。又一年,他的深藍程式打敗世界象棋冠軍了,我說不錯,這次可以挖他了,我說:你已經打敗世界冠軍了,要不要來我們這邊?他說:不行,公司還有項目。

  又過了一年,IBM深藍計劃解散了,這個團隊不存在了,各人做別的事去。我想這次可以找他了,我說:你打倒世界冠軍,又沒工作了,總可以來吧?還不能來。他說:開復,我還沒交過女朋友呢!當時他40歲。我說:沒關係,趕快來,我們在北京,可以給你介紹女朋友。他說:我沒有交過,但已經找到了合適的,我的女朋友在加州,我必須去加州工作。我說:好,那你去加州。下次去加州又找他吃飯,他說:我正在戀愛中,我想以後再說吧。

  終於有一天,他告訴我:我要結婚了,我太太要去北京工作,現在我可以來你那兒了。當時我已經不負責中國區,調回微軟總部了,我說:太好了,我們趕快安排吧!最後微軟總算把這樣一個人挖到手。五年、五頓飯,我就是這樣的鍥而不捨。公司領導認為,這樣的天才,40歲沒交到女朋友,就憑這一點也要挖到手。

  企業領導人不要有我已經是CEO,我是總裁,而他只是一個工程師這樣的觀點。只要是一個重要的崗位,或者你的團隊告訴你某人很棒,你就應該花更多的時間去說服這些人加入。我在創新工場前三個月的時間都是說服人加入,現在不是100%的時間,我相信20%-25%肯定還是有的。

  記住,招人的時候還有一些準則。在我工作過的三家公司蘋果、微軟、Google,都有同樣的一句話,這句話有一些人不喜歡聽,但事實如此。這句話就是:一流的人雇用一流的人,二流的人雇用三流的人。

  如果你是很厲害的人——不是說整個人一流,也許你擁有一流的管理、一流的技術、一流的溝通能力等,你很自信、很受人尊敬,不會在乎雇用另外一位一流的人,因為我有足夠的自信雇很棒的人。也許對方的智商(IQ)很高,但沒有關係,我經驗比他豐富,我技術比他強。

  二流的人就會有些不自信,一般的經理大部分都不是一流的人,這是一個事實。非一流的人更喜歡雇一些自己管得住的人,這並不只是對方經驗比自己差,而是樣樣都不如自己,非常聽話,可以管得死死的,叫他做什麼就去做,叫他跳多高,他就跳多高。但是這樣的人就把公司搞砸了,公司就開始走下坡路。

  微軟、蘋果、Google這三家公司都非常相信這句話,當然,不是每一家公司必須要做到這點,在工廠可能有不同的要求,也許你只是用在管理團隊上,也許不必應用到你的公司裏,但是作為老闆都應該記住這句話。因為如果你雇十個比較聽話、比你差的人,他們再雇十個比自己差的人,再雇用一萬個更差的人,當公司發展到一萬個人時就完蛋了,都是很差的,你的公司怎麼行?所以要儘量找一些非常優秀的,最好是在某些方面比你優秀的人。

----

抗蘋果 Win8拚明年上市
 為了對抗蘋果勢力,微軟正積極開發新一代作業系統「Windows 8」,傳出微軟已號召英特爾 、英偉達、高通等晶片大廠,組成「整合開發計畫」(IDP) ,但獨缺台灣系統廠商。
【經濟日報╱記者曾仁凱/台北報導】

為了對抗蘋果勢力,微軟正積極開發新一代作業系統「Windows 8」,傳出微軟已號召英特爾 、英偉達、高通等晶片大廠,組成「整合開發計畫」(IDP) ,但獨缺台灣系統廠商。對此,經濟部技術處處長吳明機表示,台灣不能缺席,會與微軟溝通,爭取台廠加入。

微軟Windows 8 作業系統開發計畫啟動,此次打破「Wintel」框架,預料將同時推出支援X86和ARM等不同架構的作業平台,以配合平板電腦等新型行動運算裝置的流行。

最近市場盛傳,微軟為開發Windows 8 ,已經號召英特爾、超微 、英偉達、高通、和德州儀器等五大處理器晶片廠,組成「IDP」計畫,將共同負責Win 8的前期開發。不過,裡頭成員獨缺宏碁、宏達電、華碩等台灣系統廠商

廠商認為,除了Google的Android之外,微軟的Windows 8將是其他廠商對抗蘋果的重要武器,而市場競爭激烈,業者擔心如果被排除在IDP計畫之外,可能錯失先機。

為此,經濟部得知國內科技業者處境,由吳明機親自出馬,擬與微軟溝通,爭取台灣廠商或工研院等法人研究單位參與。

吳明機說,在PC時代,台灣一直扮演重要角色,長期以來與微軟併肩作戰。最近幾年蘋果陸續推出iPhone、iPad等熱門產品,刮起旋風,要不是台廠在設計、製造上提供許多奧援,蘋果恐怕沒辦法這麼快取得成功。

這回微軟開發Windows 8 ,想要對抗蘋果,如果沒把台灣廠商考慮在內,絕對是失策。他強調,台灣不能缺席IDP 計畫,政府會盡全力協助。

2011年5月24日 星期二

施振榮:品牌不比代工賺 盡社會責任(轉載)

其實,最近看了幾家上市櫃公司的老闆,也覺得他們也蠻可憐的。

(不過,朋友都一直勸我說:"俗話說:可憐之人必有可恨之處!...")

您看前兩天寫的那個M 公司的老闆,員工領飽了股票全都落跑回家享清福了,

您還要親上火線在那邊親自督軍,結果您的同輩伙伴全退了享福,您也只好年紀一大把的

來隔代帶領另一世代的人衝...還有,昨天另一家M 公司的董事長還要親自與電視財經新聞

連線護盤...您是替公司股價護盤,但看在那些領飽飽的退休員工來說:又是如何心境?

那就更不用說:另一位年紀一大把,還在生孩子的老闆,還為了工廠事故親自坐陣。

結果,人家資金市場也不捧場...(好像他新婚之後,工廠就衰運連連喔?!)

這些高科技的老闆們,啊也沒看到什麼充分授權的分層管理理念或經營哲學?

我們再來看國外那些高科技公司的老闆們,有如此這般的勞碌命嗎?!

您有看到人家賈伯斯每天親上火線的嗎?!那就更不用說:比爾蓋茲了。

所以,電影中大老闆們那一種遊艇、度假勝地、寬廣綠地的豪宅等。都跟我們台灣

這些高科技老闆們,一點關係都沒有。

所以,您不能說品牌不比代工好賺,因為在台灣口中的品牌做的也只是大家都可以複製

的產品規格。裡面沒有太多的產品創意與市場區隔啊。所以啦,也只能說:

盡盡社會責任,但是呢...以前或許可以,現在呢?太低的毛利或流失的競爭力真的很難

再照顧到許多員工了。已經是明顯的世代交替了,大老闆們光看您們這麼勞心勞力的

南北奔波。嘴吧裡說出來的,跟大家實際看到的...我想應該會給年輕一輩不同的解讀吧。

-------------------------------------------------------

施振榮:品牌不比代工賺 盡社會責任

來自各校EMBA學程的學員們日昨參加宏碁集團創辦人施振榮所主講的「品牌全球化與企業再造」企業論壇。施振榮指出,宏碁經營品牌是出自使命感,他直言,做品牌不一定比代工好賺,但是試想:如果你在歐洲看見每三台筆電就有一台是Acer(宏碁),你的感覺如何?他說,蘋果也許比較賺錢,但是宏碁的市佔率一定比較高。

五月21(六)晚間,「品牌全球化與企業再造」企業論壇由政大商學院院長陳春龍引言,並由政大商學院于卓民教授主持,與談人為交大管理科學系教授朱博湧。施振榮的演講內容分別為品牌經營、企業文化建立、全球化經營與企業的變革管理。

施振榮一開始就破除大家對品牌經營的許多迷思,例如品牌不一定比代工好賺、控制管銷費用比控制成本重要、要訂單更要講究訂單品質等等。

他也指出,品牌的價值取決於品牌定位,因為品牌的價值等於品牌定位乘以品牌知名度。他說,品牌是有生命的,品牌要有創意,顧客才會記得你。他也說,品牌是長期的智財權,未來的時代將是「智權品牌密集」的時代。

施振榮也說明宏碁如何轉變及改革內部企業文化。他強調「信念加上言行」,即為打造企業文化的幸福公式。他說,主管與員工間的溝通與共識都必須自組織還小時就要開始建立,並從簡單的口號,來建立開始建立企業的共識。他不諱言的說,宏碁在快速成長的過程中也曾遭遇多角化經營、拓展海外分公司所造成的內部文化的挑戰。

施振榮最後表示,他在2004年底交棒,深深感到「霸道」雖能做大,但「王道」才能做久,西方社會注重霸道治理,但是企業不能只靠一個人,他意有所指的說,宏碁從八零年代創立至今,歷經了數次組織再造與變革,面對近來企業內部的人事更替,宏碁堅持走出自我的台灣價值,並以王道而非霸道的精神治理。

他說:「宏碁創業不是為了賺錢,而是為了盡社會責任。」此言令全場聽眾為之動容。

【更多精采內容,詳見

【2011/05/23 台灣醒報】

2011年5月23日 星期一

USB DIY-- 自學計畫(八)

想瞭解之前的...可以點選以下連結:

USB DIY-- 自學計畫(六)

USB DIY-- 自學計畫(五) -----

關於F3xx 系列有關於USB 應用參考韌體程式有兩支:

1 : USB_Bulk : 就是我在(一)~(五)中所用的。 這一隻範例您是需要外掛屬於自己的

PC 端的驅動程式的。我想這一種USB應用大家可能都比較害怕吧。

2 : USB_HID : 這一隻範例程式用的是標準Microsoft 的驅動程式,但我想您也不會只拿來

寫滑鼠或鍵盤吧,自從iPhone/iPad 創造流行之後,作滑鼠、鍵盤的廠商應該都在那

剉著等吧。

鍵盤的就不用說了。至於滑鼠功能,我想多點觸控屏的特性應該跟傳統滑鼠的定義不同吧。

當初USB 在HID 中定義滑鼠時,應該也沒想到多點觸控吧。---詳細的規格我就不知道了。
-----
我們也發現這兩支範例程式的程式風格,應該是不同人員撰寫的,所以,如果您要同時參考

這兩支範例程式時,最好有心理準備。以我自己本身經驗稍微看了一下他們的程式的架構,

不要說其他USB 特殊應用功能,光是處理USB Chapter 9 標準命令來說:我都覺得

這兩支原廠的範例程式都寫得不好。尤其對於USB新手要學習 USB都有不容易的盲點。

更何況當您是沒有寫過多少 8051 單晶片C 語言的新手來說:可能更難了。

我們就以USB_HID 這一支程式來簡單說明一下,我之前在USB DIY 一系列的基礎USB

系統說明中有說過,所有USB MCU IC 幾乎全都採用所謂的Interrupt Event 來處理

所有USB 匯流排上的所有USB Token (包括RESET、SUSPEND、STALL 、SETUP、

IN 及OUT 等,尤其是後面那三個SETUP 、IN及OUT 幾乎就是佔去絕大多數的USB

 匯流排 Event 。)

所以,如果您真的沒有好好的掌握這些USB 匯流排上的Interrupt Event 的話,

您要好好的維護您的USB 韌體程式是很辛苦的,您以別以為只要套用原廠的範例程式,

稍微改寫一下就好像很好用了,其實不然,如果您的USB 系統應用稍微偏離一下原廠

的範例功能外,您可能就完全掌握不到人家原廠USB MCU IC 的精髓了...
---
(其實,我也沒說人家原廠USB MCU IC 就一定很好用,或是說您就非用不可,

我說過了,現在賣MCU IC 就像士林夜市賣蚵仔煎一樣,大家賣的都是差不多的東西,

就看您自己喜好程度,不喜歡的您就再換一家嘛!像這系列的USB MCU IC 也沒有

想像中那麼容易掌握,您別看他一些 Registers 好像不多,更何況還有一些像廢物一般的

無用的Registers ...連原廠的範例程式都沒用,譬如:FRAMEL/FRAMEH、INMAX、

OUTMAX等等這些暫存器,以我們用過USB 經驗來說:反正都還要定義自己的傳輸參數,

給這些也沒用,就算我們拿來檢查一些USB 狀況來說:如果這些東西都已經出錯了,

那大概這一棵USB MCU IC 也不能用了,也會被應用市場給唾棄了吧!

所以有些搞IC 設計的老是會偏離系統應用角度,搞一些有的沒有的暫存器給我們用,

也都不一定對於我們系統應用有所正面幫助的...這一點您自己本身要有一定的判斷能力。)
----
我們就作一些簡單的示範來說明一下:

(注意:我們講的還是很基礎的USB Chapter 9 標準命令的韌體程式的掌握程度,

這一部份套用在另一支USB_BULK 範例程式也是一樣的!)



首先我們先把一個簡單的 I/O Toggle 擺在 USB_ISR 中,來觀察所有的USB interrupt Event,

只要有任何USB Interrupt Event 發生就可以觀察得到,然後我們就可以利用USB 分析儀

來觀察每一個USB Interrupt Event 的發生點(程式進入點)。



結果,這是一個最簡單最基礎的USB Enumeration 第一組命令:Get Device Descriptor 。

我們就可以發現每一個 SETUP/IN/OUT Token ,,,我們的USB MCU IC 都會收到Interrupt

Event。但是原廠的範例程式並沒有把每一個Interrupt Event 作適當的判斷與處理。

當然啊,如果您真的覺得您USB 系統功力真的很好,您都可以把這些Interrupt Event

 視而不見,我也沒意見,但我說過了,等下回您突然要又不同的USB 系統應用時,

您最好可以自行處理與應付。但我個人覺得:

如果新手在學USB 韌體時,沒有留意到這個東西與流程時,可能是很難掌握USB 韌體的。

對於這部分的韌體,我是覺得原廠這顆USB MCU 還有一個很搞笑的地方,

他裡面有定義一段韌體:



如果照原廠的說法:您發現這一個中斷旗標(SUEND)發生時,您就可以作如此處置。

但我是覺得如果在USB 匯流排上發生這個問題時,大概您的USB MCU 也掛了吧。

因為USB 匯流排上也不太可能只掛您一家的USB MCU 啊...而且現在USB MCU 的相容性都

很高了,我想會發生說:當您明明已經完成OUT Token 然後在等 In Token時,您的USB SIE

還可以解到一個屬於您的OUT Token...您該不會怪人家USB HOST IC(主機板南橋晶片)

有嚴重疏失吧?!這可能在早期還有可能,現在應該沒有了吧。至少我都沒碰過啊。
----
我們再回到之前那個USB Interrupt Event...我們可以看到明明有這些USB 中斷,那您知道

這些USB 中斷對應到您韌體程式的哪一段嗎?!...答案是:都沒有。原廠的範例程式沒寫。

所以,我們就稍微改寫一下原廠的範例程式:



加入這兩段程式,然後也Toggle 一些I/O 再來觀察實驗結果:



果然我們就完全掌握住每一個USB Interrupt Event 的程式進入點,至於您要不要做一些對應的

系統應用,就看您的本身在系統應用上的需求了啦。
---
當然啊,我們在真正的系統應用上,也不能只有加這兩行而已,否則,這種程式的寫法就是

貼狗皮膏藥的作法...真的不值得鼓勵去做。

最基本的問題是:原廠所附的這個程式在USB 控制流程上的韌體程式的寫法不夠

明確(這是我個人的看法。),其實,如果您也像我一樣看著USB 分析儀的答案也未必能夠

很快的去解讀程式的含意...但是難道沒有人跟原廠反映過嗎?!
-----
對於這一個這麼簡單的原廠韌體程式的修改實驗觀察,我們不是要說原廠的程式不能用,

我說過了,我也相信可能也有很多人都沒有留意到這一點,就劈里啪啦開始作系統應用

發展,對於一般基本的USB 應用應該還好,但如果您是要做類似USB_BULK 那一種有

自己驅動程式,有自己的Vendor Command 的...您還是最好熟悉下這一個問題吧,

但對於我來說:能改寫或作這個實驗,對於我們可以很快的熟悉及瞭解這一棵

USB MCU IC 的每一個USB 控制Registers 來說:是更容易明白與清楚其用法的。

或許您也可以參考這一個作法試看看。
----
PS : 其實,原廠這樣子寫USB 標準流程韌體(我們俗稱的USB HomeKeeping 程式),

不是很好的寫法,對於一些想學這一棵USB MCU IC 的工程師來說:真的沒那麼容易上手,

但我也說過了:對於許多USB新手工程師來說,大部分都不會太質疑或甚至改勇敢的去改寫

一個似乎可以用的程式...這個就是我們台灣科技教育制度的習慣,也造就了我們在工程技術

與產品開發上那一股"Me Too" 的產業文化。...這是值得大家思考的。

(待續)