RX Family ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20 Page 41 of 74
Dec 01, 2016
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_CONDITION_MET, // 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_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_charge_t;
#define ADC_DDA_STATE_CNT_MIN (2)
#define ADC_DDA_STATE_CNT_MAX (15)
typedef struct st_adc_dda
{
adc_charge_t method;
uint8_t num_states; // 2-15
} adc_dda_t;
/* for ADC_CMD_SET_SAMPLE_STATE_CNT */
typedef enum e_adc_sst_reg // sample state registers
{
ADC_SST_CH0 = 0,
ADC_SST_CH1,
ADC_SST_CH2,
ADC_SST_CH3,
ADC_SST_CH4,
ADC_SST_CH5,
ADC_SST_CH6,
ADC_SST_CH7, // end unit 0
ADC_SST_CH8_TO_20,
ADC_SST_TEMPERATURE,
ADC_SST_VOLTAGE,
ADC_SST_REG_MAX = ADC_SST_VOLTAGE
} adc_sst_reg_t;
#define ADC_SST_CNT_MIN (5)
#define ADC_SST_CNT_MAX (255)
#define ADC_SST_CNT_DEFAULT (11)