2023年6月6日 星期二

老工程師的技術生活(十二)---USB IO 應用及感想(讀書心得)

我在幾年前有整理一下我原本在Hinet 網頁所寫過的USB I/O 應用技術文章。

Hinet 網頁系列 --- USB DIY 系列(八)---USB DIY 講座 (六)

當然最原始的文章的年代就更久遠了,至少是十五年前了。但你說這種東西會不會

退流行?當然不會,因為不管現在科技技術多發達,但只要是電子產品要量產,

就得要有一定的量產生產線上的檢測驗證流程,也都需要這些很基礎的技術應用的。

不要老是想自己寫程式技術有多好,東西要量產你就得要靠完全不懂電子技術或程式撰寫

的生產流水線的小弟、小妹可以幫你所開發設計的東西在生產線上順利的檢測出貨啊。

我們年紀大了,做過的產品一多,自然也就會碰過這些事,搞技術又不是整天玩新技術

開發,所開發的東西沒有量產出貨,哪來營收收錢過日子啊?尤其當你老的時候,沒有

那麼多精力燒腦地整天搞開發設計,賺自己老年年金最快的方法:就是把開發過的東西

當印鈔票的量產出貨收錢最快、最穩定的啦。

所以我們就來把這方面的經驗分享給年輕工程師們,藉由我們這些經驗也可以讓你們

現在就可以早就準備,不要突然等到有一天你發現你已經上了年紀,以前東摸摸、西碰碰的

玩意兒,最後到底可不可以為你上了年紀,面對新一代年輕工程師們的挑戰時,你還保有

多少競爭力的為自己賺一點老年年金?

USB I/O 的東西說起來簡單,上面連結的文章內容,大概也可以看到自己年輕氣盛的個性。

現在就比較內斂一點了啦,我就簡單地分享一下如何在實際產品量產中實現這些東西。

不管你電子產品多複雜,但基本上都會有一些LED 指示燈或一些顯示資訊的內容。

所以在生產線上你就得在你的產品開發的程式內容埋入這些協助量產的介面程式。

下面這一段就是裝置系統端的韌體程式:


你的USB 裝置是甚麼Class 不重要,只要你的USB 裝置可以接收到PC 端下達的指令就行了。

當然從上述的程式,你也可以發現他是一個支援隨身碟的USB裝置。

但這段程式我要講的重點是:如何用比較精簡的命令格式來完成這些I/O 的控制。

因為每個產品的IO 設計或所對應的硬體IO 位置不同,所以真的很難用很簡單的命令完成。

而每一個IO 又想獨力完成測試驗證,所以你得要用獨立的IO 命令完成。但也不可能把這些

USB 命令搞得太複雜啊。這裡面就有一些小技巧,但這些東西又不是你裝置韌體寫完就沒事

了,你還得跟PC 端的那個撰寫生產工具軟體的工程師溝通,解釋一下你的邏輯思考方式。

他才有辦法的精準的下達USB 介面的控制指令。以下就是PC 端地所對應的指令:

(如果覺得看不清楚,可以點選另開視窗查看。)


這些東西不難,只要你有經驗就可以輕易地完成這些介面處理能力了,那我們就來說一下:

我要如何能夠累積這些經驗呢?當然就是經由歲月的累積或吸收別人的經驗所得的,

(我是因為常常看到一些社群網站有些年輕人常常問一些,連我都不知道要如何答覆的

問題,你說:很基礎問題呢?要直接回答呢?還是讓他們自己去跌跌撞撞呢?)

我這樣的年紀應該就可以來說說自己的經驗了,也可以供各位參考看看吧。

很明顯的是:我在程式裡都採用了所謂Bit 定義方式,那為什麼我會有這樣子的觀念呢?

那是我從學校畢業後,在完全沒有任何電子電機或資工程式撰寫經驗背景中。而且是在

三十歲後,我進入一家新創IC 設計公司從事SOC (系統晶片)開發及其系統應用工作,


上圖是我們公司的IC 設計工程師們所整理的IC 技術文件,我們都知道拿IC 來做系統開發

或撰寫韌體程式,你就得要有這樣的技術參考文件,雖然那個年代做IC 設計的認為:

只要我把這些技術文件給整理好,就可以讓全天下的系統工程師們都會使用我們家的IC 了。

但其實那個年代之後,會看這樣的技術文件來寫系統程式的還是自己公司的工程師啊。😂



這麼多的暫存器的說明,誰有那麼多閒功夫慢慢K 啊?而且萬一不清楚內容,去哪裡找人

問啊?當然還是在同一棟辦公室裡的同事最方便啊。所以我就很快地在幾年內就從完全

電子電機或資工程式的門外漢,就可以掌握到這方面應用技巧了。


後來又到了另一家比較大的IC 設計公司,又有不同的IC 設計團隊,也同樣的提供類似的

技術文件。當然人家公司比較大,技術文件的完整與完善度就比較好一點:



不但原本該有的基本暫存器應用說明都有之外,還可以稍為的解釋說明一下他們的一些硬體

上的設計概念,甚至會把他們所認為的韌體控制流程想法幫你整理一下流程圖說明。

公司大,也養得起優秀的工程師們來做這些事,重點人家負得起薪水之外,透過這樣的

設計開發工作流程與環境,公司還是賺錢的啦。工程師們,尤其像我這一種菜鳥門外漢

還可以跟著學習成長,轉換成一個資深又有經驗的系統應用工程師。

(重點是:還可以領薪水養家餬口的~雖然辛苦,但也是一份既可以練功成長、增加視野的

工作啊。還可以培養出一票革命情感的難兄難弟...等你老了,上了年紀,這些兄弟還可以

挺你,幫你找找事做或是發揮機會的啦。真的很不錯的啦。)

所以經由這樣子的環境培養與歷練,很快地在短短幾年內在一些程式技巧或系統開發

技術與經驗累積上就可以達到一定的水準來面對各式各樣的系統開發工作與挑戰了。

跳脫基本的技術經驗與能力之外,當然也就有個多的機會來學習技術以外的事物了。

因為從這些過程中,你會發現真的只要你懂得運用這些資源與周遭的前輩經驗傳承。

許多產品開發技術真的不難啊。只是要不要發時間與精神而已。重點還是:最後可不可以

透過市場業務推廣與工廠生產順利大量出貨來獲利的

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

好了,現在我透過最近讀完的一本書來闡述一下這些經驗與感想了:


不是我們家的那隻狗,而是壓在桌上幾本書底下:從去年以來一直很夯的話題:晶片戰爭。

作者是一位歷史學家,他原本是研究蘇聯近代歷史的,後來發現影響近代戰爭發展的竟然

是小小的晶片。所以他就從全球近代晶片發展歷史來解讀近代影響各國武力發展的故事。

不過,這本書很厚,故事也很長,有興趣的可以參考閱讀一下。當然書中也描述了許多

台灣半導體發展的故事,我也算是躬逢其盛的經歷過。但我不是要講這些的~

我要講書中一小段故事:就是發明電晶體而獲得諾貝爾獎的William Shockley。

1945 年提出固態開關理論,1955 年成立Shockley semiconductor 公司致力於要實驗量產出

這樣子的半導體。當然Shockley 他是沒錢的,是透過一個金主(Arnold Beckman) 才能成立

公司的。這位金主也看得出來Shockley 只懂技術不會創造營收的啦(不會做生意的啦)。

所以就用 25,000 美金先買下Skockley 的所有專利。1957 年,還不到三年光景,Shockley

經營的公司就一團亂...果然早就被看破了,只懂得技術,完全不懂得經營公司與管理技術

團隊,但很幸運的:他當初找了一些優秀人才,而這些人也很快到看到機會,於是就

自立門戶成立Failchild ,這一段也是很有名的[八叛徒] (Traitorous eight)故事。

當然這八位後來都是在矽谷半導體或創投公司留下鼎鼎大名的人物。而Shockley 呢?

也就只能頂著諾貝爾獎的光環去大學教教書而已啊。在後來半導體發展故事裡就完全

沒有他的故事了,況且還因為他自恃甚高,跟許多人也處得不愉快,最後在1989 年

他 79 歲時,除了第二任妻子陪著他之外,就連他的小孩都還是看到報紙訃聞才知道他的

死訊的。(維基百科內容)...這就是告訴我們說:不要老是以為自己技術很了得,整天把

技術拿到嘴邊一直講...沒有量產創造營收又怎樣?又不能真正創造人類發展契機啊。

搞不好,就連自己的家庭小孩的生活都搞不定啊。

也剛好符合我常常開玩笑說的:你喜歡天天吹你技術有多好,你就乾脆就去學校教書啊。

在外面市場競爭環境裡,我們要看到的是如何把技術真正轉換成有真正影響力的全面

作法與經營策略的。

雖然那八叛徒的所成立的 Failchild 的資金也來自東岸華爾街的富商,而這位富商也不願意

順從當時已經儼然成型的股票選擇權市場趨勢,所以這八位就分道揚鑣的去從事自己所專長

的領域,有興趣者可以去Google 查一下這八位的出路。我以前也說過:只要是人才,

尤其是一流人才,人家隨時都可以走的啦。書中有描述此時Failchild 大量員工離職。

其中有一位員工在離職理由中填寫:"我...要...去...賺...大...錢。"😅😅😅

以下這張就是從Fairchild 所延伸出來的公司,有些現在幾乎都是市場主流公司啊:

照片中的八位,就是所謂的八叛徒。雖然名稱不好聽,卻是實實在在的對人類的貢獻啊。


那也更不說:現今全球半導體故事。其實都是圍繞著一個簡單的道理:

就是如何把透過量產,把技術化成強而有力的市場影響力量。

以前我們說鴻海是系統EMS 大廠,但台積電(tsmc) 更強的把半導體量產製造技術發揮到

淋漓盡致。引領深深地影響全球權力分配的能力。

所以我現在的想法是:玩技術玩了大半輩子了,這些東西玩也不出來新一代年輕人的程度。

現在也都是年輕人應該發揮的年代了啊。我自己本身當初也是為了家庭因素離職,

跟老婆好好的培養小孩,讓他們有更好的發揮機會來承接這樣子歷史契機。

最後引用晶片戰爭書中最後一段話:

1958 年 12月寒冷的華盛頓特區舉辦了一場電子半導體大會,張忠謀、Gordon Moore(

就是那個摩爾定律的提出者)及Robert Noyce(其實他才是近代半導體教父,要不是1990年的

那一天清晨游泳造成心肌梗塞,他是成立 Failchild 及Intel 的靈魂人物,書中也認為如果

他還活著,應該可以拿一座諾貝爾獎的,至少也要跟Jack Kilby 一起獲獎。)

都出席那場會議。"他們一起出門喝酒,然後一起漫步回旅館,那時他們都很年輕,興奮地在

雪地中唱歌,街上的路人不可能料到這三個人將會是未來科技巨擘,然而他們不僅在數十億

個晶圓上留下持久的印記,也在我們的生活中留下了持久的印記。他們發明的晶片及建立的

產業提供了隱藏的電路,不僅建構了我們的歷史,也將塑造我們的未來。"

(書中原本的描述內容)

---

果然是歷史學家的文筆。

所以啦,年輕人們,不要年紀輕輕就關起門裡來,就以為自己有多厲害?

多出去走走,去一下別人的公司見識見識一下,增加一下自己的視野,也多了解一下

別人的想法與做法,長遠來說:對你未來或對於你教導下一代都有很好的參考依據。

分享給各位。加油吧。

4 則留言:

  1. 再來是"計算力戰爭"。已知的原型計算力只有三種媒介物質:DNA/RNA,電子,量子。電子計算是最好控制的,但有局限性。電子計算會走很久,但另外二種也很有特色,不管如何再來的AI都和這三種計算媒介有關。
    個人覺得量子計算若可以集合成單一量子智能,大概就是外星人了,或是另一種次元的智能。

    回覆刪除
    回覆
    1. 你說得太艱深了。我完全聽不懂,也沒辦法體會。
      所以我說:我已經老了。

      我現在只知道:透過計算力,AI 越來越強大了。
      我跟太太說:反正我們不懂,我們只要把自己顧好就好了。
      也不想問小孩子,看新聞之後,我們只好在旁邊喔~喔~喔~
      然後,我們兩個就乖乖的去廚房削水果就好了。
      ---
      反正AI 現在有多強,我們還是要吃三餐的,把肚子填飽比較重要。
      哈~哈~

      外星人?移民火星?我這輩子能看到一票機器人工作時,就應該算
      不容易了。上周又傳來一位同儕在六十歲前就走了。
      現在聽到朋友說:誰的小孩結婚的消息很少。聽到某人走了比較多啊。
      唉~唉~

      刪除
  2. 深有同感...現在我常逢人就說,如果一個東西我沒辦法講到公司從上到下都懂,那無論多厲害我都不會去做,因為跑業務的不是我,客服也不是我,決定公司未來走向的也不是我,而且如果是我第一個想到的,那有很大的機率是錯的

    生產,RMA這些我也是很有感...現在大家都拿open source來湊答案,那問題來了,那有沒有能力對這些open source進行分析除錯驗證?我發現這很少人討論,事實上只要來一次RMA就有可能翻車,老闆跟客戶要你解釋你解釋不出來,

    我只覺得自己越來越不厲害,知道的實在太少了

    回覆刪除
    回覆
    1. 你太客氣了啦 。
      可能是我們年紀越來越大,就懂得自己真的沒甚麼可以拿出來說的啦。

      相較於現在越來越眼花撩亂的網路訊息,這邊隨便來個開箱文,
      那邊來個令人驚豔的DIY 成果,就真的越來越覺得自己一無是處了。

      其實我們更怕的是:當老闆看到這些東西之後,就一天到晚幻想自己
      公司應該也可以搞搞這些東西,透過網路的開箱文、DIY 影片...
      好像這些產品或技術都沒啥困難的~
      到底是我們老了?還是真的落伍了?

      不過說來倒是真的:如果別人不懂,業務不會賣。
      我就不會把技術拿出來說嘴,沒有人願意幫你做產品導入量產、
      沒有業務要幫忙處理過濾市場訊息,沒有客服幫你處理客訴。
      就不要浪費時間投入技術開發...

      就算技術委託服務案、或是甚麼技術顧問活等等...一律敬謝不敏。
      甚麼年紀了,還在幻想甚麼?自己過得快活比較實際吧。

      刪除