0.概要
ATmega32U2はUSB回路を内蔵したAVRです。そのアーキテクチャはArduino LeonardoやArduino Microに使われているATmega32U4と類似しているのでUSB直結のArduinoモドキを簡単に作れるのではないかと試行しました。
ATmega32U2はADCやI2Cなどを搭載していないためArduino互換機とは成り得ないので「Arduinoモドキ」です。
1.先行事例
Atmega32U2搭載のマイコンボード「Minimus AVR USB」(廃品種)をArduino IDEと連携させるプロジェクト「minimus-aruduino」が過去にありました。このプロジェクトの成果を,そのままトレースします。
2.回路構成
回路図です。
ブレッドボードでの実装例です。
ピッチ変換基板の裏にユニバーサル基板を重ねて Arduino Micro モドキを製作してみました。
3.定義ファイル/ブートローダ
minimus-arduinoの定義ファイル群はminimus-aruduinoのgitリポジトリhttps://github.com/pbrook/minimus-arduinoやhttps://github.com/SurrealityLabs/minimus-arduinoに収容されています。
しかし、2014年頃に開発が止まり現行のArduino IDE 1.8.x には対応していません。
これらリポジトリからファイルを引用してArduino IDE 1.8.xに対応する定義を作成し,下記のjsonファイルを用いてArduino IDEのボードマネージャからインストールできるようにしました。下記,jsonで定義パッケージを導入するとボードマネージャに minimus-arduino by Paul Brook / modified by Kosaka.Lab がリストアップされます。
https://kimio-kosaka.github.io/minimus-arduino/package_minimus-arduino_index.json
定義ファイル群の構成は下のgitリポジトリをご覧ください。
https://github.com/kimio-kosaka/minimus-arduino
定義ファイル群にはArduino用ブートローダも収容されていますので,Arduino IDEからAVRISPmkIIやArduinoISPを用いてATmega32U2にArduino用ブートローダを書込みます。
- Arduino用ブートローダを書込むと,32U2にデフォルトで書込まれているDFUブートローダは消えて使えなくなります。
- DFUブートローダを復活するには,DFUローダー詰め合わせmegaUSB_DFU_Bootloaders_2e.zipをダウンロードして展開しATmega32U2用のDFUブートローダを書き込みます。
- オリジナルのサイトではavr-gccコンパイラの差し替えが必要と記述されていますが,Arduino IDE 1.8.5付属のavr-gccコンパイラはAtmega32U2に対応しており差し替えの必要はありません。
4.ピン割付表
minimus-arduino のpins_arduino.hから抽出したピン割付は次の表のとおりです。
minimus-Arduino | ATmega32U2 | ||
デジタルピン | 機能 | ピン名称 | 物理ピン番号 |
XTAL 1 | 1 | ||
XTAL 2 | 2 | ||
GND | 3 | ||
VCC | 4 | ||
D0 | PC2 | 5 | |
D1 | PWM | PD0 | 6 |
D2 | PD1 | 7 | |
D3 | PD2 | 8 | |
D4 | PD3 | 9 | |
D5 | PD4 | 10 | |
D6 | LED B | PD5 | 11 |
D7 | LED A | PD6 | 12 |
D8 | HWB | PD7 | 13 |
D9 | PB0 | 14 | |
D10 | SCK | PB1 | 15 |
X | GND | X | X |
D12 | MOSI | PB2 | 16 |
D13 | MISO | PB3 | 17 |
D14 | PB4 | 18 | |
D15 | PB5 | 19 | |
D16 | PB6 | 20 | |
D17 | PWM | PB7 | 21 |
D18 | PC7 | 22 | |
D19 | PC6 | 23 | |
X | RESET | RESET | 24 |
D21 | PWM | PC5 | 25 |
D22 | PC4 | 26 | |
X | VCC | X | X |
UCAP | 27 | ||
UGND | 28 | ||
D+ | 29 | ||
D- | 30 | ||
UVCC | 31 | ||
AVCC | 32 |
デジタルピン D11,D20,D23は欠番
4.USB-HID
Arduino LEONARDO 用のサンプルスケッチ「KeyboardMassage」が,このArduinoモドキで動くかどうか確かめてみます。
D4を抵抗10KΩでプルアップしタクトスイッチを接続しておき,スケッチをコンパイルしてアップロードするとATmega32U2-ArduinoモドキはHID-keybordと認識され,D4のタクトスイッチを押す毎にメッセージが送られ,無事HID-keyboardとして動いていることが確認できました。
5.低機能マイコンボードは部品になった。
この記事の初出(2013年9月)以来5年、中華製造業の勢いはすさまじくATmega32U4を搭載したLeonardo互換マイコンボードが$3程度で中華通販で流通しています。このような現状にあって自作のメリットは「作ってみた」の自己満足ぐらいしかありません。低機能マイコンボードは自分で作る時代からトランジスタやLSIのように部品として購入し使い捨てる時代になりました。
6.来歴
update 2018.04.17 現行Arduino IDE 1.8.xに対応するよう定義ファイル群を改編再構築
update 2018.04.17 復活リクエストにより記事閉鎖解除(url変更)
update 2017.01.13 製作の意義がなくなったので記事閉鎖
upload 2013.09.28 by kimio kosaka