Example Program for EVAL-AD7606
Dependencies: platform_drivers
app/ad7606_user_config.c@7:054dbd5e1f45, 2021-08-03 (annotated)
- 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?
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 | ****************************************************************************** |
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 | }; |