両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
arduino:writer [2019/01/19 11:00] – [外部クロック付きのATMEGA328に書き込む] baba | arduino:writer [2024/05/07 23:59] (現在) – [手順] baba |
---|
====== Arduino Writer ====== | ====== Arduino Writer ====== |
{{ :arduino:writer_nano.png?nolink |}} | Arduino as ISPとして書き込むための情報まとめページです。Arduinoのバージョン違いで動作したりしなかったりするので、このページを参照して書き込みを行う際は必ず同じ環境で構築するようお願いします。 |
| |
| <WRAP center round important 60%> |
| * 利用するArduinoは必ず 1.8.5 もしくはそれ以下を利用してください。1.8.6以上はコンパイラが変わっておりそのせいで裸の328への書き込みがうまく言っていないことが報告されています。 |
| * その後1.9.0-betaの登場によって、1.9.0でも動作を確認しました。 |
| * 2024年5月7日:この時点での最新バージョンである2.3.2でも動作を確認しました。 |
| </WRAP> |
| |
| {{ :arduino:writer_nano.png?nolink |}} |
ArduinoはAVRマイコンからなる汎用IOボードになります.つまり例えば Arduino Unoでは,AVRマイコンは328Pという種類で,これは外部クロック(16MHz)で動作し,シリアル通信用チップも ボード上に組み込まれています.おおよそArduino一台で3,000円程度となります.普段のプロトタイピングにおいて, このような汎用IOボードを利用するのは,お手軽でよいのですが,実際に量産とまでいかなくとも50,100個といった具合に 設計した回路を作る場合,毎回Arduino汎用ボードを利用していては,回路やスペースを無駄にするだけでなく,金額も 大きく異なってきます.例えばArduinoを利用して100個のプロトタイプを作るとします.その一つ一つにArduinoを利用すると 単純計算でも100x3,000=30万円ですが,これをATMEGA328P(250円)と外部クロック(40円)で動作させると100x290=29,000円と 約10分の一まで価格を下げることができます.もちろん電源回路やちょっとゴマふったりと,もう少しお金がかかる部分がある かもしれませんが,価格が大きく下がるのはわかると思います. | ArduinoはAVRマイコンからなる汎用IOボードになります.つまり例えば Arduino Unoでは,AVRマイコンは328Pという種類で,これは外部クロック(16MHz)で動作し,シリアル通信用チップも ボード上に組み込まれています.おおよそArduino一台で3,000円程度となります.普段のプロトタイピングにおいて, このような汎用IOボードを利用するのは,お手軽でよいのですが,実際に量産とまでいかなくとも50,100個といった具合に 設計した回路を作る場合,毎回Arduino汎用ボードを利用していては,回路やスペースを無駄にするだけでなく,金額も 大きく異なってきます.例えばArduinoを利用して100個のプロトタイプを作るとします.その一つ一つにArduinoを利用すると 単純計算でも100x3,000=30万円ですが,これをATMEGA328P(250円)と外部クロック(40円)で動作させると100x290=29,000円と 約10分の一まで価格を下げることができます.もちろん電源回路やちょっとゴマふったりと,もう少しお金がかかる部分がある かもしれませんが,価格が大きく下がるのはわかると思います. |
| |
このページでは,Arduino Duemilanove/Nanoを利用して,AVRマイコンATMEGA328PをArduinoボード上でなく,ブレッド上で 単独動作させるやり方をまとめておきます.Arduino Unoを利用することもできますが,一度ブートローダーを書き換える必要 があるため,Duemilanoveを利用したほうが間違いないです. | このページでは,Arduino Duemilanove/Nanoを利用して,AVRマイコンATMEGA328PをArduinoボード上でなく,ブレッド上で 単独動作させるやり方をまとめておきます.Arduino Unoを利用することもできますが,一度ブートローダーを書き換える必要 があるため,Duemilanoveを利用したほうが間違いないです. |
| |
| なおこのページでは書き込み機も自作していますが、DIPを書き込みだけであればaitendoが出している下記が安くておすすめです。 |
| * http://www.aitendo.com/product/10961 |
===== 内蔵クロック(8MHz)で書き込む(Arduino Duemilanove/UNO編) ===== | ===== 内蔵クロック(8MHz)で書き込む(Arduino Duemilanove/UNO編) ===== |
| |
| |
- AVRマイコンATMEGA328P-PU(Arduinoから取り外して使用してはダメです.新品は秋月で買えます.) | - AVRマイコンATMEGA328P-PU(Arduinoから取り外して使用してはダメです.新品は秋月で買えます.) |
- Arduino Duemilanove | - Arduino Duemilanove(Arduino UNOでも動作を確認しています(2024年5月7日)) |
- ブレッドボード,ジャンパー線 | - ブレッドボード,ジャンパー線 |
- 110-124オームの抵抗(今回は120Ωの抵抗にします) | - 110-124オームの抵抗(今回は120Ωの抵抗にします) |
=== 3. Arduinoメニューの「ツール」→「マイコンボード」から「ATMEGA328P/Int.8MHz」を選択,「ツール」→「書込装置」から 「Arduino as ISP」を選択=== | === 3. Arduinoメニューの「ツール」→「マイコンボード」から「ATMEGA328P/Int.8MHz」を選択,「ツール」→「書込装置」から 「Arduino as ISP」を選択=== |
| |
初期設定状態だと,上記の「ATMEGA328/Int.8MHz」がマイコンボード一覧にはありません. そこで From Arduino to a Microcontroller on a Breadboard を参照して,BreadBoard.zipの中身をダウンロードし,マイコンボード一覧に追加します.追加後は Arduinoを再起動して下さい.追加の仕方はそのサイトを参照してください. | 初期設定状態だと,上記の「ATMEGA328/Int.8MHz」がマイコンボード一覧にはありません. そこで [[https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoToBreadboard/|From Arduino to a Microcontroller on a Breadboard]] を参照して,BreadBoard.zipの中身をダウンロードし,マイコンボード一覧に追加します.追加後は Arduinoを再起動して下さい.追加の仕方はそのサイトを参照してください. |
| |
| <WRAP center round info 60%> |
| もしarduinoのサイトがリンク切れになっていてもいいように、以下の通りまとめておきます。 |
| - {{ :arduino:breadboard-1-6-x.zip |}} をダウンロードする |
| - 展開後、ユーザ名/Documents/Arduino/hardware に展開した breadboard をディレクトリごとコピーする。 |
| - Arduinoソフトウェアを立ち上げ直す |
| </WRAP> |
| |
=== 4. Arduinoで新規ファイルを作成し,下記プログラムをペーストする === | === 4. Arduinoで新規ファイルを作成し,下記プログラムをペーストする === |
上記内蔵クロックがお手軽ですが、長期間運営するシステムの一部にマイコンを入れる場合や、動作の信頼性を重要視したい場合、通常は外部クロック(水晶振動子やセラロック等)を載せた状態で書込みを行います。このセクションではその手順を紹介します。先程hardwareにinternal clock 8MHzの328を追加したかと思いますが、今回は外部クロック動作での328になります。そこで、「シナプスのハード製作記」(https://synapse.kyoto/tips/bootloader_ATmega88/page001.html)に記載されている、「5.Arduino IDEにATmega88/88V/168P/328P用のブートローダを登録する方法」を参照して、マイコンボードに追加します。このページでは、(https://synapse.kyoto/zip/ATmega88_168P_328P_100.zip)を利用します。 | 上記内蔵クロックがお手軽ですが、長期間運営するシステムの一部にマイコンを入れる場合や、動作の信頼性を重要視したい場合、通常は外部クロック(水晶振動子やセラロック等)を載せた状態で書込みを行います。このセクションではその手順を紹介します。先程hardwareにinternal clock 8MHzの328を追加したかと思いますが、今回は外部クロック動作での328になります。そこで、「シナプスのハード製作記」(https://synapse.kyoto/tips/bootloader_ATmega88/page001.html)に記載されている、「5.Arduino IDEにATmega88/88V/168P/328P用のブートローダを登録する方法」を参照して、マイコンボードに追加します。このページでは、(https://synapse.kyoto/zip/ATmega88_168P_328P_100.zip)を利用します。 |
| |
| 書込みの手順は上記を参照してください。接続方法は下記の図のとおりです。 |
| |
| {{ :arduino:スクリーンショット_2019-01-19_11.40.18.png?nolink |}} |