![]() |
no-OS
|
Header file for ad469x Driver. More...
#include <stdbool.h>#include "spi_engine.h"#include "clk_axi_clkgen.h"#include "no_os_pwm.h"#include "no_os_gpio.h"Classes | |
| struct | ad469x_init_param |
| Structure containing the init parameters needed by the ad469x device. More... | |
| struct | ad469x_dev |
| Structure representing an ad469x device. More... | |
Functions | |
| int32_t | ad469x_spi_reg_read (struct ad469x_dev *dev, uint16_t reg_addr, uint8_t *reg_data) |
| int32_t | ad469x_spi_reg_write (struct ad469x_dev *dev, uint16_t reg_addr, uint8_t reg_data) |
| int32_t | ad469x_spi_read_mask (struct ad469x_dev *dev, uint16_t reg_addr, uint8_t mask, uint8_t *data) |
| int32_t | ad469x_spi_write_mask (struct ad469x_dev *dev, uint16_t reg_addr, uint8_t mask, uint8_t data) |
| int32_t | ad469x_read_data (struct ad469x_dev *dev, uint8_t channel, uint32_t *buf, uint16_t samples) |
| Read from device. Enter register mode to read/write registers. | |
| int32_t | ad469x_seq_read_data (struct ad469x_dev *dev, uint32_t *buf, uint32_t samples) |
| Read from device when converter has the channel sequencer activated. Enter register mode to read/write registers. | |
| int32_t | ad469x_set_channel_sequence (struct ad469x_dev *dev, enum ad469x_channel_sequencing seq) |
| Set channel sequence. | |
| int32_t | ad469x_std_sequence_ch (struct ad469x_dev *dev, uint16_t ch_mask) |
| Configure standard sequencer channels. | |
| int32_t | ad469x_adv_sequence_set_num_slots (struct ad469x_dev *dev, uint8_t num_slots) |
| Configure advanced sequencer number of slots, temp channel not included. | |
| int32_t | ad469x_adv_sequence_set_slot (struct ad469x_dev *dev, uint8_t slot, uint8_t channel) |
| Advanced sequencer, assign channel to a slot. | |
| int32_t | ad469x_sequence_enable_temp (struct ad469x_dev *dev) |
| Enable temperature read at the end of the sequence, for standard and advanced sequencer. | |
| int32_t | ad469x_sequence_disable_temp (struct ad469x_dev *dev) |
| Disable temperature read at the end of the sequence, for standard and advanced sequencer. | |
| int32_t | ad469x_adv_seq_osr (struct ad469x_dev *dev, uint16_t ch, enum ad469x_osr_ratios ratio) |
| Configure over sampling ratio in advanced sequencer mode. | |
| int32_t | ad469x_std_seq_osr (struct ad469x_dev *dev, enum ad469x_osr_ratios ratio) |
| Configure over sampling ratio in standard sequencer mode. | |
| int32_t | ad469x_std_pin_pairing (struct ad469x_dev *dev, enum ad469x_pin_pairing pin_pair) |
| Configure the pin pairing option in standard sequencer mode. | |
| int32_t | ad469x_set_busy (struct ad469x_dev *dev, enum ad469x_busy_gp_sel gp_sel) |
| Configure converter busy indicator to the output of the specified port. | |
| int32_t | ad469x_enter_conversion_mode (struct ad469x_dev *dev) |
| Enter conversion mode. To exit conversion mode send a 5 bit conversion mode command AD469x_CMD_REG_CONFIG_MODE. | |
| int32_t | ad469x_exit_conversion_mode (struct ad469x_dev *dev) |
| Exit conversion mode. Enter register mode to read/write registers. | |
| int32_t | ad469x_reset_dev (struct ad469x_dev *dev) |
| Resets the ad469x device. | |
| int32_t | ad469x_config (struct ad469x_dev *dev, struct ad469x_init_param *config_desc) |
| int32_t | ad469x_get_reference (struct ad469x_dev *device, enum ad469x_ref_set *ref_set) |
| Get the value of reference. | |
| int32_t | ad469x_set_reference (struct ad469x_dev *device, enum ad469x_ref_set ref_set) |
| Set the value of reference. | |
| int32_t | ad469x_configure_ain_high_z (struct ad469x_dev *dev, uint8_t ch, enum ad469x_ain_high_z status) |
| Configure analog input high Z mode. | |
| int32_t | ad469x_get_ain_high_z_status (struct ad469x_dev *dev, uint8_t ch, enum ad469x_ain_high_z *status) |
| Get the status of analog input high Z mode. | |
| int32_t | ad469x_get_num_channels (struct ad469x_dev *dev, uint8_t *num_channels) |
| bool | ad469x_is_temp_channel (struct ad469x_dev *dev, uint8_t channel) |
| int32_t | ad469x_init (struct ad469x_dev **device, struct ad469x_init_param *init_param) |
| int32_t | ad469x_remove (struct ad469x_dev *dev) |
| Free the memory allocated by ad469x_init(). | |
Header file for ad469x Driver.
Copyright 2020-22(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #define AD469x_CHANNEL | ( | x | ) |
| #define AD469x_CHANNEL_NO 16 |
| #define AD469x_CMD_CONFIG_CH_SEL | ( | x | ) |
| #define AD469x_CMD_REG_CONFIG_MODE (0x0A << 3) |
| #define AD469x_CMD_SEL_TEMP_SNSOR_CH (0x0F << 3) |
| #define AD469x_GP_MODE_BUSY_GP_EN | ( | x | ) |
| #define AD469x_GP_MODE_BUSY_GP_EN_MASK (0x01 << 1) |
| #define AD469x_GP_MODE_BUSY_GP_SEL | ( | x | ) |
| #define AD469x_GP_MODE_BUSY_GP_SEL_MASK (0x01 << 4) |
| #define AD469x_REG_AC_CTRL 0x023 |
| #define AD469x_REG_ALERT_STATUS1 0x015 |
| #define AD469x_REG_ALERT_STATUS2 0x016 |
| #define AD469x_REG_ALERT_STATUS3 0x017 |
| #define AD469x_REG_ALERT_STATUS4 0x018 |
| #define AD469x_REG_AS_SLOT | ( | x | ) |
| #define AD469x_REG_AS_SLOT_INX | ( | x | ) |
| #define AD469x_REG_CLAMP_STATUS1 0x01A |
| #define AD469x_REG_CLAMP_STATUS2 0x01B |
| #define AD469x_REG_CONFIG_IN | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_HIZ_EN | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_HIZ_EN_MASK (0x01 << 3) |
| #define AD469x_REG_CONFIG_IN_MODE | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_MODE_MASK (0x01 << 6) |
| #define AD469x_REG_CONFIG_IN_OSR | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_OSR_MASK (0x03 << 0) |
| #define AD469x_REG_CONFIG_IN_PAIR | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_PAIR_MASK (0x03 << 4) |
| #define AD469x_REG_CONFIG_IN_TD_EN | ( | x | ) |
| #define AD469x_REG_CONFIG_IN_TD_EN_MASK (0x01 << 7) |
| #define AD469x_REG_DEVICE_ID_H 0x005 |
| #define AD469x_REG_DEVICE_ID_L 0x004 |
| #define AD469x_REG_DEVICE_TYPE 0x003 |
| #define AD469x_REG_GAIN_IN | ( | x | ) |
| #define AD469x_REG_GP_MODE 0x027 |
| #define AD469x_REG_GPIO_CTRL 0x026 |
| #define AD469x_REG_GPIO_STATE 0x028 |
| #define AD469x_REG_HYST_IN | ( | x | ) |
| #define AD469x_REG_IF_CONFIG_A 0x000 |
| #define AD469x_REG_IF_CONFIG_B 0x001 |
| #define AD469x_REG_IF_CONFIG_C 0x010 |
| #define AD469x_REG_IF_CONFIG_C_MB_STRICT | ( | x | ) |
| #define AD469x_REG_IF_CONFIG_C_MB_STRICT_MASK (0x01 << 5) |
| #define AD469x_REG_IF_STATUS 0x011 |
| #define AD469x_REG_LOOP_MODE 0x00E |
| #define AD469x_REG_OFFSET_IN | ( | x | ) |
| #define AD469x_REG_REF_CTRL 0x021 |
| #define AD469x_REG_REF_VREF_REFBUF | ( | x | ) |
| #define AD469x_REG_REF_VREF_REFBUF_MASK 0x01 |
| #define AD469x_REG_REF_VREF_REFHIZ | ( | x | ) |
| #define AD469x_REG_REF_VREF_REFHIZ_MASK (0x07 << 1) |
| #define AD469x_REG_REF_VREF_SET | ( | x | ) |
| #define AD469x_REG_REF_VREF_SET_MASK (0x07 << 2) |
| #define AD469x_REG_SCRATCH_PAD 0x00A |
| #define AD469x_REG_SEQ_CTRL 0x022 |
| #define AD469x_REG_SETUP 0x020 |
| #define AD469x_REG_STATUS 0x014 |
| #define AD469x_REG_STATUS_RESET_MASK (0x01 << 5) |
| #define AD469x_REG_STD_SEQ_CONFIG 0x024 |
| #define AD469x_REG_TEMP_CTRL 0x029 |
| #define AD469x_REG_TEMP_CTRL_TEMP_EN | ( | x | ) |
| #define AD469x_REG_TEMP_CTRL_TEMP_EN_MASK (0x01 << 0) |
| #define AD469x_REG_THRESHOLD_LB | ( | x | ) |
| #define AD469x_REG_THRESHOLD_UB | ( | x | ) |
| #define AD469x_REG_VENDOR_H 0x00D |
| #define AD469x_REG_VENDOR_L 0x00C |
| #define AD469x_SEQ_CTRL_NUM_SLOTS_AS | ( | x | ) |
| #define AD469x_SEQ_CTRL_NUM_SLOTS_AS_MASK (0x7f << 0) |
| #define AD469x_SEQ_CTRL_STD_SEQ_EN | ( | x | ) |
| #define AD469x_SEQ_CTRL_STD_SEQ_EN_MASK (0x01 << 7) |
| #define AD469x_SETUP_CYC_CTRL_MASK (0x01 << 1) |
| #define AD469x_SETUP_CYC_CTRL_SINGLE | ( | x | ) |
| #define AD469x_SETUP_IF_MODE_CONV (0x01 << 2) |
| #define AD469x_SETUP_IF_MODE_MASK (0x01 << 2) |
| #define AD469x_SLOTS_NO 0x80 |
| enum ad469x_ain_high_z |
| enum ad469x_busy_gp_sel |
| enum ad469x_osr_ratios |
| enum ad469x_pin_pairing |
| enum ad469x_ref_set |
| enum ad469x_reg_access |
| int32_t ad469x_adv_seq_osr | ( | struct ad469x_dev * | dev, |
| uint16_t | ch, | ||
| enum ad469x_osr_ratios | ratio ) |
Configure over sampling ratio in advanced sequencer mode.
| [in] | dev | - ad469x_dev device handler. |
| [in] | ch | - Channel to configure. |
| [in] | ratio | - OSR ratio. |
| int32_t ad469x_adv_sequence_set_num_slots | ( | struct ad469x_dev * | dev, |
| uint8_t | num_slots ) |
Configure advanced sequencer number of slots, temp channel not included.
| [in] | dev | - ad469x_dev device handler. |
| [in] | num_slots | - Number of slots, max value = 0x7f |
| int32_t ad469x_adv_sequence_set_slot | ( | struct ad469x_dev * | dev, |
| uint8_t | slot, | ||
| uint8_t | channel ) |
Advanced sequencer, assign channel to a slot.
| [in] | dev | - ad469x_dev device handler. |
| [in] | slot | - Slot number [0x00, 0x7f] |
| [in] | channel | - Assigned channel [0x00, 0x0f]. |
| int32_t ad469x_config | ( | struct ad469x_dev * | dev, |
| struct ad469x_init_param * | config_desc ) |
Configure the device with initial parameters.
| [in,out] | dev | - The device structure. |
| [in] | config_desc | - Pointer to structure containing configuration parameters. |
| int32_t ad469x_configure_ain_high_z | ( | struct ad469x_dev * | dev, |
| uint8_t | ch, | ||
| enum ad469x_ain_high_z | status ) |
Configure analog input high Z mode.
| dev | The device structure |
| ch | Channel ID |
| status | Status of analog input high Z bit |
| int32_t ad469x_enter_conversion_mode | ( | struct ad469x_dev * | dev | ) |
Enter conversion mode. To exit conversion mode send a 5 bit conversion mode command AD469x_CMD_REG_CONFIG_MODE.
| [in] | dev | - ad469x_dev device handler. |
| int32_t ad469x_exit_conversion_mode | ( | struct ad469x_dev * | dev | ) |
Exit conversion mode. Enter register mode to read/write registers.
| [in] | dev | - ad469x_dev device handler. |
| int32_t ad469x_get_ain_high_z_status | ( | struct ad469x_dev * | dev, |
| uint8_t | ch, | ||
| enum ad469x_ain_high_z * | status ) |
Get the status of analog input high Z mode.
| dev | The device structure |
| ch | Channel ID |
| status | Status of analog input high Z bit |
| int32_t ad469x_get_num_channels | ( | struct ad469x_dev * | dev, |
| uint8_t * | num_channels ) |
| int32_t ad469x_get_reference | ( | struct ad469x_dev * | device, |
| enum ad469x_ref_set * | ref_set ) |
Get the value of reference.
| device | AD469x Device instance. |
| ref_set | Value of VREF_SET |
| int32_t ad469x_init | ( | struct ad469x_dev ** | device, |
| struct ad469x_init_param * | init_param ) |
Initialize the device.
| [out] | device | - The device structure. |
| [in] | init_param | - The structure that contains the device initial parameters. |
| bool ad469x_is_temp_channel | ( | struct ad469x_dev * | dev, |
| uint8_t | channel ) |
| int32_t ad469x_read_data | ( | struct ad469x_dev * | dev, |
| uint8_t | channel, | ||
| uint32_t * | buf, | ||
| uint16_t | samples ) |
Read from device. Enter register mode to read/write registers.
| [in] | dev | - ad469x_dev device handler. |
| [in] | channel | - ad469x selected channel. |
| [out] | buf | - data buffer. |
| [in] | samples | - sample number. |
| int32_t ad469x_remove | ( | struct ad469x_dev * | dev | ) |
Free the memory allocated by ad469x_init().
| [in] | dev | - Pointer to the device handler. |
| int32_t ad469x_reset_dev | ( | struct ad469x_dev * | dev | ) |
Resets the ad469x device.
| [in] | dev | - ad469x_dev device handler. |
| int32_t ad469x_seq_read_data | ( | struct ad469x_dev * | dev, |
| uint32_t * | buf, | ||
| uint32_t | samples ) |
Read from device when converter has the channel sequencer activated. Enter register mode to read/write registers.
| [in] | dev | - ad469x_dev device handler. |
| [out] | buf | - data buffer. |
| [in] | samples | - Number of samples per channel. For example, if with ad469x_std_sequence_ch 2 channel where activated, buf will be filled with 10 samples for each of them. If temp is enable, the there will be an other 10 samples for temperature |
| int32_t ad469x_sequence_disable_temp | ( | struct ad469x_dev * | dev | ) |
Disable temperature read at the end of the sequence, for standard and advanced sequencer.
| [in] | dev | - ad469x_dev device handler. |
| int32_t ad469x_sequence_enable_temp | ( | struct ad469x_dev * | dev | ) |
Enable temperature read at the end of the sequence, for standard and advanced sequencer.
| [in] | dev | - ad469x_dev device handler. |
| int32_t ad469x_set_busy | ( | struct ad469x_dev * | dev, |
| enum ad469x_busy_gp_sel | gp_sel ) |
Configure converter busy indicator to the output of the specified port.
| [in] | dev | - ad469x_dev device handler. |
| [in] | gp_sel | - Port. |
| int32_t ad469x_set_channel_sequence | ( | struct ad469x_dev * | dev, |
| enum ad469x_channel_sequencing | seq ) |
Set channel sequence.
| [in] | dev | - ad469x_dev device handler. |
| [in] | seq | - Channel sequence. |
| int32_t ad469x_set_reference | ( | struct ad469x_dev * | device, |
| enum ad469x_ref_set | ref_set ) |
Set the value of reference.
| device | AD469x Device instance. |
| ref_set | Value of VREF_SET |
| int32_t ad469x_spi_read_mask | ( | struct ad469x_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint8_t | mask, | ||
| uint8_t * | data ) |
SPI read from device using a mask.
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - The mask. |
| data | - The register data. |
| int32_t ad469x_spi_reg_read | ( | struct ad469x_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint8_t * | reg_data ) |
Read from device.
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The register data. |
| int32_t ad469x_spi_reg_write | ( | struct ad469x_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint8_t | reg_data ) |
Write to device.
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The register data. @eturn 0 in case of success, negative error code otherwise. |
| int32_t ad469x_spi_write_mask | ( | struct ad469x_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint8_t | mask, | ||
| uint8_t | data ) |
SPI write to device using a mask.
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - The mask. |
| data | - The register data. |
| int32_t ad469x_std_pin_pairing | ( | struct ad469x_dev * | dev, |
| enum ad469x_pin_pairing | pin_pair ) |
Configure the pin pairing option in standard sequencer mode.
| [in] | dev | - ad469x_dev device handler. |
| [in] | pin_pair | - Pin pairing selection. |
| int32_t ad469x_std_seq_osr | ( | struct ad469x_dev * | dev, |
| enum ad469x_osr_ratios | ratio ) |
Configure over sampling ratio in standard sequencer mode.
| [in] | dev | - ad469x_dev device handler. |
| [in] | ratio | - OSR ratio. |
| int32_t ad469x_std_sequence_ch | ( | struct ad469x_dev * | dev, |
| uint16_t | ch_mask ) |
Configure standard sequencer channels.
| [in] | dev | - ad469x_dev device handler. |
| [in] | ch_mask | - Extra channels to activate. |