Skip to content

[自製QMK鍵盤-2] 如何選擇微控制器 MCU?

發佈

在正式編寫 QMK 韌體前,我們還需要先決定要使用什麼微控制器(Microcontroller,MCU)。這篇文章會介紹幾個比較常見的 MCU 並且說明它們的優缺點,讓你可以依據不同的需求來選擇要使用的 MCU。

要注意的是,本文的重點是 MCU IC 本身而非開發板。不同的開發板可能會使用相同的 MCU(例如 Pro Micro 和 Arduino Leonardo 都是使用 ATmega32U4 這顆 MCU),但其出廠預燒的 Bootloader 可能不同。

本文不會把所有支援的 MCU 都介紹(太多了),只會重點介紹那些適合新手及不熟悉該領域的人的型號。如果你想知道所有 QMK 支援的 MCU 的話,請參考官網文件:Compatible Microcontrollers

MCU 影響什麼?

首先我們要知道 MCU 會影響鍵盤的什麼?

  • GPIO(General-purpose input/output):通用功能輸入輸出。簡單來說就是 MCU 的 IO 腳、Pin 腳。
  • Flash(Flash memory):快閃記憶體。簡單來說就是 MCU 上儲存韌體程式的地方,類似電腦裡的硬碟。
  • Bootloader & DFU(Device firmeare update)
    • Bootloader 是在 MCU 上引導開機的引導程序(對,MCU 和電腦一樣也有開機流程)。
    • DFU mode 是指 MCU 的一種更新韌體程式的模式,在此模式下更新韌體往往不需要專用的燒錄器,只需要原本就有的通訊埠(如 USB)就可以了。
    • 雖然 Bootloader 和 DFU 本質上不太相同,但很多時候會把它們混著講,而實際上通常是指 DFU。
  • PCBA(PCB Assembly):PCB 組裝。簡單來說就是請工廠除了要生產 PCB 外,還要用打件機幫你把零件放上去,再用回流焊或波峰焊等設備幫你焊接,等你收到時就不用再自己焊接零件了。

快速比較

項目⭐ATmega32U4AT90USB1286⭐RP2040STM32F303CCSTM32F401CC
CPU 架構8-bit AVR8-bit AVR雙核心 32-bit ARM Cortex-M0+32-bit ARM Cortex-M432-bit ARM Cortex-M4
運作頻率16/8 MHz (1)16/8 MHz (1)133 MHz72 Mhz84 Mhz
ROM (Flash)32 KB + 1 KB EEPROM128 KB + 4KB EEPROM最多 16 MB (2)256 KB256 KB
RAM2.5 KB8 KB264 KB40 KB64 KB
GPIO2546303736
週邊電路多(Flash)
Bootloader第三方 (3)第三方 (3)內建內建內建
封裝TQFP-44, QFN-44TQFP-64, QFN-64QFN-56LQFP-48UFQFPN-48, WLCSP-49
常見開發板Pro MicroTeensy++ 2.0Paspberry Pi PicoProton CWeAct Blackpill
單價(Mouser)NT$ 180NT$ 355NT$ 24NT$ 261NT$ 226
單價(臺灣)NT$ 280NT$ 510NT$ 80NT$ 195
單價(淘寶)NT$ 79NT$ 330NT$ 18NT$ 45NT$ 42
廠商MicrochipMicrochip樹莓派STST
  1. 使用 5V 電源時可以到 16 MHz;使用 3.3V 時可以到 8MHz。
  2. RP2040 沒有內建 Flash,你必須外接獨立的 Flash IC,如: W25Q128JVS, W25Q64JVXGIQ。
  3. 一般來說出廠的 MCU 不會燒好第三方 Bootloader,如何你是單買 IC 而非開發板,可能需要使用燒錄器先燒好 Bootloader 後才可以使用 QMK。

對於新手我基本上只推薦 ATmega32U4RP2040。如果你不知道怎麼選的話,可以參考以下的守則:

  1. 如果你不想自己畫/處理 MCU 的 PCB 電路,想要使用現成的開發板的話,選擇 RP2040。
  2. 如果以下 3 點全部符合的話,選擇 QFP 封裝的 ATmega32U4。
    1. 你不能接受成品鍵盤使用現成開發板,你一定要 MCU 直接焊在鍵盤 PCB 上。
    2. 你的焊接技術及工具無法讓你焊接 QFN 封裝的 IC。
    3. 你不想要用 PCBA(讓工廠幫你焊接)。
  3. 如果你的鍵盤要啓用藍牙,選擇 ATmega32U4(或不用 QMK,改用 ZMK 和 nRF5 SoC)。
  4. 如果你的鍵盤 PCB 空間嚴重不足,調整許久依然沒有足夠的空間放 RP2040 及其週邊電路,選擇 ATmega32U4。
  5. 如果你不符合上述的任何一種情況,選擇 RP2040。

使用 ATmega32U4 需要額外注意:32KB 的 Flash 真的很小,建議你在畫 PCB 前先完成並測試 QMK 韌體,把所有你要的功能打開(包含 Vial)。如果編譯後 QMK 提示 Flash 空間不足,且你已經使用了所有優化選項,而你又不想放棄那些功能的話,就只能放棄 ATmega32U4 改用其它 MCU 了。

MCU 細評

ATmega32U4

官網

熟悉 Arduino 的人應該對「ATmega」這個名字很熟悉,ATmega32U4 是 Microchip(原本是 Atmel,已被前者併購)公司的一款 8-bit AVR MCU。與 RP2040 同為我推薦新手的其中一種 MCU。

我自己畫的 ATmega32U4 開發板:Next μ

Next μ:ATmega32U4 開發板
Next μ:ATmega32U4 開發板

RP2040

官網

樹莓派 Raspberry Pi 所推出的 32-bit ARM MCU,硬體規格非常強大,卻超級便宜。與 ATmega32U4 同為我推薦新手的其中一種 MCU。我自己的 ErgoSNM v2.1 也是使用 RP2040。

我自己畫的 RP2040 開發板:RP Micro

RP Micro:RP2040 開發板
RP Micro:RP2040 開發板

AT90USB1286

官網

是 Microchip(原本是 Atmel,已被前者併購)公司的一款 8-bit AVR MCU。我幾乎沒有看到有人 QMK 鍵盤用這個 MCU,基本上不推薦新手使用,會列在這僅僅是因為它是 QMK 支援列表中 Flash 容量比 ATmega32U4 大的 AVR MCU。

如果你因為一些原因一定要用 AVR MCU,但是韌體又超過 32 KB 的話可以考慮這個。

常見的開發板是 Teensy++ 2.0。

STM32F303CC

官網

ST 意法半導體龐大的 32-bit ARM MCU 系列——STM32 的一員。在上千的 STM32 型號中特別選這個型號的理由是 QMK 的官方開發板 Proton C 使用的 MCU 就是 STM32F303CCT6。

如果你想要看不同腳位數/ROM/RAM/封裝的話,可以看 STM32F303 系列

STM32F401CC

官網

ST 意法半導體龐大的 32-bit ARM MCU 系列——STM32 的一員。在上千的 STM32 型號中特別選這個型號的理由是它的開發板特別好買,且 QMK 的支援硬體清單中也有特別列出 F401。

如果你想要看不同腳位數/ROM/RAM/封裝的話,可以看 STM32F401 系列

無線藍牙

QMK 的藍牙是透過模組支援的,且原則上僅限 AVR MCU。可以參考:[自製QMK鍵盤-番外] 為QMK鍵盤加上Bluetooth藍牙無線功能

不過在現在,如果你想要做藍牙鍵盤的話,我可能會另外推薦你 ZMK 和 nRF5 系列 SoC (如 nRF52840)。

相關文章


ErgoSNM v3.0 帶軌跡球的無線分離式人體工學QMK鍵盤
雜七雜八有趣專案分享-1

留言可能不會立即顯示。若過了幾天仍未出現,請 Email 聯繫:)