2020年9月2日 星期三

USB DIY 外一章 --- USB MCU 產品開發經驗談

簡單來說: 帶USB 的MCU ,就是拿來作與 PC 連結有關的產品,

一則就是產品本身就有USB 連線功能;二則嘛!就是拿USB MCU 來做一些

開發或輔助工具之類的。如果USB 是走標準的介面:譬如 U-Disk 的MSDC。

或是串列的 CDC 或 Virtual COM 的話,那大概也不用搞甚麼APP 應用軟體。

但這些都是屬於比較大宗的產品之類,一般來說:如果使用條件比較特殊的,

尤其是開發工具之類的,大概也都會綁自己的應用軟體,但也不一定要用自己的

驅動程式。我以前搞USB ROM 模擬器,是用我以前做過的USB Scanner SOC 作的。

而我幫多核心MCU 作的第一代ICE 開發工具也是這一棵。是用自己的驅動程式。

但後來因為那一顆USB MCU 真的太特殊了,貨源取得不易,所以我就改用

一般帶有USB 的標準MCU 了。我用的是 Silicon Labs 的 C8051F3xx 系列。

走的是高速的Custom HID 介面,不用驅動程式,但得要自己寫APP 應用程式。

第一個產品就是CDI 的下載編輯工具:




就是上圖中,右下角那一條USB 傳輸線。

上圖是它的功能示意圖。

但上圖照片中的不是第一代的產品,而他的第一代是有比較特殊功能的:


呵~呵。也出了不少吧。

但我後來許多產品開發的輔助工具就一直沿用這一款的基本韌體程式架構,

透過韌體的可以不斷的自我更新,就可以讓它的功能一直擴充延伸。

也不再只侷限在CDI 的產品應用中了,因為畢竟許多產品開發或維護,

其實都是可以透過電腦來進行市昶或客戶的技術支援。因為許多產品

不光只是把東西搞定完成之後,就沒事了,有許多產品內容是需要不斷的更新

升級,這也代表著你對於產品在市場開發的專業與堅持

所以我又改版了:


從上圖的上方那一片紅色版子,大家可以看到另一個網路很有名的產品:

USB 轉 UART 的IC --- CP2102。

是的。我就是要來講從我自己的USB 產品開發經驗來看這一顆 CP2102 的想法。
---

坦白講,我用的這一顆USB MCU 的"時代有點久遠了"。以現在半導體的產品

壽命來說:過了十幾年,還在用?真的太老了,跟不上時代了。

該原廠也有出新一代的USB MCU,稱為 EFM8UB1/EFM8UB2。

這兩顆我都有玩過,也都已經完成底層基本的智能升級(ISP) 的基本功能與

上位機(大陸用詞)應用軟體了。但產品開發,還是以支持老市場與老客戶為主。

也不是一天到晚都在換IC 的解決方案的。所以目前還是就以此USB MCU 為主。

但比較令人擔心的是:會不會有一天原廠把這一顆USB MCU 給 Phase out 停產了?

其實,我自己一點也不擔心。為什麼?因為我嚴重的懷疑:市場上這一顆 CP2102

USB 轉UART 的晶片就是用這一顆USB MCU 寫韌體程式給完成的

而這一顆USB 轉UART 真的賣得嚇嚇叫,以前還有一顆 FTDI  可以跟他相媲美。

但這一家公司的相關產品種類與價格總是不夠親民,就逐漸被遺忘了...

那就更不用說:大陸還有一些"後起之秀",藉由民族情結打開市場。

但我們一般公認還是CP2102 或FTDI 的還是比較穩定。而這顆IC 的市場

不光只是一般單獨的USB 轉UART 模組板子而已,現在再所謂的Home Maker

的DIY 市場中(譬如Arduino 或樹莓派等這一類的開發平台中),流行許多模組

擴充版子,或是一些相關廠商所推出的學習開發平台,也都會用這一類的IC。

所以我們就來看一下產品相關的蛛絲馬跡吧:


從原廠釋出的規格書來看:其實這些功能都是可以用韌體完成的。

也幾乎不需要額外的硬體支援,況且以USB 的傳輸規格來說:比起傳統的 UART

的標準傳輸Baud Rate ,真的綽綽有餘的啦。

我們在來看包裝的PIN 腳定義比較:


是不是幾乎完全一樣啊?尤其是8051 的UART 的TX/RX 的標準定義腳位就是:

P0.4/P0.5 啊。

所以我會懷疑這顆CP2102 就是拿此顆USB MCU 以寫韌體方式完成另一個標準IC 產品。

但你也不要以為這種韌體很好寫,其實標準UART 也不是只有TX/RX 而已。

以前我在搞USB SOC 時,後來我們的設計團隊也有曾經投入開發這種 USB 轉UART

的IC 開發,是的。當然以IC 架構來看,沒甚麼額外的硬體支援,只要靠韌體完善就好。

但是我知道他們後來一直寫、一直寫,然後在一些標準的UART 測試平台,一直搞,

一直有相容性問題,出了幾版IC 之後,就投降了。要不然你以為為什麼看起來這麼

便宜簡單的開發產品方式,怎麼沒有看到有多少類似的IC 出來搶市場啊?

想必也有你意想不到的地方啊。
-----
好了,然後呢?因為畢竟這一種標準IC 肯定是比我們這一種搞了老半天韌體的

東西好賣多了,所以我們推論:這一顆標準會比原來USB MCU IC 的賣法不同。

所以我們就查了一下:





果然沒錯吧。

這就告訴我們:有時候啊,寫韌體並不一定有它的價值的,主要還是要從市場規模

來回推真正的價值。寫完一個那麼完善的韌體IC 竟然比一顆空白IC 的售價低啊。

所以工程師寫韌體也只不過幫別人抬轎:只要能在市場衝量,這才是搞韌體系統的

價值啊。

然後我們再來看買了IC 之後,在作成模組PCB 之後的售價:



平均真的差不到:台幣十塊錢。你還要扣掉PCB 、被動元件、SMD 加工,外加一個

USB 接頭。這個東西真的不是每個人都可以做的生意啊。

然後到了台灣的網購平台:



就看你覺得合不合算了囉。我跟你說:肯定可以買到比這個便宜的啦。

因為我買到的就是低於NT :50 元啊。

為什麼我會買模組回來呢?因為我要做個實驗:那我可不可以直接將我的韌體程式

燒錄到此一CP2102 上,因為真的CP2102 真的比原來的USB MCU 便宜啊。

而且他的貨源也肯定比較多的啦。

但很不幸的是:我要告訴你我的實驗結果:


那就是:原廠在完成 CP2102 韌體載入(這肯定是在IC 封測FT 時,順便完成的

燒錄工作)之後,就把這一隻:C2D 的腳封裝時,把她拉到GND ,那你就沒得玩了。

其實這一種遊戲與手法,我們以前在IC 設計公司時,也常玩這一招。

所以當我一測到這一隻腳位的訊號時,我就知道沒解了。
----
好。我已經交代完我的實驗結果。我們再來解讀所謂的市場想法。

以我現在的產品開發資歷或年紀來說:我是覺得真的不用再強調產品技術或專業了。

而是要用這些專業技術以外的角度來看市場與產品開發之間關係。

以原廠來說:他們明明已經有新一代的USB MCU 了,那為什麼他們不用新一代

的MCU 再來搞一次,因為新一代的USB MCU 是比較高階製程,在產品生產與

市場銷售方面有更好的競爭力啊,尤其是在面對新一代所謂的"大陸相關晶片"

低價競爭之下。如果是我們這一種宅男工程師們,肯定會自動請纓的跟老闆說:

"只是再從舊的MCU 平台上,再移植一次韌體就好了啊...這個簡單。"

(老是苦命的打工仔或大陸所稱的"碼農"宿命想法。)

但為什麼我們沒有在市場看到這一種結果呢?答案當然就是市場業務考量啊。

你知道這一種"穩定收現金的"生意,是累積多久才能建立起來的。

怎麼可能讓你這一種整天想玩新玩意,一天到晚都想追求新產品技術的工程師

所能理解的呢?

我舉另一個很簡單的例子,我們每次都看到人家推出新款機車時,我們都覺得

那些傳統機車廠不求長進,整天就守著舊產品開發作小改款。尤其年輕人就會

跟著罵。是的。你講得沒錯,那如果換你是機車廠的老闆又會怎麼想?

我以前舉例說過:光陽的GP125 (豪邁延伸系列)或三陽的GT125 (迪爵延伸系列)。

這一種婆婆媽媽的買菜車,已經賣到不要說日本人看了也無力,就連一樣是本島

其他車廠來說:你們一台賣 49,800 元,你們可以賣,但別人卻不行啊。

因為它的產品開發與生產成本已經攤提到幾乎歸零了。不要說光賣車子,就算讓你

銷售毛利低一點,但就連後續的維修保養市場商機也很可觀的。

這一種車子讓一般機車行就算沒有任何銷售傭金或獎金紅利的,也是一堆機車行

搶著賣,而那些其他品牌車廠或創新品牌車廠,就算你要倒貼銷售獎勵金,

人家也未必願意跟你合作啊。這不只是國內機車如此,就連汽車市場也是一樣,

你光看TOYOTA 的兩款 Corolla 或 Yaris 這一種小孩保母接送車也是一樣。

因為光靠這一些經典車款,根本可以讓原廠與生產線不用擔心任何開門七件事。

每年幾乎都有穩定的印鈔機來貢獻研發基金。這就跟科技業裡的Apple 或微軟也是

一樣的。所以有時候,你真的不要老是想用創新或技術來塑造自己有多厲害,

當你真的面臨開門七件事時,你真的需要的已經不是天天找新技術、新產品開發,

而是如何在一些既有的市場裡找你自己的開門七件事的"衣食父母"啊。

所以說啊,你說像這一顆USB 轉UART 的IC ,原廠怎麼可能會輕易改版來斷送

自己辛苦打下的江山,而冒著平白的讓競爭對手有任何見縫插針的機會與風險呢?

(更何況搞不好原來那些搞舊版韌體的工程師,都已經不在公司內了啊。)

當只要有市場規模支撐,不管是自己本身的成本攤提,就連許多周邊協力廠商

也都會全力支持的。尤其像現在這一種突然遭逢全球疫情影響市場情形下,

這一種可以穩定提供工廠運作的基本市場機制,對許多廠商來說:

都是很好的衣食父母。

所以當你看到老闆有時候對於公司的"老臣"或一些老產品,為什麼會老是念念不忘,

有時候你也會從新產品、新技術市場趨勢看到許多老產品,總覺得不可思議時,

或許你也可以從以上的這些故事想想:對公司或對老闆來說,到底哪一種營運模式

對他們來說:到底誰會比較重要呢?

當然啊,在這些基本盤營運無慮之下,自然就可以談新產品,新技術開發啊。

如果真的有一天你的技術貢獻可以幫老闆無縫接軌到創造公司營運基本盤時,

老闆自然也會賞識你,你當然也就可成為另一個"老臣",坐享所有一切公司

對你的尊榮待遇。你說對不對啊?

所以啦,當你整天對新技術、新產品開發總是念念不忘時,有時也想透過

學習新技術來刷自己的存在感時,或許你真的可以好好從這些既有的產品

故事來想想吧。

以上是我自己本身的產品開發經驗談吧。分享給各位參考。

也謝謝你的閱讀。





12 則留言:

  1. >整天想玩新玩意,一天到晚都想追求新產品技術的工程師

    這句說實在話,真的是有些輕佻了
    新產品,新技術代表著它們也需要市場去驗證到底有沒有
    一席之位,講白點就是試水溫
    或者以另一個角度來說,這也是一種宣傳
    (蘋果現在很多人認為不如老賈在位時做得好,但它還是
    每年都會說自家晶片如何如何的)

    如同書商喜歡跑學校送樣書、IC公司送開發版,這些宣
    傳成本可能還沒有研發成本的九牛一毛,收到這些的老師、
    工程師實際一搞下去很快就知道這東西到底好不好,
    還是單純的雜物

    回到文中所提的USB轉UART這東西,我前公司用的是PL2303這家的
    ,當初WIN10剛出時,驅動及相容性問題對方反應也是快,
    很快就有新驅動可以用,現在雜牌IC滿天飛,這家還是有生意能做。
    因為你只要用給雜牌搞到一陣子,就知道老牌子的好,因為人家
    就是從新技術慢慢累積經驗
    (更好的FTDI人家也是一做十多年,價位就反映它的穩定度)

    做個簡單結論:從新技術新產品,變成穩定獲利的商機,其實
    都是過程而己,有個人說過「大膽假設、小心求證」,但我更要說
    「大膽創新、小心驗證」

    一點小意見

    回覆刪除
    回覆
    1. 謝謝你的提點。

      的確,"整天想玩新玩意,一天到晚都想追求新產品技術的工程師" 這句話的確有輕佻了。

      抱歉了。我可能用比較現實的說法,或是以小資源的角度過度解讀了。

      以大公司或想放手一搏的人來說:創新當然是理所當然的。那當然也是一種機會。

      只是對於每個主其事者來說:重點應該還是在於如何設定停損點。

      投入創新研究是一條漫長的道路,對工程師來說:他可能是一個永無止境的挑戰。

      但畢竟許多創新研發,還是要有一個"如何變現的Check Point"。

      花老闆或別人的錢一值搞研發,對工程師來說:當然是好事啊。

      如果台灣有像老美那一種貝爾實驗室,我也喜歡去啊。以前我畢業剛進工研院時,

      也是有這一種感覺,但後來當政府要求科專經費/民間資金=50/50時,就可以感受到

      長官的壓力了。那就更不用說:一般民間企業的研發經費佔營收的10%(1/10),就

      給個大大的讚了。(當然我們也不知道老闆與會計在帳面上如何計算這個研發比例的...)

      ---
      至於所謂的「大膽創新、小心驗證」,這個我完全同意。

      只是有時候,有些工程師就只是喜歡搞新玩意兒,對於那些後續要一直為維護

      不斷Debug 升級的東西,就沒有像對創新的東西的熱情了。

      所以我們常常看到的是:會那麼想堅持的,往往反而是業務或老闆他們。

      很諷刺吧。


      刪除
  2. >"如何變現的Check Point"。

    其實要講這個,還是要回到專案管理的概念
    就如同閣下說的,不管是對人或公司來說,我們的金錢時間人力都是有限的

    只要當過工程師,或多或少都有案子爆炸要救火的事,
    (實在沒辦法談別的經驗了,因為我不是主管或老闆,哈)
    但不外乎都是那些問題:技術不行、人力不夠、時間太短,
    其實工程師沒有一般人想的這麼沒有sense,有時也是苦主,
    能體會到管理失誤的後果是什麼。

    記得幾個月前新人來到,說是打雜,實際上是養即戰力,但缺
    乏教育訓練與工作超時的結果,人還是提早走了,結果案子還是
    亂七八糟,最近還要收掉一個放了一年的問題要解決

    再來提提另一個例子,同園區附近一間公司,接了一堆案,結果
    幾個案之後還是延後了,因為人力跟不上業務需求,同時經費也
    砍了。

    想起以前看過的一篇文章,放到現在還是很有意思。

    如何凸顯PM的價值?
    https://www.javaworld.com.tw/jute/post/view?bid=14&id=253074&tpg=1&ppg=1&sty=1&age=0

    當然,不在那個位置上,其實是很難體會在那個位置上的苦楚。
    不是RD的人,可能無法體會為一個問題想到掉頭髮的經驗;
    不是主管的人,無法體會夾在中間的人二面不討好的感覺,
    不是業務的人,無法體會那種跑個案子跑到鞋底都磨光的感覺,
    不是老闆的人,很難體會風光時萬人跟進、關門時樹倒猢猻散的感覺。

    最近滿一年就職,感觸還比技術的事多,不知不覺又說了一堆

    回覆刪除
    回覆
    1. 突然最近又回頭看到這篇留言,看了真的百感交集啊。

      其實不管在哪個工作或職位上,也不管好或壞,都是一種修練。

      因為就算是沒有任何選擇條件的家人、親子關係,也都不容易保持一定熱情或耐心。

      更何況是工作呢?就算你從事某項技術開發,一開始也會覺得不錯啊,是主流也是未來。

      但過了一陣子,市場也有可能有新技術、或新革新改版或替代方案出現...

      這多多少少也會衝擊每個人的熱誠與耐性的...所以不管是搞技術或業務、老闆等。

      永遠都會有意想不到的"意外",就像這波疫情衝擊下,有多少原本抱著夢想的店家

      倒地不起,技不如人?沒有好的產品或行銷規劃?開店地點不佳?...

      所以當你有了一點年紀,人事物也看多了,自然就有多一點感觸,就不會像

      剛畢業那時一般,眼前的人事物就是那麼單純了。

      人心啊...這層無形、的難以捉摸的東西,還是最複雜,最難跨越的人生障礙啊。
      ---
      因為最近老闆原本找了一位技術幫手,結果上班還不到一周... 就跟老闆說:

      不好意思了。

      這沒有誰對?誰錯?...這就是人心啊。你懂,老闆當然也懂啊。

      刪除
  3. 因為工作上需要,最近在找USB轉RS232/422/485,FTDI是我的首選,跟大陸廠商一打聽,不是常見的FT232RL,而是FT230XS,對方表示市場上FT232RL太多假貨,翻新品,所以不用FT232RL,所以看似價格不夠親民,其實是有暴利可圖...畢竟FTDI這家公司driver有在認真維護,連Linux也是嚇嚇叫(用虛擬機器穿透到FT232RL也沒問題)

    而且FTDI baudrate可以輕鬆超過115200bps,之前公司用PL系列燒firmware試驗了好幾條都卡在115200bps,所以FTDI雖然貴了點,但很多人跟我一樣不會為了省那幾十元給自己找麻煩

    回覆刪除
    回覆
    1. 卻實,
      FTDI在實測上的傳輸穩定度的品質上與它的價格成正比。
      個人在設計初期也是以它們家的為首選,
      只是工程師的無奈就是,
      初期雖然時間因素可能會讓你放,
      後期會以價格因素要求換料,
      之後的問題維護才是難以處理的。

      刪除
    2. 嗯。這的確驗證了我文中的說法:

      "UART (RS232)明明就只是Tx/Rx 而已啊。怎麼會那麼複雜呢?"

      魔鬼總是藏在細節裡。所以啦,不要以為光只是簡單的東西,大家都可以搞。

      有些東西也不是我們這一般人所能體會的。

      所以啦,或許USB 的東西搞不好反過來還單純一點吧。

      刪除
    3. 最近回憶起往事,大家都知道RS485在9600bps時傳送距離可以到1.8km,前公司真的去買了1.8km的線回來測,前公司現在已經是該行業的領頭羊了~

      刪除
    4. 其實一般開發工作,最繁縟的工作,都不是在創新階段,

      而是在於許多後續的測試驗證工作,找方法、找平台,甚至如何模擬實境...

      或許大家從許多網路開箱文中,誤解了真正研發工作辛苦的一面吧。

      刪除
  4. 就我去年把常用的USB to UART的產品用過後,CP2102、FTDI產品本身對訊號的容忍度抗雜訊來說真的比較理想

    回覆刪除
    回覆
    1. 所以啦。搞產品設計研發不難。

      就看你有沒有用心與耐心的把一件看起來很簡單的事情做得很好。

      就像這個USB to UART 的IC 市場一樣。這兩家做得好,人家的東西就可以

      賣得久久長長的。這如果是擺在小公司哩,那肯定是傳家之寶,賣個一輩子也不愁吃穿的。

      但其他那些類似的產品,就只能殺價競爭,一天到晚又要改版又要更新韌體或驅動程式的。

      市場對這種產品供應商就是:多你一家也沒差,少你一家也沒差。以後總還會有人出來

      搞一樣的東西來殺你價錢的。這也就是我們老中最喜歡搞的事...意外嗎?

      我一點也不覺得奇怪。

      其實這個東西我們台灣其他IC 廠,難道就比人家晚起步嗎?當初價格沒有競爭力嗎?

      道理只有一個:老闆急啊,工程師也不一定就有那個耐心慢慢搞...趕快交差了事。

      "蛤?有問題?不兼容?...",解Bug 永遠是比創新辛苦與難堪。

      創新的已經領薪水、領獎金了,甚至升官了。解不出來,那就如吃霸王餐一樣:

      這家不能吃了?那就換另一家吃吧。

      呵~呵~而老闆你呢?能賣多少就賣多少吧。賣不動?那不會殺價喔?

      刪除