From 89b3251dde98d408db14ddbcc7c7063d4a50315b Mon Sep 17 00:00:00 2001 From: Jason Lefley Date: Wed, 18 Mar 2015 15:28:12 -0700 Subject: [PATCH] add support for atmega328p --- Makefile | 8 ++++++++ main.c | 19 ++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index e8437df..4eb04cb 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,14 @@ AVRDUDE_FUSES=lfuse:w:0xc2:m hfuse:w:0xdd:m efuse:w:0xfa:m BOOTLOADER_START=0x3C00 endif +ifeq ($(MCU), atmega328p) +# (8Mhz internal RC-Osz., 2.7V BOD) +AVRDUDE_MCU=m328p -F +AVRDUDE_FUSES=lfuse:w:0xc2:m hfuse:w:0xda:m efuse:w:0xfd:m + +BOOTLOADER_START=0x7800 +endif + # --------------------------------------------------------------------------- CFLAGS = -pipe -g -Os -mmcu=$(MCU) -Wall -fdata-sections -ffunction-sections diff --git a/main.c b/main.c index e1d36dc..c70e489 100644 --- a/main.c +++ b/main.c @@ -35,6 +35,11 @@ * Fuse E: 0xfa (512 words bootloader) * Fuse H: 0xdd (2.7V BOD) * Fuse L: 0xc2 (8Mhz internal RC-Osz.) + * + * atmega328p: + * Fuse E: 0xfd (2.7V BOD) + * Fuse H: 0xda (1024 words bootloader) + * Fuse L: 0xc2 (8Mhz internal RC-Osz.) */ #if defined (__AVR_ATmega8__) @@ -49,6 +54,10 @@ #define VERSION_STRING "TWIBOOT m168v2.1" #define SIGNATURE_BYTES 0x1E, 0x94, 0x06 +#elif defined (__AVR_ATmega328P__) +#define VERSION_STRING "TWIBOOT m328pv2.1" +#define SIGNATURE_BYTES 0x1E, 0x95, 0x0F + #else #error MCU not supported #endif @@ -145,7 +154,7 @@ * SLA+W, 0x02, 0x02, addrh, addrl, {* bytes}, STO */ -const static uint8_t info[16] = VERSION_STRING; +const static uint8_t info[18] = VERSION_STRING; const static uint8_t chipinfo[8] = { SIGNATURE_BYTES, @@ -214,7 +223,7 @@ static void write_eeprom_byte(uint8_t val) #if defined (__AVR_ATmega8__) EECR |= (1<