summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2013-01-27 17:47:24 +0000
committerChristian Pointner <equinox@mur.at>2013-01-27 17:47:24 +0000
commitec00d4ab268624e8f4a81e78304864f8bf361dc5 (patch)
tree6bd2a44f88d54dc5e9904b2047e215612e2ce876
parentfixed page title (diff)
upgraded avr utils from spreadspace
git-svn-id: https://svn.spreadspace.org/mur.sat@662 7de4ea59-55d0-425e-a1af-a3118ea81d4c
-rw-r--r--software/avr.defines.mk23
-rw-r--r--software/avr.include.mk2
-rw-r--r--software/avr.lib/led.c63
-rw-r--r--software/avr.lib/led.h4
-rw-r--r--software/avr.lib/util.c19
-rw-r--r--software/avr.lufa.mk5
-rw-r--r--software/hhd70dongle/Makefile2
-rw-r--r--software/hhd70dongle/c1101lib.c2
-rw-r--r--software/hhd70dongle/hhd70dongle.c4
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();
}