precision-converters-firmware
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions | Variables
app_config_stm32.h File Reference

Header file for STM32 platform configurations. More...

#include <stdint.h>
#include "stm32_uart.h"
#include "stm32_spi.h"
#include "stm32_gpio.h"
#include "stm32_irq.h"
#include "stm32_pwm.h"
#include "stm32_i2c.h"
#include "stm32_gpio_irq.h"
#include "stm32_dma.h"
#include "stm32_usb_uart.h"
#include "app_config.h"
Include dependency graph for app_config_stm32.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define HW_CARRIER_NAME   SDP_K1
 
#define APP_UART_HANDLE   &huart5
 
#define UART_IRQ_ID   UART5_IRQn
 
#define APP_UART_USB_HANDLE   &hUsbDeviceHS
 
#define RESET_PIN   11
 
#define RESET_PORT   6
 
#define LDAC_PIN   10
 
#define LDAC_PORT   0
 
#define GPIO_TRIGGER_INT_PORT   0
 
#define SPI_DEVICE_ID   1
 
#define SPI_CSB   15
 
#define STM32_SPI_CS_PORT   0
 
#define I2C_DEVICE_ID   1
 
#define I2C_TIMING   0
 
#define IRQ_CTRL_ID   10
 
#define TRIGGER_INT_ID   10
 
#define trigger_gpio_handle   0
 
#define LDAC_GPIO_PRIORITY   1
 
#define LDAC_PWM_ID   1
 
#define LDAC_PWM_CHANNEL   3
 
#define LDAC_PWM_CLK_DIVIDER   2
 
#define PWM_GPIO_PORT   LDAC_PORT
 
#define PWM_GPIO_PIN   LDAC_PIN
 
#define UART_ID   0
 
#define TIMER8_ID   8
 
#define TIMER_8_PRESCALER   0
 
#define TIMER_8_CLK_DIVIDER   2
 
#define TIMER_CHANNEL_1   1
 
#define Rx_DMA_IRQ_ID   DMA2_Stream0_IRQn
 
#define TxDMA_CHANNEL_NUM   DMA_CHANNEL_7
 
#define RxDMA_CHANNEL_NUM   DMA_CHANNEL_3
 
#define DMA_NUM_CHANNELS   2
 
#define spi_extra_init_params   stm32_spi_init_params
 
#define uart_extra_init_params   stm32_uart_init_params
 
#define i2c_extra_init_params   stm32_i2c_init_params
 
#define pwm_extra_init_params   stm32_ldac_pwm_init_params
 
#define gpio_ldac_extra_init_params   stm32_gpio_ldac_init_params
 
#define gpio_reset_extra_init_params   stm32_gpio_reset_init_params
 
#define csb_gpio_extra_init_params   stm32_csb_gpio_init_params
 
#define trigger_gpio_irq_extra_params   stm32_trigger_gpio_irq_init_params
 
#define gpio_pwm_extra_init_params   stm32_pwm_ldac_gpio_init_params
 
#define tx_trigger_extra_init_params   stm32_tx_trigger_extra_init_params
 
#define vcom_extra_init_params   stm32_vcom_extra_init_params
 
#define trigger_gpio_irq_ops   stm32_gpio_irq_ops
 
#define gpio_ops   stm32_gpio_ops
 
#define spi_ops   stm32_spi_ops
 
#define pwm_ops   stm32_pwm_ops
 
#define uart_ops   stm32_uart_ops
 
#define i2c_ops   stm32_i2c_ops
 
#define dma_ops   stm32_dma_ops
 
#define vcom_ops   stm32_usb_uart_ops
 
#define MAX_SPI_SCLK   22500000
 
#define MAX_SAMPLING_RATE   40000
 
#define LDAC_PWM_DUTY_CYCLE_PERCENT   50
 
#define LDAC_PWM_PRESCALER   3
 
#define TX_TRIGGER_PERIOD   400
 
#define TX_TRIGGER_DUTY_CYCLE_NS   50
 
#define NUM_PULSE_REPETITIONS   3
 

Functions

void receivecomplete_callback (DMA_HandleTypeDef *hdma)
 Callback function to flag the transfer of number of requested samples.
 
void tim8_config (void)
 Configure Tx Trigger timer for slave mode operation, one-pulse mode and to generate DMA requests.
 
int stm32_timer_stop (void)
 Stop generating timer signals.
 
int stm32_timer_enable (void)
 Starts the timer signal generation for PWM.
 
int stm32_abort_dma_transfer (void)
 Abort DMA Transfers.
 
void stm32_system_init (void)
 Initialize the STM32 system peripherals.
 
int reconfig_stm32_params (void)
 Reconfigure the STM32 specific system parameters with change in data streaming mode.
 

Variables

struct stm32_uart_init_param stm32_uart_init_params
 
struct stm32_gpio_irq_init_param stm32_trigger_gpio_irq_init_params
 
struct stm32_spi_init_param stm32_spi_init_params
 
struct stm32_i2c_init_param stm32_i2c_init_params
 
struct stm32_gpio_init_param stm32_gpio_ldac_init_params
 
struct stm32_gpio_init_param stm32_gpio_reset_init_params
 
struct stm32_pwm_init_param stm32_ldac_pwm_init_params
 
struct stm32_gpio_init_param stm32_pwm_ldac_gpio_init_params
 
UART_HandleTypeDef huart5
 
USBD_HandleTypeDef hUsbDeviceHS
 
DMA_HandleTypeDef hdma_tim8_ch1
 
DMA_HandleTypeDef hdma_spi1_rx
 
struct stm32_gpio_init_param stm32_csb_gpio_init_params
 
struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
 
struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
 
struct stm32_dma_channel rxdma_channel
 
struct stm32_dma_channel txdma_channel_single_instr_mode
 
struct stm32_dma_channel txdma_channel_stream_mode
 

Detailed Description

Header file for STM32 platform configurations.

Copyright (c) 2024-25 Analog Devices, Inc. All rights reserved.

This software is proprietary to Analog Devices, Inc. and its licensors. By using this software you agree to the terms of the associated Analog Devices Software License Agreement.

Macro Definition Documentation

◆ APP_UART_HANDLE

#define APP_UART_HANDLE   &huart5

◆ APP_UART_USB_HANDLE

#define APP_UART_USB_HANDLE   &hUsbDeviceHS

◆ csb_gpio_extra_init_params

#define csb_gpio_extra_init_params   stm32_csb_gpio_init_params

◆ DMA_NUM_CHANNELS

#define DMA_NUM_CHANNELS   2

◆ dma_ops

#define dma_ops   stm32_dma_ops

◆ gpio_ldac_extra_init_params

#define gpio_ldac_extra_init_params   stm32_gpio_ldac_init_params

◆ gpio_ops

#define gpio_ops   stm32_gpio_ops

◆ gpio_pwm_extra_init_params

#define gpio_pwm_extra_init_params   stm32_pwm_ldac_gpio_init_params

◆ gpio_reset_extra_init_params

#define gpio_reset_extra_init_params   stm32_gpio_reset_init_params

◆ GPIO_TRIGGER_INT_PORT

#define GPIO_TRIGGER_INT_PORT   0

◆ HW_CARRIER_NAME

#define HW_CARRIER_NAME   SDP_K1

◆ I2C_DEVICE_ID

#define I2C_DEVICE_ID   1

◆ i2c_extra_init_params

#define i2c_extra_init_params   stm32_i2c_init_params

◆ i2c_ops

#define i2c_ops   stm32_i2c_ops

◆ I2C_TIMING

#define I2C_TIMING   0

◆ IRQ_CTRL_ID

#define IRQ_CTRL_ID   10

◆ LDAC_GPIO_PRIORITY

#define LDAC_GPIO_PRIORITY   1

◆ LDAC_PIN

#define LDAC_PIN   10

◆ LDAC_PORT

#define LDAC_PORT   0

◆ LDAC_PWM_CHANNEL

#define LDAC_PWM_CHANNEL   3

◆ LDAC_PWM_CLK_DIVIDER

#define LDAC_PWM_CLK_DIVIDER   2

◆ LDAC_PWM_DUTY_CYCLE_PERCENT

#define LDAC_PWM_DUTY_CYCLE_PERCENT   50

◆ LDAC_PWM_ID

#define LDAC_PWM_ID   1

◆ LDAC_PWM_PRESCALER

#define LDAC_PWM_PRESCALER   3

◆ MAX_SAMPLING_RATE

#define MAX_SAMPLING_RATE   40000

◆ MAX_SPI_SCLK

#define MAX_SPI_SCLK   22500000

◆ NUM_PULSE_REPETITIONS

#define NUM_PULSE_REPETITIONS   3

◆ pwm_extra_init_params

#define pwm_extra_init_params   stm32_ldac_pwm_init_params

◆ PWM_GPIO_PIN

#define PWM_GPIO_PIN   LDAC_PIN

◆ PWM_GPIO_PORT

#define PWM_GPIO_PORT   LDAC_PORT

◆ pwm_ops

#define pwm_ops   stm32_pwm_ops

◆ RESET_PIN

#define RESET_PIN   11

◆ RESET_PORT

#define RESET_PORT   6

◆ Rx_DMA_IRQ_ID

#define Rx_DMA_IRQ_ID   DMA2_Stream0_IRQn

◆ RxDMA_CHANNEL_NUM

#define RxDMA_CHANNEL_NUM   DMA_CHANNEL_3

◆ SPI_CSB

#define SPI_CSB   15

◆ SPI_DEVICE_ID

#define SPI_DEVICE_ID   1

◆ spi_extra_init_params

#define spi_extra_init_params   stm32_spi_init_params

◆ spi_ops

#define spi_ops   stm32_spi_ops

◆ STM32_SPI_CS_PORT

#define STM32_SPI_CS_PORT   0

◆ TIMER8_ID

#define TIMER8_ID   8

◆ TIMER_8_CLK_DIVIDER

#define TIMER_8_CLK_DIVIDER   2

◆ TIMER_8_PRESCALER

#define TIMER_8_PRESCALER   0

◆ TIMER_CHANNEL_1

#define TIMER_CHANNEL_1   1

◆ trigger_gpio_handle

#define trigger_gpio_handle   0

◆ trigger_gpio_irq_extra_params

#define trigger_gpio_irq_extra_params   stm32_trigger_gpio_irq_init_params

◆ trigger_gpio_irq_ops

#define trigger_gpio_irq_ops   stm32_gpio_irq_ops

◆ TRIGGER_INT_ID

#define TRIGGER_INT_ID   10

◆ TX_TRIGGER_DUTY_CYCLE_NS

#define TX_TRIGGER_DUTY_CYCLE_NS   50

◆ tx_trigger_extra_init_params

#define tx_trigger_extra_init_params   stm32_tx_trigger_extra_init_params

◆ TX_TRIGGER_PERIOD

#define TX_TRIGGER_PERIOD   400

◆ TxDMA_CHANNEL_NUM

#define TxDMA_CHANNEL_NUM   DMA_CHANNEL_7

◆ uart_extra_init_params

#define uart_extra_init_params   stm32_uart_init_params

◆ UART_ID

#define UART_ID   0

◆ UART_IRQ_ID

#define UART_IRQ_ID   UART5_IRQn

◆ uart_ops

#define uart_ops   stm32_uart_ops

◆ vcom_extra_init_params

#define vcom_extra_init_params   stm32_vcom_extra_init_params

◆ vcom_ops

#define vcom_ops   stm32_usb_uart_ops

Function Documentation

◆ receivecomplete_callback()

void receivecomplete_callback ( DMA_HandleTypeDef *  hdma)

Callback function to flag the transfer of number of requested samples.

Callback function to flag the capture of number of requested samples.

Parameters
hdma[in]- DMA Handler (Unused)
Returns
None
Parameters
hdma- DMA handler (Unused)
Returns
None

Callback function to flag the transfer of number of requested samples.

Parameters
hdma- DMA handler (Unused)
Returns
None

Callback function to flag the transfer of number of requested samples.

Parameters
hdma- DMA Handler (Unused)
Returns
None

◆ reconfig_stm32_params()

int reconfig_stm32_params ( void  )

Reconfigure the STM32 specific system parameters with change in data streaming mode.

Returns
0 in case of success, negative error code otherwise

◆ stm32_abort_dma_transfer()

int stm32_abort_dma_transfer ( void  )

Abort DMA Transfers.

Returns
None

Abort DMA Transfers.

Returns
None

◆ stm32_system_init()

void stm32_system_init ( void  )

Initialize the STM32 system peripherals.

Returns
None

◆ stm32_timer_enable()

int stm32_timer_enable ( void  )

Starts the timer signal generation for PWM.

Returns
0 in case of success, negative error code otherwise

Starts the timer signal generation for PWM.

Returns
None

◆ stm32_timer_stop()

int stm32_timer_stop ( void  )

Stop generating timer signals.

Returns
0 in case of success, negative error code otherwise

Stop generating timer signals.

Returns
None
None

◆ tim8_config()

void tim8_config ( void  )

Configure Tx Trigger timer for slave mode operation, one-pulse mode and to generate DMA requests.

Returns
None

Configure Tx Trigger timer for slave mode operation, one-pulse mode and to generate DMA requests.

Returns
None

Configure Tx Trigger timer for slave mode operation, one-pulse mode and to generate DMA requests.

Returns
None
Note
Tx timer acts as a slave for External Trigger (ETR1) in one-pulse mode to generate DMA requests

Variable Documentation

◆ hdma_spi1_rx

DMA_HandleTypeDef hdma_spi1_rx
extern

◆ hdma_tim8_ch1

DMA_HandleTypeDef hdma_tim8_ch1
extern

◆ huart5

UART_HandleTypeDef huart5
extern

◆ hUsbDeviceHS

USBD_HandleTypeDef hUsbDeviceHS
extern

◆ rxdma_channel

struct stm32_dma_channel rxdma_channel
extern

◆ stm32_csb_gpio_init_params

struct stm32_gpio_init_param stm32_csb_gpio_init_params
extern

◆ stm32_gpio_ldac_init_params

struct stm32_gpio_init_param stm32_gpio_ldac_init_params
extern

◆ stm32_gpio_reset_init_params

struct stm32_gpio_init_param stm32_gpio_reset_init_params
extern

◆ stm32_i2c_init_params

struct stm32_i2c_init_param stm32_i2c_init_params
extern

◆ stm32_ldac_pwm_init_params

struct stm32_pwm_init_param stm32_ldac_pwm_init_params
extern

◆ stm32_pwm_ldac_gpio_init_params

struct stm32_gpio_init_param stm32_pwm_ldac_gpio_init_params
extern

◆ stm32_spi_init_params

struct stm32_spi_init_param stm32_spi_init_params
extern

◆ stm32_trigger_gpio_irq_init_params

struct stm32_gpio_irq_init_param stm32_trigger_gpio_irq_init_params
extern

◆ stm32_tx_trigger_extra_init_params

struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
extern

◆ stm32_uart_init_params

struct stm32_uart_init_param stm32_uart_init_params
extern

◆ stm32_vcom_extra_init_params

struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
extern

◆ txdma_channel_single_instr_mode

struct stm32_dma_channel txdma_channel_single_instr_mode
extern

◆ txdma_channel_stream_mode

struct stm32_dma_channel txdma_channel_stream_mode
extern