Example program for CN0535-FMCZ.
Dependencies: platform_drivers AD77681
cn0535_init_params.h@2:998f1de78dae, 2021-04-12 (annotated)
- Committer:
- jngarlitos
- Date:
- Mon Apr 12 07:44:03 2021 +0000
- Revision:
- 2:998f1de78dae
- Parent:
- 1:f3b5e79a8488
Update license of EVAL-CN0535-FMCZ example program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jngarlitos | 2:998f1de78dae | 1 | /*! |
jngarlitos | 2:998f1de78dae | 2 | ***************************************************************************** |
jngarlitos | 2:998f1de78dae | 3 | *@file: cn0353_init_params.h |
jngarlitos | 2:998f1de78dae | 4 | * |
jngarlitos | 2:998f1de78dae | 5 | *@brief: initial parameters file for EVAL-CN0535-FMCZ example program |
jngarlitos | 2:998f1de78dae | 6 | * |
jngarlitos | 2:998f1de78dae | 7 | *@details: initial parameters file for EVAL-CN0535-FMCZ example program |
jngarlitos | 2:998f1de78dae | 8 | *----------------------------------------------------------------------------- |
jngarlitos | 2:998f1de78dae | 9 | * |
jngarlitos | 2:998f1de78dae | 10 | Copyright (c) 2021 Analog Devices, Inc. |
jngarlitos | 2:998f1de78dae | 11 | All rights reserved. |
jngarlitos | 2:998f1de78dae | 12 | |
jngarlitos | 2:998f1de78dae | 13 | This software is proprietary to Analog Devices, Inc. and its licensors. |
jngarlitos | 2:998f1de78dae | 14 | By using this software you agree to the terms of the associated |
jngarlitos | 2:998f1de78dae | 15 | Analog Devices Software License Agreement. |
jngarlitos | 2:998f1de78dae | 16 | *****************************************************************************/ |
jngarlitos | 2:998f1de78dae | 17 | |
jngarlitos | 1:f3b5e79a8488 | 18 | #ifndef _CN0353_INIT_PARAMS_H_ |
jngarlitos | 1:f3b5e79a8488 | 19 | #define _CN0353_INIT_PARAMS_H_ |
jngarlitos | 1:f3b5e79a8488 | 20 | |
jngarlitos | 1:f3b5e79a8488 | 21 | #ifdef __cplusplus |
jngarlitos | 1:f3b5e79a8488 | 22 | extern "C" |
jngarlitos | 1:f3b5e79a8488 | 23 | { |
jngarlitos | 1:f3b5e79a8488 | 24 | #endif |
jngarlitos | 1:f3b5e79a8488 | 25 | #include <mbed.h> |
jngarlitos | 1:f3b5e79a8488 | 26 | #include <stdint.h> |
jngarlitos | 1:f3b5e79a8488 | 27 | #include "platform_drivers.h" |
jngarlitos | 1:f3b5e79a8488 | 28 | #include "platform_support.h" |
jngarlitos | 1:f3b5e79a8488 | 29 | #include "spi_extra.h" |
jngarlitos | 1:f3b5e79a8488 | 30 | #include "gpio.h" |
jngarlitos | 1:f3b5e79a8488 | 31 | #include "ad77681.h" |
jngarlitos | 1:f3b5e79a8488 | 32 | |
jngarlitos | 1:f3b5e79a8488 | 33 | |
jngarlitos | 1:f3b5e79a8488 | 34 | /******************************************************************************/ |
jngarlitos | 1:f3b5e79a8488 | 35 | /********************** Macros and Constants Definitions **********************/ |
jngarlitos | 1:f3b5e79a8488 | 36 | /******************************************************************************/ |
jngarlitos | 1:f3b5e79a8488 | 37 | |
jngarlitos | 1:f3b5e79a8488 | 38 | |
jngarlitos | 1:f3b5e79a8488 | 39 | #define DRDY_PIN D2 |
jngarlitos | 1:f3b5e79a8488 | 40 | #define ADC_RST_PIN D3 |
jngarlitos | 1:f3b5e79a8488 | 41 | |
jngarlitos | 1:f3b5e79a8488 | 42 | // Init params |
jngarlitos | 1:f3b5e79a8488 | 43 | |
jngarlitos | 1:f3b5e79a8488 | 44 | // Init SPI extra parameters structure |
jngarlitos | 1:f3b5e79a8488 | 45 | mbed_spi_init_param spi_init_extra_params = { |
jngarlitos | 1:f3b5e79a8488 | 46 | .spi_clk_pin = SPI_SCK, |
jngarlitos | 1:f3b5e79a8488 | 47 | .spi_miso_pin = SPI_MISO, |
jngarlitos | 1:f3b5e79a8488 | 48 | .spi_mosi_pin = SPI_MOSI |
jngarlitos | 1:f3b5e79a8488 | 49 | }; |
jngarlitos | 1:f3b5e79a8488 | 50 | // SPI bus init parameters |
jngarlitos | 1:f3b5e79a8488 | 51 | spi_init_param spi_params = { |
jngarlitos | 1:f3b5e79a8488 | 52 | 20000000, // SPI Speed |
jngarlitos | 1:f3b5e79a8488 | 53 | SPI_CS, // SPI CS select index |
jngarlitos | 1:f3b5e79a8488 | 54 | SPI_MODE_3, // SPI Mode |
jngarlitos | 1:f3b5e79a8488 | 55 | &spi_init_extra_params, // SPI extra configurations |
jngarlitos | 1:f3b5e79a8488 | 56 | }; |
jngarlitos | 1:f3b5e79a8488 | 57 | |
jngarlitos | 1:f3b5e79a8488 | 58 | // Initial parameters for the ADC AD7768-1 |
jngarlitos | 1:f3b5e79a8488 | 59 | ad77681_init_param init_params = { |
jngarlitos | 1:f3b5e79a8488 | 60 | |
jngarlitos | 1:f3b5e79a8488 | 61 | spi_params, // SPI parameters |
jngarlitos | 1:f3b5e79a8488 | 62 | AD77681_ECO, // power_mode |
jngarlitos | 1:f3b5e79a8488 | 63 | AD77681_MCLK_DIV_16, // mclk_div |
jngarlitos | 1:f3b5e79a8488 | 64 | AD77681_CONV_CONTINUOUS, // conv_mode |
jngarlitos | 1:f3b5e79a8488 | 65 | AD77681_AIN_SHORT, // diag_mux_sel |
jngarlitos | 1:f3b5e79a8488 | 66 | false, // conv_diag_sel |
jngarlitos | 1:f3b5e79a8488 | 67 | AD77681_CONV_24BIT, // conv_len |
jngarlitos | 1:f3b5e79a8488 | 68 | AD77681_NO_CRC, // crc_sel |
jngarlitos | 1:f3b5e79a8488 | 69 | 0, // status bit |
jngarlitos | 1:f3b5e79a8488 | 70 | AD77681_VCM_HALF_VCC, // VCM setup |
jngarlitos | 1:f3b5e79a8488 | 71 | AD77681_AINn_ENABLED, // AIN- precharge buffer |
jngarlitos | 1:f3b5e79a8488 | 72 | AD77681_AINp_ENABLED, // AIN+ precharge buffer |
jngarlitos | 1:f3b5e79a8488 | 73 | AD77681_BUFn_ENABLED, // REF- buffer |
jngarlitos | 1:f3b5e79a8488 | 74 | AD77681_BUFp_ENABLED, // REF+ buffer |
jngarlitos | 1:f3b5e79a8488 | 75 | AD77681_FIR, // FIR Filter |
jngarlitos | 1:f3b5e79a8488 | 76 | AD77681_SINC5_FIR_DECx32, // Decimate by 32 |
jngarlitos | 1:f3b5e79a8488 | 77 | 0, // OS ratio of SINC3 |
jngarlitos | 1:f3b5e79a8488 | 78 | 4096, // Reference voltage |
jngarlitos | 1:f3b5e79a8488 | 79 | 16384, // MCLK in kHz |
jngarlitos | 1:f3b5e79a8488 | 80 | 32000, // Sample rate in Hz |
jngarlitos | 1:f3b5e79a8488 | 81 | 1, // Data frame bytes |
jngarlitos | 1:f3b5e79a8488 | 82 | }; |
jngarlitos | 1:f3b5e79a8488 | 83 | |
jngarlitos | 1:f3b5e79a8488 | 84 | // Inital params of a GPIO, to which the DRDY signal of the ADC is connected |
jngarlitos | 1:f3b5e79a8488 | 85 | gpio_desc gpio_drdy = { |
jngarlitos | 1:f3b5e79a8488 | 86 | DRDY_PIN, // GPIO pin |
jngarlitos | 1:f3b5e79a8488 | 87 | NULL, |
jngarlitos | 1:f3b5e79a8488 | 88 | }; |
jngarlitos | 1:f3b5e79a8488 | 89 | |
jngarlitos | 1:f3b5e79a8488 | 90 | // Inital params of a GPIO, to which the RST signal of the ADC is connected |
jngarlitos | 1:f3b5e79a8488 | 91 | gpio_desc gpio_reset = { |
jngarlitos | 1:f3b5e79a8488 | 92 | ADC_RST_PIN, // GPIO pin |
jngarlitos | 1:f3b5e79a8488 | 93 | NULL, |
jngarlitos | 1:f3b5e79a8488 | 94 | }; |
jngarlitos | 1:f3b5e79a8488 | 95 | |
jngarlitos | 1:f3b5e79a8488 | 96 | /* |
jngarlitos | 1:f3b5e79a8488 | 97 | * User-defined coefficients for programmable FIR filter, max 56 coeffs |
jngarlitos | 1:f3b5e79a8488 | 98 | * |
jngarlitos | 1:f3b5e79a8488 | 99 | * Please note that, inserted coefficiets will be mirrored afterwards, |
jngarlitos | 1:f3b5e79a8488 | 100 | * so you must insert only one half of all the coefficients. |
jngarlitos | 1:f3b5e79a8488 | 101 | * |
jngarlitos | 1:f3b5e79a8488 | 102 | * Please note your original filer must have ODD count of coefficients, |
jngarlitos | 1:f3b5e79a8488 | 103 | * allowing internal ADC circuitry to mirror the coefficients properly. |
jngarlitos | 1:f3b5e79a8488 | 104 | * |
jngarlitos | 1:f3b5e79a8488 | 105 | * In case of usage lower count of coeffs than 56, please make sure, that |
jngarlitos | 1:f3b5e79a8488 | 106 | * the variable 'count_of_active_coeffs' bellow, carries the correct number |
jngarlitos | 1:f3b5e79a8488 | 107 | * of coeficients, allowing to fill the rest of the coeffs by zeroes |
jngarlitos | 1:f3b5e79a8488 | 108 | * |
jngarlitos | 1:f3b5e79a8488 | 109 | * Default coeffs: |
jngarlitos | 1:f3b5e79a8488 | 110 | **/ |
jngarlitos | 1:f3b5e79a8488 | 111 | const uint8_t count_of_active_coeffs = 56; |
jngarlitos | 1:f3b5e79a8488 | 112 | |
jngarlitos | 1:f3b5e79a8488 | 113 | const float programmable_FIR[56] = { |
jngarlitos | 1:f3b5e79a8488 | 114 | |
jngarlitos | 1:f3b5e79a8488 | 115 | -0.000064967, |
jngarlitos | 1:f3b5e79a8488 | 116 | 0.000216258, |
jngarlitos | 1:f3b5e79a8488 | 117 | 0.000437060, |
jngarlitos | 1:f3b5e79a8488 | 118 | 0.000513474, |
jngarlitos | 1:f3b5e79a8488 | 119 | 0.000396842, |
jngarlitos | 1:f3b5e79a8488 | 120 | 0.000097234, |
jngarlitos | 1:f3b5e79a8488 | 121 | -0.000304613, |
jngarlitos | 1:f3b5e79a8488 | 122 | -0.000667916, |
jngarlitos | 1:f3b5e79a8488 | 123 | -0.000831172, |
jngarlitos | 1:f3b5e79a8488 | 124 | -0.000674257, |
jngarlitos | 1:f3b5e79a8488 | 125 | -0.000182842, |
jngarlitos | 1:f3b5e79a8488 | 126 | 0.000514726, |
jngarlitos | 1:f3b5e79a8488 | 127 | 0.001164754, |
jngarlitos | 1:f3b5e79a8488 | 128 | 0.001468219, |
jngarlitos | 1:f3b5e79a8488 | 129 | 0.001203813, |
jngarlitos | 1:f3b5e79a8488 | 130 | 0.000347908, |
jngarlitos | 1:f3b5e79a8488 | 131 | -0.000865494, |
jngarlitos | 1:f3b5e79a8488 | 132 | -0.001987698, |
jngarlitos | 1:f3b5e79a8488 | 133 | -0.002506034, |
jngarlitos | 1:f3b5e79a8488 | 134 | -0.002058142, |
jngarlitos | 1:f3b5e79a8488 | 135 | -0.000626378, |
jngarlitos | 1:f3b5e79a8488 | 136 | 0.001379936, |
jngarlitos | 1:f3b5e79a8488 | 137 | 0.003214906, |
jngarlitos | 1:f3b5e79a8488 | 138 | 0.004053861, |
jngarlitos | 1:f3b5e79a8488 | 139 | 0.003337280, |
jngarlitos | 1:f3b5e79a8488 | 140 | 0.001065705, |
jngarlitos | 1:f3b5e79a8488 | 141 | -0.002092961, |
jngarlitos | 1:f3b5e79a8488 | 142 | -0.004965216, |
jngarlitos | 1:f3b5e79a8488 | 143 | -0.006281280, |
jngarlitos | 1:f3b5e79a8488 | 144 | -0.005199392, |
jngarlitos | 1:f3b5e79a8488 | 145 | -0.001740302, |
jngarlitos | 1:f3b5e79a8488 | 146 | 0.003068791, |
jngarlitos | 1:f3b5e79a8488 | 147 | 0.007451037, |
jngarlitos | 1:f3b5e79a8488 | 148 | 0.009496076, |
jngarlitos | 1:f3b5e79a8488 | 149 | 0.007936363, |
jngarlitos | 1:f3b5e79a8488 | 150 | 0.002786057, |
jngarlitos | 1:f3b5e79a8488 | 151 | -0.004444805, |
jngarlitos | 1:f3b5e79a8488 | 152 | -0.011117611, |
jngarlitos | 1:f3b5e79a8488 | 153 | -0.014356987, |
jngarlitos | 1:f3b5e79a8488 | 154 | -0.012188594, |
jngarlitos | 1:f3b5e79a8488 | 155 | -0.004503385, |
jngarlitos | 1:f3b5e79a8488 | 156 | 0.006564770, |
jngarlitos | 1:f3b5e79a8488 | 157 | 0.017091120, |
jngarlitos | 1:f3b5e79a8488 | 158 | 0.022597229, |
jngarlitos | 1:f3b5e79a8488 | 159 | 0.019721226, |
jngarlitos | 1:f3b5e79a8488 | 160 | 0.007756722, |
jngarlitos | 1:f3b5e79a8488 | 161 | -0.010529983, |
jngarlitos | 1:f3b5e79a8488 | 162 | -0.029205128, |
jngarlitos | 1:f3b5e79a8488 | 163 | -0.040639396, |
jngarlitos | 1:f3b5e79a8488 | 164 | -0.037782094, |
jngarlitos | 1:f3b5e79a8488 | 165 | -0.016555659, |
jngarlitos | 1:f3b5e79a8488 | 166 | 0.022417307, |
jngarlitos | 1:f3b5e79a8488 | 167 | 0.073383876, |
jngarlitos | 1:f3b5e79a8488 | 168 | 0.126572621, |
jngarlitos | 1:f3b5e79a8488 | 169 | 0.170602851, |
jngarlitos | 1:f3b5e79a8488 | 170 | 0.195514282, |
jngarlitos | 1:f3b5e79a8488 | 171 | |
jngarlitos | 1:f3b5e79a8488 | 172 | }; |
jngarlitos | 1:f3b5e79a8488 | 173 | |
jngarlitos | 1:f3b5e79a8488 | 174 | #ifdef __cplusplus |
jngarlitos | 1:f3b5e79a8488 | 175 | } |
jngarlitos | 1:f3b5e79a8488 | 176 | #endif // __cplusplus |
jngarlitos | 1:f3b5e79a8488 | 177 | #endif // !_CN0353_INIT_PARAMS_H_ |
jngarlitos | 1:f3b5e79a8488 | 178 |