precision-converters-firmware
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
app_config.h
Go to the documentation of this file.
1/*************************************************************************/
13#ifndef APP_CONFIG_H
14#define APP_CONFIG_H
15
16/******************************************************************************/
17/***************************** Include Files **********************************/
18/******************************************************************************/
19
20#include <stdint.h>
21#include "ad7091r8.h"
22#include "no_os_pwm.h"
23#include "no_os_util.h"
24
25/******************************************************************************/
26/********************** Macros and Constants Definition ***********************/
27/******************************************************************************/
28
29/* List of supported platforms */
30#define STM32_PLATFORM 1
31
32/* List of data capture modes for AD7091R device */
33#define CONTINUOUS_DATA_CAPTURE 0
34#define BURST_DATA_CAPTURE 1
35
36/* List of data capture methods supported by hardware platform */
37#define SPI_DMA 0
38#define SPI_INTERRUPT 1
39
40/* Macros for stringification */
41#define XSTR(s) #s
42#define STR(s) XSTR(s)
43
44/* Select the ADC data capture mode (default is CC mode) */
45#if !defined(DATA_CAPTURE_MODE)
46#define DATA_CAPTURE_MODE BURST_DATA_CAPTURE
47#endif
48
49/******************************************************************************/
50
51/* Select the active platform (default is STM32) */
52#if !defined(ACTIVE_PLATFORM)
53#define ACTIVE_PLATFORM STM32_PLATFORM
54#endif
55
56/* Enable the UART port connection */
57/* Enable the UART/VirtualCOM port connection (default VCOM) */
58//#define USE_PHY_COM_PORT // Uncomment to select UART
59
60#if !defined(USE_PHY_COM_PORT)
61#define USE_VIRTUAL_COM_PORT
62#endif
63
64/* Check if any serial port available for use as console stdio port */
65#if defined(USE_PHY_COM_PORT)
66/* If PHY com is selected, VCOM or alternate PHY com port can act as a console stdio port */
67#if (ACTIVE_PLATFORM == STM32_PLATFORM)
68#define CONSOLE_STDIO_PORT_AVAILABLE
69#endif
70#else
71/* If VCOM is selected, PHY com port will/should act as a console stdio port */
72#define CONSOLE_STDIO_PORT_AVAILABLE
73#endif
74
75/* Note: The STM32 platform supports SPI interrupt and SPI DMA Mode
76 * for data capturing. (Default is SPI DMA mode)
77 * */
78//#define INTERFACE_MODE SPI_INTERRUPT // Uncomment to select spi interface mode
79
80#if !defined(INTERFACE_MODE)
81#define INTERFACE_MODE SPI_DMA
82#endif
83
84#include "app_config_stm32.h"
85
86/* ADC Internal VREF in millivolts */
87#define ADC_INTERNAL_VREF_MV 2500
88
89/* ADC VREF in millivolts (Default is internal reference)
90 * Note: When using the internal reference, the on-chip reference value is fixed at 2.5V.
91 * External reference value can be applied in range of 1.0V to Vdd */
92//#define ADC_VREF_MV 2500
93
94#if !defined(ADC_VREF_MV)
95#define ADC_VREF_MV ADC_INTERNAL_VREF_MV
96#endif
97
98/* ADC VDD Input in Volts */
99#define ADC_VDD_V 3.3
100
101/* ADC Vref minimum value in Volts */
102#define ADC_MIN_VREF 1.0
103
104/* Active device and resolution */
105#define ACTIVE_DEVICE_NAME "ad7091r-8"
106#define DEVICE_NAME "DEV_AD7091R_8"
107#define ACTIVE_DEVICE_ID AD7091R8
108#define ADC_RESOLUTION 12
109
110/* HW ID of the target EVB */
111#define HW_MEZZANINE_NAME "EVAL-AD7091R-8ARDZ"
112
113/* ADC max count (full scale value) */
114#define ADC_MAX_COUNT (uint32_t)((1 << ADC_RESOLUTION) - 1)
115
116#define HW_CARRIER_NAME TARGET_NAME
117
118#define BYTES_PER_SAMPLE sizeof(uint16_t)
119
120/****** Macros used to form a VCOM serial number ******/
121
122/* Baud rate for IIO application UART interface */
123#define IIO_UART_BAUD_RATE (230400)
124
125/* Used to form a VCOM serial number */
126#define FIRMWARE_NAME "ad7091r_iio"
127
128#if !defined(PLATFORM_NAME)
129#define PLATFORM_NAME HW_CARRIER_NAME
130#endif
131
132/* Below USB configurations (VID and PID) are owned and assigned by ADI.
133 * If intended to distribute software further, use the VID and PID owned by your
134 * organization */
135#define VIRTUAL_COM_PORT_VID 0x0456
136#define VIRTUAL_COM_PORT_PID 0xb66c
137/* Serial number string is formed as: application name + device (target) name + platform (host) name */
138#define VIRTUAL_COM_SERIAL_NUM (FIRMWARE_NAME "_" DEVICE_NAME "_" STR(PLATFORM_NAME))
139
140/* Enable/Disable the use of SDRAM for ADC data capture buffer */
141//#define USE_SDRAM // Uncomment to use SDRAM for data buffer
142
143/* PWM period and duty cycle */
144#define CONV_TRIGGER_PERIOD_NSEC(x) (((float)(1.0 / x) * 1000000) * 1000)
145#define CONV_TRIGGER_DUTY_CYCLE_NSEC(x) (((float)PWM_DUTY_CYCLE_PERCENT / 100) * CONV_TRIGGER_PERIOD_NSEC(x))
146
147/******************************************************************************/
148/************************ Public Declarations *********************************/
149/******************************************************************************/
150
151extern struct no_os_pwm_desc *pwm_desc;
152extern struct no_os_uart_desc *uart_iio_com_desc;
153extern struct no_os_uart_desc *uart_console_stdio_desc;
154extern struct no_os_eeprom_desc *eeprom_desc;
155extern struct no_os_irq_ctrl_desc *trigger_irq_desc;
156extern struct no_os_pwm_init_param pwm_init_params;
157
158#if (INTERFACE_MODE == SPI_DMA)
159extern struct no_os_pwm_desc* tx_trigger_desc;
160extern struct no_os_pwm_init_param cs_init_params;
161extern struct no_os_dma_init_param ad7091r_dma_init_param;
162extern struct no_os_gpio_init_param pwm_gpio_params;
163extern struct no_os_gpio_init_param cs_pwm_gpio_params;
164extern volatile struct iio_device_data* global_iio_dev_data;
165extern uint32_t global_nb_of_samples;
166extern volatile uint32_t* buff_start_addr;
167extern int32_t data_read;
168#endif
169
170extern void burst_capture_callback(void *context);
171int init_system(void);
172int init_pwm_trigger(void);
173
174#endif /* APP_CONFIG_H_ */
int32_t init_pwm_trigger(void)
Initialize the PWM trigger contoller.
Definition app_config.c:161
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_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_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
struct no_os_gpio_init_param cs_pwm_gpio_params
Definition app_config.h:180
struct no_os_pwm_init_param cs_init_params
Definition app_config.c:133
volatile uint32_t * buff_start_addr
Definition ad405x_iio.c:170
int32_t data_read
Definition ad405x_iio.c:329
struct no_os_uart_desc * uart_console_stdio_desc
Definition app_config.c:100
uint32_t global_nb_of_samples
Definition ad469x_iio.c:284
void burst_capture_callback(void *context)
Interrupt Service Routine to monitor end of conversion event.
Definition ad469x_iio.c:1037
volatile struct iio_device_data * global_iio_dev_data
Definition ad469x_iio.c:281
struct no_os_dma_init_param ad7091r_dma_init_param
Definition app_config.c:175
Header file for STM32 platform configurations.