no-OS
Functions
ad7799.c File Reference

Implementation of AD7798/AD7799 Driver. More...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "no_os_error.h"
#include "ad7799.h"
#include "no_os_alloc.h"
Include dependency graph for ad7799.c:

Functions

int32_t ad7799_read (struct ad7799_dev *device, uint8_t reg_addr, uint32_t *reg_data)
 Read device register. More...
 
int32_t ad7799_write (struct ad7799_dev *device, uint8_t reg_addr, uint32_t reg_data)
 Write device register. More...
 
int32_t ad7799_reset (struct ad7799_dev *device)
 Software reset of the device. More...
 
int32_t ad7799_set_mode (struct ad7799_dev *device, uint8_t mode)
 Set the device mode. More...
 
int32_t ad7799_set_channel (struct ad7799_dev *device, uint8_t ch)
 Select the ADC channel. More...
 
int32_t ad7799_get_channel (struct ad7799_dev *device, uint8_t ch, uint32_t *reg_data)
 Read specific ADC channel. More...
 
int32_t ad7799_read_channel (struct ad7799_dev *device, uint8_t ch, int32_t *data_scaled)
 Read data from specific ADC channel with specified precision. More...
 
int32_t ad7799_set_gain (struct ad7799_dev *device, uint8_t gain)
 Set the ADC gain. More...
 
int32_t ad7799_get_gain (struct ad7799_dev *device, uint8_t *gain)
 Get the ADC gain. More...
 
int32_t ad7799_set_refdet (struct ad7799_dev *device, uint8_t ref_en)
 Enable or disable the reference detect function. More...
 
int32_t ad7799_set_polarity (struct ad7799_dev *device, uint8_t polarity)
 Set ADC polarity. More...
 
int32_t ad7799_dev_ready (struct ad7799_dev *device)
 Read the /RDY bit of status register and check the status of the device. More...
 
int32_t ad7799_init (struct ad7799_dev **device, const struct ad7799_init_param *init_param)
 Initialize the device. More...
 
int32_t ad7799_remove (struct ad7799_dev *device)
 Remove the device and release resources. More...
 

Detailed Description

Implementation of AD7798/AD7799 Driver.

Author
Antoniu Miclaus (anton.nosp@m.iu.m.nosp@m.iclau.nosp@m.s@an.nosp@m.alog..nosp@m.com)

Copyright 2020(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

◆ ad7799_dev_ready()

int32_t ad7799_dev_ready ( struct ad7799_dev device)

Read the /RDY bit of status register and check the status of the device.

Parameters
device- The device structure.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7799_get_channel()

int32_t ad7799_get_channel ( struct ad7799_dev device,
uint8_t  ch,
uint32_t *  reg_data 
)

Read specific ADC channel.

Parameters
device- The device structure.
ch- The ADC channel.
reg_data- The content of the data register.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7799_get_gain()

int32_t ad7799_get_gain ( struct ad7799_dev device,
uint8_t *  gain 
)

Get the ADC gain.

Parameters
device- The device structure.
gain- the gain value from the register.
Returns
0 in case of success, negative error code otherwise.

◆ ad7799_init()

int32_t ad7799_init ( struct ad7799_dev **  device,
const struct ad7799_init_param init_param 
)

Initialize the device.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
0 in case of success, negative error code otherwise.

◆ ad7799_read()

int32_t ad7799_read ( struct ad7799_dev device,
uint8_t  reg_addr,
uint32_t *  reg_data 
)

Read device register.

Parameters
device- The device structure.
reg_addr- The register address.
reg_data- The data read from the register.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7799_read_channel()

int32_t ad7799_read_channel ( struct ad7799_dev device,
uint8_t  ch,
int32_t *  data_scaled 
)

Read data from specific ADC channel with specified precision.

Parameters
device- The device structure.
ch- The ADC channel.
data_scaled- The content of the data in mV/uV.
Returns
0 in case of success, negative error code otherwise.

◆ ad7799_remove()

int32_t ad7799_remove ( struct ad7799_dev device)

Remove the device and release resources.

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

◆ ad7799_reset()

int32_t ad7799_reset ( struct ad7799_dev device)

Software reset of the device.

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

◆ ad7799_set_channel()

int32_t ad7799_set_channel ( struct ad7799_dev device,
uint8_t  ch 
)

Select the ADC channel.

Parameters
device- The device structure.
ch- The channel number.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7799_set_gain()

int32_t ad7799_set_gain ( struct ad7799_dev device,
uint8_t  gain 
)

Set the ADC gain.

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

◆ ad7799_set_mode()

int32_t ad7799_set_mode ( struct ad7799_dev device,
uint8_t  mode 
)

Set the device mode.

Parameters
device- The device structure.
mode- The device mode.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7799_set_polarity()

int32_t ad7799_set_polarity ( struct ad7799_dev device,
uint8_t  polarity 
)

Set ADC polarity.

Parameters
device- The device structure.
polarity- set the device polarity: 0 - Bipolar coding 1 - Unipolar coding
Returns
0 in case of success, negative error code otherwise.

◆ ad7799_set_refdet()

int32_t ad7799_set_refdet ( struct ad7799_dev device,
uint8_t  ref_en 
)

Enable or disable the reference detect function.

Parameters
device- The device structure.
ref_en- 1 reference detect enable.
  • 0 reference detect disable.
Returns
0 in case of success, negative error code otherwise.

◆ ad7799_write()

int32_t ad7799_write ( struct ad7799_dev device,
uint8_t  reg_addr,
uint32_t  reg_data 
)

Write device register.

Parameters
device- The device structure.
reg_addr- The register address.
reg_data- The data to be written.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function: