Arduino(アルドゥイーノ) マイコンボードを自作回路で実験をしてみました。 マイコンボードの RESET 端子に入る信号は下表に示します。 回路の注意点は
@RS-232C の RST か DTR を コンデンサ (0.1μF) を介し PC6 (RESET) につなぎます。Aシステムクロックは 16MHz にします。
BCPU は ATmega328P を使用します。
ブートローダの書き込みは AVRISPmkU を使用しました。
水晶発振器(16MHz)を使用の ATmega328P AVR 基板にプログラムのを書くとき Fuse は 0xFD、 0xD9、0xF7 としています。(このプログラムのを書くとき Fuse 値の組合せは沢山あるので、ブートローダの書き込み用 Fuse 値 も沢山できてしまいます。)
詳しい内容は
水晶発振器(16MHz)を使用の ATmega328P AVR 基板にプログラムのを書くとき
Fuse は 0xFD、 0xD9、0xF7 としています。
そのFuseの値に下記の@ABを施しますとブートローダの書き込み Fuse が得られます。
@BODLEVEL bitを立てる(Brown-out detection at VCC=2.7V)
ASPIEN bitを立てる
BBOOTSZ bitを立てるですが既にその bit はたっているのでなにもしません(Boot Flash size=2048 words start address=$3800)
EXTENDED 0xFD
HIGH 0xD8
LOW 0xF7
Lock Bits は 0xFF のままでも良さそうです。
ブートローダ・プログラム ATmegaBOOT_168_atmega328.hexは
Arduino IDE (統合開発環境)1.0.5
の場合は、
C:/arduino-1.0.5/hardware/arduino
/bootloders/atmega/ATmegaBOOT_168_atmega328.hex
に有ります。
Arduino IDE (統合開発環境)1.6.5
の場合は、
C:/Program File(x86)/arduino/hardware/arduino
/avr/bootloders/atmega/ATmegaBOOT_168_atmega328.hex
に有ります。
Arduino IDE (統合開発環境)1.8.5
の場合は、
C:/Program File(x86)/arduino/hardware/arduino
/avr/bootloders/atmega/ATmegaBOOT_168_atmega328.hex
に有ります。
Arduino IDE (統合開発環境)1.8.10
の場合は、
C:/Program File(x86)/arduino/hardware/arduino
/avr/bootloders/atmega/ATmegaBOOT_168_atmega328.hex
に有ります。
これで用意した
@Fuse;0xFD, 0xD9, 0xF7
ALock Bits:0xFF
BATmegaBOOT_168_atmega328.hex (5533バイト、ヘキサファイル)を
ATMEL STUDIO 7 で書き込みます。
Arduino IDE (統合開発環境)1.8.5を立ち上げて
ツール→ボード:"Arduino/Genuino Uno"でブートローダを書き込むボードを選びます。を選びます。
回路図のように13番ピンにLEDをつなぎ、ファイル→スケッチ例→01 Basics→Blinkを読み込み、 '↓'ボタンをクリックすと(コンパイル、書き込み、実行すると)LEDが点滅します。
これで Arduino 基板の準備できました。
Arduino IDE (統合開発環境)1.0.5又は1.6.5を立ち上げて
ツール→マイコンボード→でブートローダを書き込むボードを選びます。
回路図のように9番ピンにLEDをつなぎ、ファイル→スケッチ例→01 Basics→Fadeを読み込み、 '↓'ボタンをクリックすと(コンパイル、書き込み、実行すると)LEDがフェードします。