How to make

ATmega32U2でArduinoモドキを作る

0.概要

ATmega32U2はUSB回路を内蔵したAVRです。そのアーキテクチャはArduino LeonardoArduino Microに使われているATmega32U4と類似しているのでUSB直結のArduinoモドキを簡単に作れるのではないかと試行しました。
ATmega32U2はADCやI2Cなどを搭載していないためArduino互換機とは成り得ないので「Arduinoモドキ」です。

1.先行事例

Atmega32U2搭載のマイコンボード「Minimus AVR USB」(廃品種)をArduino IDEと連携させるプロジェクト「minimus-aruduino」が過去にありました。このプロジェクトの成果を,そのままトレースします。

2.回路構成

回路図です。

akibaduino-32U2

回路構成の詳細はこちらに記載されています。

ブレッドボードでの実装例です。

ピッチ変換基板の裏にユニバーサル基板を重ねて Arduino Micro モドキを製作してみました。

3.定義ファイル/ブートローダ

minimus-arduinoの定義ファイル群はminimus-aruduinoのgitリポジトリhttps://github.com/pbrook/minimus-arduinohttps://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

PAGETOP
Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.
PAGE TOP