Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

某海外通販で購入したArduino UNO R3 互換機で遊ぶ -その06 ブートローダを書き込む-

安い互換機を作るのに使うか、PICでライターを作って書き込んで単にAVRマイコンとして使うかのどちらかにしようと思って買ってあったATMEGA328P-PUにUNOのブートローダを書き込んでみた。
万が一の場合、Arduino UNOのバックアップになると思ったからだ。
もちろんArduino UNO R3をライターとして使う。
このあたりのやり方は本家のサイトに紹介されているのでその通りにやる。

1.Open the ArduinoISP firmware (in Examples) to your Arduino board.
「スケッチの例」の中にある「ArduinoISP」をUNOに読み込む。
arduinounostart05-01

2.Note for Arduino 1.0: you need to make one small change to the ArduinoISP code. Find the line in the heartbeat() function that says “delay(40);” and change it to “delay(20);”.
Arduino 1.0.5-r2 を使うのでこの手順は今回は関係ない。

3.Select the items in the Tools > Board and Serial Port menus that correspond to the board you are using as the programmer (not the board being programmed).
プログラマとして使うUNO(書き込まれる方じゃないよ)をマイコンボードとして設定し、
arduinounostart05-03
シリアルポートも確認しておく。
arduinounostart05-04
4.Upload the ArduinoISP sketch.
UNOにスケッチを書き込む。
arduinounostart05-10
5.Wire your Arduino board to the target as shown in the diagram below. (Note for the Arduino Uno: you’ll need to add a 10 uF capacitor between reset and ground.)
書き込まれる方のATMEGA328P-PUを、下の右の図のようにブレッドボード上でジャンパーコードを使って接続する。
左の「失敗」とある簡単な方の接続方法については後述する。
「UNOを使う場合はUNOのRESETとGNDの間に10μFのコンデンサを接続しなさい。」と書いてあるのでその通りにした。
水晶発振子が面倒だったのでセラロックで代用したが、問題は無かった。
プルアップ抵抗は10kΩだ。
arduinounostart05-09
arduinounostart05-11
arduinounostart05-14
6.Select the item in the Tools > Board menu that corresponds to the board on which you want to burn the bootloader (not the board that you’re using as the programmer). See the board descriptions on the environment page for details.
書き込まれる方のボードを選択する。
今回はArduino UNOの複製なのでArduino UNOを選んだ。
arduinounostart05-05
7.Use the Burn Bootloader > Arduino as ISP command.
書き込み装置にArduino as ISPを選択して、
arduinounostart05-06
ブートローダーを書き込む。
arduinounostart05-07
arduinounostart05-12
arduinounostart05-13
およそ30秒くらいで完了する。

これは、上の絵の左の方の接続方法で試したときに表示されたエラー。
arduinounostart05-08
実は、最初、左の絵のようにつないだらエラーで書き込みが完了しなかったが、そのままで右の絵のプルアップ抵抗とセラロックを追加したら無事書き込めた。
配線自体は変更しなかったので、最初のエラーは少なくとも配線ミスが原因ではないと思う。
初めて書き込むAVRなら外付けクロック無しの左の配線で大丈夫で、一度書き込むか書き込みに失敗すると内部クロックでは駆動できなくなるので外付けのクロックが必要になるらしい。
結局、一番最初のエラーの原因については分からずじまいだ。

秋月で買って上の手順でブートローダーを書き込んだものと元々UNOに載っていたものとを交換してみたが、Arduino UNOとして全く問題なく動作している。

ちなみに、ここで使ったパーツをすべて秋月で買った場合は送料込みで1250円となる。
秋月は送料が高いからと思うが、電車乗り継いで秋葉原まで行くと思えば安いし、どのパーツも使い回しが利くから持ってて損は無い。
ちなみに、私の場合は、購入予定の商品のリンクをブックマークに放り込んでおいて、ある程度たまったら注文するようにしている。
めったに無いことだが、どうしても1点だけすぐに必要な場合は、共立エレショップなどのメール便で送ってくれるショップを利用する。
arduinounostart05-akizuki
お節介ついでに某Arduinoをはじめようキット4320円

のArduino UNOとUSBケーブル以外を秋月でそろえると、送料込みでも1970円となる。
arduinounostart05-akizuki-2
LEDは同色だけど10個入りだし、抵抗なんか1本2本とセコイことを言わずドーンと100本入りだっ。
上の買い物かごと下の買い物かごでダブりを除いて統合すると合計送料込み2270円 + $8.28で、お得ですぜ奥さん。
ブレッドボード・ジャンパーコード(オス-オス)セット
CDSセル 5mmタイプ
パワーMOS-FET 2SK2232(60V25A)
AVRマイコン ATMEGA328P-PU
5.1V ツェナーダイオード1N5231B(20本)
抵抗内蔵5mm赤色LED(5V用) OSR6LU5B64A-5V(10個入)
ブレッドボード EIC-801
セラミック発振子(セラロック)コンデンサ内蔵タイプ 16MHz
ブレッドボード・ジャンパーワイヤ EIC-J-S
電解コンデンサー10μF50V85℃ (ルビコンPK)
タクトスイッチ(黒色)
カーボン抵抗(炭素皮膜抵抗) 1/4W1kΩ (100本入)
カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ (100本入)
カーボン抵抗(炭素皮膜抵抗) 1/4W270Ω (100本入)
カーボン抵抗(炭素皮膜抵抗) 1/4W330Ω (100本入)
※なお、詳細の分からないパーツは素人の独断です、悪しからず。



「某海外通販で購入したArduino UNO R3 互換機で遊ぶ」のその他の記事一覧へ

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

Posted under: Arduino


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.