無事にコンパイルできることが確認できた(といっても、Blinkだけですが)ので、ハードウェアを準備します。確認のターゲットはまずはサンプルプログラムBlinkです。なので、(Arduinoでの)デジタル13ピンにLEDを接続したものを点滅させるのが目標になります。
最終的に作ったハードウェアはこんな感じです。(途中の写真がないのですみません)
16MHzのクリスタルと22pFのコンデンサ2つ、Vcc/GND間のパスコン(チップセラミックコンデンサ1uF)を実装した小さな基板を作って、ブレッドボード上のATmega644Pのそばに取り付けました。さらに、リセット端子のプルアップ抵抗と電源供給の配線を行っています。画面左上の青いコンデンサは自動リセット用のDTR信号にかませる0.1uFのコンデンサです。右上の緑色の基板はホストとの通信用のAE-UM232Rで、上の写真ではすでに接続済みです。写真下にはちょっとだけLEDの頭が見えています。
- AVRISP mkII(他のものでもいいですが)の接続
まず、購入状態のATmega644PではArduino(Sanguino)として動作しませんので、ブートローダを書き込んでやります。自分はAVRISP mkIIを使用しているので、ピン配置を確認しながらVcc/GND/MISO/MOSI/RESET/SCKの6pinを接続します。RESETにはプルアップが必須なので忘れないようにします。 - ブートローダの書き込み
ターゲットのATmega644pに電源を供給し、 Arduinoから「Tools」→「Burn Bootloader」→「w/ AVRISP mkII」を選択して、ブートローダを書き込みます。
書き込みには多少時間がかかりました。赤い文字のエラーメッセージが出ていないことを確認します、 - AE-UM232Rの接続
TXD/RXDを接続し、さらに自動リセット用のDTRを0.1uFのコンデンサを経由して接続します。さらに動作確認用のLEDと抵抗を19pin(D13)に接続します。 - 書き込み&実行
サンプル「Blink」をコンパイル&アップロードして実行します。
これで問題なく無事にLEDが点滅しました。