AD4130 Mbed IIO Firmware

Dependencies:   tempsensors sdp_k1_sdram

Committer:
MPhalke@MPHALKE-L02.ad.analog.com
Date:
Fri Jul 15 17:47:44 2022 +0530
Revision:
2:871d585d96ee
AD4130 firmware - initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 1 /***************************************************************************//**
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 2 * @file ad4130_support.h
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 3 * @brief Header for AD4130 No-OS driver supports
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 4 ********************************************************************************
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 5 * Copyright (c) 2020-2022 Analog Devices, Inc.
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 6 * All rights reserved.
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 7 *
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 9 * By using this software you agree to the terms of the associated
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 10 * Analog Devices Software License Agreement.
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 11 *******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 12
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 13 #ifndef AD4130_SUPPORT_H_
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 14 #define AD4130_SUPPORT_H_
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 15
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 16 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 17 /***************************** Include Files **********************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 18 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 19
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 20 #include <stdint.h>
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 21 #include "ad413x.h"
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 22
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 23 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 24 /********************** Macros and Constants Definition ***********************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 25 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 26
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 27 #define AD413X_ADDR(x) ((x) & 0xFF)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 28
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 29 #define AD4130_INT_SRC_SEL_MSK NO_OS_GENMASK(9, 8)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 30 #define AD4130_FILTER_FS_MSK NO_OS_GENMASK(10, 0)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 31 #define AD4130_FIFO_MODE_MSK NO_OS_GENMASK(17, 16)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 32 #define AD413X_WATERMARK_MSK NO_OS_GENMASK(7, 0)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 33
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 34 #define AD413X_COMM_REG_RD NO_OS_BIT(6)
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 35
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 36 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 37 /********************** Variables and User Defined Data Types *****************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 38 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 39
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 40 /* FIFO modes */
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 41 typedef enum {
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 42 FIFO_DISABLED,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 43 FIFO_OLDEST_SAVE_MODE,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 44 FIFO_STREAM_MODE
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 45 } fifo_mode_e;
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 46
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 47 /* ADC conversion interrupt source */
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 48 typedef enum {
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 49 INT_PIN,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 50 CLK_PIN,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 51 GPIO1_PIN
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 52 } adc_conv_int_source_e;
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 53
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 54 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 55 /************************ Public Declarations *********************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 56 /******************************************************************************/
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 57
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 58 float ad4130_get_reference_voltage(struct ad413x_dev *dev, uint8_t chn);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 59 int32_t perform_sign_conversion(struct ad413x_dev *dev, uint32_t adc_raw_data,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 60 uint8_t chn);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 61 float convert_adc_sample_into_voltage(void *dev, uint32_t adc_raw,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 62 uint8_t chn);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 63 float convert_adc_raw_into_rtd_resistance(void *dev, uint32_t adc_raw,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 64 float rtd_ref, uint8_t chn);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 65 int32_t ad4130_read_fifo(struct ad413x_dev *dev, uint32_t *data,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 66 uint32_t adc_samples);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 67 int32_t ad413x_mon_conv_and_read_data(struct ad413x_dev *dev,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 68 uint32_t *raw_data);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 69 int32_t ad413x_set_int_source(struct ad413x_dev *dev,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 70 adc_conv_int_source_e conv_int_source);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 71 int32_t ad413x_set_filter_fs(struct ad413x_dev *dev, uint32_t fs,
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 72 uint8_t preset);
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 73
MPhalke@MPHALKE-L02.ad.analog.com 2:871d585d96ee 74 #endif /* AD4130_SUPPORT_H_ */