Synergy Software Package User's Manual

Interface for A/D Converters. More...

Data Structures

struct  adc_sample_state_t
 
struct  adc_callback_args_t
 
struct  adc_info_t
 
struct  adc_channel_cfg_t
 
struct  adc_cfg_t
 
struct  adc_api_t
 
struct  adc_instance_t
 

Macros

#define ADC_API_VERSION_MAJOR   (2U)
 

Typedefs

typedef void adc_ctrl_t
 

Enumerations

enum  adc_mode_t { ADC_MODE_SINGLE_SCAN = 0, ADC_MODE_GROUP_SCAN = 1, ADC_MODE_CONTINUOUS_SCAN = 2 }
 
enum  adc_resolution_t {
  ADC_RESOLUTION_12_BIT = 0, ADC_RESOLUTION_10_BIT = 1, ADC_RESOLUTION_8_BIT = 2, ADC_RESOLUTION_14_BIT = 3,
  ADC_RESOLUTION_16_BIT = 4, ADC_RESOLUTION_24_BIT = 5
}
 
enum  adc_pga_t { ,
  SINGLE_INPUT_GAIN_1 = 0x0, SINGLE_INPUT_GAIN_2 = 0x1, SINGLE_INPUT_GAIN_3 = 0x2, SINGLE_INPUT_GAIN_4 = 0x3,
  SINGLE_INPUT_GAIN_5 = 0x4, SINGLE_INPUT_GAIN_6 = 0x5, SINGLE_INPUT_GAIN_7 = 0x6, SINGLE_INPUT_GAIN_8 = 0x7,
  SINGLE_INPUT_GAIN_9 = 0x8, SINGLE_INPUT_GAIN_10 = 0x9, SINGLE_INPUT_GAIN_11 = 0xA, SINGLE_INPUT_GAIN_12 = 0xB,
  SINGLE_INPUT_GAIN_13 = 0xC, SINGLE_INPUT_GAIN_14 = 0xD, SINGLE_INPUT_GAIN_15 = 0xE, DIFFERENTIAL_INPUT_GAIN_1 = 0x81,
  DIFFERENTIAL_INPUT_GAIN_2 = 0x95, DIFFERENTIAL_INPUT_GAIN_3 = 0xA9, DIFFERENTIAL_INPUT_GAIN_4 = 0xBB
}
 
enum  adc_alignment_t { ADC_ALIGNMENT_RIGHT = 0x0000, ADC_ALIGNMENT_LEFT = 0x8000 }
 
enum  adc_add_t {
  ADC_ADD_OFF = 0, ADC_ADD_TWO = 1, ADC_ADD_THREE = 2, ADC_ADD_FOUR = 3,
  ADC_ADD_SIXTEEN = 0x05, ADC_ADD_AVERAGE_TWO = 0x81, ADC_ADD_AVERAGE_FOUR = 0x83, ADC_ADD_AVERAGE_EIGHT = 0X84,
  ADC_ADD_AVERAGE_SIXTEEN = 0x85
}
 
enum  adc_clear_t { ADC_CLEAR_AFTER_READ_OFF = 0x0000, ADC_CLEAR_AFTER_READ_ON = 0x0020 }
 
enum  adc_trigger_t { ADC_TRIGGER_ASYNC_EXT_TRG0, ADC_TRIGGER_SYNC_ELC, ADC_TRIGGER_SOFTWARE }
 
enum  adc_sample_state_reg_t {
  ADC_SAMPLE_STATE_CHANNEL_0 = 0, ADC_SAMPLE_STATE_CHANNEL_1, ADC_SAMPLE_STATE_CHANNEL_2, ADC_SAMPLE_STATE_CHANNEL_3,
  ADC_SAMPLE_STATE_CHANNEL_4, ADC_SAMPLE_STATE_CHANNEL_5, ADC_SAMPLE_STATE_CHANNEL_6, ADC_SAMPLE_STATE_CHANNEL_7,
  ADC_SAMPLE_STATE_CHANNEL_8, ADC_SAMPLE_STATE_CHANNEL_9, ADC_SAMPLE_STATE_CHANNEL_10, ADC_SAMPLE_STATE_CHANNEL_11,
  ADC_SAMPLE_STATE_CHANNEL_12, ADC_SAMPLE_STATE_CHANNEL_13, ADC_SAMPLE_STATE_CHANNEL_14, ADC_SAMPLE_STATE_CHANNEL_15,
  ADC_SAMPLE_STATE_CHANNEL_16_TO_21 = -3, ADC_SAMPLE_STATE_CHANNEL_16_TO_20 = -3, ADC_SAMPLE_STATE_CHANNEL_16_TO_27 = -3, ADC_SAMPLE_STATE_TEMPERATURE = -2,
  ADC_SAMPLE_STATE_VOLTAGE = -1
}
 
enum  adc_cb_event_t { ADC_EVENT_SCAN_COMPLETE, ADC_EVENT_SCAN_COMPLETE_GROUP_B, ADC_EVENT_CALIBRATION_COMPLETE, ADC_EVENT_CONVERSION_COMPLETE }
 
enum  adc_group_a_t { ADC_GROUP_A_PRIORITY_OFF = 0, ADC_GROUP_A_GROUP_B_WAIT_FOR_TRIGGER = 1, ADC_GROUP_A_GROUP_B_RESTART_SCAN = 3, ADC_GROUP_A_GROUP_B_CONTINUOUS_SCAN = 0x8001 }
 
enum  adc_voltage_reference_t { ADC_EXTERNAL_VOLTAGE = 0x00, ADC_INTERNAL_VREF_1_5V, ADC_INTERNAL_VREF_2_0V, ADC_INTERNAL_VREF_2_5V }
 
enum  adc_over_current_t { OVER_CURRENT_DETECTION_DISABLE = 0x00, OVER_CURRENT_DETECTION_ENABLE = 0x01 }
 
enum  adc_register_t {
  ADC_REG_CHANNEL_0 = 0, ADC_REG_CHANNEL_1 = 1, ADC_REG_CHANNEL_2 = 2, ADC_REG_CHANNEL_3 = 3,
  ADC_REG_CHANNEL_4 = 4, ADC_REG_CHANNEL_5 = 5, ADC_REG_CHANNEL_6 = 6, ADC_REG_CHANNEL_7 = 7,
  ADC_REG_CHANNEL_8 = 8, ADC_REG_CHANNEL_9 = 9, ADC_REG_CHANNEL_10 = 10, ADC_REG_CHANNEL_11 = 11,
  ADC_REG_CHANNEL_12 = 12, ADC_REG_CHANNEL_13 = 13, ADC_REG_CHANNEL_14 = 14, ADC_REG_CHANNEL_15 = 15,
  ADC_REG_CHANNEL_16 = 16, ADC_REG_CHANNEL_17 = 17, ADC_REG_CHANNEL_18 = 18, ADC_REG_CHANNEL_19 = 19,
  ADC_REG_CHANNEL_20 = 20, ADC_REG_CHANNEL_21 = 21, ADC_REG_CHANNEL_22 = 22, ADC_REG_CHANNEL_23 = 23,
  ADC_REG_CHANNEL_24 = 24, ADC_REG_CHANNEL_25 = 25, ADC_REG_CHANNEL_26 = 26, ADC_REG_CHANNEL_27 = 27,
  ADC_REG_TEMPERATURE = -3, ADC_REG_VOLT = -2
}
 

Detailed Description

Interface for A/D Converters.

Summary

The ADC interface provides standard ADC functionality including one-shot mode (single scan), continuous scan and group scan. It also allows configuration of hardware and software triggers for starting scans. After each conversion an interrupt can be triggered, and if a callback function is provided, the call back is invoked with the appropriate event information.

Implemented by: ADC Sigma Delta ADC (SDADC)

Related SSP architecture topics:

ADC Interface description: ADC Driver

Macro Definition Documentation

◆ ADC_API_VERSION_MAJOR

#define ADC_API_VERSION_MAJOR   (2U)

Includes board and MCU related header files. Version Number of API.

Typedef Documentation

◆ adc_ctrl_t

typedef void adc_ctrl_t

ADC control block. Allocate using driver instance control structure from driver instance header file.

Enumeration Type Documentation

◆ adc_add_t

enum adc_add_t

ADC data sample addition and averaging options

Enumerator
ADC_ADD_OFF 

Addition turned off for channels/sensors.

ADC_ADD_TWO 

Add two samples.

ADC_ADD_THREE 

Add three samples.

ADC_ADD_FOUR 

Add four samples.

ADC_ADD_SIXTEEN 

Add sixteen samples.

ADC_ADD_AVERAGE_TWO 

Average two samples.

ADC_ADD_AVERAGE_FOUR 

Average four samples.

ADC_ADD_AVERAGE_EIGHT 

Average eight samples.

ADC_ADD_AVERAGE_SIXTEEN 

Average sixteen samples.

◆ adc_alignment_t

ADC data alignment definitions

Enumerator
ADC_ALIGNMENT_RIGHT 

Data alignment right.

ADC_ALIGNMENT_LEFT 

Data alignment left.

◆ adc_cb_event_t

ADC callback event definitions

Enumerator
ADC_EVENT_SCAN_COMPLETE 

Normal/Group A scan complete.

ADC_EVENT_SCAN_COMPLETE_GROUP_B 

Group B scan complete.

ADC_EVENT_CALIBRATION_COMPLETE 

Calibration complete.

ADC_EVENT_CONVERSION_COMPLETE 

Conversion complete.

◆ adc_clear_t

ADC clear after read definitions

Enumerator
ADC_CLEAR_AFTER_READ_OFF 

Clear after read off.

ADC_CLEAR_AFTER_READ_ON 

Clear after read on.

◆ adc_group_a_t

ADC action for group A interrupts group B scan. This enumeration is used to specify the priority between Group A and B in group mode.

Enumerator
ADC_GROUP_A_PRIORITY_OFF 

Group A ignored and does not interrupt ongoing group B scan.

ADC_GROUP_A_GROUP_B_WAIT_FOR_TRIGGER 

Group A interrupts Group B(single scan) which restarts at next Group B trigger.

ADC_GROUP_A_GROUP_B_RESTART_SCAN 

Group A interrupts Group B(single scan) which restarts immediately after Group A scan is complete.

ADC_GROUP_A_GROUP_B_CONTINUOUS_SCAN 

Group A interrupts Group B(continuous scan) which continues scanning without a new Group B trigger.

◆ adc_mode_t

enum adc_mode_t

ADC operation mode definitions

Enumerator
ADC_MODE_SINGLE_SCAN 

Single scan - one or more channels.

ADC_MODE_GROUP_SCAN 

Two trigger sources to trigger scan for two groups which contain one or more channels.

ADC_MODE_CONTINUOUS_SCAN 

Continuous scan - one or more channels.

◆ adc_over_current_t

ADC reference voltage selection (Applicable for S1/S3 series MCU's only

Enumerator
OVER_CURRENT_DETECTION_DISABLE 

ADC over current detection disable.

OVER_CURRENT_DETECTION_ENABLE 

ADC over current detection enable.

◆ adc_pga_t

enum adc_pga_t

ADC pga setting definitions

Enumerator
SINGLE_INPUT_GAIN_1 

Single ended input Gain_1.

SINGLE_INPUT_GAIN_2 

Single ended input Gain_2.

SINGLE_INPUT_GAIN_3 

Single ended input Gain_3.

SINGLE_INPUT_GAIN_4 

Single ended input Gain_4.

SINGLE_INPUT_GAIN_5 

Single ended input Gain_5.

SINGLE_INPUT_GAIN_6 

Single ended input Gain_6.

SINGLE_INPUT_GAIN_7 

Single ended input Gain_7.

SINGLE_INPUT_GAIN_8 

Single ended input Gain_8.

SINGLE_INPUT_GAIN_9 

Single ended input Gain_9.

SINGLE_INPUT_GAIN_10 

Single ended input Gain_10.

SINGLE_INPUT_GAIN_11 

Single ended input Gain_11.

SINGLE_INPUT_GAIN_12 

Single ended input Gain_12.

SINGLE_INPUT_GAIN_13 

Single ended input Gain_13.

SINGLE_INPUT_GAIN_14 

Single ended input Gain_14.

SINGLE_INPUT_GAIN_15 

Single ended input Gain_15.

DIFFERENTIAL_INPUT_GAIN_1 

Differential input Gain_1 ADPGADCR0 = 0x8, ADPGAGS0 = 0x1.

DIFFERENTIAL_INPUT_GAIN_2 

Differential input Gain_2.

DIFFERENTIAL_INPUT_GAIN_3 

Differential input Gain_3.

DIFFERENTIAL_INPUT_GAIN_4 

Differential input Gain_4.

◆ adc_register_t

ADC registers used for the Read() argument

Enumerator
ADC_REG_CHANNEL_0 

ADC channel 0.

ADC_REG_CHANNEL_1 

ADC channel 1.

ADC_REG_CHANNEL_2 

ADC channel 2.

ADC_REG_CHANNEL_3 

ADC channel 3.

ADC_REG_CHANNEL_4 

ADC channel 4.

ADC_REG_CHANNEL_5 

ADC channel 5.

ADC_REG_CHANNEL_6 

ADC channel 6.

ADC_REG_CHANNEL_7 

ADC channel 7.

ADC_REG_CHANNEL_8 

ADC channel 8.

ADC_REG_CHANNEL_9 

ADC channel 9.

ADC_REG_CHANNEL_10 

ADC channel 10.

ADC_REG_CHANNEL_11 

ADC channel 11.

ADC_REG_CHANNEL_12 

ADC channel 12.

ADC_REG_CHANNEL_13 

ADC channel 13.

ADC_REG_CHANNEL_14 

ADC channel 14.

ADC_REG_CHANNEL_15 

ADC channel 15.

ADC_REG_CHANNEL_16 

ADC channel 16.

ADC_REG_CHANNEL_17 

ADC channel 17.

ADC_REG_CHANNEL_18 

ADC channel 18.

ADC_REG_CHANNEL_19 

ADC channel 19.

ADC_REG_CHANNEL_20 

ADC channel 20.

ADC_REG_CHANNEL_21 

ADC channel 21.

ADC_REG_CHANNEL_22 

ADC channel 22.

ADC_REG_CHANNEL_23 

ADC channel 23.

ADC_REG_CHANNEL_24 

ADC channel 24.

ADC_REG_CHANNEL_25 

ADC channel 25.

ADC_REG_CHANNEL_26 

ADC channel 26.

ADC_REG_CHANNEL_27 

ADC channel 27.

ADC_REG_TEMPERATURE 

ADC channel temperature.

ADC_REG_VOLT 

ADC channel volt.

◆ adc_resolution_t

ADC data resolution definitions

Enumerator
ADC_RESOLUTION_12_BIT 

12 bit resolution

ADC_RESOLUTION_10_BIT 

10 bit resolution

ADC_RESOLUTION_8_BIT 

8 bit resolution

ADC_RESOLUTION_14_BIT 

14 bit resolution

ADC_RESOLUTION_16_BIT 

16 bit resolution

ADC_RESOLUTION_24_BIT 

24 bit resolution

◆ adc_sample_state_reg_t

ADC sample state registers

Enumerator
ADC_SAMPLE_STATE_CHANNEL_0 

Sample state register channel 0.

ADC_SAMPLE_STATE_CHANNEL_1 

Sample state register channel 1.

ADC_SAMPLE_STATE_CHANNEL_2 

Sample state register channel 2.

ADC_SAMPLE_STATE_CHANNEL_3 

Sample state register channel 3.

ADC_SAMPLE_STATE_CHANNEL_4 

Sample state register channel 4.

ADC_SAMPLE_STATE_CHANNEL_5 

Sample state register channel 5.

ADC_SAMPLE_STATE_CHANNEL_6 

Sample state register channel 6.

ADC_SAMPLE_STATE_CHANNEL_7 

Sample state register channel 7.

ADC_SAMPLE_STATE_CHANNEL_8 

Sample state register channel 8.

ADC_SAMPLE_STATE_CHANNEL_9 

Sample state register channel 9.

ADC_SAMPLE_STATE_CHANNEL_10 

Sample state register channel 10.

ADC_SAMPLE_STATE_CHANNEL_11 

Sample state register channel 11.

ADC_SAMPLE_STATE_CHANNEL_12 

Sample state register channel 12.

ADC_SAMPLE_STATE_CHANNEL_13 

Sample state register channel 13.

ADC_SAMPLE_STATE_CHANNEL_14 

Sample state register channel 14.

ADC_SAMPLE_STATE_CHANNEL_15 

Sample state register channel 15.

ADC_SAMPLE_STATE_CHANNEL_16_TO_21 

Sample state register channel 16 to 21 for unit 0 on S7G2.

ADC_SAMPLE_STATE_CHANNEL_16_TO_20 

Sample state register channel 16 to 20 for unit 1 on S7G2.

ADC_SAMPLE_STATE_CHANNEL_16_TO_27 

Sample state register channel 16 to 27 for unit 0 on S3A7.

ADC_SAMPLE_STATE_TEMPERATURE 

Sample state register channel temperature.

ADC_SAMPLE_STATE_VOLTAGE 

Sample state register channel voltage.

◆ adc_trigger_t

ADC trigger mode definitions

Enumerator
ADC_TRIGGER_ASYNC_EXT_TRG0 

External asynchronous trigger; not for group modes.

ADC_TRIGGER_SYNC_ELC 

Synchronous trigger via ELC.

ADC_TRIGGER_SOFTWARE 

Software trigger; not for group modes.

◆ adc_voltage_reference_t

ADC reference voltage selection (Applicable for S1/S3 series MCU's only

Enumerator
ADC_EXTERNAL_VOLTAGE 

External voltage(VREFH0)

ADC_INTERNAL_VREF_1_5V 

Internal voltage(1.5V)

ADC_INTERNAL_VREF_2_0V 

Internal voltage(2.0V)

ADC_INTERNAL_VREF_2_5V 

Internal voltage(2.5V)