Arduino 20MHz 再度挑戦

投稿者: | 2021年5月19日

IDEに20MHzのボード追加で20MHzはどうも早とちりのようでした。
もう一度よく考えると20MHzのブートローダーが無く出来るはずがありません。ただLチカは早くなったように感じたのは・・・・

ではどうしたら20MHz化は出来るのでしょう?

ブートローダーのmakeファイルに20MHzの記述を追加

atmega328_20MHz: TARGET = atmega328_20MHz
atmega328_20MHz: MCU_TARGET = atmega328p
atmega328_20MHz: CFLAGS += ‘-DLED_START_FLASHES=3’ ‘-DBAUD_RATE=115200’
atmega328_20MHz: AVR_FREQ = 20000000L
atmega328_20MHz: LDSECTIONS = -Wl,–section-start=.text=0x7e00 -Wl,–section-start=.version=0x7ffe
atmega328_20MHz: $(PROGRAM)_atmega328_20MHz.hex
atmega328_20MHz: $(PROGRAM)_atmega328_20MHz.lst

atmega328_20MHz_isp: atmega328_20MHz
atmega328_20MHz_isp: TARGET = atmega328_20MHz
atmega328_20MHz_isp: MCU_TARGET = atmega328p
# 512 byte boot, SPIEN
atmega328_20MHz_isp: HFUSE = DE
# Full swing xtal (20MHz) 258CK/14CK+4.1ms
atmega328_20MHz_isp: LFUSE = FF
# 2.7V brownout
atmega328_20MHz_isp: EFUSE = 05
atmega328_20MHz_isp: isp

omake.bat でビルドすればatmega328_20MHzのブートローダーが出来ます。
ところが新しいIDEではビルドできません。toolファルダーには何もありません。

1.0.1 でビルドしなんとかatmega328_20MHzのブートローダーが出来上がりました。1.8.15 の optiboot にコピーそしてatmega328_20MHzのボード追加。

uno20MHz.name=Arduino Uno 20MHz
uno20MHz.upload.protocol=arduino
uno20MHz.upload.maximum_size=32256
uno20MHz.upload.speed=115200

uno20MHz.upload.tool=avrdude
uno20MHz.bootloader.tool=avrdude
uno20MHz.bootloader.low_fuses=0xff
uno20MHz.bootloader.high_fuses=0xde
uno20MHz.bootloader.extended_fuses=0x05
uno20MHz.bootloader.unlock_bits=0x3F
uno20MHz.bootloader.lock_bits=0x0F
uno20MHz.bootloader.file=optiboot/optiboot_atmega328_20MHz.hex

uno20MHz.build.mcu=atmega328p
uno20MHz.build.f_cpu=20000000L
uno20MHz.build.board=AVR_UNO
uno20MHz.build.core=arduino
uno20MHz.build.variant=standard

スケッチの書き込みも出来、無事 Arduino Nano(Uno) の 20MHz 化が完成です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です