Version 20 (modified by 13 years ago) ( diff ) | ,
---|
ATmega32U4ブレークアウトボード
ご自宅リフローお試しキットで作ったボードです。
概要
ATmega32U4の乗った単純なボードです。 ATmega32U4には、工場出荷時からブートローダが書きこまれていて、DFU機能を実現しています。 DFUというのは、USB経由でファームウェアを書き込むことを可能にする機能です。 AVR ISP mkIIのような書き込み装置が要らないのが魅力的です。
ただし、DFUではブートローダ自体を書き換えることはできません。 Arduino Leonardo互換にしたい場合は、LeonardoのブートローダをAVR ISP mkIIなどで書き込んでください。
このボードのエッジには、Arduino Leonardoで使用するピンを出してあります。 ピンの名前のシルク印刷はLeonardoに準拠したものですが、一部異なります。 これは、このボードの製造後にLeonardoのピンの定義が変更されたためです。 特に、A6以降が異なるでしょう。ご注意ください。
DFUの動作サイクル
ボード裏面にHWBというソルダジャンパが有り、出荷時はショートしてあります。 ショートしてある場合は、以下のような挙動を示します。 (HWBは「Hardware Bootloader」の略です。)
何もファームウェアが書き込まれていない時
- USBに接続する
- DFUが有効になる
何らかのファームウェアが書き込み済みの時
- USBに接続する
- 書きこまれているファームウェアが動く
- リセットボタンを押す
- DFUが有効になる
ウィンドウズ
Atmelが提供しているFLIPというソフトウェアを使います。 これをインストールしてから、このボードをパソコンに接続してください。
ドライバファイルが自動的に見つからない問題が発生しているようです。
その場合には、ドライバファイルを手動で指定してください。
ドライバファイルは、「C:\Program Files\Atmel\Flip
バージョン番号」以下に有るようです。
ファームウェアを書き込むには、以下のように操作します。
- 一番左のアイコンをクリックして、チップを選択します(ATmega32U4を選んでください)。
- 右から3番目のアイコンをクリックして、HEXファイルを読み込みます。
- 二番目のアイコンをクリックして出てくるメニューからUSBを選択します。
- 「USB Port Connection」というダイアログが現れるので、「Open」ボタンをクリックします。
- 「Operation Flow」の項のチェックボックスが全てチェックされている事を確認し、「Run」ボタンをクリックします。
ファームウェアを書き込んだら、「Start Application」ボタンをクリックするか、ボードを一度抜き差しすれば、ファームウェアが動きます。
Linux
dfu-programmer
を使います。
インストール方法は、Linuxのディストリビューションごとに違うので、適切な方法でインストールしてください。
たいてい、コンパイル済みのパッケージが用意されているでしょう。
dfu-programmer atmega32u4 erase
dfu-programmer atmega32u4 flash
HEXファイルのファイル名dfu-programmer atmega32u4 reset
これでファームウェアが動き出します。
Mac OSX
Linuxと同じく、dfu-programmer
を使います。
インストールするには、「sudo port install dfu-programmer
」コマンドを使います。
いや、その前にport
コマンドをまだインストールしていない人はインストールしてください。
インストール方法はここにありますが、英語です。
お試しファームウェア
とりあえず、キーボードのふりをするファームウェアを載せておきます。 HelloArduino.hexをダウンロードして、書きこんでみてください。 定期的に勝手にキーボードを叩いたふりをします。
さて、これをどうやって作ったか。 一番簡単な方法をお教えします。
- ここからArduino IDEの最新ベータ版をダウンロードしてインストールします。
- Arduino IDEを起動し、以下のコードのスケッチを作ります。
void setup() { } void loop() { Keyboard.print("Hello Arduino "); delay(1000); }
- 「スケッチ」メニューの「検証・コンパイル」を実行します。
- TempディレクトリのどこかからHEXファイルを探します。
- ウィンドウズなら、「
C:\Users\
ユーザ名\AppData\Local\Temp
」フォルダを開いて、検索窓で「hex」を検索します。 - Mac OSXなら、「
/tmp
」のどっかですかねえ。
- ウィンドウズなら、「
もうひとつお試し
int phase = 0; int full = 100; int radius = 100; int delay_msec = 2; int x = radius; int y = 0; void setup() { } void loop() { ++phase; phase %= full; double th = 3.141592 * 2 * phase / full; int xx = radius * cos(th); int yy = radius * sin(th); Mouse.move(xx - x, yy - y, 0); x = xx; y = yy; delay(delay_msec); }
(2011/11/26)
Attachments (7)
- HelloArduino.hex (10.6 KB ) - added by 13 years ago.
- MouseTest.hex (15.2 KB ) - added by 13 years ago.
- flip.png (52.3 KB ) - added by 13 years ago.
-
hoge.cpp.hex
(13.0 KB
) - added by 13 years ago.
出荷時に書き込まれているピンチェックつきHello, Arduino
-
keyled.hex
(13.0 KB
) - added by 13 years ago.
出荷時に書き込まれているピンチェックつきHello, Arduino
-
keyled.ino
(772 bytes
) - added by 13 years ago.
出荷時に書き込まれているピンチェックつきHello, Arduino のスケッチ
-
keyled.2.ino
(772 bytes
) - added by 13 years ago.
出荷時に書き込まれているピンチェックつきHello, Arduino のスケッチ
Download all attachments as: .zip