From: Keith Packard Date: Tue, 2 Oct 2018 19:48:25 +0000 (-0700) Subject: altos/stm32f4-disco: Start hooking up stm32f413 USB for the disco board X-Git-Tag: 1.9~27^2~19 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=408badbef80d7a3412b5ad92b269be19d0faaa09 altos/stm32f4-disco: Start hooking up stm32f413 USB for the disco board Non-working as yet. Signed-off-by: Keith Packard --- 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 #include +#include 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_ */