差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
arduino:書込み機を作る [2018/12/11 15:37] – 作成 baba | arduino:writer [2024/05/07 23:59] (現在) – [手順] baba | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== Arduinoを書込み機にする | + | ====== Arduino |
+ | 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でも動作を確認しました。 | ||
+ | </ | ||
+ | {{ : | ||
+ | | ||
+ | |||
+ | ATMEGA328P以外にもATINY85等を利用すれば,もっと小型で価格を抑えてプロトタイプを作成できます. が,メモリ領域が少なかったり,ピン本数が足りなかったりしがちなので,こういった作業に慣れてから,別のAVRマイコンを 試してみることをお薦めします.このページではATMEGA328とAtiny85を利用して書き込みを行います. 非常に小さなプロトタイピングを考えている場合はATINY85を,少しスペースに余裕がある場合は ATMEGA328を使いましょう. | ||
+ | |||
+ | このページでは,Arduino Duemilanove/ | ||
+ | |||
+ | なおこのページでは書き込み機も自作していますが、DIPを書き込みだけであればaitendoが出している下記が安くておすすめです。 | ||
+ | * http:// | ||
+ | ===== 内蔵クロック(8MHz)で書き込む(Arduino Duemilanove/ | ||
+ | |||
+ | Arduino Uno等の汎用IOボードは実行時の信頼性を考慮し,外部クロックを利用しています. しかし,一般的なPICやAVRといったマイコンは大概内部クロックを持っており,それを利用 することで,外部発信装置を利用せずに,最小構成でプロトタイプをつくることができます. まずは下記を用意してください. | ||
+ | |||
+ | - AVRマイコンATMEGA328P-PU(Arduinoから取り外して使用してはダメです.新品は秋月で買えます.) | ||
+ | - Arduino Duemilanove(Arduino UNOでも動作を確認しています(2024年5月7日)) | ||
+ | - ブレッドボード, | ||
+ | - 110-124オームの抵抗(今回は120Ωの抵抗にします) | ||
+ | |||
+ | ==== 手順 ==== | ||
+ | === 1. Arduino DuemilanoveにArduino As ISPのプログラムを書き込む === | ||
+ | まずはArduinoとPCを接続し,Arduinoメニューの「ファイル」→「スケッチブックの例」からArduinoISPを選択し,それをArduino Duemilanoveに書き込みます | ||
+ | |||
+ | === 2. ブレッドボード上に下記回路図を作成する.(抵抗:120Ω,LEDに抵抗付けたい人はどうぞ)=== | ||
+ | {{ : | ||
+ | |||
+ | === 3. Arduinoメニューの「ツール」→「マイコンボード」から「ATMEGA328P/ | ||
+ | |||
+ | 初期設定状態だと,上記の「ATMEGA328/ | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | もしarduinoのサイトがリンク切れになっていてもいいように、以下の通りまとめておきます。 | ||
+ | - {{ : | ||
+ | - 展開後、ユーザ名/ | ||
+ | - Arduinoソフトウェアを立ち上げ直す | ||
+ | </ | ||
+ | |||
+ | |||
+ | === 4. Arduinoで新規ファイルを作成し,下記プログラムをペーストする === | ||
+ | Arduinoメニューの「ツール」→「マイコンボード」から「ATMEGA328P/ | ||
+ | < | ||
+ | int led = 0; | ||
+ | void setup() { | ||
+ | pinMode(led, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | digitalWrite(led, | ||
+ | delay(1000); | ||
+ | digitalWrite(led, | ||
+ | delay(1000); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === 5. Arduinoメニューの「ファイル」→「書込装置を使って書込み」を選択し,ATMEGA328Pにプログラムを書き込む === | ||
+ | LEDが8秒間隔くらいで点滅したらうまく動作しています.プログラムでは1秒間隔のはずですが, このようになるのは,ここまでの状態でATMEGA328が1MHzで動作しているためです.そこで次の手順で 8MHzで動作するようにします. | ||
+ | |||
+ | === 6. Arduinoメニュー→「ツール」→「ブートローダーを書き込む」を実行し,書込み終わったあと,再度同様の 点滅プログラムを「書込み装置を使って書込み」から実行する=== | ||
+ | 1秒間隔で実行されればOKです.お疲れ様でした. | ||
+ | |||
+ | === 7. 最後に書き込み終わった328Pをブレッドボードから取り出し,電源とLEDの回路だけで動作するかも 確認してみましょう=== | ||
+ | なお,3.3V以下でマイコンを動作させる場合,ピン上のすべてのVCC, | ||
+ | |||
+ | ===== 外部クロック付きのATMEGA328に書き込む ===== | ||
+ | 上記内蔵クロックがお手軽ですが、長期間運営するシステムの一部にマイコンを入れる場合や、動作の信頼性を重要視したい場合、通常は外部クロック(水晶振動子やセラロック等)を載せた状態で書込みを行います。このセクションではその手順を紹介します。先程hardwareにinternal clock 8MHzの328を追加したかと思いますが、今回は外部クロック動作での328になります。そこで、「シナプスのハード製作記」(https:// | ||
+ | |||
+ | 書込みの手順は上記を参照してください。接続方法は下記の図のとおりです。 | ||
+ | |||
+ | {{ : |