Example Program for EVAL-AD7606
Dependencies: platform_drivers
app/ad7606_user_config.c@1:819ac9aa5667, 2020-10-05 (annotated)
- Committer:
- mahphalke
- Date:
- Mon Oct 05 13:45:15 2020 +0530
- Revision:
- 1:819ac9aa5667
- Child:
- 6:32de160dce43
AD7606 IIO Application- Initial Revision
Who changed what in which revision?
User | Revision | Line number | New 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 | }; |