no-OS
|
Implementation of AD5755 Driver. More...
Functions | |
int8_t | ad5755_init (struct ad5755_dev **device, struct ad5755_init_param init_param) |
Initializes the device and powers-up all channels. The device is initialized with the values held by AD5755_InitialSettings structure. More... | |
int32_t | ad5755_remove (struct ad5755_dev *dev) |
Free the resources allocated by ad5755_init(). More... | |
int32_t | ad5755_get_register_value (struct ad5755_dev *dev, uint8_t register_address) |
Reads the value of a register. More... | |
uint16_t | ad5755_set_register_value (struct ad5755_dev *dev, uint8_t register_address, uint8_t channel, uint16_t register_value) |
Writes data into a register. More... | |
void | ad5755_software_reset (struct ad5755_dev *dev) |
Performs a software reset to the device. More... | |
void | ad5755_watch_dog_setup (struct ad5755_dev *dev, uint8_t wtd_enable, uint8_t timeout) |
Enables/Disables watchdog timer and sets the timeout period. More... | |
void | ad5755_feed_watch_dog_timer (struct ad5755_dev *dev) |
Write a "service pulse" to the AD5755 watchdog timer when enabled. More... | |
void | ad5755_set_control_registers (struct ad5755_dev *dev, uint8_t ctrl_reg_address, uint8_t channel, uint16_t reg_value) |
Configures one of the control registers. More... | |
uint8_t | ad5755_check_crc (uint8_t *data, uint8_t bytes_number) |
Computes the CRC for a data buffer. More... | |
void | ad5755_set_channel_power (struct ad5755_dev *dev, uint8_t channel, uint8_t pwr_status) |
Allows power-up/down of the dc-to-dc converter, DAC and internal amplifiers for the selected channel. More... | |
void | ad5755_set_channel_range (struct ad5755_dev *dev, uint8_t channel, uint8_t range) |
Sets the range of a channel. More... | |
void | ad5755_channel_clear_enable (struct ad5755_dev *dev, uint8_t channel, uint8_t clear_en) |
Selects if the channel clears when CLEAR pin is activated. More... | |
void | ad5755_slew_rate_ctrl (struct ad5755_dev *dev, int8_t channel, int8_t sr_en, int8_t updt_freq, int8_t step_size) |
Configures the Digital Slew Rate Control. More... | |
float | ad5755_set_voltage (struct ad5755_dev *dev, uint8_t channel, float voltage) |
Sets the output voltage of a channel. More... | |
float | ad5755_set_current (struct ad5755_dev *dev, uint8_t channel, float m_acurrent) |
Sets the output current of a channel. More... | |
Implementation of AD5755 Driver.
Copyright 2012(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.
void ad5755_channel_clear_enable | ( | struct ad5755_dev * | dev, |
uint8_t | channel, | ||
uint8_t | clear_en | ||
) |
Selects if the channel clears when CLEAR pin is activated.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
clear_en | - Clear Enable option. Example: 1 - channel clears when the part is cleared; 0 - channel does not clear when the part is cleared. |
uint8_t ad5755_check_crc | ( | uint8_t * | data, |
uint8_t | bytes_number | ||
) |
Computes the CRC for a data buffer.
data | - Data buffer. |
bytes_number | - Data buffer size in bytes. |
void ad5755_feed_watch_dog_timer | ( | struct ad5755_dev * | dev | ) |
Write a "service pulse" to the AD5755 watchdog timer when enabled.
dev | - The device structure. |
int32_t ad5755_get_register_value | ( | struct ad5755_dev * | dev, |
uint8_t | register_address | ||
) |
Reads the value of a register.
dev | - The device structure. |
register_address | - Address of the register. Example: AD5755_RD_DATA_REG(x) AD5755_RD_CTRL_REG(x) AD5755_RD_GAIN_REG(x) AD5755_RD_OFFSET_REG(x) AD5755_RD_CODE_REG(x) AD5755_RD_SR_CTRL_REG(x) AD5755_RD_STATUS_REG AD5755_RD_MAIN_CTRL_REG AD5755_RD_Dc_DC_CTRL_REG x = any of AD5755_DAC_A, .. AD5755_DAC_D |
int8_t ad5755_init | ( | struct ad5755_dev ** | device, |
struct ad5755_init_param | init_param | ||
) |
Initializes the device and powers-up all channels. The device is initialized with the values held by AD5755_InitialSettings structure.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int32_t ad5755_remove | ( | struct ad5755_dev * | dev | ) |
Free the resources allocated by ad5755_init().
dev | - The device structure. |
void ad5755_set_channel_power | ( | struct ad5755_dev * | dev, |
uint8_t | channel, | ||
uint8_t | pwr_status | ||
) |
Allows power-up/down of the dc-to-dc converter, DAC and internal amplifiers for the selected channel.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
pwr_status | - Power mode. Example: 0 - power-down the channel; 1 - power-up the channel. |
void ad5755_set_channel_range | ( | struct ad5755_dev * | dev, |
uint8_t | channel, | ||
uint8_t | range | ||
) |
Sets the range of a channel.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
range | - Range option. Example: AD5755_R_0_5_V - 0 V to 5 V voltage range (default) AD5755_R_0_10_V - 0 V to 10 V voltage range AD5755_R_M5_P5_V - -5 V to +5 V voltage range AD5755_R_M10_P10_V - -10 V to 10 V voltage range AD5755_R_4_20_MA - 4 mA to 20 mA current range AD5755_R_0_20_MA - 0 mA to 20 mA current range AD5755_R_0_24_MA - 0 mA to 24 mA current range |
void ad5755_set_control_registers | ( | struct ad5755_dev * | dev, |
uint8_t | ctrl_reg_address, | ||
uint8_t | channel, | ||
uint16_t | reg_value | ||
) |
Configures one of the control registers.
dev | - The device structure. |
ctrl_reg_address | - Control Register Address. Example: AD5755_CREG_SLEW AD5755_CREG_MAIN AD5755_CREG_DAC AD5755_CREG_DC_DC AD5755_CREG_SOFT |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
reg_value | - Value to be written to the selected Control Register. |
float ad5755_set_current | ( | struct ad5755_dev * | dev, |
uint8_t | channel, | ||
float | m_acurrent | ||
) |
Sets the output current of a channel.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
m_acurrent | - Value to be outputted by the DAC(milliampere). |
uint16_t ad5755_set_register_value | ( | struct ad5755_dev * | dev, |
uint8_t | register_address, | ||
uint8_t | channel, | ||
uint16_t | register_value | ||
) |
Writes data into a register.
dev | - The device structure. |
register_address | - Address of the register. Example: AD5755_DREG_WR_DAC AD5755_DREG_WR_GAIN AD5755_DREG_WR_GAIN_ALL AD5755_DREG_WR_OFFSET AD5755_DREG_WR_OFFSET_ALL AD5755_DREG_WR_CLR_CODE AD5755_DREG_WR_CTRL_REG |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
register_value | - Data value to write. |
float ad5755_set_voltage | ( | struct ad5755_dev * | dev, |
uint8_t | channel, | ||
float | voltage | ||
) |
Sets the output voltage of a channel.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
voltage | - Value to be outputted by the DAC(Volts). |
void ad5755_slew_rate_ctrl | ( | struct ad5755_dev * | dev, |
int8_t | channel, | ||
int8_t | sr_en, | ||
int8_t | updt_freq, | ||
int8_t | step_size | ||
) |
Configures the Digital Slew Rate Control.
dev | - The device structure. |
channel | - Channel option. Example: AD5755_DAC_A AD5755_DAC_B AD5755_DAC_C AD5755_DAC_D |
sr_en | - Enable/Disable the Slew Rate Control. Example: 0 - disable feature; 1 - enable feature. |
updt_freq | - Update Clock Frequency(Hz). Example: AD5755_SR_CLK_64K AD5755_SR_CLK_32k ... AD5755_SR_CLK_8 AD5755_SR_CLK_4 AD5755_SR_CLK_0_5 |
step_size | - Step Size (LSBs). Example: AD5755_STEP_1 AD5755_STEP_2 ... AD5755_STEP_128 AD5755_STEP_256 |
void ad5755_software_reset | ( | struct ad5755_dev * | dev | ) |
Performs a software reset to the device.
dev | - The device structure. |
void ad5755_watch_dog_setup | ( | struct ad5755_dev * | dev, |
uint8_t | wtd_enable, | ||
uint8_t | timeout | ||
) |
Enables/Disables watchdog timer and sets the timeout period.
dev | - The device structure. |
wtd_enable | - Watchdog enable option. Example: 0 - disables watchdog timer 1 - enabled watchdog timer |
timeout | - Timeout period for the watchdog timer. Example: AD5755_WD_5MS AD5755_WD_10MS AD5755_WD_100MS AD5755_WD_200MS |