From 1c69387ab0f634b51f3356c2e48238f32116263c Mon Sep 17 00:00:00 2001 From: kalymos Date: Mon, 23 Mar 2026 19:45:32 +0100 Subject: [PATCH] Adjust boards.txt and platform.txt for fuse programming --- PSNee/MCU.h | 2 +- PSNee/PSNee.ino | 2 +- PSNeeCore-2.0.0/avr/boards.txt | 136 +++++++++++++++---------------- PSNeeCore-2.0.0/avr/platform.txt | 7 +- 4 files changed, 76 insertions(+), 71 deletions(-) diff --git a/PSNee/MCU.h b/PSNee/MCU.h index e88109b..20ca294 100644 --- a/PSNee/MCU.h +++ b/PSNee/MCU.h @@ -284,7 +284,7 @@ #endif -#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__) +#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U2__) #define IS_32U4_FAMILY static inline void OptimizePeripherals(void) { diff --git a/PSNee/PSNee.ino b/PSNee/PSNee.ino index 6c48291..16aaac6 100644 --- a/PSNee/PSNee.ino +++ b/PSNee/PSNee.ino @@ -106,7 +106,7 @@ #include "MCU.h" #include "settings.h" -#define HYSTERESIS_MAX 25 // Now coupled with post-injection reset; allows for higher +#define HYSTERESIS_MAX 25 // Now coupled with post-injection reset; allows for higher // initial accumulation targets without the alignment drift // (desync) previously affecting SCPH-100x models. diff --git a/PSNeeCore-2.0.0/avr/boards.txt b/PSNeeCore-2.0.0/avr/boards.txt index f281ab5..21c0229 100644 --- a/PSNeeCore-2.0.0/avr/boards.txt +++ b/PSNeeCore-2.0.0/avr/boards.txt @@ -55,7 +55,7 @@ menu.variant=Variant 328.menu.variant.modelPB=328PB # 328.menu.variant.modelPB.bootloader.cksel_bits=1111 -328.menu.variant.modelPB.bootloader.extended_value=11111011 +328.menu.variant.modelPB.bootloader.extended_value=11110111 328.menu.variant.modelPB.build.variant=pb-variant 328.menu.variant.modelPB.build.mcu=atmega328pb @@ -75,7 +75,7 @@ menu.variant=Variant 328.menu.clock.16MHz_external=External 16 MHz 328.menu.clock.16MHz_external.upload.default_speed=115200 # 328.menu.clock.16MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} -328.menu.clock.16MHz_external.bootloader.low_fuses=EE +328.menu.clock.16MHz_external.bootloader.low_fuses=0xEE 328.menu.clock.16MHz_external.build.clkpr= 328.menu.clock.16MHz_external.build.f_cpu=16000000L @@ -83,7 +83,7 @@ menu.variant=Variant 328.menu.clock.8MHz_external=External 8 MHz 328.menu.clock.8MHz_external.upload.default_speed=57600 # 328.menu.clock.8MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} -328.menu.clock.16MHz_external.bootloader.low_fuses=EE +328.menu.clock.8MHz_external.bootloader.low_fuses=0xEE 328.menu.clock.8MHz_external.build.clkpr= 328.menu.clock.8MHz_external.build.f_cpu=8000000L @@ -138,7 +138,7 @@ menu.variant=Variant 168.menu.variant.modelNonP.build.mcu=atmega168 168.menu.variant.modelPB=168PB -168.menu.variant.modelPB.bootloader.extended_value=11111011 +168.menu.variant.modelPB.bootloader.extended_value=11110101 168.menu.variant.modelPB.build.variant=pb-variant 168.menu.variant.modelPB.build.mcu=atmega168pb @@ -179,85 +179,85 @@ menu.variant=Variant ############################ # General -##88.name=ATmega88 -88.upload.tool=avrdude -88.upload.maximum_data_size=1024 -88.bootloader.tool=avrdude -88.bootloader.unlock_bits=0xff -88.bootloader.lock_bits=0xff -88.bootloader.extended_fuses=0xff -88.build.core=MCUdude_corefiles -88.build.board=AVR_ATmega88 -88.build.bootloader_led=led+b5 -88.build.extra_flags={build.clkpr} +#88.name=ATmega88 +#88.upload.tool=avrdude +#88.upload.maximum_data_size=1024 +#88.bootloader.tool=avrdude +#88.bootloader.unlock_bits=0xff +#88.bootloader.lock_bits=0xff +#88.bootloader.extended_fuses=0xff +#88.build.core=MCUdude_corefiles +#88.build.board=AVR_ATmega88 +#88.build.bootloader_led=led+b5 +#88.build.extra_flags={build.clkpr} # Upload port select -88.upload.maximum_size=8192 -88.build.export_merged_output=false -88.bootloader.file=empty/empty.hex +#88.upload.maximum_size=8192 +#88.build.export_merged_output=false +#88.bootloader.file=empty/empty.hex # EEPROM -88.menu.eeprom.keep=EEPROM retained -88.menu.eeprom.keep.bootloader.eesave_bit=0 -88.menu.eeprom.erase=EEPROM not retained -88.menu.eeprom.erase.bootloader.eesave_bit=1 +#88.menu.eeprom.keep=EEPROM retained +#88.menu.eeprom.keep.bootloader.eesave_bit=0 +#88.menu.eeprom.erase=EEPROM not retained +#88.menu.eeprom.erase.bootloader.eesave_bit=1 # Baud rate -88.upload.speed={upload.default_speed} +#88.upload.speed={upload.default_speed} # Variants -88.menu.variant.modelP=88P / 88PA -88.menu.variant.modelP.bootloader.cksel_bits=0111 -88.menu.variant.modelP.build.variant=standard -88.menu.variant.modelP.build.mcu=atmega88p +#88.menu.variant.modelP=88P / 88PA +#88.menu.variant.modelP.bootloader.cksel_bits=0111 +#88.menu.variant.modelP.build.variant=standard +#88.menu.variant.modelP.build.mcu=atmega88p -88.menu.variant.modelNonP=88 / 88A -88.menu.variant.modelNonP.bootloader.cksel_bits=0111 -88.menu.variant.modelNonP.build.variant=standard -88.menu.variant.modelNonP.build.mcu=atmega88 +#88.menu.variant.modelNonP=88 / 88A +#88.menu.variant.modelNonP.bootloader.cksel_bits=0111 +#88.menu.variant.modelNonP.build.variant=standard +#88.menu.variant.modelNonP.build.mcu=atmega88 -88.menu.variant.modelPB=88PB -88.menu.variant.modelPB.bootloader.cksel_bits=1111 -88.menu.variant.modelPB.build.variant=pb-variant -88.menu.variant.modelPB.build.mcu=atmega88pb +#88.menu.variant.modelPB=88PB +#88.menu.variant.modelPB.bootloader.cksel_bits=1111 +#88.menu.variant.modelPB.build.variant=pb-variant +#88.menu.variant.modelPB.build.mcu=atmega88pb # Brown out detection -88.bootloader.high_fuses=0b1101{bootloader.eesave_bit}101 +#88.bootloader.high_fuses=0b1101{bootloader.eesave_bit}101 # Compiler link time optimization -88.compiler.c.extra_flags=-Wextra -flto -g -88.compiler.c.elf.extra_flags=-w -flto -g -88.compiler.cpp.extra_flags=-Wextra -flto -g -88.ltoarcmd=avr-gcc-ar +#88.compiler.c.extra_flags=-Wextra -flto -g +#88.compiler.c.elf.extra_flags=-w -flto -g +#88.compiler.cpp.extra_flags=-Wextra -flto -g +#88.ltoarcmd=avr-gcc-ar # Clock frequencies -88.menu.clock.16MHz_external=External 16 MHz -88.menu.clock.16MHz_external.upload.default_speed=115200 -88.menu.clock.16MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} -88.menu.clock.16MHz_external.build.clkpr= -88.menu.clock.16MHz_external.build.f_cpu=16000000L +#88.menu.clock.16MHz_external=External 16 MHz +#88.menu.clock.16MHz_external.upload.default_speed=115200 +#88.menu.clock.16MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} +#88.menu.clock.16MHz_external.build.clkpr= +#88.menu.clock.16MHz_external.build.f_cpu=16000000L +# +#88.menu.clock.20MHz_external=External 20 MHz +#88.menu.clock.20MHz_external.upload.default_speed=115200 +#88.menu.clock.20MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} +#88.menu.clock.20MHz_external.build.clkpr= +#88.menu.clock.20MHz_external.build.f_cpu=20000000L -88.menu.clock.20MHz_external=External 20 MHz -88.menu.clock.20MHz_external.upload.default_speed=115200 -88.menu.clock.20MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} -88.menu.clock.20MHz_external.build.clkpr= -88.menu.clock.20MHz_external.build.f_cpu=20000000L +#88.menu.clock.8MHz_external=External 8 MHz +#88.menu.clock.8MHz_external.upload.default_speed=57600 +#88.menu.clock.8MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} +#88.menu.clock.8MHz_external.build.clkpr= +#88.menu.clock.8MHz_external.build.f_cpu=8000000L -88.menu.clock.8MHz_external=External 8 MHz -88.menu.clock.8MHz_external.upload.default_speed=57600 -88.menu.clock.8MHz_external.bootloader.low_fuses=0b1111{bootloader.cksel_bits} -88.menu.clock.8MHz_external.build.clkpr= -88.menu.clock.8MHz_external.build.f_cpu=8000000L - -88.menu.clock.8MHz_internal=Internal 8 MHz -88.menu.clock.8MHz_internal.upload.default_speed=38400 -88.menu.clock.8MHz_internal.bootloader.low_fuses=0xe2 -88.menu.clock.8MHz_internal.build.clkpr= -88.menu.clock.8MHz_internal.build.f_cpu=8000000L +#88.menu.clock.8MHz_internal=Internal 8 MHz +#88.menu.clock.8MHz_internal.upload.default_speed=38400 +#88.menu.clock.8MHz_internal.bootloader.low_fuses=0xe2 +#88.menu.clock.8MHz_internal.build.clkpr= +#88.menu.clock.8MHz_internal.build.f_cpu=8000000L ############################ @@ -312,7 +312,7 @@ X5.menu.clock.internal_8m.upload.default_speed=38400 ############################ -#### ATmega32U4 #### +#### ATmega 32U4/32U2 #### ############################ 32U4.name=ATmega 32U4/32U2 @@ -330,7 +330,7 @@ X5.menu.clock.internal_8m.upload.default_speed=38400 32U4.bootloader.unlock_bits=0x3F 32U4.bootloader.lock_bits=0x2F 32U4.bootloader.high_fuses=0xDF -32U4.bootloader.extended_fuses=0xFB +32U4.bootloader.extended_fuses=0xFE 32U4.menu.variant.32U4=ATmega32U4 32U4.menu.variant.32U4.build.mcu=atmega32u4 @@ -338,11 +338,11 @@ X5.menu.clock.internal_8m.upload.default_speed=38400 32U4.menu.variant.32U4.upload.maximum_data_size=2560 32U4.menu.variant.32U4.build.variant=32u -32U2.menu.variant.32U2=ATmega32U2 -32U2.menu.variant.32U2.build.mcu=atmega32u2 -32U2.menu.variant.32U2.upload.maximum_size=28672 -32U2.menu.variant.32U2.upload.maximum_data_size=2560 -32U2.menu.variant.32U2.build.variant=32u2 +32U4.menu.variant.32U2=ATmega32U2 +32U4.menu.variant.32U2.build.mcu=atmega32u2 +32U4.menu.variant.32U2.upload.maximum_size=28672 +32U4.menu.variant.32U2.upload.maximum_data_size=2560 +32U4.menu.variant.32U2.build.variant=32u # Compiler flags 32U4.compiler.c.extra_flags= diff --git a/PSNeeCore-2.0.0/avr/platform.txt b/PSNeeCore-2.0.0/avr/platform.txt index 5f0259e..73a9a31 100644 --- a/PSNeeCore-2.0.0/avr/platform.txt +++ b/PSNeeCore-2.0.0/avr/platform.txt @@ -129,7 +129,12 @@ tools.avrdude.program.params.quiet=-q -q # tools.avrdude.program.verify is needed for backwards compatibility with AVRDUDE 6.3.0 and IDE 1.6.8 or older, IDE 1.6.9 or newer overrides this value tools.avrdude.program.verify= tools.avrdude.program.params.noverify=-V -tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} "-Ueeprom:w:{build.path}/{build.project_name}.eep:i" "-Uflash:w:{build.path}/{build.project_name}.hex:i" +#tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} "-Ueeprom:w:{build.path}/{build.project_name}.eep:i" "-Uflash:w:{build.path}/{build.project_name}.hex:i" + +#tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m "-Ueeprom:w:{build.path}/{build.project_name}.eep:i" "-Uflash:w:{build.path}/{build.project_name}.hex:i" + +tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m "-Uflash:w:{build.path}/{build.project_name}.hex:i" + tools.avrdude.erase.params.verbose=-v tools.avrdude.erase.params.quiet=-q -q