How to make

ATmega32U2でArduinoモドキを作る

ATmega32U2でArduinoモドキを作る(暫定版)

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

先行事例

Minimus AVR USBというAtmega32U2搭載のマイコンボードをArduinoと連携させるプロジェクト「minimus-aruduino」があります。このプロジェクトの成果を,そのままトレースします。

回路構成

回路図です。

akibaduino-32U2

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

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

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

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

必要なファイル群はminimus-aruduinoのgitリポジトリhttps://github.com/pbrook/minimus-arduinoにすべて収容されているので,ZIPに固めて一括してダウンロードします。
ダウンロードしたZIPを解凍し生成されたフォルダをarduinoのスケッチファイルが保存されるフォルダ配下のhardwareフォルダの中に移動します。
Arduino IDE を起動し「ツール」→「マイコンボード」とすすみ,マイコンボードリストに「Minimus 32」が掲載されていることを確認します。

Arduino用ブートローダも収容されていますので,Arduino IDEからAVRISPmkIIやArduinoISPを用いてArduino用ブートローダを書込みます。

  • Arduino用ブートローダを書込むと,32U2にデフォルトで書込まれているDFUブートローダは使えなくなります。
  • ATmega32U2用のDFUブートローダはAtmel社のWebページに見当たりません。DFUを復活するにはこのLUFA-DFUブートローダを書込みます。

avr-gccのupdate

minimus-aruduinoに記述されているとおり,Arduino IDE 付属のavr-gccはATmega32U2に対応していませんので,記述のとおりavr-gccをアップデートします。

ピン割付表

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
* GND * *
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
* RESET RESET 24
D21 PWM PC5 25
D22 PC4 26
* VCC * *
UCAP 27
UGND 28
D+ 29
D- 30
UVCC 31
AVCC 32

USB-HID

Arduino LEONARDO 用のサンプルスケッチ「KeyboardMassage」が,このArduinoモドキで動くかどうか確かめてみます。
D4を抵抗10KΩでプルアップしタクトスイッチを接続しておき,スケッチをコンパイルしてアップロードするとATmega32U2-ArduinoモドキはHID-keybordと認識され,D4のタクトスイッチを押す毎にメッセージが送られ,無事HID-keyboardとして動いていることが確認できました。

Make

Make

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