precision-converters-firmware
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ad7606_support.h
Go to the documentation of this file.
1/***************************************************************************/
14#ifndef AD7606_SUPPORT_H_
15#define AD7606_SUPPORT_H_
16
17/******************************************************************************/
18/***************************** Include Files **********************************/
19/******************************************************************************/
20
21#include "ad7606.h"
22
23/******************************************************************************/
24/********************** Macros and Constants Definition ***********************/
25/******************************************************************************/
26
27/* Offset b/w two channel selections in CHx_RANGE register */
28#define CHANNEL_RANGE_MSK_OFFSET 4
29
30/* AD7606_REG_OVERSAMPLING */
31#define AD7606_OVERSAMPLING_MSK NO_OS_GENMASK(3,0)
32
33/* Default channel range for AD7606 devices */
34#define DEFAULT_CHN_RANGE (10.0)
35
36/* Diagnostic channels Mux configurations */
37#define AD7606_DIAGN_MUX_CH_MSK(ch) (NO_OS_GENMASK(2, 0) << (3 * ((ch) % 2)))
38#define AD7606_DIAGN_MUX_CH_VAL(ch, val) (val << (3 * ((ch) % 2)))
39
40#define AD7606_OPEN_DETECT_ENABLE_MSK(ch) (NO_OS_GENMASK(7,0) & (~(1 << ch)))
41
42/* Diagnostic channels Mux select bits */
43#define ANALOG_INPUT_MUX 0X00
44#define TEMPERATURE_MUX 0x01
45#define VREF_MUX 0X02
46#define ALDO_MUX 0X03
47#define DLDO_MUX 0X04
48#define VDRIVE_MUX 0x05
49
50/* Diagnostic Mux multiplers */
51#define VREF_MUX_MULTIPLIER 4.0
52
53/* Unipolar inputs range bits for AD7606C */
54#define AD7606C_UNIPOLAR_RANGE_MIN 5
55#define AD7606C_UNIPOLAR_RANGE_MAX 7
56
57/* Number of AD7606 registers */
58#define NUM_OF_REGISTERS 0x2F
59
60/******************************************************************************/
61/********************** Variables and User Defined Data Types *****************/
62/******************************************************************************/
63
64/* Analog input polarity */
65typedef enum {
69
70/******************************************************************************/
71/************************ Public Declarations *********************************/
72/******************************************************************************/
73
74int32_t ad7606_read_converted_sample(struct ad7606_dev *dev, uint32_t *adc_data,
75 uint8_t input_chn);
76int32_t ad7606_read_single_sample(struct ad7606_dev *dev,
77 uint32_t *adc_data, uint8_t chn);
78polarity_e ad7606_get_input_polarity(uint8_t chn_range_bits);
79
80#endif /* AD7606_SUPPORT_H_ */
polarity_e ad7606_get_input_polarity(uint8_t chn_range_bits)
Function to get the polarity of analog input.
Definition ad7606_support.c:47
polarity_e
Definition ad7606_support.h:65
@ BIPOLAR
Definition ad7606_support.h:67
@ UNIPOLAR
Definition ad7606_support.h:66
int32_t ad7606_read_single_sample(struct ad7606_dev *dev, uint32_t *adc_data, uint8_t chn)
Perform conversion and read single conversion sample.
Definition ad7606_support.c:68
int32_t ad7606_read_converted_sample(struct ad7606_dev *dev, uint32_t *adc_data, uint8_t input_chn)
Read ADC raw data for recently sampled channel.
Definition ad7606_support.c:96
Definition ad77681.h:497