no-OS
Functions
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. More...
 
int adm1177_remove (struct adm1177_dev *device)
 Free the resources allocated by adm1177_init(). More...
 
int adm1177_set_vrange (struct adm1177_dev *device, uint8_t vrange)
 
  • Sets the vrange off the ADM1177.
More...
 
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.
More...
 
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.
More...
 
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.
More...
 
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.
More...
 
int adm1177_to_microampers (uint16_t raw_sample, uint64_t *current_ua)
 
  • Converts the raw sample from the Readback into uA.
More...
 

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.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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.
Here is the caller graph for this function:

◆ 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.