precision-converters-firmware
Loading...
Searching...
No Matches
Macros | Functions | Variables
app_config_stm32.h File Reference

Header file for STM32 platform configurations. More...

#include <stdint.h>
#include "stm32_hal.h"
#include "stm32_i2c.h"
#include "stm32_spi.h"
#include "stm32_gpio.h"
#include "stm32_uart.h"
#include "stm32_dma.h"
#include "stm32_gpio_irq.h"
#include "app_config.h"
#include "ad5706r.h"
#include "stm32_usb_uart.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 SPI_DEVICE_ID   1
 
#define SPI_CSB   15
 
#define SPI_CS_PORT_BASE   GPIOA
 
#define SPI_CS_PORT_NUM   0
 
#define I2C_DEV_ID   1
 
#define UART_MODULE   5
 
#define UART_IRQ   UART5_IRQn
 
#define GPIO_AD0   11
 
#define GPIO_AD1   9
 
#define GPIO_LDAC_TG   15
 
#define GPIO_RESET   11
 
#define GPIO_SHUTDOWN   10
 
#define GPIO_DAC_UPDATE   12
 
#define AD0_PORT   0
 
#define AD1_PORT   6
 
#define LDAC_TG_PORT   1
 
#define RESET_PORT   6
 
#define SHUTDOWN_PORT   6
 
#define DAC_UPDATE_PORT   3
 
#define PWM_TIMER_ID   1
 
#define TRIGGER_INT_ID   GPIO_DAC_UPDATE
 
#define TIMER_1_PRESCALER   1
 
#define TIMER_1_CLK_DIVIDER   2
 
#define TIMER_CHANNEL_3   3
 
#define PWM_TIMER_HANDLE   htim1
 
#define DAC_UPDATE_TIMER_ID   4
 
#define TIMER_CHANNEL_1   1
 
#define TIMER_4_PRESCALER   0
 
#define TIMER_4_CLK_DIVIDER   2
 
#define DAC_UPDATE_TIMER_HANDLE   htim4
 
#define TIMER8_ID   8
 
#define TX_TRIGGER_PERIOD   410
 
#define TX_TRIGGER_DUTY_RATIO   10
 
#define TIMER_8_PRESCALER   0
 
#define TIMER_8_CLK_DIVIDER   2
 
#define TIMER8_HANDLE   htim8
 
#define CS_TIMER_ID   2
 
#define CS_TIMER_PRESCALER   0
 
#define CS_TIMER_CHANNEL   1
 
#define TIMER_2_CLK_DIVIDER   2
 
#define CS_TIMER_HANDLE   htim2
 
#define I2C_TIMING   0
 
#define DAC_UPDATE_GPIO_PRIORITY   1
 
#define trigger_gpio_handle   0
 
#define AD5706_DMA_NUM_CHANNELS   2
 
#define AD5706_TxDMA_CHANNEL_NUM   DMA_CHANNEL_7
 
#define AD5706_RxDMA_CHANNEL_NUM   DMA_CHANNEL_3
 
#define Rx_DMA_IRQ_ID   DMA2_Stream0_IRQn
 
#define vcom_extra_init_params   stm32_vcom_extra_init_params
 
#define vcom_ops   stm32_usb_uart_ops
 
#define spi_extra_init_params   stm32_spi_extra_init_params
 
#define i2c_extra_init_params   stm32_i2c_extra_init_params
 
#define gpio_ad0_extra_params   stm32_gpio_ad0_init_params
 
#define gpio_ad1_extra_params   stm32_gpio_ad1_init_params
 
#define gpio_ldac_tg_extra_params   stm32_gpio_ldac_tg_init_params
 
#define gpio_shutdown_extra_params   stm32_gpio_shutdown_init_params
 
#define gpio_reset_extra_params   stm32_gpio_reset_init_params
 
#define ldac_pwm_extra_init_params   stm32_ldac_pwm_init_params
 
#define dac_update_pwm_extra_init_params   stm32_dac_update_pwm_init_params
 
#define ldac_pwm_gpio_extra_init_params   stm32_ldac_pwm_gpio_extra_init_params
 
#define dac_update_pwm_gpio_extra_init_params   stm32_dac_update_pwm_gpio_extra_init_params
 
#define tx_trigger_extra_init_params   stm32_tx_trigger_extra_init_params
 
#define csb_gpio_extra_init_params   stm32_cs_gpio_extra_init_params
 
#define cs_extra_init_params   stm32_cs_extra_init_params
 
#define dma_ops   stm32_dma_ops
 
#define gpio_ops   stm32_gpio_ops
 
#define gpio_ops   stm32_gpio_ops
 
#define spi_ops   stm32_spi_ops
 
#define i2c_ops   stm32_i2c_ops
 
#define pwm_ops   stm32_pwm_ops
 
#define MAX_SPI_SCLK_FREQ   20000000
 
#define AD5706_MAX_UPDATE_RATE   500000
 

Functions

void stm32_system_init (void)
 Initialize the STM32 system peripherals.
 
void SystemClock_Config (void)
 
void ad5706r_rx_cplt_callback (DMA_HandleTypeDef *hdma)
 Callback function to flag the transfer of number of requested samples.
 
int ad5706r_abort_dma_transfers (struct ad5706r_dev *device)
 Abort DMA Transfers.
 
int ad5706r_timers_enable (struct ad5706r_dev *device)
 Starts the timer signal generation.
 
int ad5706r_init_tx_trigger (void)
 Init Tx Trigger PWM.
 
void MX_USB_DEVICE_Init (void)
 

Variables

struct stm32_spi_init_param stm32_spi_extra_init_params
 
struct stm32_i2c_init_param stm32_i2c_extra_init_params
 
struct stm32_gpio_init_param stm32_gpio_ad0_init_params
 
struct stm32_gpio_init_param stm32_gpio_ad1_init_params
 
struct stm32_gpio_init_param stm32_gpio_ldac_tg_init_params
 
struct stm32_gpio_init_param stm32_gpio_shutdown_init_params
 
struct stm32_gpio_init_param stm32_gpio_reset_init_params
 
struct stm32_pwm_init_param stm32_ldac_pwm_init_params
 
struct stm32_pwm_init_param stm32_dac_update_pwm_init_params
 
struct stm32_gpio_init_param stm32_ldac_pwm_gpio_extra_init_params
 
struct stm32_gpio_init_param stm32_dac_update_pwm_gpio_extra_init_params
 
TIM_HandleTypeDef PWM_TIMER_HANDLE
 
TIM_HandleTypeDef DAC_UPDATE_TIMER_HANDLE
 
DMA_HandleTypeDef hdma_spi1_rx
 
DMA_HandleTypeDef hdma_tim8_ch1
 
TIM_HandleTypeDef TIMER8_HANDLE
 
TIM_HandleTypeDef CS_TIMER_HANDLE
 
struct stm32_dma_channel txdma_channel
 
struct stm32_dma_channel rxdma_channel
 
struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
 
struct stm32_gpio_init_param stm32_cs_gpio_extra_init_params
 
struct stm32_pwm_init_param stm32_cs_extra_init_params
 
struct no_os_dma_init_param ad5706r_dma_init_param
 
struct stm32_spi_init_param * spi_init_param
 
uint8_t n_bytes
 
USBD_HandleTypeDef hUsbDeviceHS
 
struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
 
bool hw_mode_enabled
 
bool sw_mode_enabled
 

Detailed Description

Header file for STM32 platform configurations.

Copyright (c) 2024-2026 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

◆ AD0_PORT

#define AD0_PORT   0

◆ AD1_PORT

#define AD1_PORT   6

◆ AD5706_DMA_NUM_CHANNELS

#define AD5706_DMA_NUM_CHANNELS   2

◆ AD5706_MAX_UPDATE_RATE

#define AD5706_MAX_UPDATE_RATE   500000

◆ AD5706_RxDMA_CHANNEL_NUM

#define AD5706_RxDMA_CHANNEL_NUM   DMA_CHANNEL_3

◆ AD5706_TxDMA_CHANNEL_NUM

#define AD5706_TxDMA_CHANNEL_NUM   DMA_CHANNEL_7

◆ cs_extra_init_params

#define cs_extra_init_params   stm32_cs_extra_init_params

◆ CS_TIMER_CHANNEL

#define CS_TIMER_CHANNEL   1

◆ CS_TIMER_HANDLE

#define CS_TIMER_HANDLE   htim2

◆ CS_TIMER_ID

#define CS_TIMER_ID   2

◆ CS_TIMER_PRESCALER

#define CS_TIMER_PRESCALER   0

◆ csb_gpio_extra_init_params

#define csb_gpio_extra_init_params   stm32_cs_gpio_extra_init_params

◆ DAC_UPDATE_GPIO_PRIORITY

#define DAC_UPDATE_GPIO_PRIORITY   1

◆ DAC_UPDATE_PORT

#define DAC_UPDATE_PORT   3

◆ dac_update_pwm_extra_init_params

#define dac_update_pwm_extra_init_params   stm32_dac_update_pwm_init_params

◆ dac_update_pwm_gpio_extra_init_params

#define dac_update_pwm_gpio_extra_init_params   stm32_dac_update_pwm_gpio_extra_init_params

◆ DAC_UPDATE_TIMER_HANDLE

#define DAC_UPDATE_TIMER_HANDLE   htim4

◆ DAC_UPDATE_TIMER_ID

#define DAC_UPDATE_TIMER_ID   4

◆ dma_ops

#define dma_ops   stm32_dma_ops

◆ GPIO_AD0

#define GPIO_AD0   11

◆ gpio_ad0_extra_params

#define gpio_ad0_extra_params   stm32_gpio_ad0_init_params

◆ GPIO_AD1

#define GPIO_AD1   9

◆ gpio_ad1_extra_params

#define gpio_ad1_extra_params   stm32_gpio_ad1_init_params

◆ GPIO_DAC_UPDATE

#define GPIO_DAC_UPDATE   12

◆ GPIO_LDAC_TG

#define GPIO_LDAC_TG   15

◆ gpio_ldac_tg_extra_params

#define gpio_ldac_tg_extra_params   stm32_gpio_ldac_tg_init_params

◆ gpio_ops [1/2]

#define gpio_ops   stm32_gpio_ops

◆ gpio_ops [2/2]

#define gpio_ops   stm32_gpio_ops

◆ GPIO_RESET

#define GPIO_RESET   11

◆ gpio_reset_extra_params

#define gpio_reset_extra_params   stm32_gpio_reset_init_params

◆ GPIO_SHUTDOWN

#define GPIO_SHUTDOWN   10

◆ gpio_shutdown_extra_params

#define gpio_shutdown_extra_params   stm32_gpio_shutdown_init_params

◆ HW_CARRIER_NAME

#define HW_CARRIER_NAME   SDP-K1

◆ I2C_DEV_ID

#define I2C_DEV_ID   1

◆ i2c_extra_init_params

#define i2c_extra_init_params   stm32_i2c_extra_init_params

◆ i2c_ops

#define i2c_ops   stm32_i2c_ops

◆ I2C_TIMING

#define I2C_TIMING   0

◆ ldac_pwm_extra_init_params

#define ldac_pwm_extra_init_params   stm32_ldac_pwm_init_params

◆ ldac_pwm_gpio_extra_init_params

#define ldac_pwm_gpio_extra_init_params   stm32_ldac_pwm_gpio_extra_init_params

◆ LDAC_TG_PORT

#define LDAC_TG_PORT   1

◆ MAX_SPI_SCLK_FREQ

#define MAX_SPI_SCLK_FREQ   20000000

◆ pwm_ops

#define pwm_ops   stm32_pwm_ops

◆ PWM_TIMER_HANDLE

#define PWM_TIMER_HANDLE   htim1

◆ PWM_TIMER_ID

#define PWM_TIMER_ID   1

◆ RESET_PORT

#define RESET_PORT   6

◆ Rx_DMA_IRQ_ID

#define Rx_DMA_IRQ_ID   DMA2_Stream0_IRQn

◆ SHUTDOWN_PORT

#define SHUTDOWN_PORT   6

◆ SPI_CS_PORT_BASE

#define SPI_CS_PORT_BASE   GPIOA

◆ SPI_CS_PORT_NUM

#define SPI_CS_PORT_NUM   0

◆ 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_extra_init_params

◆ spi_ops

#define spi_ops   stm32_spi_ops

◆ TIMER8_HANDLE

#define TIMER8_HANDLE   htim8

◆ TIMER8_ID

#define TIMER8_ID   8

◆ TIMER_1_CLK_DIVIDER

#define TIMER_1_CLK_DIVIDER   2

◆ TIMER_1_PRESCALER

#define TIMER_1_PRESCALER   1

◆ TIMER_2_CLK_DIVIDER

#define TIMER_2_CLK_DIVIDER   2

◆ TIMER_4_CLK_DIVIDER

#define TIMER_4_CLK_DIVIDER   2

◆ TIMER_4_PRESCALER

#define TIMER_4_PRESCALER   0

◆ 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

◆ TIMER_CHANNEL_3

#define TIMER_CHANNEL_3   3

◆ trigger_gpio_handle

#define trigger_gpio_handle   0

◆ TRIGGER_INT_ID

#define TRIGGER_INT_ID   GPIO_DAC_UPDATE

◆ TX_TRIGGER_DUTY_RATIO

#define TX_TRIGGER_DUTY_RATIO   10

◆ tx_trigger_extra_init_params

#define tx_trigger_extra_init_params   stm32_tx_trigger_extra_init_params

◆ TX_TRIGGER_PERIOD

#define TX_TRIGGER_PERIOD   410

◆ UART_IRQ

#define UART_IRQ   UART5_IRQn

◆ UART_MODULE

#define UART_MODULE   5

◆ 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

◆ ad5706r_abort_dma_transfers()

int ad5706r_abort_dma_transfers ( struct ad5706r_dev *  device)

Abort DMA Transfers.

Returns
0 in case of success, negative error code otherwise

◆ ad5706r_init_tx_trigger()

int ad5706r_init_tx_trigger ( void  )

Init Tx Trigger PWM.

Parameters
None
Returns
0 in case of success, negative error code otherwise

◆ ad5706r_rx_cplt_callback()

void ad5706r_rx_cplt_callback ( DMA_HandleTypeDef *  hdma)

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

Parameters
hdma- DMA Handler (Unused)
Returns
None

◆ ad5706r_timers_enable()

int ad5706r_timers_enable ( struct ad5706r_dev *  device)

Starts the timer signal generation.

Returns
0 in case of success, negative error code otherwise

◆ MX_USB_DEVICE_Init()

void MX_USB_DEVICE_Init ( void  )

◆ stm32_system_init()

void stm32_system_init ( void  )

Initialize the STM32 system peripherals.

Returns
None

◆ SystemClock_Config()

void SystemClock_Config ( void  )

Variable Documentation

◆ ad5706r_dma_init_param

struct no_os_dma_init_param ad5706r_dma_init_param
extern

◆ CS_TIMER_HANDLE

TIM_HandleTypeDef CS_TIMER_HANDLE
extern

◆ DAC_UPDATE_TIMER_HANDLE

TIM_HandleTypeDef DAC_UPDATE_TIMER_HANDLE
extern

◆ hdma_spi1_rx

DMA_HandleTypeDef hdma_spi1_rx
extern

◆ hdma_tim8_ch1

DMA_HandleTypeDef hdma_tim8_ch1
extern

◆ hUsbDeviceHS

USBD_HandleTypeDef hUsbDeviceHS
extern

◆ hw_mode_enabled

bool hw_mode_enabled
extern

◆ n_bytes

uint8_t n_bytes
extern

◆ PWM_TIMER_HANDLE

TIM_HandleTypeDef PWM_TIMER_HANDLE
extern

◆ rxdma_channel

struct stm32_dma_channel rxdma_channel
extern

◆ spi_init_param

struct stm32_spi_init_param* spi_init_param
extern

◆ stm32_cs_extra_init_params

struct stm32_pwm_init_param stm32_cs_extra_init_params
extern

◆ stm32_cs_gpio_extra_init_params

struct stm32_gpio_init_param stm32_cs_gpio_extra_init_params
extern

◆ stm32_dac_update_pwm_gpio_extra_init_params

struct stm32_gpio_init_param stm32_dac_update_pwm_gpio_extra_init_params
extern

◆ stm32_dac_update_pwm_init_params

struct stm32_pwm_init_param stm32_dac_update_pwm_init_params
extern

◆ stm32_gpio_ad0_init_params

struct stm32_gpio_init_param stm32_gpio_ad0_init_params
extern

◆ stm32_gpio_ad1_init_params

struct stm32_gpio_init_param stm32_gpio_ad1_init_params
extern

◆ stm32_gpio_ldac_tg_init_params

struct stm32_gpio_init_param stm32_gpio_ldac_tg_init_params
extern

◆ stm32_gpio_reset_init_params

struct stm32_gpio_init_param stm32_gpio_reset_init_params
extern

◆ stm32_gpio_shutdown_init_params

struct stm32_gpio_init_param stm32_gpio_shutdown_init_params
extern

◆ stm32_i2c_extra_init_params

struct stm32_i2c_init_param stm32_i2c_extra_init_params
extern

◆ stm32_ldac_pwm_gpio_extra_init_params

struct stm32_gpio_init_param stm32_ldac_pwm_gpio_extra_init_params
extern

◆ stm32_ldac_pwm_init_params

struct stm32_pwm_init_param stm32_ldac_pwm_init_params
extern

◆ stm32_spi_extra_init_params

struct stm32_spi_init_param stm32_spi_extra_init_params
extern

◆ stm32_tx_trigger_extra_init_params

struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
extern

◆ stm32_vcom_extra_init_params

struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
extern

◆ sw_mode_enabled

bool sw_mode_enabled
extern

◆ TIMER8_HANDLE

TIM_HandleTypeDef TIMER8_HANDLE
extern

◆ txdma_channel

struct stm32_dma_channel txdma_channel
extern