precision-converters-firmware
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
app_config.h
Go to the documentation of this file.
1/*************************************************************************/
14#ifndef APP_CONFIG_H
15#define APP_CONFIG_H
16
17/******************************************************************************/
18/***************************** Include Files **********************************/
19/******************************************************************************/
20#include <stdint.h>
21#include "common.h"
22#include "no_os_gpio.h"
23#include "no_os_uart.h"
24#include "no_os_irq.h"
25#include "no_os_pwm.h"
26
27/******************************************************************************/
28/********************** Macros and Constants Definition ***********************/
29/******************************************************************************/
30/* List of supported platforms */
31#define STM32_PLATFORM 1
32
33/* List of data transmit methods supported by hardware platform */
34#define SPI_DMA 0
35#define SPI_INTERRUPT 1
36
37/* List of supported DAC data stream modes */
38#define CYCLIC_STREAM 0
39#define ARBITRARY_STREAM 1
40
41/* Macros for stringification */
42#define XSTR(s) #s
43#define STR(s) XSTR(s)
44
45/******************************************************************************/
46
47/* Name of active device */
48#define ACTIVE_DEVICE_NAME "ad3530r"
49
50/* Select the active platform */
51#if !defined(ACTIVE_PLATFORM)
52#define ACTIVE_PLATFORM STM32_PLATFORM
53#endif
54
55/* Select the DAC data stream mode (default is Cyclic stream mode) */
56#if !defined(DATA_STREAM_MODE)
57#define DATA_STREAM_MODE CYCLIC_STREAM
58#endif
59
60/* Enable the UART/VirtualCOM port connection (default VCOM) */
61//#define USE_PHY_COM_PORT // Uncomment to select UART
62
63#if !defined(USE_PHY_COM_PORT)
64#define USE_VIRTUAL_COM_PORT
65#endif
66
67/* Interface mode either spi interrupt or spi dma (default spi dma) */
68//#define INTERFACE_MODE SPI_INTERRUPT // Uncomment to select spi interrupt
69
70#if !defined(INTERFACE_MODE)
71#define INTERFACE_MODE SPI_DMA
72#endif
73
74#if (ACTIVE_PLATFORM == STM32_PLATFORM)
75#include "app_config_stm32.h"
76#else
77#error "No/Invalid active platform selected"
78#endif
79
80/* HW ID of the target EVB */
81#define HW_MEZZANINE_NAME "EVAL-AD3530RARDZ"
82
83/* DAC resolution for active device */
84#define DAC_RESOLUTION 16
85
86/* Number of DAC channels */
87#define DAC_CHANNELS 8
88
89/* DAC reference voltage (Range: 2.5 to 3.3v) */
90#define DAC_REF_VOLTAGE 2.5
91
92/* DAC max count (full scale value) */
93#define DAC_MAX_COUNT (uint32_t)((1 << DAC_RESOLUTION) - 1)
94
95/****** Macros used to form a VCOM serial number ******/
96#define FIRMWARE_NAME "ad353xr_iio"
97
98#define DEVICE_NAME "DEV_AD3530R"
99
100#if !defined(PLATFORM_NAME)
101#define PLATFORM_NAME HW_CARRIER_NAME
102#endif
103/******/
104
105/* Below USB configurations (VID and PID) are owned and assigned by ADI.
106 * If intended to distribute software further, use the VID and PID owned by your
107 * organization */
108#define VIRTUAL_COM_PORT_VID 0x0456
109#define VIRTUAL_COM_PORT_PID 0xb66c
110
111/* Serial number string is formed as: application name + device (target) name + platform (host) name */
112#define VIRTUAL_COM_SERIAL_NUM (FIRMWARE_NAME "_" DEVICE_NAME "_" STR(PLATFORM_NAME))
113
114/* Baud rate for IIO application UART interface */
115#define IIO_UART_BAUD_RATE (230400)
116
117/* Check if any serial port available for use as console stdio port */
118#if defined(USE_PHY_COM_PORT)
119/* If PHY com is selected, VCOM or alternate PHY com port can act as a console stdio port */
120#if (ACTIVE_PLATFORM == STM32_PLATFORM)
121#define CONSOLE_STDIO_PORT_AVAILABLE
122#endif
123#else
124/* If VCOM is selected, PHY com port will/should act as a console stdio port */
125#define CONSOLE_STDIO_PORT_AVAILABLE
126#endif
127
128/* Enable/Disable the use of SDRAM for DAC data streaming buffer */
129//#define USE_SDRAM // Uncomment to use SDRAM for data buffer
130
131/* PWM period and duty cycle */
132#define CONV_TRIGGER_PERIOD_NSEC(x) (((float)(1.0 / x) * 1000000) * 1000)
133#define CONV_TRIGGER_DUTY_CYCLE_NSEC(x,y) (((float)y / 100) * CONV_TRIGGER_PERIOD_NSEC(x))
134
135/******************************************************************************/
136/********************** Variables and User Defined Data Types *****************/
137/******************************************************************************/
138
139/******************************************************************************/
140/************************ Public Declarations *********************************/
141/******************************************************************************/
142extern struct no_os_pwm_desc *pwm_desc;
143extern struct no_os_uart_desc *uart_iio_com_desc;
144extern struct no_os_gpio_desc *trigger_gpio_desc;
145extern struct no_os_irq_ctrl_desc *trigger_irq_desc;
146extern struct no_os_spi_init_param spi_init_params;
147extern struct no_os_eeprom_desc *eeprom_desc;
148extern struct no_os_pwm_init_param pwm_init_params;
149extern struct no_os_gpio_desc* csb_gpio_desc;
150extern struct no_os_pwm_init_param pwm_init_params;
151
152#if (INTERFACE_MODE == SPI_DMA)
153extern struct no_os_pwm_desc* tx_trigger_desc;
154extern struct no_os_dma_init_param ad3530r_dma_init_param;
155extern struct no_os_gpio_init_param pwm_gpio_params;
156#endif
157
158int32_t init_pwm(void);
159int32_t init_system(void);
160
161#endif //APP_CONFIG_H
struct no_os_irq_ctrl_desc * trigger_irq_desc
Definition app_config.c:103
int32_t init_system(void)
Initialize the system peripherals.
Definition app_config.c:185
struct no_os_dma_init_param ad3530r_dma_init_param
Definition app_config.c:152
struct no_os_pwm_init_param pwm_init_params
Definition app_config.h:150
struct no_os_eeprom_desc * eeprom_desc
Definition app_config.c:176
struct no_os_pwm_desc * tx_trigger_desc
Definition app_config.c:149
struct no_os_pwm_desc * pwm_desc
Definition app_config.c:106
struct no_os_spi_init_param spi_init_params
Definition ad3530r_user_config.c:48
struct no_os_gpio_desc * trigger_gpio_desc
Definition app_config.c:170
struct no_os_gpio_desc * csb_gpio_desc
Definition app_config.c:179
struct no_os_uart_desc * uart_iio_com_desc
Definition app_config.c:164
struct no_os_gpio_init_param pwm_gpio_params
Definition app_config.h:181
int32_t init_pwm(void)
Initialize the PWM interface.
Definition app_config.c:267
Header file for STM32 platform configurations.