![]() |
no-OS
|
Source file of AD5460 Driver. More...
#include "ad5460.h"#include "no_os_crc8.h"#include "no_os_delay.h"#include "no_os_error.h"#include "no_os_util.h"#include "no_os_alloc.h"Macros | |
| #define | AD5460_CRC_POLYNOMIAL 0x7 |
| #define | AD5460_DIN_DEBOUNCE_LEN NO_OS_BIT(5) |
| #define | AD77416H_DEV_ADDRESS_MSK NO_OS_GENMASK(5, 4) |
Functions | |
| NO_OS_DECLARE_CRC8_TABLE (_crc_table) | |
| int | ad5460_dac_voltage_to_code (struct ad5460_desc *desc, int32_t mvolts, uint16_t *code, uint32_t ch) |
| Converts a millivolt value in the corresponding DAC 16 bit code. | |
| int | ad5460_dac_current_to_code (struct ad5460_desc *desc, uint32_t uamps, uint16_t *code, uint32_t ch) |
| Convers a microamp value in the corresponding DAC 16 bit code. | |
| int | ad5460_reg_read_raw (struct ad5460_desc *desc, uint32_t addr, uint8_t *val) |
| Read a raw communication frame. | |
| int | ad5460_reg_write (struct ad5460_desc *desc, uint32_t addr, uint16_t val) |
| Write a register's value. | |
| int | ad5460_reg_read (struct ad5460_desc *desc, uint32_t addr, uint16_t *val) |
| Read a register's value. | |
| int | ad5460_reg_update (struct ad5460_desc *desc, uint32_t addr, uint16_t mask, uint16_t val) |
| Update a register's field. | |
| int | ad5460_set_channel_function (struct ad5460_desc *desc, uint32_t ch, enum ad5460_op_mode ch_func) |
| Set the operation mode for a specific channel. | |
| int | ad5460_set_channel_vout_range (struct ad5460_desc *desc, uint32_t ch, enum ad5460_vout_range vout_range) |
| Set the voltage range for a specific channel. | |
| int | ad5460_set_channel_iout_range (struct ad5460_desc *desc, uint32_t ch, enum ad5460_iout_range iout_range) |
| Set the current range for a specific channel. | |
| int | ad5460_set_channel_i_limit (struct ad5460_desc *desc, uint32_t ch, enum ad5460_i_limit i_limit) |
| Set the current limit for a specific DAC channel in vout mode. | |
| int | ad5460_set_channel_dac_code (struct ad5460_desc *desc, uint32_t ch, uint16_t dac_code) |
| Set and load a code for the DAC on a specific channel. | |
| int | ad5460_set_diag (struct ad5460_desc *desc, uint32_t ch, enum ad5460_diag_mode diag_code) |
| Set which diagnostic value to be loaded in the DIAG_RESULT register. | |
| int | ad5460_set_gpio_config (struct ad5460_desc *desc, uint32_t ch, enum ad5460_gpio_select config) |
| Set the GPIO operation mode. | |
| int | ad5460_gpio_set (struct ad5460_desc *desc, uint32_t ch, uint8_t val) |
| Set the logic value of a GPO pin. | |
| int | ad5460_gpio_get (struct ad5460_desc *desc, uint32_t ch, uint8_t *val) |
| Get the GPO value for a specific channel. | |
| int | ad5460_get_live (struct ad5460_desc *desc, union ad5460_live_status *status) |
| Read the live status bits. | |
| int | ad5460_dac_slew_enable (struct ad5460_desc *desc, uint32_t ch, enum ad5460_slew_lin_step step, enum ad5460_lin_rate rate) |
| Configure and enable slew rate control for a DAC on a specific channel. | |
| int | ad5460_dac_slew_disable (struct ad5460_desc *desc, uint32_t ch) |
| Disable the slew rate control. | |
| int | ad5460_set_therm_rst (struct ad5460_desc *desc, bool enable) |
| Enable or disable the higher thermal reset. | |
| int | ad5460_reset (struct ad5460_desc *desc) |
| Perform software or hardware reset and wait for device reset time. | |
| int | ad5460_init (struct ad5460_desc **desc, struct ad5460_init_param *init_param) |
| Initialize the device structure. | |
| int | ad5460_remove (struct ad5460_desc *desc) |
| Free the device descriptor. | |
Source file of AD5460 Driver.
Copyright 2024(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #define AD5460_CRC_POLYNOMIAL 0x7 |
| #define AD5460_DIN_DEBOUNCE_LEN NO_OS_BIT(5) |
| #define AD77416H_DEV_ADDRESS_MSK NO_OS_GENMASK(5, 4) |
| int ad5460_dac_current_to_code | ( | struct ad5460_desc * | desc, |
| uint32_t | uamps, | ||
| uint16_t * | code, | ||
| uint32_t | ch ) |
Convers a microamp value in the corresponding DAC 16 bit code.
| desc | - The device structure. |
| uamps | - The microamps value |
| code | - The resulting DAC code |
| ch | - Channel Number |
| int ad5460_dac_slew_disable | ( | struct ad5460_desc * | desc, |
| uint32_t | ch ) |
Disable the slew rate control.
| desc | - The device structure. |
| ch | - The channel index. |
| int ad5460_dac_slew_enable | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_slew_lin_step | step, | ||
| enum ad5460_lin_rate | rate ) |
Configure and enable slew rate control for a DAC on a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| step | - Number of codes per increment. |
| rate | - Number of increments per second. |
| int ad5460_dac_voltage_to_code | ( | struct ad5460_desc * | desc, |
| int32_t | mvolts, | ||
| uint16_t * | code, | ||
| uint32_t | ch ) |
Converts a millivolt value in the corresponding DAC 16 bit code.
| desc | - The device structure. |
| mvolts | - The millivolts value. |
| code | - The resulting DAC code. |
| ch | - The channel index. |
| int ad5460_get_live | ( | struct ad5460_desc * | desc, |
| union ad5460_live_status * | status ) |
Read the live status bits.
| desc | - The device structure. |
| status | - The register's value. |
| int ad5460_gpio_get | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| uint8_t * | val ) |
Get the GPO value for a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| val | - The debounce time. |
| int ad5460_gpio_set | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| uint8_t | val ) |
Set the logic value of a GPO pin.
| desc | - The device structure. |
| ch | - The channel index. |
| val | - The output logic state. |
| int ad5460_init | ( | struct ad5460_desc ** | desc, |
| struct ad5460_init_param * | init_param ) |
Initialize the device structure.
| desc | - The device structure to be initialized. |
| init_param | - Initialization parameter for the device descriptor. |
| int ad5460_reg_read | ( | struct ad5460_desc * | desc, |
| uint32_t | addr, | ||
| uint16_t * | val ) |
Read a register's value.
| desc | - The device structure. |
| addr | - The register's address. |
| val | - The register's read value. |
| int ad5460_reg_read_raw | ( | struct ad5460_desc * | desc, |
| uint32_t | addr, | ||
| uint8_t * | val ) |
Read a raw communication frame.
| desc | - The device structure. |
| addr | - The register's address. |
| val | - A raw comm frame. |
Reading a register on AD5460 requires writing the address to the READ_SELECT register first and then doing another spi read, which will contain the requested register value.
| int ad5460_reg_update | ( | struct ad5460_desc * | desc, |
| uint32_t | addr, | ||
| uint16_t | mask, | ||
| uint16_t | val ) |
Update a register's field.
| desc | - The device structure. |
| addr | - The register's address. |
| val | - The register's value. |
| mask | - The mask for a specific register field. |
| int ad5460_reg_write | ( | struct ad5460_desc * | desc, |
| uint32_t | addr, | ||
| uint16_t | val ) |
Write a register's value.
| desc | - The device structure. |
| addr | - The register's address. |
| val | - The register's value. |
| int ad5460_remove | ( | struct ad5460_desc * | desc | ) |
Free the device descriptor.
| desc | - The device structure. |
| int ad5460_reset | ( | struct ad5460_desc * | desc | ) |
Perform software or hardware reset and wait for device reset time.
| desc | - The device structure. |
| int ad5460_set_channel_dac_code | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| uint16_t | dac_code ) |
Set and load a code for the DAC on a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| dac_code | - The code for the DAC. |
| int ad5460_set_channel_function | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_op_mode | ch_func ) |
Set the operation mode for a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| ch_func | - The operation mode. |
| int ad5460_set_channel_i_limit | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_i_limit | i_limit ) |
Set the current limit for a specific DAC channel in vout mode.
| desc | - The devices structure |
| ch | - The channel index |
| i_limit | - The current limit |
| int ad5460_set_channel_iout_range | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_iout_range | iout_range ) |
Set the current range for a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| iout_range | - The current range. |
| int ad5460_set_channel_vout_range | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_vout_range | vout_range ) |
Set the voltage range for a specific channel.
| desc | - The device structure. |
| ch | - The channel index. |
| vout_range | - The voltage range. |
| int ad5460_set_diag | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_diag_mode | diag_code ) |
Set which diagnostic value to be loaded in the DIAG_RESULT register.
| desc | - The device structure. |
| ch | - The channel index. |
| diag_code | - The diagnostic setting. |
| int ad5460_set_gpio_config | ( | struct ad5460_desc * | desc, |
| uint32_t | ch, | ||
| enum ad5460_gpio_select | config ) |
Set the GPIO operation mode.
| desc | - The device structure. |
| ch | - The channel index. |
| config | - The configuration setting. |
| int ad5460_set_therm_rst | ( | struct ad5460_desc * | desc, |
| bool | enable ) |
Enable or disable the higher thermal reset.
| desc | - The device structure. |
| enable | - The thermal reset status. false: reset at 110 deg. Celsius. true: reset at 140 deg. Celsius. |
| NO_OS_DECLARE_CRC8_TABLE | ( | _crc_table | ) |