1 #if defined (BOARD_STM32_CAMERA)
13 static const struct gpio_t gpios[] =
55 GPIO_FSMC_NE1_FSMC_NCE2_PD7,
62 static status_e bsp_init_extRAM(
void)
67 RCC_AHB3PeriphClockCmd(RCC_AHB3ENR_FSMCEN, ENABLE);
95 FSMC_NORSRAMInit(&fscm);
97 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
102 static void load_init_external_ram(
void)
104 extern uint8_t __ext_ram_bss_start;
105 extern uint8_t __ext_ram_bss_end;
107 extern uint8_t __ext_ram_dst_start;
108 extern uint8_t __ext_ram_dst_end;
109 extern uint8_t __ext_ram_src_start;
111 memset(&__ext_ram_bss_start, 0x0, &__ext_ram_bss_end - &__ext_ram_bss_start);
112 memcpy(&__ext_ram_dst_start,&__ext_ram_src_start, &__ext_ram_dst_end - & __ext_ram_dst_start);
115 static void bsp_pwm_leds_init(uint32_t frequency, uint32_t steps, uint32_t initial)
117 const struct gpio_t pins[] =
129 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
132 RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE);
133 RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE);
145 TIM2->PSC = (((
SystemClock.timer)/steps)/frequency) - 1;
150 TIM2->ARR = steps - 1;
153 TIM2->CCR1 = initial;
154 TIM2->CCR2 = initial;
155 TIM2->CCR3 = initial;
156 TIM2->CCR4 = initial;
174 void bsp_led_set_pwm(uint32_t
nr, uint32_t value)
178 volatile uint32_t *addr[] =
199 volatile uint32_t *addr[] =
218 static status_e bsp_light_init(uint32_t frequency, uint32_t steps, uint32_t initial)
220 const struct gpio_t pins[] =
229 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM10, ENABLE);
232 RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM10, ENABLE);
233 RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM10, DISABLE);
242 TIM10->PSC = (((
SystemClock.timer)/steps)/frequency) - 1;
247 TIM10->ARR = steps - 1;
250 TIM10->CCR1 = initial;
267 void bsp_light_set(uint32_t value)
278 static status_e bsp_buttons_init(
void)
297 return &bsp_buttons[0];
300 static const struct gpio_t all_pins_safe_values[] =
472 status = bsp_init_extRAM();
484 load_init_external_ram();
487 status = psu_aux1_set(3000);
493 status = psu_aux0_set(1800);
499 status = bsp_light_init(10*1000, 255, 0);
505 status = bsp_buttons_init();
This file contains all the functions prototypes for the RCC firmware library.
uint32_t FSMC_DataSetupTime
uint32_t FSMC_WriteOperation
uint32_t FSMC_DataAddressMux
BSP - Board Support Package.
#define DEF_GPIOF(__PIN, __MODE)
same as DEF_GPIOA for port F
uint8_t nr
Pin number (0 for GPIOx0, ... , 3 for GPIOx3, ...)
Handle non-linearity in human eye brightness sensitivity.
uint32_t FSMC_WaitSignalActive
#define BSP_BUTTON_NR
Number of buttons.
Timing parameters For NOR/SRAM Banks.
void * memcpy(void *dest, const void *src, size_t n)
void * memset(void *dest, int n, size_t n)
uint32_t FSMC_AsynchronousWait
#define DEF_GPIOB(__PIN, __MODE)
same as DEF_GPIOA for port B
FSMC NOR/SRAM Init structure definition.
Manageable PSU with an enable and a digital potentiometer.
uint8_t lightness_to_pwm(uint8_t percentage)
PWM value for driving a LED expressed as perceived percentage.
FSMC_NORSRAMTimingInitTypeDef * FSMC_WriteTimingStruct
#define DEF_GPIOD(__PIN, __MODE)
same as DEF_GPIOA for port D
static uint32_t gpio_get(const struct gpio_t *gpio)
Get gpio level.
#define DEF_GPIOA(__PIN, __MODE)
Helper for defining a pin.
uint32_t FSMC_AddressHoldTime
void bsp_led_set(uint32_t nr, uint32_t value)
Set a led (ON or OFF)
#define DEF_GPIOG(__PIN, __MODE)
same as DEF_GPIOA for port G
void bsp_led_toggle(uint32_t nr)
toggle a led
Driver for mcp4552 digital potentiometer.
uint32_t FSMC_WaitSignalPolarity
FSMC_NORSRAMTimingInitTypeDef * FSMC_ReadWriteTimingStruct
uint32_t FSMC_CLKDivision
This file contains all the functions prototypes for the FSMC firmware library.
uint32_t FSMC_DataLatency
#define LIGHTNESS_PWM_STEP
Number a step for a pwm using lightness_to_pwm.
uint32_t FSMC_AddressSetupTime
#define DEF_GPIOC(__PIN, __MODE)
same as DEF_GPIOA for port C
uint32_t FSMC_BurstAccessMode
status_e ram_test_basic(uint32_t *base, size_t size)
Quickly test a RAM region.
uint32_t FSMC_BusTurnAroundDuration
struct system_clock_t SystemClock
#define DEF_GPIOH(__PIN, __MODE)
same as DEF_GPIOA for port H
#define DEF_GPIOE(__PIN, __MODE)
same as DEF_GPIOA for port E
uint32_t FSMC_MemoryDataWidth
status_e gpio_setup_list(const struct gpio_t gpio[], size_t len)
Setup an array of gpio.
#define ARRAY_SIZE(x)
Number of elements in the array.
uint32_t FSMC_ExtendedMode
const struct gpio_t * bsp_button_gpios(void)
get buttons gpios
#define DEF_GPIOI(__PIN, __MODE)
same as DEF_GPIOA for port I
status_e bsp_init(void)
Initialize the whole board.
uint32_t bsp_button_get(uint32_t nr)
Get a button.