Arduino ブートローダーの書き込み

Arduino Uno で作ったプログラムを工作物の中にいれるために、 atmega328P-PU を買ってきました。
Arduino は 3000 円程度しますが、本体のマイコンである atmega328P-PU は 300円もしません。これなら気軽に使っていけそうですが、arduino のスケッチを書き込んで使っていくためには事前準備が必要になります。

ブートローダーの書き込み準備

必要な手順として、買ってきたばかりの atmega328P-PU にブートローダーを書き込む必要があります。ブートローダーの書き込みのためには装置が必要になりますが、 Arduino UNO を書き込み装置として使うことにします。

以前の ATTINY13A 編でも書いたように Arduino IDE からスケッチ例 Arduino ISP を選択して書き込みます。これで、 Arduino UNO を書き込み装置として使用可能になります。

内蔵発振で使用するために

atmega328P-PU は内蔵発振でも動作するようになっています。精度が悪いのが問題らしいですが、消費電力が減って電池駆動時間が延びることや必要部品変数が減ること、使用可能なピンが増えることといったメリットがあります。この内蔵発振での書き込みについてはマイナーなのか、調べたとおりにやってみても現在においてはうまくいかなかったり、情報が少なめだったりとして苦戦しました。

配線は以下のようにします。

内蔵発振で使用するため用の Arduino 環境を準備します。
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard から、 breadboard-1-6-x.zip をダウンロードします。
そして、 ドキュメント/Arduino/hardware のフォルダに、先ほどの zip の中身である breadboard フォルダをコピーします。この場所が見当たらない場合には、作成してしまって問題ないようです(自分の場合にはうまく認識しました)。

この状態で Arduino IDE を起動すると、 ATmega328 on a breadboard というボード構成を選ぶことができるようになります。
このボード構成を選んだ状態で、ブートローダーの書き込みを選択すると、ブートローダーの書き込みが始まります。
このとき、Arduino 上のマイコンを抜いたりする必要はありません。

通常のスケッチの書き込みのときには、「書き込み装置を使って書き込む」を選択します。このときにも Arduino Uno は ISP として構成したままのものを使います。

外部発振で使用する

水晶振動子を追加して、外部発振で使用する場合について説明します。
Aruduino Uno を Aruduino ISP として、書き込み装置にする部分までは前項と同じです。ただし、回路を変更して以下のようにします。

ボードの選択は、 Arduino / Genuino UNO を選択します。この状態でブートローダーを書き込みを選択すると、書き込みが始まります。この場合でも Arduino 上のマイコンを抜く必要はありません。

先ほどと同様に、通常のスケッチの書き込みの際には、「書き込み装置を使って書き込む」を選択します。間違えてマイコンへ書き込むを選択すると、書き込み装置としている Arduino 側のマイコンを書き換えてしまうのでご注意ください。

その他

ブートローダーの書き込みが失敗して、結構手こずることがありましたが、上記の手順ができてからはスムーズにできている気がします。今回使用している Arduino IDE は 1.8.5 となっています。
それでもうまくいかないことがあります。ブレッドボードでの配線が悪いのか、接触不良でマイコンを認識失敗することが多いです。そんなときには配線をやり直したり、ICをぐぐっと押し込んだりして対処しています。

追記

冒頭で Arduino Uno R3 は約 3000 円と話していたのですが、公式ならばという条件でした。 Amazon を見てみると、 Arduino 互換機もいろいろとあるようで、 Arduino Uno の互換機も以下のようにありました。


これだと1つあたり 650 円となるので、今まで説明してきたような手間から解放される点を考慮すると十分に安いといえると思いました。これなら何かの工作物にためらいなく入れられそうです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする