Implementation of AD5791 Driver.
More...
#include <stdlib.h>
#include "ad5791.h"
#include "no_os_alloc.h"
|
| int32_t | ad5791_init (struct ad5791_dev **device, struct ad5791_init_param init_param) |
| | Initializes the communication with the device.
|
| |
| int32_t | ad5791_remove (struct ad5791_dev *dev) |
| | Free the resources allocated by ad5791_init().
|
| |
| int32_t | ad5791_set_register_value (struct ad5791_dev *dev, uint8_t register_address, uint32_t register_value) |
| | Writes data into a register.
|
| |
| int32_t | ad5791_get_register_value (struct ad5791_dev *dev, uint8_t register_address, uint32_t *value) |
| | Reads the value of a register.
|
| |
| int32_t | ad5791_dac_ouput_state (struct ad5791_dev *dev, uint8_t state) |
| | Sets the DAC output in one of the three states.
|
| |
| int32_t | ad5791_set_dac_value (struct ad5791_dev *dev, uint32_t value) |
| | Writes to the DAC register.
|
| |
| int32_t | ad5791_soft_instruction (struct ad5791_dev *dev, uint8_t instruction_bit) |
| | Asserts RESET, CLR or LDAC in a software manner.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| int | ad5791_ldac_trigger (struct ad5791_dev *dev) |
| | Trigger LDAC.
|
| |
| int | ad5791_clear_async (struct ad5791_dev *dev) |
| | Clear DAC channel output with the clearcode.
|
| |
Implementation of AD5791 Driver.
- Author
- DNechita (Dan.N.nosp@m.echi.nosp@m.ta@an.nosp@m.alog.nosp@m..com)
Copyright 2013(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
◆ ad5791_clear_async()
Clear DAC channel output with the clearcode.
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad5791_dac_ouput_state()
| int32_t ad5791_dac_ouput_state |
( |
struct ad5791_dev * | dev, |
|
|
uint8_t | state ) |
Sets the DAC output in one of the three states.
- Parameters
-
| 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 |
- Returns
- Negative error code or 0 in case of success.
◆ ad5791_get_register_value()
| int32_t ad5791_get_register_value |
( |
struct ad5791_dev * | dev, |
|
|
uint8_t | register_address, |
|
|
uint32_t * | value ) |
Reads the value of a register.
- Parameters
-
| 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. |
- Returns
- dataRead - The register's value or negative error code.
◆ ad5791_init()
Initializes the communication with the device.
- Parameters
-
| device | - The device structure. |
| init_param | - The structure that contains the device initial parameters. |
- Returns
- status - Result of the initialization procedure. Example: 0 - if initialization was successful; -1 - if initialization was unsuccessful.
◆ ad5791_ldac_trigger()
| int ad5791_ldac_trigger |
( |
struct ad5791_dev * | dev | ) |
|
Trigger LDAC.
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad5791_remove()
Free the resources allocated by ad5791_init().
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad5791_set_dac_value()
| int32_t ad5791_set_dac_value |
( |
struct ad5791_dev * | dev, |
|
|
uint32_t | value ) |
Writes to the DAC register.
- Parameters
-
| dev | - The device structure. |
| value | - The value to be written to DAC. |
- Returns
- Negative error code or 0 in case of success.
◆ ad5791_set_lin_comp()
Set Linearity error compensation based on the reference voltage span.
- Parameters
-
| dev | - The device structure. |
| v_span | - voltage span to set the corresponding lin_comp value. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad5791_set_register_value()
| int32_t ad5791_set_register_value |
( |
struct ad5791_dev * | dev, |
|
|
uint8_t | register_address, |
|
|
uint32_t | register_value ) |
Writes data into a register.
- Parameters
-
| 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. |
- Returns
- Returns 0 in case of success or negative error code.
◆ ad5791_setup()
| 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.
- Parameters
-
| 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. |
- Returns
- Negative error code or 0 in case of success.
◆ ad5791_soft_instruction()
| int32_t ad5791_soft_instruction |
( |
struct ad5791_dev * | dev, |
|
|
uint8_t | instruction_bit ) |
Asserts RESET, CLR or LDAC in a software manner.
- Parameters
-
| 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 |
- Returns
- Negative error code or 0 in case of success.
◆ ad5791_spi_write_mask()
| 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.
- Parameters
-
| 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. |
- Returns
- 0 in case of success, negative error code otherwise.