no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
max9611.h
Go to the documentation of this file.
1/***************************************************************************/
34#ifndef __MAX9611_H__
35#define __MAX9611_H__
36
37#include <stdint.h>
38#include <stdlib.h>
39#include "no_os_i2c.h"
40#include "no_os_util.h"
41#include "no_os_error.h"
42#include "no_os_delay.h"
43
44#define MAX9611_MUX_MASK NO_OS_GENMASK(2, 0)
45#define MAX9611_MODE_MASK NO_OS_GENMASK(7, 5)
46#define MAX9611_RAW_DATA_MASK NO_OS_GENMASK(15, 4)
47
48#define MAX9611_SHDN_MASK NO_OS_BIT(3)
49#define MAX9611_LR_MASK NO_OS_BIT(4)
50#define MAX9611_DTIME_MASK NO_OS_BIT(3)
51#define MAX9611_RTIME_MASK NO_OS_BIT(2)
52
53#define MAX9611_CSA_MSB 0x00
54#define MAX9611_CSA_LSB 0x01
55#define MAX9611_RSP_MSB 0x02
56#define MAX9611_RSP_LSB 0x03
57#define MAX9611_OUT_MSB 0x04
58#define MAX9611_OUT_LSB 0x05
59#define MAX9611_SET_MSB 0x06
60#define MAX9611_SET_LSB 0x07
61#define MAX9611_TMP_MSB 0x08
62#define MAX9611_TMP_LSB 0x09
63#define MAX9611_CTR1 0x0A
64#define MAX9611_CTR2 0x0B
65
66#define MAX9611_OUT_OF_BOUNDS 0x0C
67
75
82
87
92
103
109
112 /* ADC Data configuration */
114};
115
119
120/* Generate slave address depending on A0 and A1 logic levels */
121int max9611_addr_gen(struct max9611_init_param *device_ip,
122 enum max9611_addr_lvls a0, enum max9611_addr_lvls a1);
123
124/* Initialize device */
125int max9611_init(struct max9611_dev **device,
127
128/* Deallocate resources for device */
129int max9611_remove(struct max9611_dev *dev);
130
131/* Read byte/s from selected starting register */
132int max9611_read(struct max9611_dev *dev, uint8_t addr,
133 uint8_t bytes, uint8_t *read_data);
134
135/* Write byte/s to selected starting register */
136int max9611_write(struct max9611_dev *dev, uint8_t addr,
137 uint8_t bytes, uint8_t *write_data);
138
139/* Update selected register using mask and desired value */
140int max9611_reg_update(struct max9611_dev *dev, uint8_t addr,
141 int update_mask, int update_val);
142
143/* Set MAX9611 operating mode */
144int max9611_set_mode(struct max9611_dev *dev, enum max9611_mode_conf mode);
145
146/* Get MAX9611 operating mode */
147int max9611_get_mode(struct max9611_dev *dev, enum max9611_mode_conf *mode);
148
149/* Set MAX9611 MUX configuration */
150int max9611_set_mux(struct max9611_dev *dev, enum max9611_mux_conf mux);
151
152/* Get MAX9611 MUX configuration */
153int max9611_get_mux(struct max9611_dev *dev, enum max9611_mux_conf *mux);
154
155/* Configure MAX9611 for shutdown or power up */
156int max9611_shutdown(struct max9611_dev *dev, bool is_shdn);
157
158/* Set MAX9611 LR bit */
159int max9611_set_lr(struct max9611_dev *dev, bool is_normal);
160
161/* Get MAX9611 LR bit */
162int max9611_get_lr(struct max9611_dev *dev, bool *lr);
163
164/* Set MAX9611 delay time */
165int max9611_set_delay(struct max9611_dev *dev, enum max9611_delay_time dtime);
166
167/* Get MAX9611 delay time */
168int max9611_get_delay(struct max9611_dev *dev, enum max9611_delay_time *dtime);
169
170/* Set MAX9611 retry time */
171int max9611_set_retry(struct max9611_dev *dev, enum max9611_retry_time rtime);
172
173/* Get MAX9611 retry time */
174int max9611_get_retry(struct max9611_dev *dev, enum max9611_retry_time *rtime);
175
176/* Get MAX9611 raw data */
177int max9611_get_raw(struct max9611_dev *dev, uint16_t *raw);
178
179#endif /* __MAX9611_H__ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int max9611_remove(struct max9611_dev *dev)
Free the resources allocated by max538x_init().
Definition max9611.c:123
int max9611_get_lr(struct max9611_dev *dev, bool *lr)
Get LR bit value.
Definition max9611.c:351
max9611_mux_conf
Definition max9611.h:93
@ MAX9611_CONF_SENSE_4X
Definition max9611.h:95
@ MAX9611_CONF_IN_COM_MODE
Definition max9611.h:97
@ MAX9611_CONF_OUT_ADC
Definition max9611.h:98
@ MAX9611_CONF_SENSE_8X
Definition max9611.h:96
@ MAX9611_CONF_SENSE_1X
Definition max9611.h:94
@ MAX9611_FAST_MODE
Definition max9611.h:101
@ MAX9611_CONF_TEMP
Definition max9611.h:100
@ MAX9611_CONF_SET_ADC
Definition max9611.h:99
int max9611_read(struct max9611_dev *dev, uint8_t addr, uint8_t bytes, uint8_t *read_data)
Reads data from device register (I2C)
Definition max9611.c:141
max9611_addr_lvls
Definition max9611.h:76
@ MAX9611_66_VCC
Definition max9611.h:79
@ MAX9611_ZERO_VCC
Definition max9611.h:77
@ MAX9611_100_VCC
Definition max9611.h:80
@ MAX9611_33_VCC
Definition max9611.h:78
max9611_mode_conf
Definition max9611.h:104
@ MAX9611_COMPARATOR_MODE
Definition max9611.h:107
@ MAX9611_NORMAL_MODE
Definition max9611.h:105
@ MAX9611_OPAMP_MODE
Definition max9611.h:106
int max9611_set_mux(struct max9611_dev *dev, enum max9611_mux_conf mux)
Configures the internal MUX settings.
Definition max9611.c:261
int max9611_set_retry(struct max9611_dev *dev, enum max9611_retry_time rtime)
Configures MAX9611 retry time.
Definition max9611.c:408
int max9611_reg_update(struct max9611_dev *dev, uint8_t addr, int update_mask, int update_val)
Update selected I2C register contents.
Definition max9611.c:203
int max9611_get_retry(struct max9611_dev *dev, enum max9611_retry_time *rtime)
Get MAX9611 configured retry time.
Definition max9611.c:425
int max9611_set_lr(struct max9611_dev *dev, bool is_normal)
Configure LR bit operation.
Definition max9611.c:336
int max9611_get_delay(struct max9611_dev *dev, enum max9611_delay_time *dtime)
Get MAX9611 configured delay time.
Definition max9611.c:388
int max9611_init(struct max9611_dev **device, struct max9611_init_param init_param)
Initializes the communication peripheral and checks if the device is present.
Definition max9611.c:94
int max9611_shutdown(struct max9611_dev *dev, bool is_shdn)
Device shutdown or power up.
Definition max9611.c:321
max9611_delay_time
Definition max9611.h:83
@ MAX9611_100US
Definition max9611.h:85
@ MAX9611_1MS
Definition max9611.h:84
max9611_retry_time
Definition max9611.h:88
@ MAX9611_50MS
Definition max9611.h:89
@ MAX9611_10MS
Definition max9611.h:90
int max9611_get_raw(struct max9611_dev *dev, uint16_t *raw)
Receive data from ADC (single value only).
Definition max9611.c:445
int max9611_addr_gen(struct max9611_init_param *device_ip, enum max9611_addr_lvls a0, enum max9611_addr_lvls a1)
Generates slave address based on A1 and A0 pin values.
Definition max9611.c:51
int max9611_write(struct max9611_dev *dev, uint8_t addr, uint8_t bytes, uint8_t *write_data)
Writes data to device register (I2C)
Definition max9611.c:169
int max9611_get_mux(struct max9611_dev *dev, enum max9611_mux_conf *mux)
Get the internal MUX settings.
Definition max9611.c:301
int max9611_set_delay(struct max9611_dev *dev, enum max9611_delay_time dtime)
Configures MAX9611 delay time.
Definition max9611.c:371
max9611_data
Definition max9611.h:68
@ MAX9611_DATA_TMP
Definition max9611.h:73
@ MAX9611_DATA_OUT
Definition max9611.h:71
@ MAX9611_DATA_RSP
Definition max9611.h:70
@ MAX9611_DATA_CSA
Definition max9611.h:69
@ MAX9611_DATA_SET
Definition max9611.h:72
int max9611_set_mode(struct max9611_dev *dev, enum max9611_mode_conf mode)
Configures MAX9611 operating mode.
Definition max9611.c:225
int max9611_get_mode(struct max9611_dev *dev, enum max9611_mode_conf *mode)
Get the MAX9611 operating mode.
Definition max9611.c:241
Header file of Delay functions.
Error codes definition.
Header file of I2C Interface.
Header file of utility functions.
Definition ad9361_util.h:63
Definition max9611.h:110
struct no_os_i2c_desc * i2c_desc
Definition max9611.h:111
enum max9611_data capture_type
Definition max9611.h:113
Definition max9611.h:116
struct no_os_i2c_init_param i2c_init
Definition max9611.h:117
Structure holding I2C address descriptor.
Definition no_os_i2c.h:89
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52