経験上、DWENの更新は2〜3回ぐらいまでしか成功した事がない。 その後は、SPIが無効状態かつDWEN有効状態で戻せなくなる・・・ ■(ATEGAのブートローダを焼くために)Arduino自体を書き込み装置にする ファイル>スケッチ例>11.Arduino ISP スケッチ>マイコンボードに書き込む ■書き込み装置にしたArduinoを使ってATMEGAのブートローダを焼く 配線)(OPTION)Pin7:LED / Pin8:LED / Pin9:LED 配線)Pin10->RESET / Pin11->MOSI / Pin12->MISO / Pin13->SCK ツール>書込装置>Arduino as ISP ツール>ブートローダーを書き込む 書き込み装置経由で手動で書き込み 配線)(OPTION)Pin7:LED / Pin8:LED / Pin9:LED 配線)Pin10->RESET / Pin11->MOSI / Pin12->MISO / Pin13->SCK $ ./avrdude -c avrisp -P /dev/cu.usbserial-1420 -D -b 19200 -p m328p -C /Users/ta2/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -Uflash:w:/Applications/BLHeliSuite32xm.app/Contents/MacOS/Interfaces/Arduino1Wire/Arduino1Wire_Nano_328.hex:i USB接続のシリアルポート経由で手動で書き込み(古いブートローダのArduino) $ ./avrdude -c arduino -P /dev/cu.usbserial-1420 -D -b 57600 -p atmega328p -C /Users/ta2/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -Uflash:w:/Applications/BLHeliSuite32xm.app/Contents/MacOS/Interfaces/Arduino1Wire/Arduino1Wire_Nano_328.hex:i USB接続のシリアルポート経由で手動で書き込み(新しいブートローダのArduino) $ ./avrdude -c arduino -P /dev/cu.usbserial-1420 -D -b 115200 -p atmega328p -C /Users/ta2/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -Uflash:w:/Applications/BLHeliSuite32xm.app/Contents/MacOS/Interfaces/Arduino1Wire/Arduino1Wire_Nano_328.hex:i
デバッグする方法 https://sites.google.com/site/wayneholder/debugwire3 DebuggerのArduinoソース https://github.com/wholder/DebugWireDebuggerProgrammer
Low: 62, High: D9, Extd: FF – CHDIV8 Enabled, DWEN Disabled
Low:62
CKDIV8:Divide clock by 8:0
CKOUT:Clock output:1
SUT1:Select start-up time:1
SUT0:Select start-up time:0
CKSEL3:Select Clock source:0
CKSEL2:Select Clock source:0
CKSEL1:Select Clock source:1
CKSEL0:Select Clock source:0
High: D9
RSTDISBL:External Reset Disable:1
DWEN:debugWIRE Enable:1
SPIEN:Enable Serial Program and Data Downloading:0
WDTON:Watchdog Timer Always On:1
EESAVE:EEPROM memory is preserved through the Chip Erase:1
BOOTSZ1:Select Boot Size:0
BOOTSZ0:Select Boot Size:0
BOOTRST:Select Reset Vector:1