RX Family ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20 Page 46 of 74
Dec 01, 2016
{
adc_res_t resolution; // 8, 10, or 12-bit
adc_align_t alignment; // ignored if addition used
adc_add_t add_cnt; // add or average samples
adc_clear_t clearing; // clear after read
adc_trig_t trigger; // default and Group A trigger source
adc_trig_t trigger_groupb; // valid only for group modes
adc_trig_t trigger_groupc; // valid only for group modes
uint8_t priority; // for S12ADIO int; 1=lo 15=hi 0=off/polled
uint8_t priority_groupb; // S12GBADI interrupt priority; 0-15
uint8_t priority_groupc; // S12GCADI interrupt priority; 0-15
} adc_cfg_t;
/***** ADC_CONTROL() ARGUMENT DEFINITIONS *****/
typedef enum e_adc_cmd
{
// Commands for special hardware configurations
ADC_CMD_SET_DDA_STATE_CNT, // for Disconnect Detection Assist
ADC_CMD_SET_SAMPLE_STATE_CNT,
// Command to configure channels, sensors, and comparator
ADC_CMD_CONFIGURE_SCAN, // configure channels and sensors to scan
ADC_CMD_EN_COMPARATOR_LEVEL, // enable comparator for threshold compare
ADC_CMD_EN_COMPARATOR_WINDOW, // enable comparator for range compare
// Commands to enable hardware triggers or cause software trigger
ADC_CMD_ENABLE_TRIG, // ADCSR.TRGE=1 for sync/async triggers
ADC_CMD_SCAN_NOW, // software trigger start scan
// Commands to poll for scan completion and comparator results
ADC_CMD_CHECK_SCAN_DONE, // for Normal or GroupA scan
ADC_CMD_CHECK_SCAN_DONE_GROUPA,
ADC_CMD_CHECK_SCAN_DONE_GROUPB,
ADC_CMD_CHECK_SCAN_DONE_GROUPC,
ADC_CMD_CHECK_CONDITION_MET, // comparator condition
ADC_CMD_CHECK_CONDITION_METB, // comparator condition
// Advanced control commands
ADC_CMD_DISABLE_TRIG, // ADCSR.TRGE=0 for sync/async trigs
ADC_CMD_DISABLE_INT, // interrupt disable; ADCSR.ADIE=0
ADC_CMD_ENABLE_INT, // interrupt enable; ADCSR.ADIE=1
ADC_CMD_DISABLE_INT_GROUPB, // interrupt disable; ADCSR.GBADIE=0
ADC_CMD_ENABLE_INT_GROUPB, // interrupt enable; ADCSR.GBADIE=1
ADC_CMD_DISABLE_INT_GROUPC, // interrupt disable; ADGCTRGR.GCADIE=0
ADC_CMD_ENABLE_INT_GROUPC, // interrupt enable; ADGCTRGR.GCADIE=1
ADC_CMD_END_ENUM
} adc_cmd_t;
/* for ADC_CMD_SET_DDA_STATE_CNT */
typedef enum e_adc_charge // Disconnection Detection Assist (DDA)
{
ADC_DDA_DISCHARGE = 0x00,
ADC_DDA_PRECHARGE = 0x01,
ADC_DDA_OFF = 0x02,
ADC_DDA_END_ENUM
} adc_charge_t;
#define ADC_DDA_STATE_CNT_MIN (2)