Example Program for EVAL-AD7606

Dependencies:   platform_drivers

Committer:
Kjansen
Date:
Tue Aug 03 11:54:49 2021 +0100
Revision:
7:054dbd5e1f45
Parent:
6:32de160dce43
Modified the ADC data capture module to remove dependancy on type of ADC and it's specific operations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mahphalke 1:819ac9aa5667 1 /*************************************************************************//**
mahphalke 1:819ac9aa5667 2 * @file ad7606_user_config.c
mahphalke 1:819ac9aa5667 3 * @brief User configuration file for AD7606 device
mahphalke 1:819ac9aa5667 4 ******************************************************************************
Kjansen 6:32de160dce43 5 * Copyright (c) 2020-2021 Analog Devices, Inc.
mahphalke 1:819ac9aa5667 6 * All rights reserved.
mahphalke 1:819ac9aa5667 7 *
mahphalke 1:819ac9aa5667 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
mahphalke 1:819ac9aa5667 9 * By using this software you agree to the terms of the associated
mahphalke 1:819ac9aa5667 10 * Analog Devices Software License Agreement.
mahphalke 1:819ac9aa5667 11 *****************************************************************************/
mahphalke 1:819ac9aa5667 12
mahphalke 1:819ac9aa5667 13 /******************************************************************************/
mahphalke 1:819ac9aa5667 14 /***************************** Include Files **********************************/
mahphalke 1:819ac9aa5667 15 /******************************************************************************/
mahphalke 1:819ac9aa5667 16
mahphalke 1:819ac9aa5667 17 #include <stdint.h>
mahphalke 1:819ac9aa5667 18
mahphalke 1:819ac9aa5667 19 #include "app_config.h"
mahphalke 1:819ac9aa5667 20 #include "ad7606_user_config.h"
mahphalke 1:819ac9aa5667 21 #include "ad7606_support.h"
mahphalke 1:819ac9aa5667 22
mahphalke 1:819ac9aa5667 23 /******************************************************************************/
mahphalke 1:819ac9aa5667 24 /********************** Macros and Constants Definition ***********************/
mahphalke 1:819ac9aa5667 25 /******************************************************************************/
mahphalke 1:819ac9aa5667 26
mahphalke 1:819ac9aa5667 27 #define USER_CONFIG_RANGE (DEFAULT_CHN_RANGE * 1000)
mahphalke 1:819ac9aa5667 28
mahphalke 1:819ac9aa5667 29 /******************************************************************************/
mahphalke 1:819ac9aa5667 30 /********************** Variables and User Defined Data Types *****************/
mahphalke 1:819ac9aa5667 31 /******************************************************************************/
mahphalke 1:819ac9aa5667 32
mahphalke 1:819ac9aa5667 33 struct gpio_init_param gpio_init_reset = {
mahphalke 1:819ac9aa5667 34 .number = RESET_PIN,
mahphalke 1:819ac9aa5667 35 .extra = NULL
mahphalke 1:819ac9aa5667 36 };
mahphalke 1:819ac9aa5667 37
mahphalke 1:819ac9aa5667 38 struct gpio_init_param gpio_init_convst = {
mahphalke 1:819ac9aa5667 39 .number = CONVST_PIN,
mahphalke 1:819ac9aa5667 40 .extra = NULL
mahphalke 1:819ac9aa5667 41 };
mahphalke 1:819ac9aa5667 42
mahphalke 1:819ac9aa5667 43 struct gpio_init_param gpio_init_busy = {
mahphalke 1:819ac9aa5667 44 .number = BUSY_PIN,
mahphalke 1:819ac9aa5667 45 .extra = NULL
mahphalke 1:819ac9aa5667 46 };
mahphalke 1:819ac9aa5667 47
mahphalke 1:819ac9aa5667 48 struct gpio_init_param gpio_init_osr0 = {
mahphalke 1:819ac9aa5667 49 .number = OSR0_PIN,
mahphalke 1:819ac9aa5667 50 .extra = NULL
mahphalke 1:819ac9aa5667 51 };
mahphalke 1:819ac9aa5667 52
mahphalke 1:819ac9aa5667 53 struct gpio_init_param gpio_init_osr1 = {
mahphalke 1:819ac9aa5667 54 .number = OSR1_PIN,
mahphalke 1:819ac9aa5667 55 .extra = NULL
mahphalke 1:819ac9aa5667 56 };
mahphalke 1:819ac9aa5667 57
mahphalke 1:819ac9aa5667 58 struct gpio_init_param gpio_init_osr2 = {
mahphalke 1:819ac9aa5667 59 .number = OSR2_PIN,
mahphalke 1:819ac9aa5667 60 .extra = NULL
mahphalke 1:819ac9aa5667 61 };
mahphalke 1:819ac9aa5667 62
mahphalke 1:819ac9aa5667 63 struct gpio_init_param gpio_init_range= {
mahphalke 1:819ac9aa5667 64 .number = RANGE_PIN,
mahphalke 1:819ac9aa5667 65 .extra = NULL
mahphalke 1:819ac9aa5667 66 };
mahphalke 1:819ac9aa5667 67
mahphalke 1:819ac9aa5667 68 struct gpio_init_param gpio_init_stdby = {
mahphalke 1:819ac9aa5667 69 .number = STDBY_PIN,
mahphalke 1:819ac9aa5667 70 .extra = NULL
mahphalke 1:819ac9aa5667 71 };
mahphalke 1:819ac9aa5667 72
mahphalke 1:819ac9aa5667 73 /* Initialize the AD7606 device structure */
mahphalke 1:819ac9aa5667 74 struct ad7606_init_param ad7606_init_str = {
mahphalke 1:819ac9aa5667 75 // Define SPI init parameters structure
mahphalke 1:819ac9aa5667 76 {
mahphalke 1:819ac9aa5667 77 .max_speed_hz = 22500000, // Max SPI Speed
Kjansen 6:32de160dce43 78 .chip_select = SPI_CSB, // Chip Select
mahphalke 1:819ac9aa5667 79 .mode = SPI_MODE_2, // CPOL = 1, CPHA = 1
Kjansen 6:32de160dce43 80 .extra = &spi_extra_init_params // SPI extra configurations
mahphalke 1:819ac9aa5667 81 },
mahphalke 1:819ac9aa5667 82
mahphalke 1:819ac9aa5667 83 .gpio_reset = &gpio_init_reset,
mahphalke 1:819ac9aa5667 84 .gpio_convst = &gpio_init_convst,
mahphalke 1:819ac9aa5667 85 .gpio_busy = &gpio_init_busy,
mahphalke 1:819ac9aa5667 86 .gpio_stby_n = &gpio_init_stdby,
mahphalke 1:819ac9aa5667 87 .gpio_range = &gpio_init_range,
mahphalke 1:819ac9aa5667 88 .gpio_os0 = &gpio_init_osr0,
mahphalke 1:819ac9aa5667 89 .gpio_os1 = &gpio_init_osr1,
mahphalke 1:819ac9aa5667 90 .gpio_os2 = &gpio_init_osr2,
mahphalke 1:819ac9aa5667 91 .gpio_par_ser = NULL,
mahphalke 1:819ac9aa5667 92
mahphalke 1:819ac9aa5667 93 .device_id = ACTIVE_DEVICE,
mahphalke 1:819ac9aa5667 94 .oversampling = { 0, AD7606_OSR_1 },
mahphalke 1:819ac9aa5667 95 .sw_mode = true,
mahphalke 1:819ac9aa5667 96
mahphalke 1:819ac9aa5667 97 // Below settings (except range) applies only to AD7606B and AD7606C devices
mahphalke 1:819ac9aa5667 98
mahphalke 1:819ac9aa5667 99 /* Device Configs */
mahphalke 1:819ac9aa5667 100 {
mahphalke 1:819ac9aa5667 101 .op_mode = AD7606_NORMAL,
mahphalke 1:819ac9aa5667 102 .dout_format = AD7606_1_DOUT,
mahphalke 1:819ac9aa5667 103 .ext_os_clock = false,
mahphalke 1:819ac9aa5667 104 .status_header = false
mahphalke 1:819ac9aa5667 105 },
mahphalke 1:819ac9aa5667 106
mahphalke 1:819ac9aa5667 107 /* Diagnostic flags setting */
mahphalke 1:819ac9aa5667 108 {
mahphalke 1:819ac9aa5667 109 .rom_crc_err_en = false,
mahphalke 1:819ac9aa5667 110 .mm_crc_err_en = false,
mahphalke 1:819ac9aa5667 111 .int_crc_err_en = false,
mahphalke 1:819ac9aa5667 112 .spi_write_err_en = false,
mahphalke 1:819ac9aa5667 113 .spi_read_err_en = false,
mahphalke 1:819ac9aa5667 114 .busy_stuck_high_err_en = false,
mahphalke 1:819ac9aa5667 115 .clk_fs_os_counter_en = false,
mahphalke 1:819ac9aa5667 116 .interface_check_en = false
mahphalke 1:819ac9aa5667 117 },
mahphalke 1:819ac9aa5667 118
mahphalke 1:819ac9aa5667 119 /* Default offset for all channels */
mahphalke 1:819ac9aa5667 120 .offset_ch = { 0, 0, 0, 0, 0, 0, 0, 0 },
mahphalke 1:819ac9aa5667 121
mahphalke 1:819ac9aa5667 122 /* Default phase (0x00) for all channels */
mahphalke 1:819ac9aa5667 123 .phase_ch = { 0, 0, 0, 0, 0, 0, 0, 0 },
mahphalke 1:819ac9aa5667 124
mahphalke 1:819ac9aa5667 125 /* Default gain (0x00) for all channels */
mahphalke 1:819ac9aa5667 126 .gain_ch = { 0, 0, 0, 0, 0, 0, 0, 0 },
mahphalke 1:819ac9aa5667 127
mahphalke 1:819ac9aa5667 128 /* Default range for all channels */
mahphalke 1:819ac9aa5667 129 .range_ch = {
mahphalke 1:819ac9aa5667 130 #if defined(DEV_AD7609)
mahphalke 1:819ac9aa5667 131 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 132 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 133 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 134 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 135 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 136 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 137 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 138 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, true},
mahphalke 1:819ac9aa5667 139 #else
mahphalke 1:819ac9aa5667 140 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 141 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 142 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 143 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 144 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 145 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 146 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false},
mahphalke 1:819ac9aa5667 147 {-USER_CONFIG_RANGE, USER_CONFIG_RANGE, false}
mahphalke 1:819ac9aa5667 148 #endif
mahphalke 1:819ac9aa5667 149 }
mahphalke 1:819ac9aa5667 150 };