| 
    precision-converters-firmware
    
   | 
 
#include <inttypes.h>#include <string.h>#include <errno.h>#include <math.h>#include "app_config.h"#include "ad7606_iio.h"#include "ad7606.h"#include "ad7606_support.h"#include "ad7606_user_config.h"#include "common.h"#include "no_os_error.h"#include "no_os_gpio.h"#include "iio_trigger.h"
Macros | |
| #define | DEFAULT_SCALE ((DEFAULT_CHN_RANGE / ADC_MAX_COUNT_BIPOLAR) * 1000) | 
| #define | MANUAL_OPEN_DETECT_ENTRY_TRHLD 350 | 
| #define | MANUAL_OPEN_DETECT_THRESHOLD_RPD50K 20 | 
| #define | MANUAL_OPEN_DETECT_CONV_CNTS 10 | 
| #define | MANUAL_OPEN_DETECT_CONV_TRSHLD 10 | 
| #define | MANUAL_OPEN_DETECT_CM_CNV_CNT 3 | 
| #define | AUTO_OPEN_DETECT_QUEUE_MAX_CNT 128 | 
| #define | AUTO_OPEN_DETECT_QUEUE_EXTRA_CONV_CNT 15 | 
| #define | ADC_CALIBRATION_GAIN_MAX 64.0 | 
| #define | OFFSET_REG_RESOLUTION 1 | 
| #define | NUM_OF_IIO_DEVICES 1 | 
| #define | IIO_TRIGGER_NAME "ad7606_iio_trigger" | 
| #define | CHN_STORAGE_BITS (BYTES_PER_SAMPLE * 8) | 
| #define | DATA_BUFFER_SIZE (32768) | 
Enumerations | |
| enum | ad7606_attribute_id {  RAW_ATTR_ID , SCALE_ATTR_ID , OFFSET_ATTR_ID , SAMPLING_FREQ_ATTR_ID }  | 
| enum | range_e {  LOW , HIGH }  | 
Functions | |
| int32_t | debug_reg_read (void *dev, uint32_t reg, uint32_t *readval) | 
| Read the debug register value.   | |
| int32_t | debug_reg_write (void *dev, uint32_t reg, uint32_t writeval) | 
| Write into the debug register.   | |
| int32_t | iio_ad7606_trigger_handler (struct iio_device_data *iio_dev_data) | 
| Push data into IIO buffer when trigger handler IRQ is invoked.   | |
| int32_t | ad7606_iio_remove (struct iio_desc *desc) | 
| Release resources allocated for IIO device.   | |
| int32_t | ad7606_iio_initialize (void) | 
| Initialize the IIO interface for AD7606 IIO device.   | |
| void | ad7606_iio_event_handler (void) | 
| Run the AD7606 IIO event handler.   | |
Variables | |
| struct ad7606_dev * | p_ad7606_dev_inst = NULL | 
| struct iio_attribute | channel_input_attributes [] | 
| #define ADC_CALIBRATION_GAIN_MAX 64.0 | 
| #define AUTO_OPEN_DETECT_QUEUE_EXTRA_CONV_CNT 15 | 
| #define AUTO_OPEN_DETECT_QUEUE_MAX_CNT 128 | 
| #define CHN_STORAGE_BITS (BYTES_PER_SAMPLE * 8) | 
| #define DATA_BUFFER_SIZE (32768) | 
| #define DEFAULT_SCALE ((DEFAULT_CHN_RANGE / ADC_MAX_COUNT_BIPOLAR) * 1000) | 
| #define IIO_TRIGGER_NAME "ad7606_iio_trigger" | 
| #define MANUAL_OPEN_DETECT_CM_CNV_CNT 3 | 
| #define MANUAL_OPEN_DETECT_CONV_CNTS 10 | 
| #define MANUAL_OPEN_DETECT_CONV_TRSHLD 10 | 
| #define MANUAL_OPEN_DETECT_ENTRY_TRHLD 350 | 
| #define MANUAL_OPEN_DETECT_THRESHOLD_RPD50K 20 | 
| #define NUM_OF_IIO_DEVICES 1 | 
| #define OFFSET_REG_RESOLUTION 1 | 
| enum ad7606_attribute_id | 
| enum range_e | 
| void ad7606_iio_event_handler | ( | void | ) | 
Run the AD7606 IIO event handler.
This function monitors the new IIO client event

| int32_t ad7606_iio_initialize | ( | void | ) | 
Initialize the IIO interface for AD7606 IIO device.

| int32_t ad7606_iio_remove | ( | struct iio_desc * | desc | ) | 
Release resources allocated for IIO device.
| desc[in] | - IIO device descriptor | 

| int32_t debug_reg_read | ( | void * | dev, | 
| uint32_t | reg, | ||
| uint32_t * | readval | ||
| ) | 
Read the debug register value.
| dev[in]- | Pointer to IIO device instance | 
| reg[in]- | Register address to read from | 
| readval[out]- | Pointer to variable to read data into | 
| int32_t debug_reg_write | ( | void * | dev, | 
| uint32_t | reg, | ||
| uint32_t | writeval | ||
| ) | 
Write into the debug register.
| dev[in]- | Pointer to IIO device instance | 
| reg[in]- | Register address to write into | 
| writeval[in]- | Register value to write | 
| int32_t iio_ad7606_trigger_handler | ( | struct iio_device_data * | iio_dev_data | ) | 
Push data into IIO buffer when trigger handler IRQ is invoked.
| iio_dev_data[in] | - IIO device data instance | 
| struct iio_attribute channel_input_attributes[] | 
| struct ad7606_dev* p_ad7606_dev_inst = NULL | 
Pointer to the struct representing the AD7606 IIO device