diff options
| author | Keith Packard <keithp@keithp.com> | 2017-04-02 15:18:34 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-04-02 15:18:34 -0700 | 
| commit | 62b0228aed5191c8d769f9f34143a13036e210a7 (patch) | |
| tree | 67647744639d3b8e18fe7b3254ca502dd2ad8b11 /src | |
| parent | 637d522c6a15b47051103ccc3626be3206a7a2df (diff) | |
cortexelf-v1: Fix clock to drive VGA at 640/480. Add sdcard, remove others
VGA requires the CPU to run at 24MHz.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cortexelf-v1/Makefile | 4 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_cortexelf.c | 3 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_pins.h | 99 | 
3 files changed, 22 insertions, 84 deletions
| diff --git a/src/cortexelf-v1/Makefile b/src/cortexelf-v1/Makefile index e0fdc8fd..c74b0cce 100644 --- a/src/cortexelf-v1/Makefile +++ b/src/cortexelf-v1/Makefile @@ -42,7 +42,6 @@ ALTOS_SRC = \  	ao_cmd.c \  	ao_config.c \  	ao_task.c \ -	ao_led.c \  	ao_stdio.c \  	ao_panic.c \  	ao_timer.c \ @@ -50,8 +49,6 @@ ALTOS_SRC = \  	ao_serial_stm.c \  	ao_dma_stm.c \  	ao_spi_stm.c \ -	ao_storage.c \ -	ao_m25.c \  	ao_usb_stm.c \  	ao_exti_stm.c \  	ao_i2c_stm.c \ @@ -63,6 +60,7 @@ ALTOS_SRC = \  	ao_line.c \  	ao_ps2.c \  	ao_console.c \ +	ao_sdcard.c \  	$(PROFILE) \  	$(SAMPLE_PROFILE) \  	$(STACK_GUARD) diff --git a/src/cortexelf-v1/ao_cortexelf.c b/src/cortexelf-v1/ao_cortexelf.c index 776530e0..67062c85 100644 --- a/src/cortexelf-v1/ao_cortexelf.c +++ b/src/cortexelf-v1/ao_cortexelf.c @@ -25,6 +25,7 @@  #include <ao_ps2.h>  #include <ao_vga.h>  #include <ao_console.h> +#include <ao_sdcard.h>  struct ao_task ball_task; @@ -205,6 +206,8 @@ main(void)  	ao_dma_init();  	ao_exti_init(); +	ao_sdcard_init(); +  	ao_ps2_init();  	ao_vga_init();  	ao_console_init(); diff --git a/src/cortexelf-v1/ao_pins.h b/src/cortexelf-v1/ao_pins.h index e486038a..91555cd4 100644 --- a/src/cortexelf-v1/ao_pins.h +++ b/src/cortexelf-v1/ao_pins.h @@ -28,21 +28,21 @@  #define AO_PLLMUL		12  #define AO_RCC_CFGR_PLLMUL	(STM_RCC_CFGR_PLLMUL_12) -/* SYSCLK = 32MHz (no need to go faster than CPU) */ -#define AO_PLLDIV		3 -#define AO_RCC_CFGR_PLLDIV	(STM_RCC_CFGR_PLLDIV_3) +/* SYSCLK = 24MHz */ +#define AO_PLLDIV		4 +#define AO_RCC_CFGR_PLLDIV	(STM_RCC_CFGR_PLLDIV_4) -/* HCLK = 32MHz (CPU clock) */ +/* HCLK = 24MHz (CPU clock) */  #define AO_AHB_PRESCALER	1  #define AO_RCC_CFGR_HPRE_DIV	STM_RCC_CFGR_HPRE_DIV_1 -/* Run APB1 at 16MHz (HCLK/2) */ -#define AO_APB1_PRESCALER	2 -#define AO_RCC_CFGR_PPRE1_DIV	STM_RCC_CFGR_PPRE2_DIV_2 +/* Run APB1 at HCLK/1 */ +#define AO_APB1_PRESCALER	1 +#define AO_RCC_CFGR_PPRE1_DIV	STM_RCC_CFGR_PPRE2_DIV_1 -/* Run APB2 at 16MHz (HCLK/2) */ -#define AO_APB2_PRESCALER	2 -#define AO_RCC_CFGR_PPRE2_DIV	STM_RCC_CFGR_PPRE2_DIV_2 +/* Run APB2 at HCLK/1 */ +#define AO_APB2_PRESCALER	1 +#define AO_RCC_CFGR_PPRE2_DIV	STM_RCC_CFGR_PPRE2_DIV_1  /* Allow for non-maskable interrupts at priority 0 */  #define AO_NONMASK_INTERRUPT	1 @@ -108,84 +108,21 @@  #define LOW_LEVEL_DEBUG		0 -#define LED_PORT_ENABLE		STM_RCC_AHBENR_GPIOCEN -#define LED_PORT		(&stm_gpioc) -#define LED_PIN_RED		0 -#define LED_PIN_GREEN		0 -#define AO_LED_RED		(1 << LED_PIN_RED) -#define AO_LED_GREEN		(1 << LED_PIN_GREEN) - -#define LEDS_AVAILABLE		0 -  #define HAS_GPS			0  #define HAS_FLIGHT		0  #define HAS_ADC			0  #define HAS_ADC_TEMP		0  #define HAS_LOG			0 -/* - * Pressure sensor settings - */ -#define HAS_MS5607		0 -#define HAS_MS5611		0 -#define AO_MS5607_PRIVATE_PINS	0 -#define AO_MS5607_CS_PORT	(&stm_gpioc) -#define AO_MS5607_CS_PIN	4 -#define AO_MS5607_CS_MASK	(1 << AO_MS5607_CS) -#define AO_MS5607_MISO_PORT	(&stm_gpioa) -#define AO_MS5607_MISO_PIN	6 -#define AO_MS5607_MISO_MASK	(1 << AO_MS5607_MISO) -#define AO_MS5607_SPI_INDEX	AO_SPI_1_PA5_PA6_PA7 - -/* - * SPI Flash memory - */ - -#define M25_MAX_CHIPS		0 -#define AO_M25_SPI_CS_PORT	(&stm_gpiod) -#define AO_M25_SPI_CS_MASK	(1 << 3) -#define AO_M25_SPI_BUS		AO_SPI_2_PB13_PB14_PB15 -  #define NUM_CMDS		16 -/* - * Monitor - */ - -#define HAS_MONITOR		0 -#define LEGACY_MONITOR		0 -#define HAS_MONITOR_PUT		0 -#define AO_MONITOR_LED		0 -#define HAS_RSSI		0 - -/* - * Profiling Viterbi decoding - */ - -#ifndef AO_PROFILE -#define AO_PROFILE	       	0 -#endif - -/* - * PWM output - */ - -#define NUM_PWM			0 -#define PWM_MAX			20000 -#define AO_PWM_TIMER		stm_tim4 -#define AO_PWM_TIMER_ENABLE	STM_RCC_APB1ENR_TIM4EN -#define AO_PWM_TIMER_SCALE	32 - -#define AO_PWM_0_GPIO		(&stm_gpiod) -#define AO_PWM_0_PIN		12 - -#define AO_PWM_1_GPIO		(&stm_gpiod) -#define AO_PWM_1_PIN		13 - -#define AO_PWM_2_GPIO		(&stm_gpiod) -#define AO_PWM_2_PIN		14 - -#define AO_PWM_3_GPIO		(&stm_gpiod) -#define AO_PWM_3_PIN		15 +/* SD card */ +#define AO_SDCARD_SPI_BUS	AO_SPI_2_PD1_PD3_PD4 +#define AO_SDCARD_SPI_CS_PORT	(&stm_gpiod) +#define AO_SDCARD_SPI_CS_PIN	2 +#define AO_SDCARD_SPI_PORT	(&stm_gpiod) +#define AO_SDCARD_SPI_SCK_PIN	1 +#define AO_SDCARD_SPI_MISO_PIN	3 +#define AO_SDCARD_SPI_MOSI_PIN	4  #endif /* _AO_PINS_H_ */ | 
