precision-converters-firmware
Loading...
Searching...
No Matches
app_config_stm32.h
Go to the documentation of this file.
1/***************************************************************************/
13#ifndef APP_CONFIG_STM32_H_
14#define APP_CONFIG_STM32_H_
15
16/******************************************************************************/
17/***************************** Include Files **********************************/
18/******************************************************************************/
19
20#include <stdint.h>
21#include "stm32_uart.h"
22#include "stm32_spi.h"
23#include "stm32_i2c.h"
24#include "stm32_gpio.h"
25#include "stm32_usb_uart.h"
26
27/******************************************************************************/
28/********************** Macros and Constants Definition ***********************/
29/******************************************************************************/
30
31/* Note: The SDP-K1 board with the STM32F469NI MCU has been used
32 * for developing the firmware. The below parameters will change depending
33 * on the controller used. */
34#define TARGET_NAME SDP_K1
35
36/* STM32 UART specific parameters */
37#define APP_UART_HANDLE &huart5
38#define UART_IRQ_ID UART5_IRQn
39
40/* STM32 I2C specific parameters */
41#define I2C_DEV_ID 1 // I2C1
42
43/* STM32 SPI Specific parameters */
44#define SPI_DEVICE_ID 1 //SPI1
45#define SPI_CSB 15 //PA15
46#define STM32_SPI_CS_PORT 0 //PORTA
47#if defined(DC2903A)
48#define MAX_SPI_SCLK 4500000
49#else
50#define MAX_SPI_SCLK 18000000
51#endif
52
53/* STM32 GPIOs */
54#define GPIO_CLR_PIN 10 //PG10
55#define GPIO_CLR_PORT 6 //PORTG
56#define GPIO_LDAC_PIN 10 //PA10
57#define GPIO_LDAC_PORT 0 //PORTA
58#define GPIO_TGP_PIN 11 //PA11
59#define GPIO_TGP_PORT 0 //PORTA
60#define GPIO_FAULT_PIN 12 //PA12
61#define GPIO_FAULT_PORT 3 //PORTD
62
63/* Toggle Timer configurations */
64#define TOGGLE_PWM_ID 1
65#define TOGGLE_PWM_PRESCALER 1
66#define TOGGLE_PWM_CHANNEL 4
67#define TOGGLE_PWM_CLK_MULTIPLIER 2
68#define TOGGLE_PWM_HANDLE htim1
69
70/* Peripheral IDs (Unused) */
71#define UART_ID 0
72
73/* Redefine the init params structure mapping wrt platform */
74#define spi_extra_init_params stm32_spi_init_params
75#define uart_extra_init_params stm32_uart_init_params
76#define vcom_extra_init_params stm32_vcom_extra_init_params
77#define gpio_ldac_extra_params stm32_gpio_ldac_params
78#define gpio_clear_extra_params stm32_gpio_clear_params
79#define gpio_toggle_extra_params stm32_gpio_toggle_params
80#define gpio_fault_extra_params stm32_gpio_fault_params
81#define toggle_pwm_extra_init_params stm32_toggle_pwm_init_params
82#define toggle_pwm_gpio_extra_params stm32_toggle_pwm_gpio_params
83#define trigger_gpio_irq_extra_params stm32_trigger_gpio_irq_params
84
85/* Redefine platform ops mapping wrt STM32 platform */
86#define gpio_ops stm32_gpio_ops
87#define i2c_ops stm32_i2c_ops
88#define spi_ops stm32_spi_ops
89#define uart_ops stm32_uart_ops
90#define vcom_ops stm32_usb_uart_ops
91#define pwm_ops stm32_pwm_ops
92#define trigger_gpio_irq_ops stm32_gpio_irq_ops
93
94#define LTC2672_MAX_TOGGLE_RATE 500000
95
96#define FREQ_TO_NSEC(x) (((float)(1.0 / x) * 1000000) * 1000)
97#define DUTY_CYCLE_NSEC(x) ((x) / 2)
98
99/******************************************************************************/
100/********************** Public/Extern Declarations ****************************/
101/******************************************************************************/
102
103extern struct stm32_uart_init_param stm32_uart_init_params;
105extern struct stm32_spi_init_param stm32_spi_init_params;
106extern struct stm32_gpio_init_param stm32_gpio_ldac_params;
107extern struct stm32_gpio_init_param stm32_gpio_clear_params;
108extern struct stm32_gpio_init_param stm32_gpio_toggle_params;
109extern struct stm32_gpio_init_param stm32_gpio_fault_params;
110extern struct stm32_pwm_init_param stm32_toggle_pwm_init_params;
111extern struct stm32_gpio_init_param stm32_toggle_pwm_gpio_params;
112extern struct stm32_pwm_init_param stm32_ldac_pwm_init_params;
113extern struct stm32_gpio_init_param stm32_ldac_pwm_gpio_params;
114extern struct stm32_gpio_irq_init_param stm32_trigger_gpio_irq_params;
115
116extern UART_HandleTypeDef huart5;
117extern USBD_HandleTypeDef hUsbDeviceHS;
118extern TIM_HandleTypeDef TOGGLE_PWM_HANDLE;
119
120void stm32_system_init(void);
121
122#endif /* APP_CONFIG_STM32_H_ */
UART_HandleTypeDef huart5
struct stm32_pwm_init_param stm32_ldac_pwm_init_params
Definition app_config_stm32.c:77
USBD_HandleTypeDef hUsbDeviceHS
struct stm32_spi_init_param stm32_spi_init_params
Definition app_config_stm32.c:48
void stm32_system_init(void)
Initialize the STM32 system peripherals.
Definition app_config_stm32.c:176
struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
Definition app_config_stm32.c:38
struct stm32_uart_init_param stm32_uart_init_params
Definition app_config_stm32.c:33
struct stm32_gpio_irq_init_param stm32_trigger_gpio_irq_params
#define TOGGLE_PWM_HANDLE
Definition app_config_stm32.h:68
struct stm32_gpio_init_param stm32_gpio_ldac_params
Definition app_config_stm32.c:45
struct stm32_gpio_init_param stm32_ldac_pwm_gpio_params
struct stm32_gpio_init_param stm32_gpio_clear_params
Definition app_config_stm32.c:51
struct stm32_gpio_init_param stm32_gpio_fault_params
Definition app_config_stm32.c:63
struct stm32_gpio_init_param stm32_gpio_toggle_params
Definition app_config_stm32.c:57
struct stm32_gpio_init_param stm32_toggle_pwm_gpio_params
Definition app_config_stm32.c:69
struct stm32_pwm_init_param stm32_toggle_pwm_init_params
Definition app_config_stm32.c:76
VCOM driver for stm32 as a no_os_uart implementation.
Specific initialization parameters for stm32 UART over USB.
Definition stm32_usb_uart.h:27