8 位元微控制器仍是功率低和易用性的絕佳選項
1990 年代,我將之稱為「微控制器的黃金年代」,當時 C 編譯器開始普及,但如果您想找一份嵌入式編程工作,仍須具備彙編語言編程技能。像我一樣的現場應用工程師 (FAE),帶著甜甜圈去拜訪客戶,在會議室裡,滔滔不絕地介紹自家最新微控制器產品的各種優點,工程師會在底下一邊嚼著甜甜圈,一邊張大眼睛看著我。
那時的半導體公司,不像現在每個月都能推出新的微控制器產品,我們通常每季只推出一兩樣新產品,但是,有些事情從未改變。有一次,我嫻熟地運用 PowerPoint 技巧向二十幾位工程師做簡報,他們都是車體控制器團隊的成員。車體控制器是個簡易型的小控制盒,依據 goesintas/goesoutas 原則工作;開關訊號進入 (goesinta) 控制盒當中,而致動器控制訊號從控制盒輸出 (goesouta)。這是一種簡單的小東西,完全能用具有多個 GPIO 的 8 位元微控制器實現。
我正在口若懸河地講著,突然會議室後方有一隻手舉起來。
一個堅定的聲音響起:「我們的管理階層決定,要在車體控制器中開始使用 32 位元微控制器。」會議室裡一陣低語,我猜他們的管理階層根本就沒作出這樣的決定,那個人可能別有企圖,比如說,他偏好的供應商,很不巧的,剛好不是我的公司。
「你們不需要 32 位元的微控制器,我不相信你說的話」,我心裡暗想。但為了保住自己的飯碗,我實際上是這麼回答的:「可不可以請您分享一下,您下一代的控制器產品,會用到 32 位元架構的哪些功能呢?」
他稍作停頓,有些反抗地回答道:「我們就是要用 32 位元架構。」我從他的聲音中聽到一絲的猶豫,其他工程師也感受到他語調中的無力,於是把頭轉回會議室的前方,迫切地想聽聽我怎麼說。
我仔細解釋了 32 位元架構相較於 8 位元的優點。他們是否需要更快的時脈速度?下一代的產品是否需要執行更複雜的數學運算?韌體是否需要使用多執行緒,還有,是否需要即時作業系統 (RTOS)?韌體的大小會不會膨脹到需要更多記憶體位址的程度?所有這些直到現在也依然是從 8 位元轉到 32 位元核心的合理理由 (其實 16 位元是這兩個等級間的最佳過渡,但這是另一個主題)。
我回答以後,大家一邊愉快地享用著甜甜圈,一邊討論 8 位元和 32 位元架構的差異。8 位元的微控制器架構更為簡單,而且編程模型易於理解。這種架構通常只需要一個電源供應器即可。儘管行銷人員有不同的說法,但是現代 8 位元架構的功耗要低於 32 位元架構,這是因為內部切換的匯流排訊號更少。
8 位元產品的真實範例
多年來,Microchip Technology 一直對其提供的 8 位元微控制器深感自豪。Microchip 的 megaAVR 8 位元核心 (也稱為 ATMega) 很受歡迎,其採用傳統的 Harvard 架構,可以定址高達 256 KB 的程式記憶體。該元件使用簡易的暫存器式架構,對 C 語言的相容性相當高,具有 32 個 8 位元、一般用途 (GP) 的暫存器 (圖 1)。
圖 1:megaAVR 微控制器採用 32 個 8 位元暫存器的架構,分別以 R0 至 R31 予以標記。這些暫存器也可定址為暫存器對,組成十六個 16 位元暫存器。(圖片來源:Microchip Technology)
GP 暫存器可組合成暫存器對,形成十六個 16 位元暫存器。最後三個暫存器對可選擇作為 16 位元位址暫存器 X、Y 與 Z 使用,實現間接的定址。
除了這些 GP 暫存器之外,megaAVR 還具有一個 16 位元的堆疊暫存器,以及一個 8 位元的狀態暫存器,可以說非常簡單。簡單到能以彙編語言進行編程 (「真正的編程工程師都用彙編語言進行編程」)。
不,您無法存取 megaAVR 中的程式計數器,所以請不要動它。
megaAVR 系列的典型範例即是 20 MHz 的 ATMEGA1609。這是一款相當容易使用的微控制器,具有 16 KB 的快閃記憶體、2 KB 的 RAM,以及 256 位元組的 EEPROM。大部份的指令都是單週期的。
圖 2:Microchip Technology 的 ATMEGA1609 是一款簡單、靈活、低功率的 8 位元微控制器,能夠在多種環境下工作。(圖片來源:Microchip Technology)
該元件具有一個 10 位元的類比數位轉換器 (ADC)、五個 16 位元計時器、一個即時時脈 (RTC)、多個低功率選項,以及一個雙週期的有號數/無號數硬體乘法器。
此外,megaAVR 還具有單週期的位元設定與位元清除指令,以及需要一到三個週期的位元測試指令。
熱愛 C 語言的開發人員,通常會忽視位元指令的重要性。事實上,原生的位元指令 (「我們需要原子指令」) 能大幅提升效能、減少程式碼大小、提升程式碼可讀性,讓您不再愁容滿面。
ATMEGA1609 所需的電源供應器頗具彈性,電壓介於 1.8 至 5.5 V 之間,工作溫度範圍為 -40°C 至 +125°C。寬廣的電源電壓及工作溫度範圍並非偶然。從設計角度來看,這款 8 位元微控制器旨在適應以及用於多種設計環境。「易用性」是其重點!
有時候,開發人員需要快速完成簡單的專案;8 位元的產品使用起來簡單、靈活,而且可靠耐用。這些都是不容忽視的特徵。

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum