diff options
Diffstat (limited to 'software')
-rw-r--r-- | software/avr.defines.mk | 23 | ||||
-rw-r--r-- | software/avr.include.mk | 2 | ||||
-rw-r--r-- | software/avr.lib/led.c | 63 | ||||
-rw-r--r-- | software/avr.lib/led.h | 4 | ||||
-rw-r--r-- | software/avr.lib/util.c | 19 | ||||
-rw-r--r-- | software/avr.lufa.mk | 5 | ||||
-rw-r--r-- | software/hhd70dongle/Makefile | 2 | ||||
-rw-r--r-- | software/hhd70dongle/c1101lib.c | 2 | ||||
-rw-r--r-- | software/hhd70dongle/hhd70dongle.c | 4 |
9 files changed, 109 insertions, 15 deletions
diff --git a/software/avr.defines.mk b/software/avr.defines.mk index 3924941..2524f0d 100644 --- a/software/avr.defines.mk +++ b/software/avr.defines.mk @@ -52,6 +52,26 @@ ifeq ($(BOARD_TYPE),teensy2pp) PROG := teensy LUFA_BOARD = TEENSY2 endif +ifeq ($(BOARD_TYPE),minimus) + MCU := at90usb162 + ARCH = AVR8 + F_CPU := 16000000 + F_USB = $(F_CPU) + PROG := DFU + LUFA_BOARD = MINIMUS + RESET_FUNC := ../tools/reset_minimus + RESET_PARAM = "03eb:2ffa" +endif +ifeq ($(BOARD_TYPE),minimus32) + MCU := atmega32u2 + ARCH = AVR8 + F_CPU := 16000000 + F_USB = $(F_CPU) + PROG := DFU + LUFA_BOARD = MINIMUS + RESET_FUNC := ../tools/reset_minimus + RESET_PARAM = "03eb:2ff0" +endif ifeq ($(BOARD_TYPE),hhd70dongle) MCU := atmega32u4 ARCH = AVR8 @@ -111,7 +131,7 @@ ifeq ($(BOARD_TYPE),arduinoNG) UPLOAD_RATE := 19200 PROG_TYPE := stk500v1 AVRDUDE_PORT := /dev/ttyUSB0 - RESET_FUNC := ../tools/dummy_reset + RESET_FUNC := ../tools/reset_dummy endif ifeq ($(BOARD_TYPE),AvrNetIo) MCU := atmega32 @@ -149,6 +169,7 @@ CFLAGS += -Wstrict-prototypes CFLAGS += -I$(LIB_DIR) CFLAGS += -DF_CPU=$(F_CPU)UL CFLAGS += -D__BOARD_$(BOARD_TYPE)__ +CFLAGS += -DARCH=ARCH_$(ARCH) CFLAGS += -std=c99 diff --git a/software/avr.include.mk b/software/avr.include.mk index 3950dd1..b3b5d4a 100644 --- a/software/avr.include.mk +++ b/software/avr.include.mk @@ -43,7 +43,7 @@ LDFLAGS += -L./ ifdef LUFA_PATH CFLAGS += -I$(LUFA_PATH) CFLAGS += -DF_USB=$(F_USB)UL -CFLAGS += -DBOARD=BOARD_$(LUFA_BOARD) -DARCH=ARCH_$(ARCH) +CFLAGS += -DBOARD=BOARD_$(LUFA_BOARD) CFLAGS += $(LUFA_OPTS) endif diff --git a/software/avr.lib/led.c b/software/avr.lib/led.c index ea5bcc3..d567cef 100644 --- a/software/avr.lib/led.c +++ b/software/avr.lib/led.c @@ -24,13 +24,17 @@ #include "led.h" -#if defined(__BOARD_arduinoUno__) || defined(__BOARD_AvrNetIo__) -#define HAS_LED 0 +#if defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) +#define NUM_LEDS 2 +#elif defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) \ + || defined(__BOARD_arduinoNG__) || defined(__BOARD_arduino2009v2__) || defined(__BOARD_arduino2009__) || defined(__BOARD_arduino10000__) \ + || defined(__BOARD_hhd70dongle__) +#define NUM_LEDS 1 #else -#define HAS_LED 1 +#define NUM_LEDS 0 #endif -#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) +#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) #define LED_DIR 0 #else #define LED_DIR 1 @@ -42,6 +46,16 @@ #define LED_PINNUM 6 #endif +#if defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) +#define LED_PORT PORTD +#define LED_DDR DDRD +#define LED_PINNUM 5 + +#define LED2_PORT PORTD +#define LED2_DDR DDRD +#define LED2_PINNUM 6 +#endif + #if defined(__BOARD_hhd70dongle__) #define LED_PORT PORTE #define LED_DDR DDRE @@ -56,15 +70,18 @@ void led_init(void) { -#if HAS_LED == 1 +#if NUM_LEDS >= 1 led_off(); LED_DDR = 1<<LED_PINNUM; +#if NUM_LEDS >= 2 + LED2_DDR |= 1<<LED2_PINNUM; +#endif #endif } void led_on(void) { -#if HAS_LED == 1 +#if NUM_LEDS >= 1 #if LED_DIR == 1 LED_PORT |= 1<<LED_PINNUM; #else @@ -75,7 +92,7 @@ void led_on(void) void led_off(void) { -#if HAS_LED == 1 +#if NUM_LEDS >= 1 #if LED_DIR == 1 LED_PORT &= ~(1<<LED_PINNUM); #else @@ -86,7 +103,37 @@ void led_off(void) void led_toggle(void) { -#if HAS_LED == 1 +#if NUM_LEDS >= 1 LED_PORT ^= 1<<LED_PINNUM; #endif } + + +void led2_on(void) +{ +#if NUM_LEDS >= 2 +#if LED_DIR == 1 + LED2_PORT |= 1<<LED2_PINNUM; +#else + LED2_PORT &= ~(1<<LED2_PINNUM); +#endif +#endif +} + +void led2_off(void) +{ +#if NUM_LEDS >= 2 +#if LED_DIR == 1 + LED2_PORT &= ~(1<<LED2_PINNUM); +#else + LED2_PORT |= 1<<LED2_PINNUM; +#endif +#endif +} + +void led2_toggle(void) +{ +#if NUM_LEDS >= 2 + LED2_PORT ^= 1<<LED2_PINNUM; +#endif +} diff --git a/software/avr.lib/led.h b/software/avr.lib/led.h index 12f00a8..d7a8e3b 100644 --- a/software/avr.lib/led.h +++ b/software/avr.lib/led.h @@ -28,4 +28,8 @@ void led_on(void); void led_off(void); void led_toggle(void); +void led2_on(void); +void led2_off(void); +void led2_toggle(void); + #endif diff --git a/software/avr.lib/util.c b/software/avr.lib/util.c index d927f8e..6624699 100644 --- a/software/avr.lib/util.c +++ b/software/avr.lib/util.c @@ -45,8 +45,14 @@ void cpu_init(void) #define BOOTLOADER_VEC 0xFC00 #elif defined(__BOARD_teensy2pp__) #define BOOTLOADER_VEC 0x1FC00 +#elif defined(__BOARD_minimus__) + #define BOOTLOADER_VEC 0x3000 +#elif defined(__BOARD_minimus32__) + #define BOOTLOADER_VEC 0x3800 #elif defined(__BOARD_hhd70dongle__) #define BOOTLOADER_VEC 0x3800 +#else + #define BOOTLOADER_VEC 0x0000 #endif typedef void (*f_ptr_type)(void); @@ -54,7 +60,8 @@ f_ptr_type start_bootloader = (f_ptr_type)BOOTLOADER_VEC; void reset2bootloader(void) { -#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || defined(__BOARD_hhd70dongle__) +#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || \ + defined(__BOARD_hhd70dongle__) || defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) cli(); // disable watchdog, if enabled // disable all peripherals @@ -82,6 +89,16 @@ void reset2bootloader(void) TIMSK0 = 0; TIMSK1 = 0; TIMSK2 = 0; TIMSK3 = 0; UCSR1B = 0; TWCR = 0; DDRA = 0; DDRB = 0; DDRC = 0; DDRD = 0; DDRE = 0; DDRF = 0; PORTA = 0; PORTB = 0; PORTC = 0; PORTD = 0; PORTE = 0; PORTF = 0; + #elif defined(__BOARD_minimus__) + EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0; + TIMSK0 = 0; TIMSK1 = 0; UCSR1B = 0; + DDRB = 0; DDRC = 0; DDRD = 0; + PORTB = 0; PORTC = 0; PORTD = 0; + #elif defined(__BOARD_minimus32__) + EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0; + TIMSK0 = 0; TIMSK1 = 0; UCSR1B = 0; + DDRB = 0; DDRC = 0; DDRD = 0; + PORTB = 0; PORTC = 0; PORTD = 0; #elif defined(__BOARD_hhd70dongle__) EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0; ADCSRA = 0; TIMSK0 = 0; TIMSK1 = 0; TIMSK3 = 0; TIMSK4 = 0; UCSR1B = 0; TWCR = 0; diff --git a/software/avr.lufa.mk b/software/avr.lufa.mk index 24650af..cc8a939 100644 --- a/software/avr.lufa.mk +++ b/software/avr.lufa.mk @@ -22,12 +22,11 @@ include ../avr.defines.mk
-## TODO: change BOARD names for our tools too???
include $(LUFA_PATH)/LUFA/makefile
-SRC = $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
+SRC:=$(foreach COMP,$(LUFA_COMPONENTS),$(LUFA_SRC_$(COMP)))
CFLAGS += -DF_USB=$(F_USB)UL
-CFLAGS += -DBOARD=BOARD_$(LUFA_BOARD) -DARCH=ARCH_$(ARCH)
+CFLAGS += -DBOARD=BOARD_$(LUFA_BOARD)
CFLAGS += $(LUFA_OPTS)
OBJ = $(SRC:%.c=%.o)
diff --git a/software/hhd70dongle/Makefile b/software/hhd70dongle/Makefile index 002ca85..29dca09 100644 --- a/software/hhd70dongle/Makefile +++ b/software/hhd70dongle/Makefile @@ -41,6 +41,8 @@ LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT LUFA_OPTS += -D USB_MANUFACTURER="L\"mur.sat\"" LUFA_OPTS += -D USB_PRODUCT="L\"$(NAME)\"" +LUFA_COMPONENTS := USB USBCLASS + include ../avr.include.mk program0: RESET_PARAM:=/dev/ttyACM0 diff --git a/software/hhd70dongle/c1101lib.c b/software/hhd70dongle/c1101lib.c index ddbd28c..1fbb2fc 100644 --- a/software/hhd70dongle/c1101lib.c +++ b/software/hhd70dongle/c1101lib.c @@ -368,7 +368,7 @@ void c1101_init_ook_beacon(void) // Base frequency = 435.199677 // Channel number = 0 // PA table - char const pa_table[8] = {0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00}; + char const pa_table[8] = {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //reset C1101 c1101_spi_strobe_command(SPIC1101_ADDR_SRES); diff --git a/software/hhd70dongle/hhd70dongle.c b/software/hhd70dongle/hhd70dongle.c index b328d55..d031a4a 100644 --- a/software/hhd70dongle/hhd70dongle.c +++ b/software/hhd70dongle/hhd70dongle.c @@ -196,6 +196,10 @@ int main(void) enable_rx_part=false; enable_tx_part=false; c1101_init_ook_beacon(); + hhd70_palna_txmode(); + } + else { + hhd70_palna_rxmode(); } print_part_status(); } |