no-OS
Loading...
Searching...
No Matches
max9611.c File Reference

Implementation of max9611 Family Driver. More...

#include <stdint.h>
#include <stdlib.h>
#include "no_os_i2c.h"
#include "no_os_util.h"
#include "no_os_error.h"
#include "no_os_delay.h"
#include "no_os_alloc.h"
#include "max9611.h"
Include dependency graph for max9611.c:

Functions

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.
 
int max9611_init (struct max9611_dev **device, struct max9611_init_param init_param)
 Initializes the communication peripheral and checks if the device is present.
 
int max9611_remove (struct max9611_dev *dev)
 Free the resources allocated by max538x_init().
 
int max9611_read (struct max9611_dev *dev, uint8_t addr, uint8_t bytes, uint8_t *read_data)
 Reads data from device register (I2C)
 
int max9611_write (struct max9611_dev *dev, uint8_t addr, uint8_t bytes, uint8_t *write_data)
 Writes data to device register (I2C)
 
int max9611_reg_update (struct max9611_dev *dev, uint8_t addr, int update_mask, int update_val)
 Update selected I2C register contents.
 
int max9611_set_mode (struct max9611_dev *dev, enum max9611_mode_conf mode)
 Configures MAX9611 operating mode.
 
int max9611_get_mode (struct max9611_dev *dev, enum max9611_mode_conf *mode)
 Get the MAX9611 operating mode.
 
int max9611_set_mux (struct max9611_dev *dev, enum max9611_mux_conf mux)
 Configures the internal MUX settings.
 
int max9611_get_mux (struct max9611_dev *dev, enum max9611_mux_conf *mux)
 Get the internal MUX settings.
 
int max9611_shutdown (struct max9611_dev *dev, bool is_shdn)
 Device shutdown or power up.
 
int max9611_set_lr (struct max9611_dev *dev, bool is_normal)
 Configure LR bit operation.
 
int max9611_get_lr (struct max9611_dev *dev, bool *lr)
 Get LR bit value.
 
int max9611_set_delay (struct max9611_dev *dev, enum max9611_delay_time dtime)
 Configures MAX9611 delay time.
 
int max9611_get_delay (struct max9611_dev *dev, enum max9611_delay_time *dtime)
 Get MAX9611 configured delay time.
 
int max9611_set_retry (struct max9611_dev *dev, enum max9611_retry_time rtime)
 Configures MAX9611 retry time.
 
int max9611_get_retry (struct max9611_dev *dev, enum max9611_retry_time *rtime)
 Get MAX9611 configured retry time.
 
int max9611_get_raw (struct max9611_dev *dev, uint16_t *raw)
 Receive data from ADC (single value only).
 

Detailed Description

Implementation of max9611 Family Driver.

Author
MSosa (marcp.nosp@m.aolo.nosp@m..sosa.nosp@m.@ana.nosp@m.log.c.nosp@m.om)
JSanbuen (jose..nosp@m.sanb.nosp@m.uenav.nosp@m.entu.nosp@m.ra@an.nosp@m.alog.nosp@m..com)

Copyright 2023(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ max9611_addr_gen()

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.

Parameters
device_ip- init param structure
a0- A0 logic level
a1- A1 logic level
Returns
addr - Computed slave ID

◆ max9611_get_delay()

int max9611_get_delay ( struct max9611_dev * dev,
enum max9611_delay_time * dtime )

Get MAX9611 configured delay time.

Parameters
dev- The device structure.
dtime- Pointer to store delay time read
Returns
- 0 if successful, error otherwise.

◆ max9611_get_lr()

int max9611_get_lr ( struct max9611_dev * dev,
bool * lr )

Get LR bit value.

Parameters
dev- The device structure.
lr- Pointer to store LR bit value
Returns
- 0 if successful, error otherwise.

◆ max9611_get_mode()

int max9611_get_mode ( struct max9611_dev * dev,
enum max9611_mode_conf * mode )

Get the MAX9611 operating mode.

Parameters
dev- The device structure.
mode- Pointer to store the obtained mode
Returns
- 0 if successful, error otherwise.

◆ max9611_get_mux()

int max9611_get_mux ( struct max9611_dev * dev,
enum max9611_mux_conf * mux )

Get the internal MUX settings.

Parameters
dev- The device structure.
mux- Pointer to store the obtained mux config
Returns
- 0 if successful, error otherwise.

◆ max9611_get_raw()

int max9611_get_raw ( struct max9611_dev * dev,
uint16_t * raw )

Receive data from ADC (single value only).

Parameters
dev- The device structure.
raw- Pointer to store the raw 12-bit ADC reading
Returns
- 0 if successful, error otherwise.

◆ max9611_get_retry()

int max9611_get_retry ( struct max9611_dev * dev,
enum max9611_retry_time * rtime )

Get MAX9611 configured retry time.

Parameters
dev- The device structure.
rtime- Pointer to store retry time read
Returns
- 0 if successful, error otherwise.

◆ max9611_init()

int max9611_init ( struct max9611_dev ** device,
struct max9611_init_param init_param )

Initializes the communication peripheral and checks if the device is present.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
ret - The result of the initialization procedure. Example: -1 - I2C peripheral wasn't initialized or the device is not present. 0 - I2C peripheral was initialized and the device is present.

◆ max9611_read()

int max9611_read ( struct max9611_dev * dev,
uint8_t addr,
uint8_t bytes,
uint8_t * read_data )

Reads data from device register (I2C)

Parameters
dev- The device structure.
addr- Starting / selected register address.
bytes- Number of bytes to read from starting register address
read_data- Read data buffer
Returns
- 0 if I2C read is successful, error otherwise.

◆ max9611_reg_update()

int max9611_reg_update ( struct max9611_dev * dev,
uint8_t addr,
int update_mask,
int update_val )

Update selected I2C register contents.

Parameters
dev- The device structure.
addr- Starting / selected register address.
update_mask- Mask to update to selected register bit/s
update_val- Value used to update on selected register
Returns
- 0 if I2C write is successful, error otherwise.

◆ max9611_remove()

int max9611_remove ( struct max9611_dev * dev)

Free the resources allocated by max538x_init().

Parameters
dev- The device structure.
Returns
ret - The result of the remove procedure.

◆ max9611_set_delay()

int max9611_set_delay ( struct max9611_dev * dev,
enum max9611_delay_time dtime )

Configures MAX9611 delay time.

Parameters
dev- The device structure.
dtime- Delay option
Returns
- 0 if successful, error otherwise.

◆ max9611_set_lr()

int max9611_set_lr ( struct max9611_dev * dev,
bool is_normal )

Configure LR bit operation.

Parameters
dev- The device structure.
is_normal- Set true for normal operation. False otherwise (refer to LR bit in data sheet)
Returns
- 0 if successful, error otherwise.

◆ max9611_set_mode()

int max9611_set_mode ( struct max9611_dev * dev,
enum max9611_mode_conf mode )

Configures MAX9611 operating mode.

Parameters
dev- The device structure.
mode- MODE configuration
Returns
- 0 if successful, error otherwise.

◆ max9611_set_mux()

int max9611_set_mux ( struct max9611_dev * dev,
enum max9611_mux_conf mux )

Configures the internal MUX settings.

Parameters
dev- The device structure.
mux- MUX configuration
Returns
- 0 if successful, error otherwise.

◆ max9611_set_retry()

int max9611_set_retry ( struct max9611_dev * dev,
enum max9611_retry_time rtime )

Configures MAX9611 retry time.

Parameters
dev- The device structure.
rtime- Retry time option
Returns
- 0 if successful, error otherwise.

◆ max9611_shutdown()

int max9611_shutdown ( struct max9611_dev * dev,
bool is_shdn )

Device shutdown or power up.

Parameters
dev- The device structure.
is_shdn- Set to true to shutdown device, false otherwise
Returns
- 0 if successful, error otherwise.

◆ max9611_write()

int max9611_write ( struct max9611_dev * dev,
uint8_t addr,
uint8_t bytes,
uint8_t * write_data )

Writes data to device register (I2C)

Parameters
dev- The device structure.
addr- Starting / selected register address.
bytes- Number of bytes to write from starting register address
write_data- Write data buffer
Returns
- 0 if I2C write is successful, error otherwise.