Arudinoを自作したいと思い、手元にあったArduino LeonardでATmega328Pに書き込んでみました。
ネットの情報を色々調べてみたところ、すんなり出来ないかと思いきや、
Arudino IDE1.6.6になって簡単に出来たので記事にしてみます。
用意するもの
- PC(私はMacですがWindowsでも同じかと思います)
- Arduino Leonard(以降Arduinoと記載します)
- Arduino IDE1.6.6
- ATmega328P-PU
- 水晶振動子 16MHz
- セラミックコンデンサ 22pFを2個(私は18pFを2個を使用しました)
- カーボン抵抗 10KΩ(私は22KΩを使用しました)
- ブレッドボード
- ジャンパワイヤ
あるといいもの
ArduinoでBootLoader書き込みプログラムが正常動作しているか
確認するために使用します。
- LED 2.8〜3.6V 20mA
- カーボン抵抗 300KΩ
手順
- ArduinoにBootloader書き込み用のスケッチを書き込む
- ブレッドボードに回路を組む
- Arduinoとブレッドボードを接続する
- ATmega328PにBootloaderを書き込む
手順の詳細
1.ArduinoにBootloader書き込み用のスケッチを書き込む
メニューから[ファイル]→[スケッチの例]→[11.ArduinoISP]→[ArduinoISP]を選択します。
ArduinoとPCをUSBケーブルで接続して、メニューの[ツール]から以下の項目を設定します。
- マイコンボード → "Arduino Leonard"
- シリアルポート → Arduinoを接続しているポート
- 書き込み装置 → "AVRISP mkⅡ"
開いたスケッチをArduinoに書き込みます。
古いIDEではリセットピン番号の定義部分の記述を修正する必要があったみたいですが、
1.6.6では修正されているため不要です。
2.ブレッドボードに回路を組む
Arduino Leonardo as ISPのStep 4の画像を参考にブレッドボード上で外部クロックを使用した回路を組みます。
注意点は外部クロックを使用することです。
IDEに手を入れれば外部クロックが無くても出来るみたいですが、私はうまくいきませんでした。。
詳細は簡単!ATmega328Pにブートローダを書きこむ(第2弾)を参照してください。
3.Arduinoとブレッドボードを接続する
Arduino Leonardo as ISPのStep 5の画像を参考にArduinoとブレッドボードを配線します。
Leonardでは両サイドにあるピンではなく、USBコネクタと反対側にあるICSPの6ピンに接続します。
4.ATmega328PにBootloaderを書き込む
メニューの[ツール]から以下の項目を設定します。
- マイコンボード → "Arduino Duemilanove or Dieclimila"
- シリアルポート → Arduinoを接続しているポート
- 書き込み装置 → "ATmega328"
上記設定後、メニューの[ツール]→[ブートローダを書き込む]を選択すると書き込みが始まります。
うまくいけば、3秒ぐらいで書き込みが完了します。
以上で完了です。
誰かの参考になることを願ってます。
おまけ
書き込む度に配線するのが面倒くさいと思って、シールド化してみました。
表 | 裏 |
---|---|
間違ってanalog referenceのピンをハンダ付けしてしまいました。
普通はいらないです。