no-OS
Loading...
Searching...
No Matches
ad7490.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef AD7490_H_
34#define AD7490_H_
35
36#include <stdlib.h>
37#include "no_os_spi.h"
38#include "no_os_util.h"
39
40#define AD7490_LOW_BYTE_MASK NO_OS_GENMASK(7, 0)
41#define AD7490_HIGH_BYTE_MASK NO_OS_GENMASK(15, 8)
42
43#define AD7490_VAL_MASK NO_OS_GENMASK(11, 0)
44
45#define AD7490_WRITE_MASK NO_OS_BIT(11)
46#define AD7490_SEQ_MASK NO_OS_BIT(10)
47#define AD7490_ADD_MASK NO_OS_GENMASK(9, 6)
48#define AD7490_PM_MASK NO_OS_GENMASK(5, 4)
49#define AD7490_SHADOW_MASK NO_OS_BIT(3)
50#define AD7490_WEAKTRI_MASK NO_OS_BIT(2)
51#define AD7490_RANGE_MASK NO_OS_BIT(1)
52#define AD7490_CODING_MASK NO_OS_BIT(0)
53
54#define AD7490_CFG_MASK NO_OS_GENMASK(2, 0)
55
60
80
87
92
97
102
109
115
126
127/* Set the operation mode of the AD7490. */
128int ad7490_set_op_mode(struct ad7490_desc *desc, enum ad7490_op_mode op_mode);
129
130/* Configuration of the range, coding and DOUT state. */
131int ad7490_config(struct ad7490_desc *desc, enum ad7490_dout_state dout_state,
132 enum ad7490_range range, enum ad7490_coding coding);
133
134/* Single channel reading function. */
135int ad7490_read_ch(struct ad7490_desc *desc, enum ad7490_address channel,
136 int16_t *val);
137
138/* Start SEQUENCER using desired type. */
139int ad7490_start_seq(struct ad7490_desc *desc, enum ad7490_seq_op seq_op,
140 uint16_t channels, enum ad7490_address last_chan);
141
142/* Change SEQUENCER type while it is running. */
143int ad7490_change_seq(struct ad7490_desc *desc, enum ad7490_seq_op seq_op,
144 enum ad7490_coding coding, enum ad7490_range range);
145
146/* Stop SEQUENCER. */
147int ad7490_stop_seq(struct ad7490_desc *desc);
148
149/* Read all selected channel values from the SEQUENCER. */
150int ad7490_read_seq(struct ad7490_desc *desc, int16_t *channels_val);
151
152/* Initialize the AD7490. */
153int ad7490_init(struct ad7490_desc **desc,
155
156/* Remove allocated resources of the AD7490 by init function. */
157int ad7490_remove(struct ad7490_desc *desc);
158
159#endif /* AD7490_H_ */
ad7490_address
Definition ad7490.h:61
@ AD7490_CHAN_ADDR_VIN5
Definition ad7490.h:67
@ AD7490_CHAN_ADDR_VIN2
Definition ad7490.h:64
@ AD7490_CHAN_ADDR_VIN11
Definition ad7490.h:73
@ AD7490_CHAN_ADDR_VIN4
Definition ad7490.h:66
@ AD7490_CHAN_ADDR_VIN7
Definition ad7490.h:69
@ AD7490_CHAN_ADDR_VIN3
Definition ad7490.h:65
@ AD7490_CHAN_ADDR_VIN13
Definition ad7490.h:75
@ AD7490_CHAN_ADDR_VIN1
Definition ad7490.h:63
@ AD7490_CHAN_ADDR_VIN12
Definition ad7490.h:74
@ AD7490_CHAN_OFF
Definition ad7490.h:78
@ AD7490_CHAN_ADDR_VIN9
Definition ad7490.h:71
@ AD7490_CHAN_ADDR_VIN0
Definition ad7490.h:62
@ AD7490_CHAN_ADDR_VIN14
Definition ad7490.h:76
@ AD7490_CHAN_ADDR_VIN15
Definition ad7490.h:77
@ AD7490_CHAN_ADDR_VIN6
Definition ad7490.h:68
@ AD7490_CHAN_ADDR_VIN8
Definition ad7490.h:70
@ AD7490_CHAN_ADDR_VIN10
Definition ad7490.h:72
int ad7490_init(struct ad7490_desc **desc, struct ad7490_init_param *init_param)
AD7490 Initialization function.
Definition ad7490.c:427
int ad7490_remove(struct ad7490_desc *desc)
Free the resources allocated by initialization.
Definition ad7490.c:476
ad7490_vdd
Definition ad7490.h:56
@ AD7490_VDD_3V3
Definition ad7490.h:57
@ AD7490_VDD_5V
Definition ad7490.h:58
ad7490_coding
Definition ad7490.h:98
@ AD7490_CODING_BINARY
Definition ad7490.h:100
@ AD7490_CODING_TWOS
Definition ad7490.h:99
int ad7490_set_op_mode(struct ad7490_desc *desc, enum ad7490_op_mode op_mode)
Set AD7490 operating mode.
Definition ad7490.c:80
int ad7490_config(struct ad7490_desc *desc, enum ad7490_dout_state dout_state, enum ad7490_range range, enum ad7490_coding coding)
Config DOUT state, range and coding of the AD7490.
Definition ad7490.c:128
ad7490_seq_op
Definition ad7490.h:103
@ AD7490_SHADOW_SEQ
Definition ad7490.h:105
@ AD7490_CONTROL_SEQ
Definition ad7490.h:106
@ AD7490_CONSECUTIVE_SEQ
Definition ad7490.h:107
@ AD7490_NO_SEQ
Definition ad7490.h:104
int ad7490_read_ch(struct ad7490_desc *desc, enum ad7490_address channel, int16_t *val)
Read single cannel raw value.
Definition ad7490.c:164
int ad7490_stop_seq(struct ad7490_desc *desc)
Stop AD7490 SEQUENCER.
Definition ad7490.c:336
int ad7490_start_seq(struct ad7490_desc *desc, enum ad7490_seq_op seq_op, uint16_t channels, enum ad7490_address last_chan)
Start AD7490 SEQUENCER using desired type.
Definition ad7490.c:211
ad7490_op_mode
Definition ad7490.h:81
@ AD7490_MODE_FULLSHUTDOWN
Definition ad7490.h:84
@ AD7490_MODE_AUTOSTANDBY
Definition ad7490.h:82
@ AD7490_MODE_NORMAL
Definition ad7490.h:85
@ AD7490_MODE_AUTOSHUTDOWN
Definition ad7490.h:83
ad7490_dout_state
Definition ad7490.h:88
@ AD7490_DOUT_TRISTATE
Definition ad7490.h:89
@ AD7490_DOUT_WEAK
Definition ad7490.h:90
int ad7490_read_seq(struct ad7490_desc *desc, int16_t *channels_val)
Read selected channels of the SEQUENCER raw values.
Definition ad7490.c:369
ad7490_range
Definition ad7490.h:93
@ AD7490_RANGE_REFIN
Definition ad7490.h:95
@ AD7490_RANGE_2XREFIN
Definition ad7490.h:94
int ad7490_change_seq(struct ad7490_desc *desc, enum ad7490_seq_op seq_op, enum ad7490_coding coding, enum ad7490_range range)
Change AD7490 SEQUENCER type while it is active.
Definition ad7490.c:288
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
Header file of SPI Interface.
Header file of utility functions.
Definition ad7490.h:116
enum ad7490_address address
Definition ad7490.h:118
uint8_t cfg
Definition ad7490.h:124
enum ad7490_op_mode op_mode
Definition ad7490.h:119
enum ad7490_vdd vdd
Definition ad7490.h:121
struct no_os_spi_desc * spi_desc
Definition ad7490.h:117
enum ad7490_seq_op seq_op
Definition ad7490.h:120
uint16_t channels
Definition ad7490.h:122
uint8_t nb_channels_seq
Definition ad7490.h:123
Definition ad7490.h:110
struct no_os_spi_init_param * spi_param
Definition ad7490.h:111
enum ad7490_op_mode op_mode
Definition ad7490.h:112
enum ad7490_vdd vdd
Definition ad7490.h:113
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128