no-OS
Loading...
Searching...
No Matches
parameters.h File Reference

Definitions specific to STM32 platform used by capi_selftest project. Copyright (c) 2025-2026 Analog Devices, Inc. More...

#include "stm32_hal.h"
#include "stm32_capi_uart.h"
#include "stm32_capi_gpio.h"
#include "stm32_capi_spi.h"
#include "stm32_capi_irq.h"
#include "stm32_capi_timer.h"
#include "stm32_capi_i2c.h"
#include "stm32_capi_dma.h"
#include "capi_uart.h"
Include dependency graph for parameters.h:

Macros

#define UART_IDENTIFIER   0U
 
#define UART_OPS   &stm32_capi_uart_ops
 
#define UART_BAUDRATE   115200U
 
#define UART_EXTRA_TYPE   struct stm32_uart_extra_config
 
#define UART_EXTRA_INIT   { .huart = &huart3 }
 
#define PLATFORM_NAME   "STM32"
 
#define GPIO_OUTPUT_IDENTIFIER   ((uint64_t)(uintptr_t)GPIOE)
 
#define GPIO_OUTPUT_NUM_PINS   1U
 
#define GPIO_OUTPUT_OPS   &stm32_capi_gpio_ops
 
#define GPIO_OUTPUT_NAME   "PE0"
 
#define GPIO_OUTPUT_EXTRA   struct stm32_capi_gpio_port_config
 
#define GPIO_OUTPUT_EXTRA_INIT
 
#define GPIO_INPUT_IDENTIFIER   ((uint64_t)(uintptr_t)GPIOC)
 
#define GPIO_INPUT_NUM_PINS   1U
 
#define GPIO_INPUT_OPS   &stm32_capi_gpio_ops
 
#define GPIO_INPUT_NAME   "PC0"
 
#define GPIO_INPUT_EXTRA   struct stm32_capi_gpio_port_config
 
#define GPIO_INPUT_EXTRA_INIT
 
#define GPIO_HAS_TOGGLE   0
 
#define GPIO_HAS_PIN_LOOPBACK   1
 
#define GPIO_OUTPUT_PIN_NUMBERS   { 0U }
 
#define GPIO_INPUT_PIN_NUMBERS   { 0U }
 
#define SPI_HAS_IRQ   1
 
#define SPI_HAS_DMA   0
 
#define IRQ_CTRL_IDENTIFIER   0U
 
#define SPI_IDENTIFIER   ((uint64_t)(uintptr_t)SPI1)
 
#define SPI_OPS   &stm32_capi_spi_ops
 
#define SPI_EXTRA_TYPE   struct stm32_spi_extra_config
 
#define SPI_EXTRA_INIT
 
#define SPI_CLK_FREQ   96000000U
 
#define SPI_DEVICE_NATIVE_CS   0x01U
 
#define SPI_DEVICE_MODE   CAPI_SPI_MODE_0
 
#define SPI_DEVICE_SPEED_HZ   1000000U
 
#define TIMER_IDENTIFIER   2U
 
#define TIMER_OPS   &stm32_capi_timer_ops
 
#define TIMER_INPUT_CLK_HZ   0U /* auto-detected from APB1 */
 
#define TIMER_OUTPUT_FREQ_HZ   1000000U /* 1 MHz -> 1 us resolution */
 
#define TIMER_EXTRA_TYPE   struct stm32_capi_timer_extra_config
 
#define TIMER_EXTRA_INIT
 
#define TIMER_DIRECTION   CAPI_TIMER_COUNT_UP
 
#define TIMER_COUNTER_MAX   0x1FFFFU
 
#define TIMER_COMPARE_VALUE   0x8000U
 
#define TIMER_RATE_WINDOW_US   10000U
 
#define TIMER_RATE_COUNTER_MASK   0x1FFFFU
 
#define TIMER_RATE_TOLERANCE_PCT   5U
 
#define TIMER_HAS_IRQ   1
 
#define TIMER_HAS_COMPARE   1
 
#define I2C_IDENTIFIER   1U
 
#define I2C_OPS   &stm32_capi_i2c_ops
 
#define I2C_EXTRA_TYPE   struct stm32_i2c_extra_config
 
#define I2C_EXTRA_INIT   { .hi2c = NULL, .i2c_timing = 0x20303E5D }
 
#define I2C_TARGET_ADDR   0x42U
 
#define I2C_HAS_IRQ   0
 
#define I2C_TARGET_IDENTIFIER   2U
 
#define I2C_TARGET_OPS   &stm32_capi_i2c_ops
 
#define I2C_TARGET_EXTRA_TYPE   struct stm32_i2c_extra_config
 
#define I2C_TARGET_EXTRA_INIT   { .hi2c = NULL, .i2c_timing = 0x20303E5D }
 
#define I2C_PLATFORM_INIT()
 
#define I2C_PLATFORM_DEINIT()
 
#define I2C_PLATFORM_SET_TARGET(h)
 
#define DMA_OPS   &stm32_capi_dma_ops
 
#define DMA_IDENTIFIER   0U
 
#define DMA_NUM_CHANS   1U
 
#define DMA_XFER_EXTRA_TYPE   struct stm32_dma_chan_extra_config
 
#define DMA_XFER_EXTRA_INIT
 
#define DMA_PLATFORM_INIT()
 
#define DMA_XFER_SIZE   64U
 

Functions

int i2c_platform_init (void)
 
void i2c_platform_deinit (void)
 
void i2c_platform_set_target_handle (struct capi_i2c_controller_handle *handle)
 

Variables

UART_HandleTypeDef huart3
 
SPI_HandleTypeDef hspi1
 

Detailed Description

Definitions specific to STM32 platform used by capi_selftest project. Copyright (c) 2025-2026 Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ DMA_IDENTIFIER

#define DMA_IDENTIFIER   0U

◆ DMA_NUM_CHANS

#define DMA_NUM_CHANS   1U

◆ DMA_OPS

#define DMA_OPS   &stm32_capi_dma_ops

◆ DMA_PLATFORM_INIT

#define DMA_PLATFORM_INIT ( )
Value:
__HAL_RCC_DMA2_CLK_ENABLE()

◆ DMA_XFER_EXTRA_INIT

#define DMA_XFER_EXTRA_INIT
Value:
{ .hdma = &(DMA_HandleTypeDef){ \
.Instance = DMA2_Stream0 }, \
.ch_num = DMA_CHANNEL_0, \
.mem_increment = true, \
.per_increment = true, \
.mem_data_alignment = CAPI_DMA_DATA_ALIGN_BYTE, \
.per_data_alignment = CAPI_DMA_DATA_ALIGN_BYTE, \
.dma_mode = CAPI_DMA_NORMAL_MODE, \
.trig = NULL }
#define NULL
Definition wrapper.h:64

◆ DMA_XFER_EXTRA_TYPE

#define DMA_XFER_EXTRA_TYPE   struct stm32_dma_chan_extra_config

◆ DMA_XFER_SIZE

#define DMA_XFER_SIZE   64U

◆ GPIO_HAS_PIN_LOOPBACK

#define GPIO_HAS_PIN_LOOPBACK   1

◆ GPIO_HAS_TOGGLE

#define GPIO_HAS_TOGGLE   0

◆ GPIO_INPUT_EXTRA

#define GPIO_INPUT_EXTRA   struct stm32_capi_gpio_port_config

◆ GPIO_INPUT_EXTRA_INIT

#define GPIO_INPUT_EXTRA_INIT
Value:
{ .mode = GPIO_MODE_INPUT, \
.speed = GPIO_SPEED_FREQ_LOW, \
.alternate = 0U, \
.pull = GPIO_NOPULL }

◆ GPIO_INPUT_IDENTIFIER

#define GPIO_INPUT_IDENTIFIER   ((uint64_t)(uintptr_t)GPIOC)

◆ GPIO_INPUT_NAME

#define GPIO_INPUT_NAME   "PC0"

◆ GPIO_INPUT_NUM_PINS

#define GPIO_INPUT_NUM_PINS   1U

◆ GPIO_INPUT_OPS

#define GPIO_INPUT_OPS   &stm32_capi_gpio_ops

◆ GPIO_INPUT_PIN_NUMBERS

#define GPIO_INPUT_PIN_NUMBERS   { 0U }

◆ GPIO_OUTPUT_EXTRA

#define GPIO_OUTPUT_EXTRA   struct stm32_capi_gpio_port_config

◆ GPIO_OUTPUT_EXTRA_INIT

#define GPIO_OUTPUT_EXTRA_INIT
Value:
{ .mode = GPIO_MODE_OUTPUT_PP, \
.speed = GPIO_SPEED_FREQ_LOW, \
.alternate = 0U, \
.pull = GPIO_NOPULL }

◆ GPIO_OUTPUT_IDENTIFIER

#define GPIO_OUTPUT_IDENTIFIER   ((uint64_t)(uintptr_t)GPIOE)

◆ GPIO_OUTPUT_NAME

#define GPIO_OUTPUT_NAME   "PE0"

◆ GPIO_OUTPUT_NUM_PINS

#define GPIO_OUTPUT_NUM_PINS   1U

◆ GPIO_OUTPUT_OPS

#define GPIO_OUTPUT_OPS   &stm32_capi_gpio_ops

◆ GPIO_OUTPUT_PIN_NUMBERS

#define GPIO_OUTPUT_PIN_NUMBERS   { 0U }

◆ I2C_EXTRA_INIT

#define I2C_EXTRA_INIT   { .hi2c = NULL, .i2c_timing = 0x20303E5D }

◆ I2C_EXTRA_TYPE

#define I2C_EXTRA_TYPE   struct stm32_i2c_extra_config

◆ I2C_HAS_IRQ

#define I2C_HAS_IRQ   0

◆ I2C_IDENTIFIER

#define I2C_IDENTIFIER   1U

◆ I2C_OPS

#define I2C_OPS   &stm32_capi_i2c_ops

◆ I2C_PLATFORM_DEINIT

#define I2C_PLATFORM_DEINIT ( )
Value:
void i2c_platform_deinit(void)
Definition i2c_platform_init.c:64

◆ I2C_PLATFORM_INIT

#define I2C_PLATFORM_INIT ( )
Value:
int i2c_platform_init(void)
Definition i2c_platform_init.c:27

◆ I2C_PLATFORM_SET_TARGET

#define I2C_PLATFORM_SET_TARGET ( h)
Value:
void i2c_platform_set_target_handle(struct capi_i2c_controller_handle *handle)
Definition i2c_platform_init.c:72

◆ I2C_TARGET_ADDR

#define I2C_TARGET_ADDR   0x42U

◆ I2C_TARGET_EXTRA_INIT

#define I2C_TARGET_EXTRA_INIT   { .hi2c = NULL, .i2c_timing = 0x20303E5D }

◆ I2C_TARGET_EXTRA_TYPE

#define I2C_TARGET_EXTRA_TYPE   struct stm32_i2c_extra_config

◆ I2C_TARGET_IDENTIFIER

#define I2C_TARGET_IDENTIFIER   2U

◆ I2C_TARGET_OPS

#define I2C_TARGET_OPS   &stm32_capi_i2c_ops

◆ IRQ_CTRL_IDENTIFIER

#define IRQ_CTRL_IDENTIFIER   0U

◆ PLATFORM_NAME

#define PLATFORM_NAME   "STM32"

◆ SPI_CLK_FREQ

#define SPI_CLK_FREQ   96000000U

◆ SPI_DEVICE_MODE

#define SPI_DEVICE_MODE   CAPI_SPI_MODE_0

◆ SPI_DEVICE_NATIVE_CS

#define SPI_DEVICE_NATIVE_CS   0x01U

◆ SPI_DEVICE_SPEED_HZ

#define SPI_DEVICE_SPEED_HZ   1000000U

◆ SPI_EXTRA_INIT

#define SPI_EXTRA_INIT
Value:
{ .hspi = &hspi1, \
.get_input_clock = NULL, \
.alternate = 0U, \
.dma_handle = NULL, \
.rxdma_ch_id = 0U, \
.txdma_ch_id = 0U, \
.irq_num = SPI1_IRQn }
SPI_HandleTypeDef hspi1

◆ SPI_EXTRA_TYPE

#define SPI_EXTRA_TYPE   struct stm32_spi_extra_config

◆ SPI_HAS_DMA

#define SPI_HAS_DMA   0

◆ SPI_HAS_IRQ

#define SPI_HAS_IRQ   1

◆ SPI_IDENTIFIER

#define SPI_IDENTIFIER   ((uint64_t)(uintptr_t)SPI1)

◆ SPI_OPS

#define SPI_OPS   &stm32_capi_spi_ops

◆ TIMER_COMPARE_VALUE

#define TIMER_COMPARE_VALUE   0x8000U

◆ TIMER_COUNTER_MAX

#define TIMER_COUNTER_MAX   0x1FFFFU

◆ TIMER_DIRECTION

#define TIMER_DIRECTION   CAPI_TIMER_COUNT_UP

◆ TIMER_EXTRA_INIT

#define TIMER_EXTRA_INIT
Value:
{ .htim = NULL, \
.get_input_clock = NULL, \
.irq_num = TIM2_IRQn }

◆ TIMER_EXTRA_TYPE

#define TIMER_EXTRA_TYPE   struct stm32_capi_timer_extra_config

◆ TIMER_HAS_COMPARE

#define TIMER_HAS_COMPARE   1

◆ TIMER_HAS_IRQ

#define TIMER_HAS_IRQ   1

◆ TIMER_IDENTIFIER

#define TIMER_IDENTIFIER   2U

◆ TIMER_INPUT_CLK_HZ

#define TIMER_INPUT_CLK_HZ   0U /* auto-detected from APB1 */

◆ TIMER_OPS

#define TIMER_OPS   &stm32_capi_timer_ops

◆ TIMER_OUTPUT_FREQ_HZ

#define TIMER_OUTPUT_FREQ_HZ   1000000U /* 1 MHz -> 1 us resolution */

◆ TIMER_RATE_COUNTER_MASK

#define TIMER_RATE_COUNTER_MASK   0x1FFFFU

◆ TIMER_RATE_TOLERANCE_PCT

#define TIMER_RATE_TOLERANCE_PCT   5U

◆ TIMER_RATE_WINDOW_US

#define TIMER_RATE_WINDOW_US   10000U

◆ UART_BAUDRATE

#define UART_BAUDRATE   115200U

◆ UART_EXTRA_INIT

#define UART_EXTRA_INIT   { .huart = &huart3 }

◆ UART_EXTRA_TYPE

#define UART_EXTRA_TYPE   struct stm32_uart_extra_config

◆ UART_IDENTIFIER

#define UART_IDENTIFIER   0U

◆ UART_OPS

#define UART_OPS   &stm32_capi_uart_ops

Function Documentation

◆ i2c_platform_deinit()

void i2c_platform_deinit ( void )

◆ i2c_platform_init()

int i2c_platform_init ( void )

◆ i2c_platform_set_target_handle()

void i2c_platform_set_target_handle ( struct capi_i2c_controller_handle * handle)

Variable Documentation

◆ hspi1

SPI_HandleTypeDef hspi1
extern

◆ huart3

UART_HandleTypeDef huart3
extern