Header file for AD738x Driver.
More...
#include "no_os_util.h"
#include "no_os_spi.h"
|
| enum | ad738x_conv_mode {
TWO_WIRE_MODE
,
ONE_WIRE_MODE
,
FOUR_WIRE_MODE
} |
| |
| enum | ad738x_ch_seq_sel {
FIRST_FOUR
,
ALL
,
SECOND_FOUR
} |
| |
| enum | ad738x_os_mode {
NORMAL_OS_MODE
,
ROLLING_OS_MODE
} |
| |
| enum | ad738x_os_ratio {
OSR_DISABLED
,
OSR_X2
,
OSR_X4
,
OSR_X8
,
OSR_X16
,
OSR_X32
} |
| |
| enum | ad738x_resolution {
RES_16_BIT
,
RES_18_BIT
} |
| |
| enum | ad738x_reset_type {
SOFT_RESET
,
HARD_RESET
} |
| |
| enum | ad738x_pwd_mode {
NORMAL_PWDM
,
FULL_PWDM
} |
| |
| enum | ad738x_ref_sel {
INT_REF
,
EXT_REF
} |
| |
|
| int32_t | ad738x_init (struct ad738x_dev **device, struct ad738x_init_param *init_param) |
| |
| int32_t | ad738x_remove (struct ad738x_dev *dev) |
| | Free the resources allocated by ad738x_init().
|
| |
| int32_t | ad738x_spi_reg_read (struct ad738x_dev *dev, uint8_t reg_addr, uint16_t *reg_data) |
| |
| int32_t | ad738x_spi_reg_write (struct ad738x_dev *dev, uint8_t reg_addr, uint16_t reg_data) |
| |
| int32_t | ad738x_spi_single_conversion (struct ad738x_dev *dev, uint32_t *adc_data) |
| |
| int32_t | ad738x_spi_write_mask (struct ad738x_dev *dev, uint8_t reg_addr, uint32_t mask, uint16_t data) |
| |
| int32_t | ad738x_set_conversion_mode (struct ad738x_dev *dev, enum ad738x_conv_mode mode) |
| |
| int32_t | ad738x_reset (struct ad738x_dev *dev, enum ad738x_reset_type reset) |
| |
| int32_t | ad738x_oversampling_config (struct ad738x_dev *dev, enum ad738x_os_mode os_mode, enum ad738x_os_ratio os_ratio, enum ad738x_resolution res) |
| |
| int32_t | ad738x_power_down_mode (struct ad738x_dev *dev, enum ad738x_pwd_mode pmode) |
| |
| int32_t | ad738x_reference_sel (struct ad738x_dev *dev, enum ad738x_ref_sel ref_sel) |
| |
| int32_t | ad738x_ch_seq_sel (struct ad738x_dev *dev, enum ad738x_ch_seq_sel ch_seq_sel) |
| |
| int32_t | ad738x_read_data (struct ad738x_dev *dev, uint32_t *buf, uint16_t samples) |
| | Read from device. Enter register mode to read/write registers.
|
| |
◆ AD738X_ALERT_HIGH
| #define AD738X_ALERT_HIGH |
( |
| x | ) |
|
◆ AD738X_ALERT_HIGH_MSK
◆ AD738X_ALERT_LOW
| #define AD738X_ALERT_LOW |
( |
| x | ) |
|
◆ AD738X_ALERT_LOW_MSK
◆ AD738X_CONFIG1_ALERTEN
| #define AD738X_CONFIG1_ALERTEN |
( |
| x | ) |
|
◆ AD738X_CONFIG1_ALERTEN_MSK
| #define AD738X_CONFIG1_ALERTEN_MSK NO_OS_BIT(3) |
◆ AD738X_CONFIG1_CH_SEQ
| #define AD738X_CONFIG1_CH_SEQ |
( |
| x | ) |
|
◆ AD738X_CONFIG1_CH_SEQ_MSK
◆ AD738X_CONFIG1_CRC_R
| #define AD738X_CONFIG1_CRC_R |
( |
| x | ) |
|
◆ AD738X_CONFIG1_CRC_R_MSK
| #define AD738X_CONFIG1_CRC_R_MSK NO_OS_BIT(4) |
◆ AD738X_CONFIG1_CRC_W
| #define AD738X_CONFIG1_CRC_W |
( |
| x | ) |
|
◆ AD738X_CONFIG1_CRC_W_MSK
| #define AD738X_CONFIG1_CRC_W_MSK NO_OS_BIT(5) |
◆ AD738X_CONFIG1_OS_MODE
| #define AD738X_CONFIG1_OS_MODE |
( |
| x | ) |
|
◆ AD738X_CONFIG1_OS_MODE_MSK
| #define AD738X_CONFIG1_OS_MODE_MSK NO_OS_BIT(9) |
◆ AD738X_CONFIG1_OSR
| #define AD738X_CONFIG1_OSR |
( |
| x | ) |
|
◆ AD738X_CONFIG1_OSR_MSK
◆ AD738X_CONFIG1_PMODE
| #define AD738X_CONFIG1_PMODE |
( |
| x | ) |
|
◆ AD738X_CONFIG1_PMODE_MSK
| #define AD738X_CONFIG1_PMODE_MSK NO_OS_BIT(0) |
◆ AD738X_CONFIG1_REFSEL
| #define AD738X_CONFIG1_REFSEL |
( |
| x | ) |
|
◆ AD738X_CONFIG1_REFSEL_MSK
| #define AD738X_CONFIG1_REFSEL_MSK NO_OS_BIT(1) |
◆ AD738X_CONFIG1_RES
| #define AD738X_CONFIG1_RES |
( |
| x | ) |
|
◆ AD738X_CONFIG1_RES_MSK
◆ AD738X_CONFIG2_RESET
| #define AD738X_CONFIG2_RESET |
( |
| x | ) |
|
◆ AD738X_CONFIG2_RESET_MSK
◆ AD738X_CONFIG2_SDO2
| #define AD738X_CONFIG2_SDO2 |
( |
| x | ) |
|
◆ AD738X_CONFIG2_SDO2_MSK
◆ AD738X_CONFIG2_SDO4
| #define AD738X_CONFIG2_SDO4 |
( |
| x | ) |
|
◆ AD738X_CONFIG2_SDO4_MSK
◆ AD738X_FLAG_NO_PWM
◆ AD738X_FLAG_OFFLOAD
◆ AD738X_FLAG_STANDARD_SPI_DMA
| #define AD738X_FLAG_STANDARD_SPI_DMA NO_OS_BIT(0) |
◆ AD738X_REG_ALERT
| #define AD738X_REG_ALERT 0x03 |
◆ AD738X_REG_ALERT_HIGH_TH
| #define AD738X_REG_ALERT_HIGH_TH 0x05 |
◆ AD738X_REG_ALERT_LOW_TH
| #define AD738X_REG_ALERT_LOW_TH 0x04 |
◆ AD738X_REG_CONFIG1
| #define AD738X_REG_CONFIG1 0x01 |
◆ AD738X_REG_CONFIG2
| #define AD738X_REG_CONFIG2 0x02 |
◆ AD738X_REG_NOP
| #define AD738X_REG_NOP 0x00 |
◆ AD738X_REG_READ
| #define AD738X_REG_READ |
( |
| x | ) |
|
◆ AD738X_REG_WRITE
| #define AD738X_REG_WRITE |
( |
| x | ) |
|
Value:((1 << 7) | ((x & 0x7) << 4))
◆ ad738x_ch_seq_sel
| Enumerator |
|---|
| FIRST_FOUR | |
| ALL | |
| SECOND_FOUR | |
◆ ad738x_conv_mode
| Enumerator |
|---|
| TWO_WIRE_MODE | |
| ONE_WIRE_MODE | |
| FOUR_WIRE_MODE | |
◆ ad738x_os_mode
| Enumerator |
|---|
| NORMAL_OS_MODE | |
| ROLLING_OS_MODE | |
◆ ad738x_os_ratio
| Enumerator |
|---|
| OSR_DISABLED | |
| OSR_X2 | |
| OSR_X4 | |
| OSR_X8 | |
| OSR_X16 | |
| OSR_X32 | |
◆ ad738x_pwd_mode
| Enumerator |
|---|
| NORMAL_PWDM | |
| FULL_PWDM | |
◆ ad738x_ref_sel
| Enumerator |
|---|
| INT_REF | |
| EXT_REF | |
◆ ad738x_reset_type
| Enumerator |
|---|
| SOFT_RESET | |
| HARD_RESET | |
◆ ad738x_resolution
| Enumerator |
|---|
| RES_16_BIT | |
| RES_18_BIT | |
◆ ad738x_ch_seq_sel()
Select the channels to be used.
Mapping (enum ad738x_ch_seq_sel): FIRST_FOUR -> 0b00 (CH=0, SEQ=0): Channel 0 pair (AINA0/AINB0) ALL -> 0b01 (CH=0, SEQ=1): sequencer enabled, cycles AINx0, AINx1 SECOND_FOUR -> 0b10 (CH=1, SEQ=0): Channel 1 pair (AINA1/AINB1)
- Parameters
-
| dev | - The device structure. |
| ch | - Channel/sequencer select configuration. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_init()
Initialize the device.
Initialize the device.
- Parameters
-
| device | - The device structure. |
| init_param | - The structure that contains the device initial parameters. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_oversampling_config()
Set the oversampling mode and ratio.
Sets the oversampling mode in the device (os_mode) Sets the oversampling ratio (osr) Sets the size of the conversion result data (res)
- Parameters
-
| dev | - The device structure. |
| os_mode | - accepted values: NORMAL_OS_MODE ROLLING_OS_MODE |
| os_ratio | - accepted values: OSR_DISABLED OSR_X2 OSR_X4 OSR_X8 OSR_X16 OSR_X32 |
| res | - accepted values: RES_16_BIT RES_18_BIT |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_power_down_mode()
Device power down.
Device power down.
- Parameters
-
| dev | - The device structure. |
| pmode | - Type of power mode Accepted values: NORMAL_PWDM FULL_PWDM |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_read_data()
| int32_t ad738x_read_data |
( |
struct ad738x_dev * | dev, |
|
|
uint32_t * | buf, |
|
|
uint16_t | samples ) |
Read from device. Enter register mode to read/write registers.
Read data from device.
- Parameters
-
| dev | - ad738x_dev device handler. |
| buf | - data buffer. |
| samples | - sample number. |
- Returns
- 0 in case of success, -1 otherwise.
◆ ad738x_reference_sel()
Enable internal or external reference.
Enable internal or external reference
- Parameters
-
| dev | - The device structure. |
| ref_sel | - Type of reference Accepted values: INT_REF EXT_REF |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_remove()
Free the resources allocated by ad738x_init().
Free the resources allocated by ad738x_init().
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_reset()
Device reset over SPI.
Device reset over SPI.
- Parameters
-
| dev | - The device structure. |
| reset | - Type of reset. Accepted values: SOFT_RESET HARD_RESET |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_set_conversion_mode()
Conversion mode
Select if ADC A and ADC B output on both SDOA and SDOB lines (two wire mode) or only on on the SDOA line
- Parameters
-
| dev | - The device structure. |
| mode | - The conversion output mode. Accepted values: TWO_WIRE_MODE ONE_WIRE_MODE |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_spi_reg_read()
| int32_t ad738x_spi_reg_read |
( |
struct ad738x_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint16_t * | reg_data ) |
Read from device.
Read from device.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The register data. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_spi_reg_write()
| int32_t ad738x_spi_reg_write |
( |
struct ad738x_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint16_t | reg_data ) |
Write to device.
Write to device.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The register data. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_spi_single_conversion()
| int32_t ad738x_spi_single_conversion |
( |
struct ad738x_dev * | dev, |
|
|
uint32_t * | adc_data ) |
Read conversion result from device.
Read conversion result from device.
- Parameters
-
| dev | - The device structure. |
| adc_data | - The conversion result data |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ad738x_spi_write_mask()
| int32_t ad738x_spi_write_mask |
( |
struct ad738x_dev * | dev, |
|
|
uint8_t | reg_addr, |
|
|
uint32_t | mask, |
|
|
uint16_t | data ) |
SPI write to device using a mask.
SPI write to device using a mask.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - The mask. |
| data | - The register data. |
- Returns
- 0 in case of success, negative error code otherwise.