precision-converters-firmware
Loading...
Searching...
No Matches
app_config_stm32.h
Go to the documentation of this file.
1/***************************************************************************/
11#ifndef APP_CONFIG_STM32_H_
12#define APP_CONFIG_STM32_H_
13
14/******************************************************************************/
15/***************************** Include Files **********************************/
16/******************************************************************************/
17#include "main.h"
18#include "stm32_spi.h"
19#include "stm32_i2c.h"
20#include "stm32_gpio.h"
21#include "stm32_uart.h"
22#include "stm32_pwm.h"
23#include "stm32_irq.h"
24#include "stm32_dma.h"
25#include "stm32_usb_uart.h"
26#include "usb_device.h"
27
28/******************************************************************************/
29/********************** Macros and Constants Definitions **********************/
30/******************************************************************************/
31#if defined (TARGET_SDP_K1)
32/* The below configurations are specific to STM32F469NIH6 MCU on SDP-K1 Board. */
33#define HW_CARRIER_NAME SDP_K1
34#endif
35
36/**** SPI Parameters ****/
37#define SPI_DEVICE_ID 1 // SPI1
38#define SPI_CSB_PORT 0 // GPIO Port A
39#define SPI_CSB 15 // PA15 (ARDUINO UNO D10)
40#define SPI_SPEED (22500000) // Speed in Hz
41/**** End SPI Parameters ****/
42
43/**** I2C Parameters ****/
44#define I2C_DEVICE_ID 1 // I2C1
45
46/* I2C timing register value for standard mode of operation
47 * Check here for more understanding on I2C timing register
48 * configuration: https://wiki.analog.com/resources/no-os/drivers/i2c */
49#define I2C_TIMING 0 // Unused
50/**** End I2C Parameters ****/
51
52/* CLEAR_N GPIO (input to DAC) */
53#define GPIO_CLEAR_N_PORT 6 // GPIO Port G
54#define GPIO_CLEAR_N 10 // PG10 (ARDUINO UNO D7)
55
56/* RESET_N GPIO (input to DAC) */
57#define GPIO_RESET_N_PORT 6 // GPIO Port G
58#define GPIO_RESET_N 11 // PG11 (ARDUINO UNO D8)
59
60/* ALARM_N GPIO (output from DAC) */
61#define GPIO_ALARM_N_PORT 3 // GPIO Port D
62#define GPIO_ALARM_N 4 // PA6 (ARDUINO UNO D4)
63
64/* MD_ADDR0 GPIO (input to DAC) */
65#define GPIO_MD_ADDR0_PORT 0 // GPIO Port A
66#define GPIO_MD_ADDR0 2 // PA2 (ARDUINO UNO A0)
67
68/* MD_ADDR1 GPIO (input to DAC) */
69#define GPIO_MD_ADDR1_PORT 0 // GPIO Port A
70#define GPIO_MD_ADDR1 4 // PA4 (ARDUINO UNO A1)
71
72/* Number of TGPx pins */
73#define NUM_TGPx 4
74
75/* LDAC_TOGGLE0 GPIO (input to DAC) */
76#define GPIO_LDAC_TOGGLE0_PORT 1 // GPIO Port B
77#define GPIO_LDAC_TOGGLE0 15 // PB15 (ARDUINO UNO D9)
78
79/* LDAC_TOGGLE1 GPIO (input to DAC) */
80#define GPIO_LDAC_TOGGLE1_PORT 0 // GPIO Port A
81#define GPIO_LDAC_TOGGLE1 10 // PA10 (ARDUINO UNO D6)
82
83/* LDAC_TOGGLE2 GPIO (input to DAC) */
84#define GPIO_LDAC_TOGGLE2_PORT 0 // GPIO Port A
85#define GPIO_LDAC_TOGGLE2 11 // PA11 (ARDUINO UNO D5)
86
87/* LDAC_TOGGLE3 GPIO (input to DAC) */
88#define GPIO_LDAC_TOGGLE3_PORT 3 // GPIO Port D
89#define GPIO_LDAC_TOGGLE3 12 // PD12 (ARDUINO UNO D3)
90
91/**** Virtual COM port Parameters ****/
92#define APP_UART_USB_HANDLE hUsbDeviceHS
93/**** End Virtual COM port Parameters ****/
94
95/**** UART Parameters ****/
96#define UART_DEVICE_ID 5
97#define UART_HANDLE huart5
98#define UART_IRQ_ID UART5_IRQn
99/**** End UART Parameters ****/
100
101/**** Timer Parameters ****/
102/* TGP Timer - Global TGP timer for all TGPx pins */
103#define TIM_TGP_INSTANCE_ID 1
104#define TIM_TGP_CH_ID 3
105#define TIM_TGP_PRESCALER 0
106#define TIM_TGP_CLK_DIVIDER 2
107#define TIM_TGP_HANDLE htim1
108
109/* DAC Update Timer parameters */
110#define TIM_DAC_UPDATE_INSTANCE_ID 2
111#define TIM_DAC_UPDATE_CH_ID 1
112#define TIM_DAC_UPDATE_PRESCALER 0
113#define TIM_DAC_UPDATE_CLK_DIVIDER 2
114#define TIM_DAC_UPDATE_HANDLE htim2
115#define TIM_DAC_UPDATE_IRQ_ID TIM2_IRQn
116
117/* DMA Trigger timer */
118#define TIM_DMA_TRIGGER_INSTANCE_ID 8
119#define TIM_DMA_TRIGGER_CH_ID 3
120#define TIM_DMA_TRIGGER_PRESCALER 0
121#define TIM_DMA_TRIGGER_CLK_DIVIDER 2
122#define TIM_DMA_TRIGGER_HANDLE htim8
123/**** End Timer Parameters ****/
124
125/**** DMA Parameters ****/
126#define DMA_NUM_CHANNELS 2
127#define TX_DMA_CH_ID DMA_CHANNEL_7
128#define RX_DMA_CH_ID DMA_CHANNEL_3
129#define TX_DMA_CH_HANDLE hdma_tim8_ch3
130#define RX_DMA_CH_HANDLE hdma_spi1_rx
131#define Rx_DMA_IRQ_ID DMA2_Stream0_IRQn
132/**** End DMA Parameters ****/
133
134#define IRQ_IIO_TRIGGER_ID TIM_DAC_UPDATE_IRQ_ID
135
136/******************************************************************************/
137/********************** Variables and User Defined Data Types *****************/
138/******************************************************************************/
139extern USBD_HandleTypeDef APP_UART_USB_HANDLE;
140extern UART_HandleTypeDef UART_HANDLE;
141extern TIM_HandleTypeDef TIM_TGP_HANDLE;
142extern TIM_HandleTypeDef TIM_DAC_UPDATE_HANDLE;
143extern TIM_HandleTypeDef TIM_DMA_TRIGGER_HANDLE;
144extern DMA_HandleTypeDef TX_DMA_CH_HANDLE;
145extern DMA_HandleTypeDef RX_DMA_CH_HANDLE;
146/* STM32 Extra Init Params */
147extern struct stm32_spi_init_param stm32_spi_extra_init_params;
148extern struct stm32_i2c_init_param stm32_i2c_extra_init_params;
149extern struct stm32_gpio_init_param stm32_gpio_output_extra_init_params;
150extern struct stm32_gpio_init_param stm32_gpio_input_extra_init_params;
151extern struct stm32_gpio_init_param stm32_gpio_ldac_tgp_pwm_extra_init_params;
152extern struct stm32_gpio_init_param stm32_gpio_cs_pwm_extra_init_params;
154extern struct stm32_uart_init_param stm32_uart_extra_init_params;
155extern struct stm32_pwm_init_param stm32_pwm_tgp_extra_init_params;
156extern struct stm32_pwm_init_param stm32_pwm_tgp_trigger_mode_extra_init_params;
157extern struct stm32_pwm_init_param stm32_pwm_dac_update_extra_init_params;
158extern struct stm32_pwm_init_param stm32_pwm_dma_trigger_extra_init_params;
159
160/******************************************************************************/
161/************************ Public Declarations *********************************/
162/******************************************************************************/
163int32_t stm32_init_system(void);
164
165#endif // APP_CONFIG_STM32_H_
struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
Definition app_config_stm32.c:39
struct stm32_i2c_init_param stm32_i2c_extra_init_params
Definition app_config_stm32.c:166
UART_HandleTypeDef UART_HANDLE
struct stm32_uart_init_param stm32_uart_extra_init_params
Definition app_config_stm32.c:102
#define APP_UART_USB_HANDLE
Definition app_config_stm32.h:133
struct stm32_spi_init_param stm32_spi_extra_init_params
Definition app_config_stm32.c:43
struct stm32_gpio_init_param stm32_gpio_output_extra_init_params
Definition app_config_stm32.c:43
struct stm32_gpio_init_param stm32_gpio_input_extra_init_params
Definition app_config_stm32.c:49
struct stm32_pwm_init_param stm32_pwm_dac_update_extra_init_params
Definition app_config_stm32.c:143
struct stm32_pwm_init_param stm32_pwm_tgp_trigger_mode_extra_init_params
Definition app_config_stm32.c:126
#define RX_DMA_CH_HANDLE
Definition app_config_stm32.h:130
struct stm32_gpio_init_param stm32_gpio_cs_pwm_extra_init_params
Definition app_config_stm32.c:48
#define TIM_DAC_UPDATE_HANDLE
Definition app_config_stm32.h:114
struct stm32_pwm_init_param stm32_pwm_dma_trigger_extra_init_params
Definition app_config_stm32.c:161
int32_t stm32_init_system(void)
Initialize the STM32 system peripherals.
Definition app_config_stm32.c:191
struct stm32_pwm_init_param stm32_pwm_tgp_extra_init_params
Definition app_config_stm32.c:110
#define TIM_TGP_HANDLE
Definition app_config_stm32.h:107
#define TIM_DMA_TRIGGER_HANDLE
Definition app_config_stm32.h:122
#define TX_DMA_CH_HANDLE
Definition app_config_stm32.h:129
struct stm32_gpio_init_param stm32_gpio_ldac_tgp_pwm_extra_init_params
Definition app_config_stm32.c:93
VCOM driver for stm32 as a no_os_uart implementation.
Specific initialization parameters for stm32 UART over USB.
Definition stm32_usb_uart.h:27