![]() |
no-OS
|
Implementation of ad69x Driver. More...
#include <string.h>#include "stdio.h"#include "stdlib.h"#include "ad469x.h"#include "spi_engine.h"#include "no_os_delay.h"#include "no_os_error.h"#include "no_os_util.h"#include "no_os_alloc.h"Classes | |
| struct | ad469x_device_info |
Macros | |
| #define | AD469x_TEST_DATA 0xEA |
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_set_reg_access_mode (struct ad469x_dev *dev, enum ad469x_reg_access access) |
| Configure register access 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_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_channel_sequence (struct ad469x_dev *dev, enum ad469x_channel_sequencing seq) |
| Set channel sequence. | |
| 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_std_sequence_ch (struct ad469x_dev *dev, uint16_t ch_mask) |
| Configure standard sequencer channels. | |
| 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_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_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_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_reset_dev (struct ad469x_dev *dev) |
| Resets the ad469x device. | |
| 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_config (struct ad469x_dev *dev, struct ad469x_init_param *config_desc) |
| int32_t | ad469x_config_extended (struct ad469x_dev *dev, struct ad469x_init_param *config_desc) |
| 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_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(). | |
Variables | |
| const uint8_t | ad469x_device_resol [] |
| Device resolution. | |
| struct ad469x_device_info | dev_info [] |
Implementation of ad69x Driver.
Copyright 2020-22(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #define AD469x_TEST_DATA 0xEA |
| 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_config_extended | ( | struct ad469x_dev * | dev, |
| struct ad469x_init_param * | config_desc ) |
Configure the device with default parameters and enter conversion mode this adds default ch/slot assigments based on sequece mode.
| [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_set_reg_access_mode | ( | struct ad469x_dev * | dev, |
| enum ad469x_reg_access | access ) |
Configure register access mode.
| [in] | dev | - ad469x_dev device handler. |
| [in] | access | - Access mode |
| 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. |
| const uint8_t ad469x_device_resol[] |
Device resolution.
| struct ad469x_device_info dev_info[] |