Example program for EVAL-CN0535-FMCZ

Dependencies:   platform_drivers AD77681

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?

UserRevisionLine numberNew 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