- AE-UM232Rをスタンドアロンで動作させる (参照: 秋月のAE-UM232RをAVRライターとして使う )
AE-UM232R | ― | ATmega328P-PU |
---|
CTS (10ピン) | ― | MISO (18ピン d12) |
DCD ( 9ピン) | ― | MOSI (17ピン d11) |
DSR ( 8ピン) | ― | SCK (19ピン d13) |
RI ( 6ピン) | ― | RESET ( 1ピン rst) |
- C13(0.1μF)外す。(DTRピンとRESETピン切り離す)
ATmega328Pの19ピンにLEDを接続した場合はLEDを外す。
- AE-UM232Rのジャンパーピン J1:2−3間ショート、J2:ショート
- AE-UM232RとPCをUSBケーブルで接続する。
- Avrdude-GUI起動しProgrammerは 'diecimila: FT232R Synchronous BB' を選択する。
[デフォルトブートローダーの場合]
Fuse Bit:
Lo = 0xFF, Hi = 0xDA, Ext = 0xFD(05)
Flash Hexファイル:
[Arduino IDEフォルダー]\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex
[optibootの場合]
Fuse Bit:
Lo = 0xFF, Hi = 0xDE, Ext = 0xFD(05)
Flash Hexファイル:
[Arduino IDEフォルダー]\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.hex
- アップロードが完了したらLock Bitを0x0Fにセットし(実際の設定値は未使用のビットが立つので0xCFになる)Avrdude-GUIを終了する。
- USBケーブルを外して C13(0.1μF)を挿す。(19ピンLEDが必要ならば挿す)
- USBケーブルを接続して Arduino IDEを起動
シリアルポートを設定
マイコンボードの設定は
デフォルトブートローダーは「Arduino Duemilanove w/ ATmega328」を選択する。
optibootは「Arduino Uno」を選択する。
Arduino UnoはUSBシリアル変換にATmega16U2/8U2を使っているが
optibootだとFT232RLでもArduino Unoで認識する。
ArduinoのUno化と言われている。
以上でスケッチを書き込めて、動作するはずなのだが。。。ここでつまづく
スケッチを書き込もうとするとエラーが発生して書き込めない。
TXDとRXDはクロスしてATmega328Pにつないであるのに通信できていない。
avrdude: stk500_getsync(): not in sync: resp=0x00
どうやらオリジナルArduinoでも起きている現象みたい。
リセット回路でC13の電圧+電源電圧が加わることが原因らしい。
エラーがでたらタクトスイッチを数秒間ながめに押しつづけて
コンデンサーをしっかり放電してから離しリセットする。
それから書き込み開始、これでエラーなく動作した。
RESETピンは内部プルアップされているはずだが、回路図どおり10kでプルアップするべき?
Arduino Uno Rev3のリセットは、プルアップ抵抗と電源より高い電圧をVCCへ逃がすために
ダイオードが追加されているので、1N4148あたりを追加すると改善策するかも?
手元に適当なダイオードがないので後日追加してみよう。
(1N4148追加してみました)
Arduino Uno Rev3 回路図 (PDF:
Arduino_Uno_Rev3-schematic)
2台目からは1台目にArduinoISPを書き込みブートローダーライターにできる。