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

Source file of ADM1177 Driver. More...

#include <stdlib.h>
#include "adm1177.h"
#include "no_os_alloc.h"
#include "no_os_delay.h"
#include "no_os_error.h"
Include dependency graph for adm1177.c:

Functions

int adm1177_init (struct adm1177_dev **device, struct adm1177_init_param *init_param)
 Initializes I2C.
 
int adm1177_remove (struct adm1177_dev *device)
 Free the resources allocated by adm1177_init().
 
int adm1177_set_vrange (struct adm1177_dev *device, uint8_t vrange)
 
  • Sets the vrange off the ADM1177.

 
int adm1177_write (struct adm1177_dev *device, uint8_t cmd, uint8_t reg_address)
 
  • In the write command byte operation, the master device sends a command byte to the slave device.

 
int adm1177_read_status (struct adm1177_dev *device, uint8_t *status_byte)
 
  • Reads the status byte from the ADC if requested and transmits it through the status_byte pointer.

 
int adm1177_read_conv (struct adm1177_dev *device, uint16_t *conv_voltage, uint16_t *conv_current)
 
  • Gets the voltage/current readback from the ADM1177s I2C ADC, if the device is initialized right and transmits the requested values.

 
int adm1177_to_microvolts (struct adm1177_dev *device, uint16_t raw_sample, uint64_t *voltage_uv)
 
  • Converts the raw sample from the Readback into uV.

 
int adm1177_to_microampers (uint16_t raw_sample, uint64_t *current_ua)
 
  • Converts the raw sample from the Readback into uA.

 

Detailed Description

Source file of ADM1177 Driver.

Header file of ADM1177 Driver.

Author
Radu Sabau (radu..nosp@m.saba.nosp@m.u@ana.nosp@m.log..nosp@m.com)

Copyright 2023(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ adm1177_init()

int adm1177_init ( struct adm1177_dev ** device,
struct adm1177_init_param * init_param )

Initializes I2C.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
status - Initialization status. Example: negative value - Initialization failed. 0 - Initialization succeeded.

◆ adm1177_read_conv()

int adm1177_read_conv ( struct adm1177_dev * device,
uint16_t * conv_voltage,
uint16_t * conv_current )

  • Gets the voltage/current readback from the ADM1177s I2C ADC, if the device is initialized right and transmits the requested values.

Parameters
device- The device structure.
conv_voltage- The variable through which the voltage read from the ADC is received if requested. If it is 0, it means it was not requested.
conv_current- The variable through which the current read from the ADC is received if requested. If it is 0, it means it was not requested.
Returns
0 in case of success, negative error code otherwise.

◆ adm1177_read_status()

int adm1177_read_status ( struct adm1177_dev * device,
uint8_t * status_byte )

  • Reads the status byte from the ADC if requested and transmits it through the status_byte pointer.

Parameters
device- The device structure.
status_byte- The pointer through which the status byte is transmitted.
Returns
0 in case of success, negative error code otherwise.

◆ adm1177_remove()

int adm1177_remove ( struct adm1177_dev * device)

Free the resources allocated by adm1177_init().

Parameters
device- The device structure.
Returns
0 in case of success, negative error code otherwise.

◆ adm1177_set_vrange()

int adm1177_set_vrange ( struct adm1177_dev * device,
uint8_t vrange )

  • Sets the vrange off the ADM1177.

Parameters
device- The device structure.
vrange- ADM1177_CMD_VRANGE for V Range of 6.65V, otherwise 26.65V will be used.
Returns
0 in case of success, negative error code otherwise.

◆ adm1177_to_microampers()

int adm1177_to_microampers ( uint16_t raw_sample,
uint64_t * current_ua )

  • Converts the raw sample from the Readback into uA.

Parameters
raw_sample- The raw sample of the Current Readback from the ADC.
current_ua- The pointer through which the converted microamper value is returned.
Returns
- 0, because there is no actual return.

◆ adm1177_to_microvolts()

int adm1177_to_microvolts ( struct adm1177_dev * device,
uint16_t raw_sample,
uint64_t * voltage_uv )

  • Converts the raw sample from the Readback into uV.

Parameters
device- The device structure.
raw_sample- The raw sample of the Voltage Readback from the ADC.
voltage_uv- The pointer through which the converted microvolt value is returned.
Returns
- 0 in case of succes. negative error code if v_fullscale is set wrong.

◆ adm1177_write()

int adm1177_write ( struct adm1177_dev * device,
uint8_t cmd,
uint8_t reg_address )

  • In the write command byte operation, the master device sends a command byte to the slave device.

Parameters
device- The device structure.
cmd- The command byte indicates which operation to be performed.
reg_address- In case of a write extended command byte operation one of the ADM1177_REG_ALERT_EN, ADM1177_REG_ALERT_TH or ADM1177_REG_CONTROL will be used. In case of a write command byte operation reg_address will be set to 0.
Returns
0 in case of success, negative error code otherwise.