IIO firmware for the AD4110

Dependencies:   tempsensors sdp_k1_sdram

Revision:
0:6ca37a8f8ba9
diff -r 000000000000 -r 6ca37a8f8ba9 app/app_config.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/app_config.h	Wed Jul 27 17:04:15 2022 +0530
@@ -0,0 +1,220 @@
+/*************************************************************************//**
+ *   @file   app_config.h
+ *   @brief  Configuration file for AD4110_1 IIO firmware application
+******************************************************************************
+* Copyright (c) 2022 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.
+*****************************************************************************/
+
+#ifndef APP_CONFIG_H
+#define APP_CONFIG_H
+
+/******************************************************************************/
+/***************************** Include Files **********************************/
+/******************************************************************************/
+
+#include <stdint.h>
+#include "no_os_gpio.h"
+
+/******************************************************************************/
+/********************** Macros and Constants Definition ***********************/
+/******************************************************************************/
+
+/* List of supported platforms*/
+#define	MBED_PLATFORM		1
+
+/* List of demo mode configurations */
+#define VOLTAGE_MODE_CONFIG	1
+#define CURRENT_MODE_CONFIG	2
+#define FIELD_POWER_SUPPLY_CONFIG	3
+#define THERMOCOUPLE_CONFIG	4
+#define RTD_CONFIG		5
+
+#define ACTIVE_DEVICE		"ad4110"
+
+/* Select the active platform */
+#if !defined(ACTIVE_PLATFORM)
+#define ACTIVE_PLATFORM	    MBED_PLATFORM
+#endif
+
+/* Select the demo mode configuration default is RTD mode */
+#if !defined(ACTIVE_DEMO_MODE_CONFIG)
+#define ACTIVE_DEMO_MODE_CONFIG		RTD_CONFIG
+#endif
+
+/* List of data capture modes for AD717x device */
+#define CONTINUOUS_DATA_CAPTURE		0
+#define BURST_DATA_CAPTURE			1
+
+/* Macros for stringification */
+#define XSTR(s)		#s
+#define STR(s)		XSTR(s)
+
+#if (ACTIVE_PLATFORM == MBED_PLATFORM)
+#include "app_config_mbed.h"
+
+/* Redefine the init params structure mapping w.r.t. platform */
+#define uart_extra_init_params mbed_uart_extra_init_params
+#define spi_extra_init_params mbed_spi_extra_init_params
+#define ext_int_extra_init_params mbed_ext_int_extra_init_params
+#define IRQ_INT_ID	EXTERNAL_INT_ID1
+#define csb_platform_ops mbed_gpio_ops
+#define irq_platform_ops mbed_irq_ops
+#define spi_platform_ops mbed_spi_ops
+#define HW_CARRIER_NAME		STR(TARGET_NAME)
+#else
+#error "No/Invalid active platform selected"
+#endif
+
+#define HW_MEZZANINE_NAME	"EVAL-AD4110-1SDZ"
+#define HW_NAME			ACTIVE_DEVICE
+
+/* Baud rate for IIO application UART interface */
+#define IIO_UART_BAUD_RATE	230400
+
+/* Enable the UART/VirtualCOM port connection (default VCOM) */
+//#define USE_PHY_COM_PORT		// Uncomment to select UART
+
+#if !defined(USE_PHY_COM_PORT)
+
+/* VCOM Serial number definition */
+#define	FIRMWARE_NAME	"ad4110-1_iio-application"
+
+#if !defined(PLATFORM_NAME)
+#define PLATFORM_NAME	"SDP_K1"
+#endif
+
+#if !defined(EVB_INTERFACE)
+#define EVB_INTERFACE	"ARDUINO"
+#endif
+
+/* Below USB configurations (VID and PID) are owned and assigned by ADI.
+ * If intended to distribute software further, use the VID and PID owned by your
+ * organization */
+#define VIRTUAL_COM_PORT_VID	0x0456
+#define VIRTUAL_COM_PORT_PID	0xb66c
+
+#define VIRTUAL_COM_SERIAL_NUM	(FIRMWARE_NAME "_" PLATFORM_NAME "_" EVB_INTERFACE)
+#endif // !defined(USE_PHY_COM_PORT)
+
+/* Select the ADC data capture mode (default is CC mode) */
+#if !defined(DATA_CAPTURE_MODE)
+#define DATA_CAPTURE_MODE	BURST_DATA_CAPTURE
+#endif
+
+/* The below macro defines the register set to be accessed during the debug
+ * register read/write via IIO Client. Assign the below macro to AD4110_AFE
+ * for AFE register read/write */
+#define REGISTER_READ_SEL   A4110_ADC
+
+/* Enable/Disable the use of SDRAM for ADC data capture buffer */
+//#define USE_SDRAM_CAPTURE_BUFFER	// Uncomment to use SDRAM as data buffer
+
+/* AD4110 Sampling Rate of the device in SPS, excluding the fractional part.
+ * The following are the possible values of sampling frequencies (in SPS):
+ *
+ * 125000 , 62500, 31250, 25000, 15625, 10390, 4994, 2498,
+ * 1000, 500, 395, 200, 100, 59, 49, 20, 16, 10, 5. */
+
+/* Sampling rate- The default sampling rate is 125000 SPS, which is the maximum
+ * output data rate. */
+#define AD4110_SAMPLING_RATE 125000
+
+/* Assign the ODR bitfield value depending on chosen sampling frequency */
+#if (AD4110_SAMPLING_RATE == 125000)
+#define AD4110_ODR_SEL	    0
+#elif (AD4110_SAMPLING_RATE == 62500)
+#define Ad4110_ODR_SEL	    2
+#elif (AD4110_SAMPLING_RATE == 31250)
+#define AD4110_ODR_SEL	    4
+#elif (AD4110_SAMPLING_RATE == 25000)
+#define AD4110_ODR_SEL	    5
+#elif (AD4110_SAMPLING_RATE == 15625)
+#define AD4110_ODR_SEL	    6
+#elif (AD4110_SAMPLING_RATE == 10390)
+#define AD4110_ODR_SEL	    7
+#elif (AD4110_SAMPLING_RATE == 4994)
+#define AD4110_ODR_SEL	    8
+#elif (AD4110_SAMPLING_RATE == 2498)
+#define AD4110_ODR_SEL	    9
+#elif (AD4110_SAMPLING_RATE == 1000)
+#define AD4110_ODR_SEL	    10
+#elif (AD4110_SAMPLING_RATE == 500)
+#define AD4110_ODR_SEL	    11
+#elif (AD4110_SAMPLING_RATE == 395)
+#define AD4110_ODR_SEL	    12
+#elif (AD4110_SAMPLING_RATE == 200)
+#define AD4110_ODR_SEL	    13
+#elif (AD4110_SAMPLING_RATE == 100)
+#define AD4110_ODR_SEL	    14
+#elif (AD4110_SAMPLING_RATE == 59)
+#define AD4110_ODR_SEL	    15
+#elif (AD4110_SAMPLING_RATE == 49)
+#define AD4110_ODR_SEL	    16
+#elif (AD4110_SAMPLING_RATE == 20)
+#define AD4110_ODR_SEL	    17
+#elif (AD4110_SAMPLING_RATE == 16)
+#define AD4110_ODR_SEL	    18
+#elif (AD4110_SAMPLING_RATE == 10)
+#define AD4110_ODR_SEL	    19
+#elif (AD4110_SAMPLING_RATE == 5)
+#define AD4110_ODR_SEL	    20
+#else
+#warning "Invalid sampling frequency selection, using 125000 as default"
+#define AD4110_SAMPLING_RATE 125000
+#define AD4110_ODR_SEL	     0
+#endif
+
+/* Include user config files and params according to active/selected demo mode config */
+#if (ACTIVE_DEMO_MODE_CONFIG == VOLTAGE_MODE_CONFIG)
+#include "ad4110_user_config.h"
+#define ad4110_init_params	ad4110_user_config_params
+#elif (ACTIVE_DEMO_MODE_CONFIG == CURRENT_MODE_CONFIG)
+#include "ad4110_current_mode_config.h"
+#define ad4110_init_params	ad4110_current_mode_init_params
+#elif (ACTIVE_DEMO_MODE_CONFIG == FIELD_POWER_SUPPLY_CONFIG)
+#include "ad4110_field_power_supply_config.h"
+#define ad4110_init_params	ad4110_field_power_supply_mode_init_params
+#elif (ACTIVE_DEMO_MODE_CONFIG == THERMOCOUPLE_CONFIG)
+#include "ad4110_thermocouple_mode_config.h"
+#define ad4110_init_params	ad4110_thermocouple_mode_init_params
+#elif (ACTIVE_DEMO_MODE_CONFIG == RTD_CONFIG)
+#include "ad4110_rtd_mode_config.h"
+#define ad4110_init_params ad4110_rtd_mode_init_params
+#endif
+
+/* ADC Resolution */
+#define AD4110_RESOLUTION   24
+
+/* ADC internal reference voltage */
+#define AD4110_REF_VOLTAGE  2.5
+
+/* ADC number of channels */
+#define AD4110_NUM_CHANNELS 4
+
+/* ADC max count (full scale value) for unipolar inputs */
+#define ADC_MAX_COUNT_UNIPOLAR	(uint32_t)((1 << AD4110_RESOLUTION) - 1)
+
+/* ADC max count (full scale value) for bipolar inputs */
+#define ADC_MAX_COUNT_BIPOLAR	(uint32_t)(1 << (AD4110_RESOLUTION-1))
+
+/******************************************************************************/
+/********************** Variables and User Defined Data Types *****************/
+/******************************************************************************/
+
+/******************************************************************************/
+/************************ Public Declarations *********************************/
+/******************************************************************************/
+
+extern struct no_os_uart_desc *uart_desc;
+extern no_os_gpio_desc *csb_gpio;
+extern struct no_os_irq_ctrl_desc *external_int_desc;
+int32_t init_system(void);
+
+#endif // APP_CONFIG_H
+