Example program for EVAL-AD4696.

Dependencies:   platform_drivers

Committer:
Kjansen
Date:
Thu Sep 30 11:58:20 2021 +0100
Revision:
1:edd760d6380f
AD4696 IIO Application- Initial Revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kjansen 1:edd760d6380f 1 /*************************************************************************//**
Kjansen 1:edd760d6380f 2 * @file app_config.h
Kjansen 1:edd760d6380f 3 * @brief Configuration file for AD4696 device applications
Kjansen 1:edd760d6380f 4 ******************************************************************************
Kjansen 1:edd760d6380f 5 * Copyright (c) 2021 Analog Devices, Inc.
Kjansen 1:edd760d6380f 6 *
Kjansen 1:edd760d6380f 7 * All rights reserved.
Kjansen 1:edd760d6380f 8 *
Kjansen 1:edd760d6380f 9 * This software is proprietary to Analog Devices, Inc. and its licensors.
Kjansen 1:edd760d6380f 10 * By using this software you agree to the terms of the associated
Kjansen 1:edd760d6380f 11 * Analog Devices Software License Agreement.
Kjansen 1:edd760d6380f 12 *****************************************************************************/
Kjansen 1:edd760d6380f 13
Kjansen 1:edd760d6380f 14 #ifndef APP_CONFIG_H
Kjansen 1:edd760d6380f 15 #define APP_CONFIG_H
Kjansen 1:edd760d6380f 16
Kjansen 1:edd760d6380f 17 /******************************************************************************/
Kjansen 1:edd760d6380f 18 /***************************** Include Files **********************************/
Kjansen 1:edd760d6380f 19 /******************************************************************************/
Kjansen 1:edd760d6380f 20
Kjansen 1:edd760d6380f 21 #include <stdint.h>
Kjansen 1:edd760d6380f 22
Kjansen 1:edd760d6380f 23 /******************************************************************************/
Kjansen 1:edd760d6380f 24 /********************** Macros and Constants Definition ***********************/
Kjansen 1:edd760d6380f 25 /******************************************************************************/
Kjansen 1:edd760d6380f 26
Kjansen 1:edd760d6380f 27 /* List of supported platforms*/
Kjansen 1:edd760d6380f 28 #define MBED_PLATFORM 1
Kjansen 1:edd760d6380f 29
Kjansen 1:edd760d6380f 30 /* Select the active platform */
Kjansen 1:edd760d6380f 31 #define ACTIVE_PLATFORM MBED_PLATFORM
Kjansen 1:edd760d6380f 32
Kjansen 1:edd760d6380f 33 #if (ACTIVE_PLATFORM == MBED_PLATFORM)
Kjansen 1:edd760d6380f 34 #include "app_config_mbed.h"
Kjansen 1:edd760d6380f 35
Kjansen 1:edd760d6380f 36 /* Used to form a VCOM serial number */
Kjansen 1:edd760d6380f 37 #define FIRMWARE_NAME "ad4696_mbed_iio_application"
Kjansen 1:edd760d6380f 38
Kjansen 1:edd760d6380f 39 /* Redefine the init params structure mapping w.r.t. platform */
Kjansen 1:edd760d6380f 40 #define bsy_gpio_extra_init_params mbed_gpio_bsy_extra_init_params
Kjansen 1:edd760d6380f 41 #define ext_int_extra_init_params mbed_ext_int_extra_init_params
Kjansen 1:edd760d6380f 42 #define uart_extra_init_params mbed_uart_extra_init_params
Kjansen 1:edd760d6380f 43 #define spi_extra_init_params mbed_spi_extra_init_params
Kjansen 1:edd760d6380f 44 #else
Kjansen 1:edd760d6380f 45 #error "No/Invalid active platform selected"
Kjansen 1:edd760d6380f 46 #endif
Kjansen 1:edd760d6380f 47
Kjansen 1:edd760d6380f 48 // **** Note for User: ACTIVE_DEVICE selection **** //
Kjansen 1:edd760d6380f 49 /* Define the device type here from the list of below device type defines
Kjansen 1:edd760d6380f 50 * (one at a time. Defining more than one device can result into compile error).
Kjansen 1:edd760d6380f 51 * e.g. #define DEV_AD4696 -> This will make AD4696 as an ACTIVE_DEVICE.
Kjansen 1:edd760d6380f 52 * The ACTIVE_DEVICE is default set to AD4696 if device type is not defined.
Kjansen 1:edd760d6380f 53 * */
Kjansen 1:edd760d6380f 54
Kjansen 1:edd760d6380f 55 //#define DEV_AD4696
Kjansen 1:edd760d6380f 56
Kjansen 1:edd760d6380f 57 #if defined(DEV_AD4696)
Kjansen 1:edd760d6380f 58 #define ACTIVE_DEVICE ID_AD4696
Kjansen 1:edd760d6380f 59 #define ACTIVE_DEVICE_NAME "AD4696"
Kjansen 1:edd760d6380f 60 #elif defined(DEV_AD4695)
Kjansen 1:edd760d6380f 61 #define ACTIVE_DEVICE ID_AD4695
Kjansen 1:edd760d6380f 62 #define ACTIVE_DEVICE_NAME "AD4695"
Kjansen 1:edd760d6380f 63 #else
Kjansen 1:edd760d6380f 64 #warning No/Unsupported ADxxxxy symbol defined. AD4696 defined
Kjansen 1:edd760d6380f 65 #define DEV_AD4696
Kjansen 1:edd760d6380f 66 #define ACTIVE_DEVICE ID_AD4696
Kjansen 1:edd760d6380f 67 #define ACTIVE_DEVICE_NAME "AD4696"
Kjansen 1:edd760d6380f 68 #endif
Kjansen 1:edd760d6380f 69
Kjansen 1:edd760d6380f 70 #if defined(DEV_AD4696)
Kjansen 1:edd760d6380f 71 #define NO_OF_CHANNELS 16
Kjansen 1:edd760d6380f 72 #define ADC_RESOLUTION 16
Kjansen 1:edd760d6380f 73 #elif defined(DEV_AD4695)
Kjansen 1:edd760d6380f 74 #define NO_OF_CHANNELS 16
Kjansen 1:edd760d6380f 75 #define ADC_RESOLUTION 16
Kjansen 1:edd760d6380f 76 #else
Kjansen 1:edd760d6380f 77 /* Default config for AD4696 */
Kjansen 1:edd760d6380f 78 #define NO_OF_CHANNELS 16
Kjansen 1:edd760d6380f 79 #define ADC_RESOLUTION 16
Kjansen 1:edd760d6380f 80 #endif
Kjansen 1:edd760d6380f 81
Kjansen 1:edd760d6380f 82 // **** Note for User: Polarity Mode selection **** //
Kjansen 1:edd760d6380f 83 /* Since the pin pairing option is same for all the channels in
Kjansen 1:edd760d6380f 84 * standard sequencer mode, hence polarity mode for all the
Kjansen 1:edd760d6380f 85 * channels is also kept same to avoid stale ADC output codes.
Kjansen 1:edd760d6380f 86 * Make sure to change the JP6 jumper position on the Eval board to A
Kjansen 1:edd760d6380f 87 * to use the PSEUDO_BIPOLAR_MODE.
Kjansen 1:edd760d6380f 88 *
Kjansen 1:edd760d6380f 89 * Select Pseudo bipolar mode (default is unipolar mode) for all the channels.
Kjansen 1:edd760d6380f 90 * e.g. #define PSEUDO_BIPOLAR_MODE -> This will enable the PSEUDO_BIPOLAR_MODE
Kjansen 1:edd760d6380f 91 * for all the channels.
Kjansen 1:edd760d6380f 92 * */
Kjansen 1:edd760d6380f 93
Kjansen 1:edd760d6380f 94 //#define PSEUDO_BIPOLAR_MODE
Kjansen 1:edd760d6380f 95
Kjansen 1:edd760d6380f 96 /* Pins to be used an interrupt to trigger callback function */
Kjansen 1:edd760d6380f 97 #define EXT_TRIGGER_PIN CONVST_PIN
Kjansen 1:edd760d6380f 98
Kjansen 1:edd760d6380f 99 /* ADC max count (full scale value) for unipolar inputs */
Kjansen 1:edd760d6380f 100 #define ADC_MAX_COUNT_UNIPOLAR (uint32_t)((1 << ADC_RESOLUTION) - 1)
Kjansen 1:edd760d6380f 101
Kjansen 1:edd760d6380f 102 /* ADC max count (full scale value) for bipolar inputs */
Kjansen 1:edd760d6380f 103 #define ADC_MAX_COUNT_BIPOLAR (uint32_t)(1 << (ADC_RESOLUTION-1))
Kjansen 1:edd760d6380f 104
Kjansen 1:edd760d6380f 105 /* Baud rate for IIO application UART interface */
Kjansen 1:edd760d6380f 106 #define IIO_UART_BAUD_RATE (230400)
Kjansen 1:edd760d6380f 107
Kjansen 1:edd760d6380f 108 /****** Macros used to form a VCOM serial number ******/
Kjansen 1:edd760d6380f 109 #if !defined(DEVICE_NAME)
Kjansen 1:edd760d6380f 110 #define DEVICE_NAME "DEV_AD4696"
Kjansen 1:edd760d6380f 111 #endif
Kjansen 1:edd760d6380f 112
Kjansen 1:edd760d6380f 113 #if !defined(PLATFORM_NAME)
Kjansen 1:edd760d6380f 114 #define PLATFORM_NAME "SDP_K1"
Kjansen 1:edd760d6380f 115 #endif
Kjansen 1:edd760d6380f 116 /******/
Kjansen 1:edd760d6380f 117
Kjansen 1:edd760d6380f 118 /* Enable the VirtualCOM port connection/interface. By default serial communication
Kjansen 1:edd760d6380f 119 * is physical UART */
Kjansen 1:edd760d6380f 120 //#define USE_VIRTUAL_COM_PORT
Kjansen 1:edd760d6380f 121
Kjansen 1:edd760d6380f 122 #if defined(USE_VIRTUAL_COM_PORT)
Kjansen 1:edd760d6380f 123 /* Below USB configurations (VID and PID) are owned and assigned by ADI.
Kjansen 1:edd760d6380f 124 * If intended to distribute software further, use the VID and PID owned by your
Kjansen 1:edd760d6380f 125 * organization */
Kjansen 1:edd760d6380f 126 #define VIRTUAL_COM_PORT_VID 0x0456
Kjansen 1:edd760d6380f 127 #define VIRTUAL_COM_PORT_PID 0xb66c
Kjansen 1:edd760d6380f 128 /* Serial number string is formed as: application name + device (target) name + platform (host) name */
Kjansen 1:edd760d6380f 129 #define VIRTUAL_COM_SERIAL_NUM (FIRMWARE_NAME "_" DEVICE_NAME "_" PLATFORM_NAME)
Kjansen 1:edd760d6380f 130 #endif
Kjansen 1:edd760d6380f 131
Kjansen 1:edd760d6380f 132 /******************************************************************************/
Kjansen 1:edd760d6380f 133 /********************** Variables and User Defined Data Types *****************/
Kjansen 1:edd760d6380f 134 /******************************************************************************/
Kjansen 1:edd760d6380f 135
Kjansen 1:edd760d6380f 136 /******************************************************************************/
Kjansen 1:edd760d6380f 137 /************************ Public Declarations *********************************/
Kjansen 1:edd760d6380f 138 /******************************************************************************/
Kjansen 1:edd760d6380f 139
Kjansen 1:edd760d6380f 140 /* UART init parameters structure */
Kjansen 1:edd760d6380f 141 extern struct uart_init_param uart_init_params;
Kjansen 1:edd760d6380f 142
Kjansen 1:edd760d6380f 143 /* PWM descriptor */
Kjansen 1:edd760d6380f 144 extern struct pwm_desc *pwm_desc;
Kjansen 1:edd760d6380f 145
Kjansen 1:edd760d6380f 146 /* Initializing system peripherals */
Kjansen 1:edd760d6380f 147 int32_t init_system(void);
Kjansen 1:edd760d6380f 148
Kjansen 1:edd760d6380f 149 #endif //APP_CONFIG_H