From 2b2dde9f98284a4ef3deb66c90830ee213c92bcc Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Sun, 15 May 2016 22:21:38 +0200 Subject: [PATCH] add funkbridge hardware --- Makefile | 16 ++++++++++++++-- main.c | 38 +++++++++++++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index b3b18ec..fc7e44d 100644 --- a/Makefile +++ b/Makefile @@ -10,9 +10,10 @@ SOURCE = $(wildcard *.c) #CONFIG = ispprog #CONFIG = flightctrl #CONFIG = funkstuff88 -CONFIG = funkstuff168 +#CONFIG = funkstuff168 #CONFIG = ispprog2 #CONFIG = avrnetio +CONFIG = funkbridge AVRDUDE_PROG := -c avr910 -b 115200 -P /dev/ispprog #AVRDUDE_PROG := -c dragon_isp -P usb @@ -83,6 +84,17 @@ AVRDUDE_FUSES=lfuse:w:0xd7:m hfuse:w:0xdc:m efuse:w:0xfd:m BOOTLOADER_START=0xF800 endif +# ------------------------- + +ifeq ($(CONFIG), funkbridge) +MCU=atmega328p +AVRDUDE_MCU=m328p -F + +# (16MHz ext. crystal, 2.7V BOD) +AVRDUDE_FUSES=lfuse:w:0xff:m hfuse:w:0xdc:m efuse:w:0x02:m +BOOTLOADER_START=0x7C00 +endif + # --------------------------------------------------------------------------- CFLAGS = -pipe -g -Os -mmcu=$(MCU) -Wall @@ -102,7 +114,7 @@ $(TARGET): $(TARGET).elf $(TARGET).elf: $(SOURCE:.c=.o) | $(LDSCRIPT_NOVECT) @echo " Linking file: $@" - @$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-T$(LDSCRIPT_NOVECT) -o $@ $^ #2> /dev/null + @$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-T$(LDSCRIPT_NOVECT) -o $@ $^ 2> /dev/null @$(OBJDUMP) -h -S $@ > $(@:.elf=.lss) @$(OBJCOPY) -j .text -j .data -O ihex $@ $(@:.elf=.hex) @$(OBJCOPY) -j .text -j .data -O binary $@ $(@:.elf=.bin) diff --git a/main.c b/main.c index 3470834..35b290d 100644 --- a/main.c +++ b/main.c @@ -84,8 +84,8 @@ #elif defined(CONFIG_funkstuff88) /* * using ATmega88 @8MHz: - * Fuse E: 0xFA (512 words bootloader) - * Fuse H: 0xDD (2.7V BOD) + * Fuse E: 0xFD (2.7V BOD) + * Fuse H: 0xDD (512 words bootloader) * Fuse L: 0xE2 (internal osc) */ #define F_CPU 8000000 @@ -112,8 +112,8 @@ #elif defined(CONFIG_funkstuff168) /* * using ATmega168 @16MHz: - * Fuse E: 0xFA (512 words bootloader) - * Fuse H: 0xDD (2.7V BOD) + * Fuse E: 0xFD (2.7V BOD) + * Fuse H: 0xDD (512 words bootloader) * Fuse L: 0xFF (external crystal) */ #define F_CPU 16000000 @@ -140,7 +140,7 @@ #elif defined(CONFIG_ispprog2) /* * using ATmega328P @8MHz: - * Fuse E: 0xFA (2.7V BOD) + * Fuse E: 0xFD (2.7V BOD) * Fuse H: 0xDC (512 words bootloader) * Fuse L: 0xE2 (internal osc) */ @@ -186,6 +186,34 @@ #define ISP_NUM PINB1 #define ISP_POL 0 +/* *********************************************************************** */ +#elif defined(CONFIG_funkbridge) +/* + * using ATmega328P @16MHz: + * Fuse E: 0xFD (2.7V BOD) + * Fuse H: 0xDC (512 words bootloader) + * Fuse L: 0xFF (external crystal) + */ +#define F_CPU 16000000 +#define BAUDRATE 19200 +#define DEVCODE 0x72 /* mega32 devcode */ + +/* 100 * 10ms => 1000ms */ +#define TIMEOUT 100 + +/* enter bootloader if PINB1 is low */ +//#define ISP_DDR DDRB +//#define ISP_PIN PINB +//#define ISP_PORT PORTB +//#define ISP_NUM PINB1 +//#define ISP_POL 0 + +/* high active led on PORTD4 */ +#define LED_DDR DDRD +#define LED_PORT PORTD +#define LED_NUM PORTD4 +#define LED_POL 1 + /* *********************************************************************** */ #else #error "unknown CONFIG"