wiki:32u4bb

Version 28 (modified by sgk, 8 years ago) (diff)

--

ATmega32U4ブレークアウトボード

http://www.switch-science.com/upload/save_image/02101157_4f348790b95f0.jpg

概要

ATmega32U4の乗った単純なボードです。 ATmega32U4には、工場出荷時からブートローダが書きこまれていて、DFU機能を実現しています。 DFUというのは、USB経由でファームウェアを書き込むことを可能にする機能です。 AVR ISP mkIIのような書き込み装置が要らないのが魅力的です。

ただし、DFUではブートローダ自体を書き換えることはできません。 Arduino Leonardo互換にしたい場合は、LeonardoのブートローダをAVR ISP mkIIなどで書き込んでください。

特徴

  • QFPパッケージを使っている割には、ボードの幅が小さめ。ブレッドボードに最適です。
  • HWBの有効無効を、ソルダジャンパで選べます(HWBは「Hardware Bootloader」の略です)。
  • バスパワーを使うかどうかを、ソルダジャンパで選べます。
  • 動作電圧を、ソルダジャンパで3.3Vと5Vから選べます。
  • オープンソースハードウェアです。CC BY-SA 2.1ライセンスに基づき、回路図の再利用を認めます。

DFUの動作サイクル

ボード裏面にHWBというソルダジャンパが有り、出荷時はショートしてあります。 現在出荷中の商品では、「HWB」のシルクがありません。シルクが無いソルダジャンパがHWBです。

ショートしてある場合は、以下のような挙動を示します。

何もファームウェアが書き込まれていない時

  1. USBに接続する
  2. DFUが有効になる

何らかのファームウェアが書き込み済みの時

  1. USBに接続する
  2. 書きこまれているファームウェアが動く
  3. リセットボタンを押す
  4. DFUが有効になる

ウィンドウズ

Atmelが提供しているFLIPというソフトウェアを使います。 これをインストールしてから、このボードをパソコンに接続してください。

ドライバファイルが自動的に見つからない問題が発生しているようです。 その場合には、ドライバファイルを手動で指定してください。 ドライバファイルは、「C:\Program Files\Atmel\Flipバージョン番号」以下に有るようです。

ファームウェアを書き込むには、以下のように操作します。

  1. 一番左のアイコンをクリックして、チップを選択します(ATmega32U4を選んでください)。
  2. 右から3番目のアイコンをクリックして、HEXファイルを読み込みます。
  3. 二番目のアイコンをクリックして出てくるメニューからUSBを選択します。
    • 「USB Port Connection」というダイアログが現れるので、「Open」ボタンをクリックします。
  4. 「Operation Flow」の項のチェックボックスが全てチェックされている事を確認し、「Run」ボタンをクリックします。

ファームウェアを書き込んだら、USBから一度抜き差しすると、ファームウェアが動きます。 Flipの「Start Application」ボタンをクリックするのでもいいはずなんですが、うまくいかない事があります。 書き込むファームウェアによるように感じます。

Linux

dfu-programmerを使います。 インストール方法は、Linuxのディストリビューションごとに違うので、適切な方法でインストールしてください。 たいてい、コンパイル済みのパッケージが用意されているでしょう。

  1. dfu-programmer atmega32u4 erase
  2. dfu-programmer atmega32u4 flash HEXファイルのファイル名
  3. dfu-programmer atmega32u4 reset

これでファームウェアが動き出します。 もしも動かなかったら、USBから一度抜いて挿しなおしてください。

Mac OSX

Linuxと同じく、dfu-programmerを使います。 インストールするには、「sudo port install dfu-programmer」コマンドを使います。

いや、その前にportコマンドをまだインストールしていない人はインストールしてください。 インストール方法はここにありますが、英語です。

お試しファームウェア

とりあえず、キーボードのふりをするファームウェアを載せておきます。 HelloArduino.hexをダウンロードして、書きこんでみてください。 定期的に勝手にキーボードを叩いたふりをします。

さて、これをどうやって作ったか。 一番簡単な方法をお教えします。

  1. ここからArduino IDEの最新ベータ版をダウンロードしてインストールします。
  2. Arduino IDEを起動し、以下のコードのスケッチを作ります。
    void setup() {
    }
    
    void loop() {
      Keyboard.print("Hello Arduino ");
      delay(1000);
    }
    
  3. 「スケッチ」メニューの「検証・コンパイル」を実行します。
  4. TempディレクトリのどこかからHEXファイルを探します。

もうひとつお試し

MouseTest.hex

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)

Download all attachments as: .zip