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 位元的產品使用起來簡單、靈活,而且可靠耐用。這些都是不容忽視的特徵。

關於作者

Image of Bill Giovino

Bill Giovino 是電子工程師,擁有美國雪城大學的電機工程學士學位,也是少數從設計工程師跨足現場應用工程師,再到技術行銷領域的成功典範之一。

Bill 過去 25 年來熱衷於向科技和非科技業的對象推廣新技術,包括 STMicroelectronics、Intel 和 Maxim Integrated 等多家企業。Bill 在 STMicroelectronics 任職期間,曾協助領導該公司順利進軍微控制器領域。在 Infineon 任職時,則策劃出該公司首款在美國汽車業大受歡迎的微控制器設計。Bill 目前是他個人公司 CPU Technologies 的行銷顧問,曾協助諸多企業讓表現不佳的產品重獲市場青睞。

Bill 更是採用物聯網的先驅,包括在微控制器中首次納入完整的 TCP/IP 堆疊。Bill 致力於推廣「用教育促成銷售」的理念,也認可在線上推銷產品時有清楚完整文字說明的重要性。他在 LikedIn 熱門的半導體銷售和行銷群組中擔任管理員,也擁有深厚的 B2E 知識。

More posts by Bill Giovino
 TechForum

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

Visit TechForum