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

Source file for STM32 platform configurations. More...

#include <stdbool.h>
#include "app_config_stm32.h"
#include "app_config.h"
#include "no_os_error.h"
#include "ad5706r_user_config.h"
Include dependency graph for app_config_stm32.c:

Functions

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

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_irq_init_param stm32_trigger_gpio_irq_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
 
struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
 
struct stm32_pwm_init_param stm32_cs_extra_init_params
 
struct stm32_dma_channel txdma_channel
 
struct stm32_dma_channel rxdma_channel
 
struct stm32_spi_init_param * spi_init_param
 
struct stm32_gpio_init_param stm32_cs_gpio_extra_init_params
 
struct stm32_gpio_init_param stm32_cs_pwm_gpio_extra_init_params
 
struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
 

Detailed Description

Source 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.

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

◆ EXTI15_10_IRQHandler()

void EXTI15_10_IRQHandler ( void  )

EXTI Lines 10- 15 IRQ Handler.

Returns
None

◆ stm32_system_init()

void stm32_system_init ( void  )

Initialize the STM32 system peripherals.

Returns
None

Variable Documentation

◆ rxdma_channel

struct stm32_dma_channel rxdma_channel
Initial value:
= {
.hdma = &hdma_spi1_rx,
.mem_increment = false,
.mem_data_alignment = DATA_ALIGN_BYTE,
.per_data_alignment = DATA_ALIGN_BYTE,
.dma_mode = DMA_CIRCULAR_MODE,
}
DMA_HandleTypeDef hdma_spi1_rx
#define AD5706_RxDMA_CHANNEL_NUM
Definition app_config_stm32.h:100

◆ spi_init_param

struct stm32_spi_init_param* spi_init_param

◆ stm32_cs_extra_init_params

struct stm32_pwm_init_param stm32_cs_extra_init_params
Initial value:
= {
.htimer = &CS_TIMER_HANDLE,
.prescaler = CS_TIMER_PRESCALER,
.timer_autoreload = false,
.mode = TIM_OC_PWM2,
.timer_chn = CS_TIMER_CHANNEL,
.complementary_channel = false,
.get_timer_clock = HAL_RCC_GetPCLK1Freq,
.clock_divider = TIMER_2_CLK_DIVIDER,
.trigger_output = PWM_TRGO_OC1,
.slave_mode = STM32_PWM_SM_TRIGGER,
.trigger_source = PWM_TS_ITR3,
}
#define TIMER_2_CLK_DIVIDER
Definition app_config_stm32.h:79
#define CS_TIMER_HANDLE
Definition app_config_stm32.h:91
#define CS_TIMER_PRESCALER
Definition app_config_stm32.h:88
#define CS_TIMER_CHANNEL
Definition app_config_stm32.h:89

◆ stm32_cs_gpio_extra_init_params

struct stm32_gpio_init_param stm32_cs_gpio_extra_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_cs_pwm_gpio_extra_init_params

struct stm32_gpio_init_param stm32_cs_pwm_gpio_extra_init_params
Initial value:
= {
.mode = GPIO_MODE_AF_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
.alternate = GPIO_AF1_TIM2
}

◆ stm32_dac_update_pwm_gpio_extra_init_params

struct stm32_gpio_init_param stm32_dac_update_pwm_gpio_extra_init_params
Initial value:
= {
.mode = GPIO_MODE_AF_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
.alternate = GPIO_AF2_TIM4
}

◆ stm32_dac_update_pwm_init_params

struct stm32_pwm_init_param stm32_dac_update_pwm_init_params
Initial value:
= {
.prescaler = TIMER_4_PRESCALER,
.timer_autoreload = true,
.mode = TIM_OC_PWM1,
.timer_chn = TIMER_CHANNEL_1,
.complementary_channel = false,
.get_timer_clock = HAL_RCC_GetPCLK1Freq,
.clock_divider = TIMER_4_CLK_DIVIDER,
.trigger_output = PWM_TRGO_UPDATE,
}
#define TIMER_CHANNEL_1
Definition app_config_stm32.h:83
#define TIMER_4_CLK_DIVIDER
Definition app_config_stm32.h:75
#define TIMER_4_PRESCALER
Definition app_config_stm32.h:74
#define DAC_UPDATE_TIMER_HANDLE
Definition app_config_stm32.h:76

◆ stm32_gpio_ad0_init_params

struct stm32_gpio_init_param stm32_gpio_ad0_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_gpio_ad1_init_params

struct stm32_gpio_init_param stm32_gpio_ad1_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_gpio_ldac_tg_init_params

struct stm32_gpio_init_param stm32_gpio_ldac_tg_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_gpio_reset_init_params

struct stm32_gpio_init_param stm32_gpio_reset_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_gpio_shutdown_init_params

struct stm32_gpio_init_param stm32_gpio_shutdown_init_params
Initial value:
= {
.mode = GPIO_MODE_OUTPUT_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
}

◆ stm32_i2c_extra_init_params

struct stm32_i2c_init_param stm32_i2c_extra_init_params
Initial value:
= {
.i2c_timing = I2C_TIMING
}
#define I2C_TIMING
Definition app_config_stm32.h:60

◆ stm32_ldac_pwm_gpio_extra_init_params

struct stm32_gpio_init_param stm32_ldac_pwm_gpio_extra_init_params
Initial value:
= {
.mode = GPIO_MODE_AF_PP,
.speed = GPIO_SPEED_FREQ_VERY_HIGH,
.alternate = GPIO_AF1_TIM1
}

◆ stm32_ldac_pwm_init_params

struct stm32_pwm_init_param stm32_ldac_pwm_init_params
Initial value:
= {
.htimer = &PWM_TIMER_HANDLE,
.prescaler = TIMER_1_PRESCALER,
.timer_autoreload = true,
.mode = TIM_OC_PWM2,
.timer_chn = TIMER_CHANNEL_3,
.complementary_channel = true,
.get_timer_clock = HAL_RCC_GetPCLK2Freq,
.clock_divider = TIMER_1_CLK_DIVIDER
}
#define TIMER_1_PRESCALER
Definition app_config_stm32.h:76
#define TIMER_CHANNEL_3
Definition app_config_stm32.h:86
#define TIMER_1_CLK_DIVIDER
Definition app_config_stm32.h:78
#define PWM_TIMER_HANDLE
Definition app_config_stm32.h:69

◆ stm32_spi_extra_init_params

struct stm32_spi_init_param stm32_spi_extra_init_params
Initial value:
= {
.chip_select_port = SPI_CS_PORT_NUM,
.get_input_clock = HAL_RCC_GetPCLK2Freq,
.alternate = GPIO_AF1_TIM2
}
#define SPI_CS_PORT_NUM
Definition app_config_stm32.h:79

◆ stm32_trigger_gpio_irq_init_params

struct stm32_gpio_irq_init_param stm32_trigger_gpio_irq_init_params
Initial value:
= {
.port_nb = DAC_UPDATE_PORT
}
#define DAC_UPDATE_PORT
Definition app_config_stm32.h:61

◆ stm32_tx_trigger_extra_init_params

struct stm32_pwm_init_param stm32_tx_trigger_extra_init_params
Initial value:
= {
.htimer = &TIMER8_HANDLE,
.prescaler = TIMER_8_PRESCALER,
.timer_autoreload = true,
.mode = TIM_OC_TOGGLE,
.timer_chn = TIMER_CHANNEL_1,
.complementary_channel = false,
.get_timer_clock = HAL_RCC_GetPCLK2Freq,
.clock_divider = TIMER_8_CLK_DIVIDER,
.slave_mode = STM32_PWM_SM_TRIGGER,
.trigger_source = PWM_TS_ITR1,
.trigger_output = PWM_TRGO_RESET,
.dma_enable = true,
.onepulse_enable = true
}
#define TIMER8_HANDLE
Definition app_config_stm32.h:84
#define TIMER_8_CLK_DIVIDER
Definition app_config_stm32.h:82
#define TIMER_8_PRESCALER
Definition app_config_stm32.h:81

◆ stm32_vcom_extra_init_params

struct stm32_usb_uart_init_param stm32_vcom_extra_init_params
Initial value:
= {
.husbdevice = &hUsbDeviceHS,
}
USBD_HandleTypeDef hUsbDeviceHS

◆ txdma_channel

struct stm32_dma_channel txdma_channel
Initial value:
= {
.hdma = &hdma_tim8_ch1,
.mem_increment = true,
.mem_data_alignment = DATA_ALIGN_BYTE,
.per_data_alignment = DATA_ALIGN_BYTE,
.dma_mode = DMA_CIRCULAR_MODE
}
DMA_HandleTypeDef hdma_tim8_ch1
#define AD5706_TxDMA_CHANNEL_NUM
Definition app_config_stm32.h:99