RX Family ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20 Page 19 of 74
Dec 01, 2016
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) //ADDISCR.ADNDIS[0..3] bits.
#define ADC_DDA_STATE_CNT_MAX (15)
typedef struct st_adc_dda
{
adc_charge_t method; // Discharge or Precharge
uint8_t num_states; // 2-15 (0 = DISABLED, 1 is invalid)
} 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,
ADC_SST_CH16_TO_21_CH24_TO_CH26,
ADC_SST_TEMPERATURE,
ADC_SST_VOLTAGE,
ADC_SST_REG_MAX = ADC_SST_VOLTAGE
} adc_sst_reg_t;
#define ADC_SST_CNT_MIN (5) //For PCLKB:ADCLK = 1:1, 1:2, 1:4, 1:8
#define ADC_SST_CNT_MAX (255)
#define ADC_SST_CNT_DEFAULT (13)
typedef struct st_adc_sst
{
adc_sst_reg_t reg_id;
uint8_t num_states; // ch16-21, 24-26 use the same value
} adc_sst_t;