no-OS
Functions
ad7616.c File Reference

Implementation of AD7616 Driver. More...

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "spi_engine.h"
#include "axi_dmac.h"
#include "no-os/gpio.h"
#include "ad7616.h"
#include "no-os/error.h"
#include "no-os/delay.h"
#include "no-os/axi_io.h"
Include dependency graph for ad7616.c:

Functions

int32_t ad7616_read (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
 
int32_t ad7616_write (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t reg_data)
 
int32_t ad7616_read_mask (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t *data)
 
int32_t ad7616_write_mask (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
 
int32_t ad7616_spi_read (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
 
int32_t ad7616_spi_write (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t reg_data)
 
int32_t ad7616_par_read (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
 
int32_t ad7616_par_write (struct ad7616_dev *dev, uint8_t reg_addr, uint16_t reg_data)
 
int32_t ad7616_reset (struct ad7616_dev *dev)
 
int32_t ad7616_set_range (struct ad7616_dev *dev, enum ad7616_ch ch, enum ad7616_range range)
 
int32_t ad7616_set_mode (struct ad7616_dev *dev, enum ad7616_mode mode)
 
int32_t ad7616_set_oversampling_ratio (struct ad7616_dev *dev, enum ad7616_osr osr)
 
int32_t ad7616_read_data_serial (struct ad7616_dev *dev, uint32_t *buf, uint32_t samples)
 Read from device in serial mode. Enter register mode to read/write registers. More...
 
int32_t ad7616_read_data_parallel (struct ad7616_dev *dev, uint32_t *buf, uint32_t samples)
 Read from device in parallel mode. Enter register mode to read/write registers. More...
 
int32_t ad7616_core_setup (struct ad7616_dev *dev)
 
int32_t ad7616_setup (struct ad7616_dev **device, struct ad7616_init_param *init_param)
 

Detailed Description

Implementation of AD7616 Driver.

Author
DBogdan (drago.nosp@m.s.bo.nosp@m.gdan@.nosp@m.anal.nosp@m.og.co.nosp@m.m)
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.

All rights reserved.

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

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, 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

◆ ad7616_core_setup()

int32_t ad7616_core_setup ( struct ad7616_dev dev)

Initialize the AXI_AD7616 IP core device.

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

◆ ad7616_par_read()

int32_t ad7616_par_read ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t *  reg_data 
)

PAR read from device.

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

◆ ad7616_par_write()

int32_t ad7616_par_write ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t  reg_data 
)

PAR write to device.

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

◆ ad7616_read()

int32_t ad7616_read ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t *  reg_data 
)

Read from device.

Parameters
dev- The device structure.
reg_addr- The register address.
reg_data- The register data.
Returns
0 in case of success, negative error code otherwise.

◆ ad7616_read_data_parallel()

int32_t ad7616_read_data_parallel ( struct ad7616_dev dev,
uint32_t *  buf,
uint32_t  samples 
)

Read from device in parallel mode. Enter register mode to read/write registers.

Parameters
dev- ad7616_dev device handler.
buf- data buffer.
samples- sample number.
Returns
SUCCESS in case of success, FAILURE otherwise.
Here is the caller graph for this function:

◆ ad7616_read_data_serial()

int32_t ad7616_read_data_serial ( struct ad7616_dev dev,
uint32_t *  buf,
uint32_t  samples 
)

Read from device in serial mode. Enter register mode to read/write registers.

Parameters
dev- ad7616_dev device handler.
buf- data buffer.
samples- sample number.
Returns
SUCCESS in case of success, FAILURE otherwise.
Here is the caller graph for this function:

◆ ad7616_read_mask()

int32_t ad7616_read_mask ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t  mask,
uint16_t *  data 
)

Read from device using a mask.

Parameters
dev- The device structure.
reg_addr- The register address.
mask- The mask.
data- The register data.
Returns
0 in case of success, negative error code otherwise.

◆ ad7616_reset()

int32_t ad7616_reset ( struct ad7616_dev dev)

Perform a full reset of the device.

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

◆ ad7616_set_mode()

int32_t ad7616_set_mode ( struct ad7616_dev dev,
enum ad7616_mode  mode 
)

Set the operation mode (software or hardware).

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

◆ ad7616_set_oversampling_ratio()

int32_t ad7616_set_oversampling_ratio ( struct ad7616_dev dev,
enum ad7616_osr  osr 
)

Set the oversampling ratio.

Parameters
dev- The device structure.
osr- The oversampling ratio. Accepted values: AD7616_OSR_0 AD7616_OSR_2 AD7616_OSR_4 AD7616_OSR_8 AD7616_OSR_16 AD7616_OSR_32 AD7616_OSR_64 AD7616_OSR_128
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7616_set_range()

int32_t ad7616_set_range ( struct ad7616_dev dev,
enum ad7616_ch  ch,
enum ad7616_range  range 
)

Set the analog input range for the selected analog input channel.

Parameters
dev- The device structure.
ch- The channel number. Accepted values: AD7616_VA0 AD7616_VA1 AD7616_VA2 AD7616_VA3 AD7616_VA4 AD7616_VA5 AD7616_VA6 AD7616_VA7 AD7616_VB0 AD7616_VB1 AD7616_VB2 AD7616_VB3 AD7616_VB4 AD7616_VB5 AD7616_VB6 AD7616_VB7
range- The analog input range. Accepted values: AD7616_2V5 AD7616_5V AD7616_10V
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ ad7616_setup()

int32_t ad7616_setup ( struct ad7616_dev **  device,
struct ad7616_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.
Here is the caller graph for this function:

◆ ad7616_spi_read()

int32_t ad7616_spi_read ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t *  reg_data 
)

SPI read from device.

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

◆ ad7616_spi_write()

int32_t ad7616_spi_write ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t  reg_data 
)

SPI write to device.

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

◆ ad7616_write()

int32_t ad7616_write ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t  reg_data 
)

Write to device.

Parameters
dev- The device structure.
reg_addr- The register address.
reg_data- The register data.
Returns
0 in case of success, negative error code otherwise.

◆ ad7616_write_mask()

int32_t ad7616_write_mask ( struct ad7616_dev dev,
uint8_t  reg_addr,
uint16_t  mask,
uint16_t  data 
)

SPI write to device using a mask.

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