追加調査で押さえる実務ポイント
ATmega32U4またはPro Micro互換ボードでUSB HIDマクロパッドを作る前に、MCUとボード版、電圧、bootloader、key matrixを確認する実装ガイドです。最初に確認するのは、MCU名ではなく実際のボード型番、搭載品種、回路図、給電方法、書き込み・デバッグ経路です。評価ボードで動くことと、独自基板や量産候補で同じ条件が成立することを分けて判断します。
先に結論
ATmega32U4はUSB Device機能を内蔵する8-bit AVRです。PCからUSB keyboardとして認識させる用途に向きますが、Pro MicroはMicrochip公式ボード名ではなく、ATmega32U4搭載小型ボード形式の通称です。5V/16MHz版と3.3V/8MHz版、USB connector、pin label、regulator、bootloaderが異なる互換品があります。
購入前の判断表
| 項目 | 確認 |
|---|---|
| MCU | ATmega32U4の完全な表記 |
| ボード電圧 | 5V/16MHzまたは3.3V/8MHz |
| USB | native USB配線か |
| bootloader | Caterina等。復旧方法も確認 |
| header | 実装済みか |
| key数 | 直接配線かmatrixか |
| diode | ghosting対策 |
| firmware | Arduino、QMK等のboard対応 |
最初は1キーで確認する
- ボード単体をUSB接続する。
- 正しいboard profileで最小sketchを書き込む。
- serialまたはLEDで起動を確認する。
- switchを1個だけ接続する。
- internal pull-upを使用する。
- 押下時に1文字、解放時にreleaseを送る。
- 問題がなければmatrix化する。
#include <Keyboard.h>
const int keyPin = 4;
bool previous = HIGH;
void setup() {
pinMode(keyPin, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
bool current = digitalRead(keyPin);
if (previous == HIGH && current == LOW) {
Keyboard.press('a');
}
if (previous == LOW && current == HIGH) {
Keyboard.release('a');
}
previous = current;
delay(5);
}
pin番号はボード図で確認してください。誤動作に備え、書き込み直後に無限入力しない構成から始めます。
matrix化の判断
| 方式 | 長所 | 制約 |
|---|---|---|
| 直接配線 | 単純 | GPIOを多く使用 |
| row/column matrix | key数を増やせる | scan、diodeが必要 |
| I/O expander | GPIO節約 | I2C/SPI依存 |
| shift register | 安価 | scanと配線が増える |
USB keyboardとしての注意
USB DeviceとUSB Hostを混同しません。ATmega32U4はPCへkeyboardとして接続する側です。USB keyboardを接続して読むHost用途ではありません。
bootloader復旧
Pro Micro互換品はreset操作で短時間bootloader portが現れる場合があります。誤ったboard電圧・clock設定や壊れたsketchで認識しない場合に備え、reset pin、ISP header、外付けprogrammerの可否を確認します。
安全
5V版と3.3V peripheralを直結しません。USB shield、GND、external powerの逆流を確認します。keyboard shortcutはtest用accountで試し、削除・送信などの危険操作を最初から割り当てません。
検証記録として残す項目
最初の成功だけでは、別PC、別個体、別担当者で再現できません。少なくとも次の項目を同じ記録へ残します。
| 項目 | 記録内容 |
|---|---|
| hardware | ボード名、revision、MCU marking、serial |
| firmware | repository、commit、release tag |
| build | compiler、SDK、option、board target |
| programming | probe、boot mode、runner、接続pin |
| power | 給電点、入力電圧、無負荷・動作時電流 |
| observation | UART、USB、LED、logic analyzer |
| result | 成功条件、失敗条件、再現回数 |
| recovery | 戻したfirmwareと手順 |
成果物はsourceだけでなく、ELF、map、binary、configuration、console logを保存します。生成物だけを残すと、後から同じbinaryを作れません。
配線を追加する順序
- 電源とGNDだけを確認する。
- debuggerまたはbootloader経由で書き込む。
- consoleまたはLEDを確認する。
- GPIOを1本だけ追加する。
- I2C/SPI/UART deviceを1個追加する。
- interruptやDMAを追加する。
- sleep、USB、networkなど複雑な機能へ進む。
複数の外付け部品を同時に接続すると、電源、pin mux、software、配線のどれが原因か分からなくなります。
電源と測定
USB給電、外部5V、3.3V rail、debugger給電を同時に接続する前に回路図を確認します。電流計は電源へ直列に接続し、電流rangeのまま並列接続しません。logic analyzerやoscilloscopeのGND clipも回路GNDへ接続し、商用電源や非絶縁回路へ安易に接続しないでください。
受入基準
次のすべてを満たした時点で「first build成立」とします。
- clean workspaceからbuildできる
- 新しい個体へ書き込める
- 電源再投入後も起動する
- 観測結果が3回以上一致する
- debuggerなしでも必要な動作をする
- 書き込み失敗後に復旧できる
- 使用したpinと電圧を説明できる
- error logと回避策を保存した
次に進む判断
最小sampleが成立した後は、peripheralを増やす前に、最終製品で必要なmemory、電流、connector、update方法を一覧化します。評価ボード上の便利な回路へ依存している場合は、独自基板へ移す前にその依存を明示してください。
マクロパッドの受入試験
全keyの押下・解放、同時押し、長押し、chattering、USB再接続、sleep復帰、別OSを確認します。keymap更新方法とfactory resetを用意し、誤ったmacroを現場で停止できるようにします。
参考リンク
- https://www.microchip.com/en-us/product/atmega32u4 - 公式仕様または公式対応資料。
- https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf - 公式仕様または公式対応資料。
Amazonの検索結果
購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。
「Pro Micro ATmega32U4」で検索した結果です。個別商品の推薦ではありません。型番・仕様・販売元を販売ページで確認してください。
Amazonで検索