Example Program for EVAL-AD7606

Dependencies:   platform_drivers

Committer:
Kjansen45
Date:
Mon Oct 19 07:54:56 2020 +0000
Revision:
5:42b1eeef29d9
Parent:
1:819ac9aa5667
Child:
6:32de160dce43
Repository update

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