2012年10月29日 星期一

如何從規格認識新一代MCU

在此把這回研討會所展示的Demo 小玩意簡單的帶一下。

也順便藉此簡單的說明一下:如何從一般的規格書來判斷一棵IC 的基本架構。

-----

一般來說:20 pins 包裝的MCU 算是MCU 應用市場裡的一級戰區。

最早從Microchip 的PIC 到 Atmel 推出所謂的89S2051 開始,這一等級的

MCU 可說是各家MCU 廠兵家必爭之地,大家無不竭盡所能的來推出相關產品應戰。

SiLabs 原本在這一級產品為C8051F330...也沒有說這樣子的規格沒有什麼不對的。

但MCU IC 市場競爭,不能只看表面的規格而已,這其中牽涉到IC 原廠對於這樣子的

市場維護與保持一定的競爭優勢 :主要的考量就是"性價比"。...

但最能凸顯IC 性價比的特質就是要搭配IC 的製造成本,譬如說:就算規格保持一定,

但萬一您的IC 成本不能有效控制或降低成本的話,縱然有好的性能表現,最終也有

可能會被市場所淘汰。 

----

譬如:您原來的IC 是用 0.35 um 製程做的,但隨著製程提升與製造經濟規模的提升,

您總不能老是停留在0.35 um 製程吧!萬一人家IC 晶圓代工廠隨著設備提升與改善,

反而有可能您原本所需的0.35um 製程的製造成本增加了,或是說:人家新一代的

製程的製造成本降低了...(當然也有可能是IC 晶圓代工廠故意的~)。那您要不要把

您的產品移到新一代的IC 製造製程上生產。(講難聽一點:有許多IC 晶圓代工廠的

每一世代的IC 製程都有其一定的產能,產能有限,自然就會供給配合度比較好的客戶,

所以啦~

萬一您們家的IC 常常三天捕魚,五天曬網的...您就別想人家會給您好臉色(價格)!)

下回就不要老是很衝動的想動不動想開顆IC 來玩玩,您看現在這些IC 晶圓代工是什麼

臉色?!憑什麼人家要陪您玩?!更何況現在製程設備投資常常是越來越難回收的,

人家為什麼要讓您在那邊Try 產品啊?!IC 製造又不是洗PCB 版啊!

-----

所以想當然爾,以國外 SiLabs 這一種MCU 廠來說:F330 也算是他數一數二的主力

明星產品,人家當然也會如此考量的嘛!所以他今年推出了一棵準備取代 F330 ,

而較具市場競爭力的產品--- 其實主要應該還是配合先進製程的MCU 吧。

而要取代原本F330 市場,最重要的當然就是硬體上 Pin 腳的相容性嘛!這樣子既有客人

才可以無縫接軌。以下是他相對應的IC 編號:看起來沒有什麼差別。

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

但是我們看到以下簡單規格時: 1.8V ~3.6 V... 我們大概就可猜得到是:他們的確是進了一階

IC 製程....這一部份待會兒我們還可以從別的地方得到佐證。

(有可能就是從0.35um 進到0.18 um 製程)。


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

既然IC 製程提升了,代表一樣的IC 晶圓面積就可以增加額外的數位回路來增加功能,

當然啊~您也可以純粹降低IC 面積來降價求售...不過不是每一次這一招都有用的啦...

最好的方法應該是:加值不加價。維持一樣的售價,然後增加一些額外的硬體功能

來進一步提升性價比,增加產品在市場的競爭力。

所以我們就可以很明顯的看到這一個新產品觀念所帶來新功能:

首先:製程提升,代表IC 內部每一個邏輯閘之間的間距變小了,代表可以用更高速的方式

來處理程式的執行效能...所以明顯的他從原來的 25MHz 可以提升到 50 MHz 的執行效能...

當然也不一定可以完全跟著製程提升而同步提升的,這還是要看IC 架構上 Pre-Fetch

Flash ROM 的效能...這是需要Tuning 的啦。所以~我們要看要8051 要跑到  100 MHz

不是光靠製程提升這麼簡單的一件事。..8051 要跑到100 MHz 以上真的很難的啦。

---

第二部分就是當您塞了一大堆硬體方塊功能之後,您就得提供相對應的Registers 來控制

這些周邊硬體...但我們都知道8051 的 SFR 是在直接存取區 :80H~FFH 之間而已。

才區區128 Bytes 而已,而原本的8051 又佔去一些...所以SFR 是鐵定不夠用的啦。

一般人常用的方法是把這些SFR 用外部記憶體區來定義:xdata ...也沒有不好。

效能差一點...

但是萬一要提供中斷時怎麼辦?!當然可以學USB中斷啊~先一個中斷進去再來判斷。

但這樣子寫程式的人很辛苦。所以 Silabs 想到是在SFR 裡直接做Page ...這一種搞Page

的~他也不是第一家。Microchip 的PIC 早就常常碰到容量不足而切Page 了。

-----

SFR 切 Page 也見怪不怪了~但因為8051 中斷或副程式的Stack 也是佔用idata 那一塊

記憶體,當您提供硬體中斷越多,您的Stack 就要越深...更何況進中斷之後,您還要

存取這些切Page 的SFR 呢,那不就搞死這些寫韌體程式的工程師啊?!...

從這一點我們就看到了目前 8 bit MCU 常常會碰到的問題,沒辦法~

這是8 bit MCU 架構先天上的問題...雖然這一部份IC 原廠已經部分用硬體幫我們

處理掉了,但您還是有可能不小心又會採到這一個地雷的。

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

另外從規格可以看到原本 5V 容忍度的I/o 已經不見了~這明顯就是IC 製程的提升,

他們又不願意在I/O Cell 下太多功夫去處理這一個問題...

(就算您能夠在這一部份解決了,成本也不一定可以省啦!)。

----

至於IC 製程提升,IC 的面積肯定可以多出許多空間,所以多送您幾個 Timer 或I2C ...

甚至在多給您一個硬體的CRC 也沒關係啦。這些對於一般IC 設計者來說:都是小菜一碟啦。

只是要送您什麼硬體~就比較難挑一點吧。...(因為 IC 可能限於 IO Pad limit ...

要塞個 20 pin 在IC 四周~又每一根I/O Pad 就那麼粗,那肯定是Pad Limit 的啦!)

上一表格就是新的SFR 定義...落落長的一大堆。您有什麼辦法...又要人家送您一大堆硬體的

,不管您喜不喜歡,人家就是要強迫給您中獎的啦。...不過已經算客氣的啦~因為只有

切兩個Page 而已。(一個是Page 0 ,另一個為Page F 。)

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

送數位邏輯算什麼?人家再送您Circuit 的 Clock Circuit 給您...只是都是這一種 80KHz

,20 MHz 的~...又不是人家常用的 32.768KHz....還真的不知道送這個要幹嘛?!

還不如把Clock Tree 做得有彈性一點不是更好嗎?!

其實Clock Tree 做得太複雜也不行,會造成Clock Lag ...也很容易造成系統不穩。

所以會長成這樣子也不意外吧。

---

---

但是很討厭的是:他的PCA ~不管幾組PCA 總是共用同一個Source Clock 這一點~

他還是沒有提供更好的解決之道...唉~包袱啦....

---

好啦...反正您們自己就看著辦吧...MCU 該怎麼用?!或是您該如何在人家都不得不

加值不加價的情形下~您就自己想辦法增加自己的系統應用附加價值吧。

以下是人家好心送了我幾顆 Sample ...我就順手把他做了一個簡單的Demo 小玩意吧。

很簡單:因為他的8051 可以跑到 50 MHz ...又有一大堆Timer 及500 Kbps A/D 給您

用無驚耶。我就寫個小程式:(這一種小玩意東西,就自己用功一點K 一下 音源處理

的Algorithm...不要老是動不動想用32 bits ARM 或是DSP 來玩吧!...能用8 bits MCU

就用 8 bits MCU 吧!.............)

用兩組 500 Kbps 來處理左右音源線的輸入值,然用作簡單的數值運算...

然後把結果分別送到六組的 PWM 來控制 上下兩組 RGB LED ,分別代表左右聲道的

音樂效果...這跟一般純粹用OP 比較器來Trigger 外部中斷的作法不同...

當然所呈現的音樂聲光效果就不同。不過影片拍得很爛~真實的現場效果還不錯啦。

外加一組可以隨著音樂節奏變化自行調整的雷射旋轉效果...

那天在現場就有人當場交換名片,要我多做一組給他...不好意思...

純手工,僅此一組...沒了...各位就參考看看吧。

---

結論:很簡單啦~8 bits 的8051玩到這樣子...也算是他與生俱來的極限了啦...

再Based on 如此架構下,真的很難再有驚為天人之作了啦。....

所以不是我在唱衰 8 bit 8051 ,要不然您有更好的想法嗎?!人家 32 bits 的ARM,

不只效能好,連人家都已經架構兩核心~四核心...整合架構了。要不然您要怎麼辦?!

您說:對不對啊?!

----

第一段影片:

 

---

第二段影片:

---

8 則留言:

  1. 類似的問題我也被FAE問過。
    為何一定要用ARM這種32位元處理器?
    我就說明我現在用的軟體架構:
    檢測信號產生是利用PWM模組,相位差是利用PWM於馬達控制應用的功能。
    相位差做ADC觸發用,可精確控制取樣條件避開其他信號動作時間。
    取得ADC值要先配合硬體倍率,如同浮點數的指數項,先乘回到一般數值域,再...
    然後FAE還沒等我說完就說,看來八位元不合適於您的應用。

    回覆刪除
    回覆
    1. 然後呢?!難道會一直用八位元的就比較厲害?!
      當然以前用八位元~因為硬體限制很多,所以不得不在程式邏輯
      與演算法推演方面下許多功夫。這些功夫沒有不對的地方...
      但如果一樣的功夫用在32 位元上不是更好嗎?!
      --- 說真的啦...現在八位元的MCU 是鐵定越做越小了啦,否則他的性價比
      肯定是打不過 32 位元的ARM了。但說真的,小小一棵幾K bytes
      的程式容量能做出什麼偉大的東西?!...以前我們搞多核心時,
      人家還說:容量小,可以早一點出貨--- 問題是:價錢彼此砍得凶啊!
      因為程式容量小,代表您的韌體附加價值也不高啊。
      這個才是我們做系統應用在市場上做產品時所必須面對的市場產品
      價值的重要因素啊。
      -----
      現在應該沒有人還在到處找支持 64 KBytes ROM 的單獨一棵 8051
      MCU 了吧...因為您要外掛一棵Flash ROM ?!...光8051 外拉的I/O 腳,
      就把您IC 包裝成本給吃死了。IC 原廠也不會笨到想一直做這一種生意吧。
      所以啦...我這一篇文章主要要闡述的是:IC 基本成本架構的改變,
      才是往後真正主導整個MCU 市場走勢吧。
      當您以後買不到適當的八位元MCU 時,您就得乖乖的換32 位元了。
      很簡單的市場操作道理。 

      刪除
  2. 其實這也可以從另一個觀點來看,8bit MCU跟32bit ARM,何者比較容易找到合格的工程師?8bit MCU需要比較多經驗跟規劃的技巧...相反地32bit ARM可以靠效能cover很多技巧不足的問題,當ARM便宜到某種程度的時候,老闆就會想我請個便宜的工程師就會比請一個有經驗的8bit MCU工程師划算了

    就像Java剛出來時,很多人都罵這麼慢的東西誰敢用!?沒想到後來成為排名第一的程式語言,除了現在大部分電腦夠快跑起來已經很順外,一個很大的重點就是他是一個防呆設計非常多的語言,同樣的老闆要找到合格便宜的工程師也比較容易

    回覆刪除
    回覆
    1. 講得很好~ =D> ... =D> ... =D> ...
      誠如以下回應所說:一方面越來越難買得到夠一般工程師可以好好發揮的
      MCU 時。另一方面您說的:也越來越少年輕工程師們願意還要花那一種
      美國時間在那邊精簡程式....那以老闆來說:當然想找個容易使喚又容易
      上手的工程師來用。
      -----
      不用幾年啦...年輕工程師會越來越少想去寫需要許多時間去磨來寫一般
      8 bits MCU 了。隨隨便便一個32 bits ARM...原廠都附有一定程式的
      參考程式碼--- 三兩下就可以交差了。幹嘛那麼累?!
      MCU 單體的硬體成本要看性價比。
      當然寫韌體程式的工程師也會算投資報酬率啊。--- 人家用簡單容易上手的,
      可以早早下班...現在也沒什麼科技新貴了,還幹嘛這麼賣肝?!
      -------
      我想:您我所討論的不是就簡簡單單的8 bits 跟32 bits MCU 本身問題,
      而是許多周邊,外在環境的改變...自然就會迫使產品的世代交替了。
      PS : 8 bits MCU 當然在許多產品是夠用的,但您就慢慢賣吧...
      賣到當您找不到工程師維護時,您大概就知道了。

      刪除
  3. 話說的那麼多, 你那個ARM Cortex-M0板子到底玩得怎麼樣了?一個月都過去了,該不會已經棄置在牆角爬蜘蛛網了? :))

    回覆刪除
    回覆
    1. 哈~哈~哈~ :)) ... :)) ... :)) ... :)) ... :)) ...
      我跟您說:我在N年前,參與了一個"偉大" 的計畫 ---
      (...不能講 ...講了會成公民公敵...哈~哈~...
      該計畫在內湖科技園區附近...)...這一個案子前後我搞了快一年,
      用的就已經是STM32 。這不重點!!年紀已經大了,
      也不能老是像年輕人這麼"遊手好閒"的~摸摸這個,搞搞那個。
      ----- 最主要的原因也是跟時下一般公司一樣:要做什麼東西才是重點?
      要搞懂一棵MCU 有很難嗎?!寫寫程式會很難嗎?!
      但就只是拿來寫跑馬燈?!...好了,就讓算您寫個 FFT 或高級一點的
      演算法了啦。做什麼?!寫個MP3 播放器?!要證明什麼?!
      是要證明我比較厲害呢?!還是Cortex-M0 比較厲害?!
      --------
      等我想到要拿來做什麼時,我再您說。至少我目前八位元的
      還用得嚇嚇叫的!...別人看過~也覺得不錯....所以不急啦。
      那個不是要拿來放在牆角爬蜘蛛網的,是要來拿嚇嚇人家的。
      哈~哈~哈~.... :)) ...代表我們也是一路往前看的啦!
       
      ----

      刪除
  4. 簡單思考模式,僅供大家參考!
    有人斯有土===>抄地皮
    有土斯有財===>聚資本
    有財斯有用===>錢賺錢
     
    結論: 只有[人](指上班族及空有技術者而言)若沒有[土]與[財], 在當今社會是很難以致[用]的!!!
     
    苦工人主 小P......
     
     

    回覆刪除
    回覆
    1. 所以啦...搞技術的就要從以上這些人的身上搞一點錢來賺錢。
      要不然呢?!搞技術的怎麼辦?!
      只是現在我們這些搞技術的~搞到最後就又有點像搞詐騙集團似的。
      明明講好了什麼永續經營?!什麼技術卓越@%#$...結果最後我們還不是
      一天到晚就想騙人家的錢來個什麼員工分紅...董監事酬勞等等...
      拿投資者的錢來慷自己或經營團隊的慨!...當然最後人家還是乾脆
      還是繼續做自己的本業:
      有人斯有土===>抄地皮
      有土斯有財===>聚資本
      有財斯有用===>錢賺錢
      ---- 您說這些搞技術的~是不是自己自作孽啊?! :)) ... :)) ... :)) ...

      刪除