• 締切済み

atmega328-puの書き込みに付いて。

atmega328-puの外部と内部のclockの取り扱いについてお尋ねします。 先ずブートローダーを書き込んだり、書き込みに失敗すると外部クロックに切り替わり その後は書き込めなくなる様な説明が有りました。 このことは、二度目以降のブートローダーが書き込めなくなると言うことでしょうか 又、書き込みに失敗した時、そのavrは全く他の用途にも使えなくなり、マイコンとしての 機能を失ってしまうと言うことですか。 それでは、AvrIsp-MkIIの書き込み器を使って、外部クロック用の水晶発振素子等を取り付けて 新しくプログラムを書き込むことは可能ですか。 ブートローダーの解釈として、私が理解しているのは、ブートローダーと言うのは 書き込まれるマイコンが、書き込まれたプログラム通りに働かせる為のプログラム では無く、そのプログラムをAVRマイコンに読み込ませる為の導入プログラム と言うことで良いのでしょうか。 atmega328-puのマイコンに書き込むための説明に、ARDUINOよるブートローダーの書き込み方が沢山紹介されていますが、これはARDUINOのボードでプログラムを書き込んだりするとき スケッチと言うプログラムを作成してARDUINOに書き込みプログラムを走らせますが このスケッチを書き込む時に必要なソフトが、ブートローダーなのでしょうか。 では以前このOK-WAVEで教えていただいた回答内容では、AVRマイコンに書き込む為には AVRISP-MKIIの書き込み器を使えば、ブートローダーは必ずしも必要ないと言うように私は理解 したのですが、正しいのでしょうか。 例えばブートローダーを書き込んだATMEGA328-PUをaruduinoで私が書き込もうとする プログラムをスケッチに書いて書き込んだら、基本的には(動作クロック等は別として) 動作するのでしょうか。 すみません、色々調べたのですが基本的な事の疑問が、解けずにいますので 教えてください。

みんなの回答

  • texter
  • ベストアンサー率0% (0/0)
回答No.1

外部クロックに切り替わっただけで、ブートローダーが書き込めていない場合は、マイコンとしての機能を失ったわけではありません。そのため、書き込みに失敗しても、クロックを供給するものとAvrIsp-MkIIを使って再びブートローダー及びプログラムを書き込むことができます。 ブートローダーの役割は、シリアル通信で送られてきたプログラムを認識し、ブートローダーが使用していない領域のFLASHメモリーに書き込む、というものです。これは、AVRISPというプログラミング専用の通信規格ではなく、汎用のシリアル通信を使うことにより、回路を一切変更することなくそれらのピンはシリアル通信入出力に使用できるので、よりプログラミングを簡単にします。 ArduinoボードはパソコンとメインマイコンをUARTでしか繋いでいないので、ArduinoボードにAVRを搭載する時には必ずブートローダーが必要となります。 そして、ブートローダーは前述のみが機能ですので、AVRISPでプログラミングする際には不必要です。ブートローダーが書き込まれたAVRにAVRISPでプログラミングすると、ブートローダーは消えてしまいます。 ちなみに、AvrIsp-MkIIをまだお持ちでないのであれば、Arduino IDEに付属するサンプルスケッチの「ArduinoISP」を使った方が安上がりです。【参考URL】にArduinoISPを使用してAVRシリーズのプログラミングをする方法が紹介されています。

参考URL:
http://make.kosakalab.com/make/electronic-work/arduino-ide-arduinoisp/
mtx1
質問者

お礼

すみませんお礼が遅くなりました。 用事があり、プランクが長くなってしまいました。 お陰さまで、正しく書き込む事が出来ました。 ありがとうございました。