Uno用ブートローダライタシールドの製作(1)このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。Unoに装着し、ATmega328PなどのAVRマイコンにArduinoのブートローダを書き込むためのシールドの作り方を説明しています。Uno用ブートローダライターシールドは、キットとして販売しています。Unoのブートローダを書き込む場合について説明していますが、ATmega88/88V/168Pにブートローダを書き込む方法については、ATmega88/88V/168P/328PにArduinoのブートローダを書き込む(1)をご覧ください。Unoと自作のシールドを組み合わせてブートローダライタを作っていますが、Arduino互換機を内蔵した一体型のライタもArduino用ブートローダ/スケッチライタの製作(1)で紹介しています。そちらもご覧ください。3ページ1.はじめにArduinoを使って、何か作品を作った時、その作品を量産する際に、Arduinoを何台も買ってきてはもったいないですよね。Unoは一台3,000円近くしますし、また、実際に作品に組み込む時には、必要のない機能が付いています。パソコンからスケッチを書き込む機能は、多くの作品で必要がないでしょう。5Vの電源を別途用意する場合は、9VのACアダプタの電圧を5Vに落とす電源回路も必要ないでしょう。Unoを作品に組み込むよりは安価に仕上がります。Unoの必要な機能だけを実現する最小限の部品で回路を設計することができ、大幅なコストダウンと、サイズの縮小が可能になります。Unoの互換マイコンを作る時に問題になるのが、ブートローダの書き込みです。UnoのATmega328Pには、ブートローダという小さなプログラムがあらかじめ書き込んであります。このブートローダは、パソコンから送られてきたスケッチの情報を、ATmega328Pに内蔵しているフラッシュメモリに書き込む働きをしています。ブートローダのないATmega328Pには、スケッチを書き込めないのです。Unoの互換マイコンを作る時に問題になるのが、ブートローダの書き込みです。UnoのATmega328Pには、ブートローダという小さなプログラムがあらかじめ書き込んであります。このブートローダは、パソコンから送られてきたスケッチの情報を、ATmega328Pに内蔵しているフラッシュメモリに書き込む働きをしています。ブートローダのないATmega328Pには、スケッチを書き込めないのです。ブートローダ自体もATmega328Pのフラッシュメモリに書き込んであるのですが、書き込むには専用の書き込み装置(ライタ)が必要です。ArduinoISPというスケッチがあり、Arduinoをブートローダの書き込み装置として使えるようになっています。よって、Arduinoを持っている人なら、専用のライタ(例えばAVRISPmkII)を買わなくてもブートローダの書き込みができます。Unoを使って遊んでいるうちに、過電圧を加えたり、過電流を流したりして壊してしまった経験がある人も多いでしょう。そんな場合でも、故障したのはATmega328Pだけで、他の部品は無事という事が多いものです。Unoを買い換えるのはもったいないです。UnoのICソケットに刺さっている故障したATmega328Pと交換するだけで、復活します。次のページには、Arduinoとブレッドボードを使って、ブートローダを書き込む方法が解説されています。Programmer)上記ページに書いてある方法でブートローダを書き込んでみると、確かに書き込めるのですが、たくさんのマイコンに書き込む場合、ブレッドボードを使った書き込み器では、ジャンパ線が抜けるなど、信頼性に欠けます。Unoに装着するブートローダライタのシールドを作りました。Unoの心臓部であるATmega328Pです。このようにATmega328Pをブートローダライタシールドに装着し、ブートローダを書き込みます。深緑色のICソケットは、ゼロプレッシャーソケットといって、ICの抜き差しの際に、ICのリード(足)や自分自身を傷めないように工夫された、特殊なICソケットです。一般のICソケットは、せいぜい数回程度の抜き差ししか想定していませんが、ゼロプレッシャーソケットは、何千回、何万回といった、多数回の抜き差しに対応しています。このように専用のシールドを作ることにより、信頼性の高いブートローダの書き込みが実現します。今回作ったシールドは、何十個、何百個といった、まとまった数のマイコンにブートローダを書き込む必要のある人に向いています。数個のマイコンにブートローダを書き込むだけなら、最近ではブートローダ書き込み済みのマイコンを売っている店もあるようなので、そちらを利用するのが楽で経済的です。Uno用ブートローダを書き込んでみましょう。(それはいいから、早くブートローダライタシールドが見たいという方は、こちらをごらんください)Arduinoオフィシャルサイトでは、2台のArduinoを使う方法と、1台のArduinoとブレッドボードを使う方法の2通りが説明されています。Arduinoを2台用意できる人は少ないと思うので、後者の1台のArduinoとブレッドボードを使う方法を、ここでは試して見ます。Arduinoオフィシャルサイトには、使用するArduinoがUno、Duemilanove、Diecimila、NGとそれ以前のものという具合に、何種類ものボードを対象に書いてあります。Unoの場合は...」といった具合に、使うArduinoの種類によって操作が違う部分を注釈で書いてあるので、少し読みにくい文章になっています。Unoのブートローダを書き込む事に絞って説明をしたいと思います。他の種類のArduinoを使われる方は、原文を読んでください。IDEは1.0.1、1.0.4あるいは1.0.5を使うものとします。ISPのスケッチのソースを一部書き換える必要があるようです。Unoのポート番号(COM番号)を指定する図3、シリアルポートを選択する注:上の図ではCOM15を選んでいますが、皆さんの環境に合わせて、COM番号を選んでください。写真2、ブートローダ書き込み回路(水晶振動子あり)なお、原文の一番右下には、上の写真に相当する実体配線図がありますが、その実体配線図には10μFの電解コンデンサが抜けています。Unoを使う場合の注意:RESETとGNDの間に10μFのコンデンサを追加してください)と書いてあります。上の写真の通り、RESET側を+、GND側を−として、10μFの電解コンデンサを付けてください。極性を反対にすると、電解コンデンサが破裂する危険があります。水晶振動子には16MHzの物を使ってください。マイコンの名称がATmega328P-PUとなっていますが、末尾の-PUは、DIP品(基板の穴にリードを通すタイプ)を表わしています。ATmega328P-AUなら、機能的には同じものの、TQFPと呼ばれる小型なパッケージになっており、表面実装する必要がありますので、ブレッドボードには刺さりません。ツール→ブートローダを書き込むメニューを選び、ブートローダを書き込む図7、ブートローダを書き込む以上の手順で、ブートローダが書き込めるはずです。続けて別のATmega328Pにブートローダを書き込むなら、ブレッドボード上のATmega328Pを新しいものに差し替えて、手順7だけを実行すればOKです。ブートローダを書き込むATmega328Pが、未使用の新品なら、書き込み回路から水晶発振回路を取り除いても、正常に書き込めます。水晶発振回路がないと、一度ブートローダを書き込んだATmega328Pには、新たにブートローダを上書きする事はできません。水晶発振回路を取り除くと、次の様に回路が簡略化され、配線が楽になります。Unoのブートローダを書き込めますが、ブレッドボードで書き込み回路を組むと、そのままの状態で長期間保存するのが困難です。いって、ブートローダを書き込むたびにブレッドボードの配線をするのは面倒ですし、配線間違いの元になります。加えて言うと、ブレッドボードの同じ位置に、繰り返しICを抜き差ししていると、ブレッドボードが傷んできます。そこで、書き込み回路をシールドの形に固定しました。次のページでは、そのシールドについて説明します。UnoGNDシールドスケッチブレッドボード関連ページArduino用ブートローダ/スケッチライタの製作Arduinoを使わずに単独で動作するブートローダ/スケッチライタ。Arduinoで作った回路の小型化(Arduino互換機の製作)Arduino互換機を自作して回路を小型化・低コスト化。Arduinoのブートローダって何?ブートローダという言葉の意味の説明と、Arduinoにおけるブートローダの動作の解説。ブートローダを使わずにArduinoのスケッチをATmega328Pに書き込むブートローダライタシールドでArduinoのスケッチを書きこむ方法。ArduinoISPを汎用AVRライタとして使うブートローダライタシールドをAVRライタとして使う方法。ATmega88/88V/168P/328PにArduinoのブートローダを書き込む(1)ブートローダライタシールドでATmega88/88V/168Pにブートローダを書き込む方法。電子工作ISBN:978-4-7775-1941-5→工学社の書籍の内容の紹介ページ本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。このサイトの中の人が書いた本です。本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。