no-OS
|
Header file of AD5791 Driver. More...
#include <stdint.h>
#include "no_os_delay.h"
#include "no_os_gpio.h"
#include "no_os_spi.h"
#include "no_os_util.h"
#include "no_os_error.h"
Go to the source code of this file.
Classes | |
struct | ad5791_chip_info |
struct | ad5791_dev |
struct | ad5791_init_param |
Enumerations | |
enum | ad5791_type { ID_AD5760, ID_AD5780, ID_AD5781, ID_AD5790, ID_AD5791 } |
enum | ad5791_lin_comp_select { AD5781_SPAN_UPTO_10V = 0, AD5781_SPAN_10V_TO_20V = 4, AD5791_SPAN_10V_TO_12V = 1, AD5791_SPAN_12V_TO_16V = 2, AD5791_SPAN_16V_TO_19V = 3, AD5791_SPAN_19V_TO_20V = 4 } |
Functions | |
int32_t | ad5791_init (struct ad5791_dev **device, struct ad5791_init_param init_param) |
Initializes the communication with the device. More... | |
int32_t | ad5791_remove (struct ad5791_dev *dev) |
Free the resources allocated by ad5791_init(). More... | |
int32_t | ad5791_set_register_value (struct ad5791_dev *dev, uint8_t register_address, uint32_t register_value) |
Writes data into a register. More... | |
int32_t | ad5791_get_register_value (struct ad5791_dev *dev, uint8_t register_address, uint32_t *value) |
Reads the value of a register. More... | |
int32_t | ad5791_dac_ouput_state (struct ad5791_dev *dev, uint8_t state) |
Sets the DAC output in one of the three states. More... | |
int32_t | ad5791_set_dac_value (struct ad5791_dev *dev, uint32_t value) |
Writes to the DAC register. More... | |
int32_t | ad5791_soft_instruction (struct ad5791_dev *dev, uint8_t instruction_bit) |
Asserts RESET, CLR or LDAC in a software manner. More... | |
int32_t | ad5791_setup (struct ad5791_dev *dev, uint32_t setup_word) |
Configures the output amplifier, DAC coding, SDO state and the linearity error compensation. More... | |
int | ad5791_spi_write_mask (struct ad5791_dev *dev, uint8_t register_address, uint32_t mask, uint32_t value) |
SPI write to device using a mask. More... | |
int | ad5791_set_lin_comp (struct ad5791_dev *dev, enum ad5791_lin_comp_select v_span) |
Set Linearity error compensation based on the reference voltage span. More... | |
int | ad5791_ldac_trigger (struct ad5791_dev *dev) |
Trigger LDAC. More... | |
int | ad5791_clear_async (struct ad5791_dev *dev) |
Clear DAC channel output with the clearcode. More... | |
Header file of AD5791 Driver.
Copyright 2013(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:
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.
#define AD5791_ADDR_REG | ( | x | ) | (((uint32_t)(x) & 0x7) << 20) |
#define AD5791_CLR_HIGH |
#define AD5791_CLR_LOW |
#define AD5791_CLR_OUT |
#define AD5791_CMD_WR_SOFT_CTRL 4 |
#define AD5791_CTRL_BIN2SC | ( | x | ) | ((x & 0x01) << 4) |
#define AD5791_CTRL_BIN2SC_MASK NO_OS_BIT(4) |
#define AD5791_CTRL_DACTRI NO_OS_BIT(3) |
#define AD5791_CTRL_LINCOMP | ( | x | ) | (((x) & 0xF) << 6) |
#define AD5791_CTRL_LINCOMP_MASK NO_OS_GENMASK(9,6) |
#define AD5791_CTRL_OPGND NO_OS_BIT(2) |
#define AD5791_CTRL_RBUF | ( | x | ) | ((x & 0x01) << 1) |
#define AD5791_CTRL_RBUF_MASK NO_OS_BIT(1) |
#define AD5791_CTRL_SDODIS | ( | x | ) | ((x & 0x01) << 5) |
#define AD5791_CTRL_SDODIS_MASK NO_OS_BIT(5) |
#define AD5791_LDAC_HIGH |
#define AD5791_LDAC_LOW |
#define AD5791_LDAC_OUT |
#define AD5791_NOP 0 |
#define AD5791_OUT_CLAMPED_6K 0x1 |
#define AD5791_OUT_NORMAL 0x0 |
#define AD5791_OUT_TRISTATE 0x2 |
#define AD5791_READ (1ul << 23) |
#define AD5791_REG_CLR_CODE 3 |
#define AD5791_REG_CTRL 2 |
#define AD5791_REG_DAC 1 |
#define AD5791_RESET_HIGH |
#define AD5791_RESET_LOW |
#define AD5791_RESET_OUT |
#define AD5791_SOFT_CTRL_CLR (1 << 1) |
#define AD5791_SOFT_CTRL_LDAC (1 << 0) |
#define AD5791_SOFT_CTRL_RESET (1 << 2) |
#define AD5791_WRITE (0ul << 23) |
#define MAX_RESOLUTION 20 |
enum ad5791_type |
int ad5791_clear_async | ( | struct ad5791_dev * | dev | ) |
Clear DAC channel output with the clearcode.
Clear DAC channel output with the clearcode.
dev | - The device structure. |
int32_t ad5791_dac_ouput_state | ( | struct ad5791_dev * | dev, |
uint8_t | state | ||
) |
Sets the DAC output in one of the three states.
Sets the DAC output in one of the three states.
dev | - The device structure. |
state | - The output state. Example: AD5791_OUT_NORMAL - normal operation mode AD5791_OUT_CLAMPED_6K - output is clamped via ~6KOhm to AGND AD5791_OUT_TRISTATE - output is in tristate |
int32_t ad5791_get_register_value | ( | struct ad5791_dev * | dev, |
uint8_t | register_address, | ||
uint32_t * | value | ||
) |
Reads the value of a register.
Reads the value of a register.
dev | - The device structure. |
register_address | - Address of the register. Example: AD5791_REG_DAC - DAC register AD5791_REG_CTRL - Control register AD5791_REG_CLR_CODE - Clearcode register AD5791_CMD_WR_SOFT_CTRL - Software control register |
value | - Pointer to the register data. |
int32_t ad5791_init | ( | struct ad5791_dev ** | device, |
struct ad5791_init_param | init_param | ||
) |
Initializes the communication with the device.
Initializes the communication with the device.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int ad5791_ldac_trigger | ( | struct ad5791_dev * | dev | ) |
Trigger LDAC.
Trigger LDAC.
dev | - The device structure. |
int32_t ad5791_remove | ( | struct ad5791_dev * | dev | ) |
Free the resources allocated by ad5791_init().
Free the resources allocated by ad5791_init().
dev | - The device structure. |
int32_t ad5791_set_dac_value | ( | struct ad5791_dev * | dev, |
uint32_t | value | ||
) |
Writes to the DAC register.
Writes to the DAC register.
dev | - The device structure. |
value | - The value to be written to DAC. |
int ad5791_set_lin_comp | ( | struct ad5791_dev * | dev, |
enum ad5791_lin_comp_select | v_span | ||
) |
Set Linearity error compensation based on the reference voltage span.
Set Linearity error compensation based on the reference voltage span.
dev | - The device structure. |
v_span | - voltage span to set the corresponding lin_comp value. |
int32_t ad5791_set_register_value | ( | struct ad5791_dev * | dev, |
uint8_t | register_address, | ||
uint32_t | register_value | ||
) |
Writes data into a register.
Writes data into a register.
dev | - The device structure. |
register_address | - Address of the register. Example: AD5791_REG_DAC - DAC register AD5791_REG_CTRL - Control register AD5791_REG_CLR_CODE - Clearcode register AD5791_CMD_WR_SOFT_CTRL - Software control register |
register_value | - Value of the register. |
int32_t ad5791_setup | ( | struct ad5791_dev * | dev, |
uint32_t | setup_word | ||
) |
Configures the output amplifier, DAC coding, SDO state and the linearity error compensation.
Configures the output amplifier, DAC coding, SDO state and the linearity error compensation.
dev | - The device structure. |
setup_word | - Is a 24-bit value that sets or clears the Control Register bits : RBUF bit(AD5791_CTRL_RBUF(x)), BIN/2sC bit(AD5791_CTRL_BIN2SC(x)), SDODIS bit(AD5791_CTRL_SDODIS(x)) and LINCOMP bits(AD5791_CTRL_LINCOMP(x)). Example: AD5791_CTRL_BIN2SC(1) | AD5791_CTRL_RBUF(1) - sets the DAC register to use offset binary coding and powers down the internal output amplifier. |
int32_t ad5791_soft_instruction | ( | struct ad5791_dev * | dev, |
uint8_t | instruction_bit | ||
) |
Asserts RESET, CLR or LDAC in a software manner.
Asserts RESET, CLR or LDAC in a software manner.
dev | - The device structure. |
instruction_bit | - A Software Control Register bit. Example: AD5791_SOFT_CTRL_LDAC - Load DAC AD5791_SOFT_CTRL_CLR - Clear AD5791_SOFT_CTRL_RESET - Reset |
int ad5791_spi_write_mask | ( | struct ad5791_dev * | dev, |
uint8_t | register_address, | ||
uint32_t | mask, | ||
uint32_t | value | ||
) |
SPI write to device using a mask.
SPI write to device using a mask.
dev | - The device structure. |
register_address | - Address of the register. Example: AD5791_REG_DAC - DAC register AD5791_REG_CTRL - Control register AD5791_REG_CLR_CODE - Clearcode register AD5791_CMD_WR_SOFT_CTRL - Software control register |
mask | - The mask. |
value | - The register data. |