summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-10-02 12:48:25 -0700
committerKeith Packard <keithp@keithp.com>2018-10-13 08:23:25 -0700
commit408badbef80d7a3412b5ad92b269be19d0faaa09 (patch)
tree60da59919c1eeff6d8c5f008d3349ad5bb8e38cf
parent805d218ff50e6c38345c0d4e46f568009132633e (diff)
altos/stm32f4-disco: Start hooking up stm32f413 USB for the disco board
Non-working as yet. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/stm32f4-disco/Makefile6
-rw-r--r--src/stm32f4-disco/ao_disco.c5
-rw-r--r--src/stm32f4-disco/ao_pins.h18
3 files changed, 21 insertions, 8 deletions
diff --git a/src/stm32f4-disco/Makefile b/src/stm32f4-disco/Makefile
index c4aa8e0a..de30316c 100644
--- a/src/stm32f4-disco/Makefile
+++ b/src/stm32f4-disco/Makefile
@@ -29,10 +29,12 @@ ALTOS_SRC = \
ao_timer.c \
ao_task.c \
ao_stdio.c \
- ao_product.o \
+ ao_product.c \
ao_cmd.c \
ao_exti_stm32f4.c \
ao_usart_stm32f4.c \
+ ao_usb_gen.c \
+ ao_usb_stm32f4.c \
ao_led.c \
ao_impure.c \
$(SCHEME_SRCS)
@@ -72,7 +74,7 @@ ao_scheme_const.h: ao-scheme-make-const-big $(SCHEME_SCHEME)
distclean: clean
clean:
- rm -f *.o *.elf *.ihx
+ rm -f *.o *.elf *.ihx *.map
install:
diff --git a/src/stm32f4-disco/ao_disco.c b/src/stm32f4-disco/ao_disco.c
index ede7c05f..ab3c0340 100644
--- a/src/stm32f4-disco/ao_disco.c
+++ b/src/stm32f4-disco/ao_disco.c
@@ -14,6 +14,7 @@
#include <ao.h>
#include <ao_scheme.h>
+#include <ao_usb.h>
static void scheme_cmd() {
ao_scheme_read_eval_print(stdin, stdout, false);
@@ -44,9 +45,11 @@ void main(void)
{
ao_clock_init();
ao_timer_init();
+ ao_task_init();
+
ao_led_init();
ao_usart_init();
- ao_task_init();
+ ao_usb_init();
ao_cmd_init();
ao_cmd_register(scheme_cmds);
ao_start_scheduler();
diff --git a/src/stm32f4-disco/ao_pins.h b/src/stm32f4-disco/ao_pins.h
index e6dcea8e..6a18d59d 100644
--- a/src/stm32f4-disco/ao_pins.h
+++ b/src/stm32f4-disco/ao_pins.h
@@ -18,23 +18,24 @@
#define AO_HSE 8000000 /* fed from st/link processor */
#define AO_HSE_BYPASS 1 /* no xtal, directly fed */
-#define AO_PLL_M 4 /* down to 2MHz */
+#define AO_PLL_M 8 /* down to 1MHz */
-#define AO_PLL1_N 96 /* up to 192MHz */
+#define AO_PLL1_R 2 /* down to 96MHz */
+#define AO_PLL1_N 192 /* up to 192MHz */
#define AO_PLL1_P 2 /* down to 96MHz */
#define AO_PLL1_Q 4 /* down to 48MHz for USB and SDIO */
#define AO_AHB_PRESCALER 1
#define AO_RCC_CFGR_HPRE_DIV STM_RCC_CFGR_HPRE_DIV_1
-#define AO_APB1_PRESCALER 1
-#define AO_RCC_CFGR_PPRE1_DIV STM_RCC_CFGR_PPRE1_DIV_1
+#define AO_APB1_PRESCALER 2
+#define AO_RCC_CFGR_PPRE1_DIV STM_RCC_CFGR_PPRE1_DIV_2
+
#define AO_APB2_PRESCALER 1
#define AO_RCC_CFGR_PPRE2_DIV STM_RCC_CFGR_PPRE2_DIV_1
#define DEBUG_THE_CLOCK 1
-#define HAS_USB 0
#define HAS_BEEP 0
#define B_USER_PORT (&stm_gpioa)
@@ -54,6 +55,8 @@
#define AO_LED_PANIC LED_RED
+#define AO_CMD_LEN 128
+
/* USART */
#define HAS_SERIAL_6 1
@@ -68,4 +71,9 @@
#define USE_SERIAL_6_FLOW 0
#define USE_SERIAL_6_SW_FLOW 0
+/* USB */
+
+#define HAS_USB 1
+#define USE_USB_STDIO 0
+
#endif /* _AO_PINS_H_ */