2020年9月6日 星期日

我的 ARM--- STM32 故事 (二) MCU 選型

之前說過,不是我不想用32 Bits 的MCU, 而是真的要看系統應用需求。

但隨著許多外在環境的改變或許多網路上系統開發資源的越來越完善,

所以就無形中一直在改變著我們在系統上的開發方式,這沒有甚麼好說的。

這本來就是趨勢,這不是來自你我所能決定的,這是整個產業,包括最上游

的MCU 廠的想法,尤其是一些傳統的IDM 大廠所塑造的市場潮流。

更何況這是這些MCU 原廠在市場上競爭使然,他們都是比誰的企業大、比資源,

比氣長的商場競爭遊戲。這不是我們這一種小人物或小公司所能左右的。

當然人家也不一定要理你啊。所以這一種趨勢或答案也不用解釋或說甚麼的。

最近一年因為全球疫情關係,的確影響著整個全球產業或市場遊戲規格的

改變,當然也包括我們這些搞系統開發設計人員。朋友一直過去都是長期

待在中國大陸從事系統開發工作,客戶台商或大陸企業都有。今年因為疫情

關係,因為配合台商客戶的需求而暫時將工作環境移回台灣,剛好他有個

USB 技術有關的東西,希望能找個人協助處理,所以就找上我了。

他跟我說:就不用想甚麼啦,就是直接用 stm32 啊。這個東西一開始是用

STM32F103C8xx,但隨著系統開發,慢慢的發現好像不管ROM或RAM

都有點捉襟見肘了,我們這一種老是會替老闆或客戶省錢的工程師就會

想如何透過一些特殊的技巧,在系統上精簡程式或記憶體來完成同樣的

系統功能,但朋友就很乾脆地的跟我說:"Chamber ,你就不用傷腦筋了啦,

來,你直接在Google 裡打開 stm32 的選型單,我們來看一下。"

蛤?你大陸待久了,果然一付大陸人用詞與想法了啊。"stm32 選型?"

我們都不是說 Products selection guide 嗎?

"喔~那我們就換成 STM32F103RCxx 好了,那我下周就請大陸那邊更新

PCB 及零件,下周就可以給你新的平台了。你不用再浪費那個時間了。"

是啊。有這一種的資源支援,我幹嘛還要浪費那個時間啊,但這個東西價錢

有差啊?

"Chamber 啊,你幹嘛還想這麼多啊,你以為每個案子還像我們以前在IC 設計

公司裡,產品動不動就幾百K 或幾KK 的啊?在大陸這些MCU 只要不太偏門,

像這種 STM32F103 這兩種量大的型號,差不了多少的啦。"

你還想那麼多幹嘛?客戶在市場要的是降低成本與搶產品市場時間,那如果

這兩種不得兼顧的話,那就搶產品時間啊,經由這一次全球疫情,你還以為

每個東西還可以讓你從成本降低優先考慮的讓你在那邊慢慢孵蛋喔?
---
唉~今年全球發生疫情這件事,果然是影響深遠啊。

以前我在IC 設計時,或是在多核心MCU 時,都還在想說:如果能在程式

或IC 本身的成本能降一點,對於公司的獲利都是可觀的,所以就非常

斤斤計較這些小細節,但現在對於許多瞬息萬變的市場,尤其許多IT產品

動不動都是講求雲端或是物聯網的,說真的許多那些幾K 或是傳統的消費性

產品,就變得渺小,更不用說:我朋友在大陸也待了超過二十年了,

他自己也都已經沒有再搞那一種小玩意兒了,想必大陸人也是趨於這種

市場態勢,想想就連 stm32 或 Atmel Arduino 的MCU 都有大陸版了。

(stm32 在大陸有 GD32, Atmel 的ATMega328P 有 LGT8F328P)。

想想如果自己還在侷限在過去這一種產品開發思維的話,那真的不是

你自己不會想,而真的會被市場給淘汰掉。

但話又說回來,不過,我自己還蠻慶幸的是:我還是有走過以前那一種從

單晶片的組合語言,及一些MCU 設計業裡的指令集驗證或是MCU 開發平台

的演進過程。所以當我接手這些新一代的MCU 平台,更是無縫接軌的

承接起來,也是過去也一直都有寫一些USB 相關的PC 端APP 軟體,

所以對於這些在網路平台中,提供許多參考設計的韌體(其實也搞不清楚,

還是不是還稱為韌體的 32 bits 撰寫程式,他幾乎就已經是我們早期在

DOS 時代寫電腦基礎Command line APP 的架構幾乎相去不遠了。)。

其實都可以讓我們幾乎不用花太多的心思,就可以馬上切入產品本身的系統

開發工作,更何況:現在市場也越來越少能有像我們這樣子從以前那個 8 bits

MCU 時代搞韌體系統的人來承接這些還涉及許多兼顧系統硬體及底層開發的

人員。或許朋友講的一句話可以幫我這一輩的工程師們留下一個更好的註解:

隨著科技技術的不斷的演進,不是我們守著既有的核心技術價值就夠了,

而是更應該隨著這些越來越先進的技術(不管是MCU本身的硬體架構,或是

許多系統開發資源,包括隨著網路越來越發達的開放源或開發平台等)。

善用這些強大的資源與工具,而讓自己越來越強大才行,而不是抱著那些以前

的東西,還在那邊倡導自己的英雄事蹟啊

我想:這應該那些傳統 8 bits MCU 廠商(不管是IDM 或 IC 設計公司),一樣的

想法,不應該還守著那個越來越艱困的市場環境,而是應該如何透過市場

成長讓自己更強大來面對未來的挑戰啊。

所以呢...我還是很高興幾年前從Arduino 看到MCU 應用市場生態的改變,

我就已經決定不留在台廠IC 設計公司的那些 8 Bits MCU 的那些市場開發思維。

而從更有發展與活潑的市場環境,強化自己在產品系統開發能力,

而讓自己更能面對市場的挑戰。加油吧。













15 則留言:

  1. 這堑2010年時三大ARM MCU對打時就有的問題。當時ST,NXP,TI都用ARM,還有一堆小咖(有的也不小像FreeScale),為何ST可以像今天一樣獨霸。都是大廠,都有錢,大家都看到趨勢。為何還能幐出,ST是最早全開放原始碼的,又強化型號相容性,這二者是關鍵。

    回覆刪除
    回覆
    1. 這的確是如此。

      "為何還能幐出,ST是最早全開放原始碼的,又強化型號相容性,這二者是關鍵。"

      但另外兩家也都各自找到自己的發展方向:NXP 在車用,TI 在馬達與工業用...

      當然啊 Freescale 也賣給NXP 了。

      ST 也因為全開放原始碼,在加上在大陸地區使用者的大量"助攻"之下。

      真的銳不可擋。某種程度來說:他做到真正威脅到 8bits MCU 的生存空間。

      因為在這一種趨勢之下,會讓市場上,隨著那些原本使用 8 bits MCU 的開發者,

      慢慢消退之後,(一者轉換32bits,二者老去退休...),新一代年輕開發者開始接手

      市場時,就會開始凸顯其市場主流。

      經由這幾年的醞釀,我個人覺得已經是不遠的將來了。

      刪除
  2. >>老是會替老闆或客戶省錢的工程師就會想如何透過一些特殊的技巧

    說直接點還是經濟效應,MCU變便宜閣下之前就說過了就不再說
    相對的就是人力與時間成本變得貴,尤其是現在隨便一個系統可能就
    比二三十年前的程式複雜度十倍甚至百倍起跳,現在比較重視可維護性

    好不好讀、是否容易擴充、能不能做單元測試,相關的程式是不是放一起
    還是到處都是等等

    系統架構與軟體工程也不算是太新的學問了,不過好就好在寫什麼程式都用得上

    回覆刪除
    回覆
    1. 所以我個人認為現在寫個程式真的不是甚麼大問題的。

      重點還是在於專業領域的養成,及系統整合開發工作:

      這包括著:如何在系統上如何快速架設產品(系統)開發平台?

      如何善用各種輔助工具(示波器、邏輯分析儀等),來加速系統開發的測試驗工作。

      而這些都需要年輕工程師所必須歷練走過的經驗累積。這個就真的需要時間了。

      當然有沒有那個訓練養成環境就很重要了。包括公司硬體資源,人員訓練或前輩傳承等。

      這些也都是很重要的,所以相對來說:MCU 的成本單價來看,真的已經不是重點了。

      尤其當 32 bits MCU 的開發平台也越來越便宜,資源取得也非常容易,

      所以這已經不是單純的MCU 單價成本競爭而已了。

      刪除
  3. 我還以為STM32的知名度已經跟8051差不多了,前陣子去一線IC廠面試ASIC的韌體工程師時提到以前某個案子使用STM32實現XXXXXX等等功能時,面試官竟然問我STM32是什麼XD...

    回覆刪除
    回覆
    1. 這種事對我來說:一點也不意外。

      因為台灣的公司還在用一般傳統的舊思維:8051 IP 便宜,(可能也不用錢的。)

      8051 的硬體成本比較低,對IC 設計架構也比較簡單,MCU硬體功能做不到的。

      就用IC 設計周邊來彌補...反正就是以最低的成本來看應用市場。

      這個就是以前,他們不放棄 6502 而一度拒絕 8051 。後來發現:要找 6502 的

      高階開發平台(C 語言或ICE等),真的越來越難了,這也包括韌體開發工程師也找不到了。

      那只好接受 8051 ,但同樣的故事也會再發現8051 看著 32 Bits ARM 的興起一樣。

      所以台灣還是有一堆還再搞標準8051 的MCU 生意,更不用說那些 PIC-Like 的MCU。

      其中最令人受不了的是:都還再用 OTP 下 Mask Code 的開發方式。

      現在真的沒有多少年輕小朋友工程師還有那麼閒功夫搞這些。你也不要以為:

      這種生意只要找到幾格老工程師就搞定,我跟你說啦:像我們這一種老工程師

      也會受不了的啦。甚麼時代了,還再用OTP ?你以為TSMC 或這些FAB 廠守著這個

      就比較好賺?這根本就是阻礙著IC 發展進步的絆腳石啊。

      刪除
    2. 以前他們都會跟你說:甚麼OTP 的IC 比較強壯,甚麼工規或車規的OTP 都比

      Flash Based 來得穩定。甚麼啊。

      我自己搞車用電子,還是搞高壓點火的CDI,我都是一直用 Flash Based 的。

      從來也沒出過甚麼問題。你也可以去查一查人家 Infineon 、ST 或NXP (FreeScale)

      這些世界頂級車用電子MCU 大廠,誰還再叫你用OTP 來寫程式,開發系統的?

      老人家講的,想的。是他們想賺他們好賺的。年輕人啊,你們就別傻了。

      未來寫程式的日子還很長的,當你看到別人或同學突飛猛進時,你還在在那個

      小小的幾K OTP ROM Size 裡擠Code 。

      老闆賺錢也不會多分你一點的啦,更何況這個東西在是市場是靠省錢賺出毛利的。

      你還有多少獲利空間啊?

      刪除
    3. 不知STM32?現在都在玩直接網頁燒錄下載,我不信8051可以跟上來。
      有時我會覺得是人不去跟上時代,和進步不進步沒有關係。
      那種人大多等退,反而變成公司進步的擋路石!

      刪除
    4. 我個人覺得啦。這些IC 設計業的老闆們,真的也是要替新一代年輕人著想。

      以前大家還可以從這些很低階的MCU 透過大陸市場還可以賺到錢,

      的確他們也真的透過這些方式是有賺到錢了。

      但不可能天天都在過年的啦。以前大陸還可以陪你這麼玩。

      但人家現在也可以透過華為這種大企業,用技術跟世界接軌了。

      人家都已經不只在硬體還有軟體,乃至於大型系統,都可以與歐美國家一較長短了。

      反觀國內這些傳統IC 設計公司,你們還在靠燃燒年輕人的肝,來賺這一種蠅頭小利。

      搞這些低階產品,人家真的只是不想跟你們玩這一種折磨"碼農"的生意而已。

      我兒子都已經上班了,說真的~我還真不建議他們去搞這些,這些產品真的

      不是一個可以放眼天下,一個可以看長久的工作與生意啊。

      那怕可能只需要小貓兩三隻可以做的東西,但真的對年輕人的未來幫助不大。

      ---個人見解。

      刪除
    5. 以前我也會覺得什麼不懂那些新技術很@#$^&...現在我上了年紀就覺得很正常,如果我花了10年打造一套東西已經讓我吃得很舒服,老闆也一路出貨收錢,那學新技術自然就會比較沒動力,而且很多公司升上主管後幾乎沒在研發都是專職管理整天開會,而且台灣比較少像國外大公司那樣,有一個專門研究3-5年後要拿出來賣的新技術研究單位

      而且台灣企業常常有一種風氣,如果用什麼新技術(例:新MCU,新程式語言...)開發產品出問題,那引進這些新技術的人往往就會成為頭號戰犯,正所謂棒打出頭鳥~

      刪除
    6. 那些人還沒有等退喔大概接近40歲而已,還要狂加班趕進度的那種階級,應該是因為資工所畢業+畢業後都沒換過工作吧,聽說是自己的CPU、編譯器,MCU應用開發的經歷感覺他們不懂也不想了解..甚至還覺得我的專長不是韌體,只因為現職需要自己規畫應用電路+寫韌體...

      刪除
    7. 每個老闆都會有自己喜好的東西,也有他信賴的班底。

      這也沒有不對的,因為可能就是因為這些班底讓老闆嘗過甜頭,也讓他穩坐位子。

      這跟古代皇帝一般,不管有怎麼樣的忠臣或良將,有時候也不一定能跟皇帝身邊

      的內臣相比較的。不過,幸好的是:公司的老闆也只不過一個企業老闆而已,

      畢竟他也不是掌握你人生生殺大權的人。

      老闆跟員工,尤其是搞RD 的工程師,他們的利益本來就不一致的。

      RD 是搞研發,是花老闆的錢,等到賺錢時,自然就容易狡兔死,走狗烹的。

      也不是每個老闆都願意一直投資創新的,或許等他已經覺得賺夠了,

      或許他就想透過一些人的管理公司讓他可以頤養天年,就像萬曆皇帝一樣。

      你可以說他不對嗎?所以說啦:員工的利益真的跟老闆是不一樣的啦。

      再簡單一個例子:三國時期,曹操八十萬大軍南下逼迫東吳孫權,

      很多臣子主和,但魯肅跟孫權說:大家都可以投降,就你不行。

      因為對臣子來說,換個主子就像換個老闆而已,大家一樣酒照喝,馬照跑。

      但你老闆可能不但沒了工作,也可能沒命了...

      所以在強調一次:老闆跟員工利益是不一致的。這一點你真的要認清楚才行。

      刪除
  4. 當戰犯這種事上個工作就幹過了,那時是要把用VB6開發
    的程式轉移到VB.NET(你只要二邊都寫過就知道6連IDE都
    很難用),也是痛苦一陣子,後來背的鍋多了,新人來了就
    不再幹這種吃力不討好的事

    後來公司要求寫Android又是另一個故事了

    回覆刪除
  5. 戰犯這種事我也幹過,
    還是hw+fw !?
    只不過是將RF BJT改為MMIC而已,
    還順便作cost down,
    也不用每個BAND都要tune matching,
    FW只是將部份原本用VR調整的步驟改為ADC讀值+USART命令記錄作cost down,
    也是被唸到一個不行,
    不是說以前人都不是這樣作的,
    就是說你保證不會有問題嗎等等的,

    現在也是只能得過且過
    以免又踩坑了

    回覆刪除
  6. 以上兩位,這種事就當練功吧。

    也算是一種額外的經驗值累積與收穫吧。

    只是真的不要老事幹這種事,因為經驗值(或"獎金點數"嘻~嘻)累積最終還是要換回

    實質的報酬才行,否則一旦使用期限一到,就甚麼也都換不到了。不是這樣子嗎?

    人生變現的另一種解讀方式。參考~參考吧。

    回覆刪除