RX Family
ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20
Page 33 of 74
Dec 01, 2016
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_31,
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_MIN (6) //For PCLKB:ADCLK = 2:1, 4:1
#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-31 use the same value
} adc_sst_t;
/* for ADC_CMD_CONFIGURE_SCAN */
// Bitwise OR these masks together for desired channels and sensors
// Used for all commands containing a "mask" or "flags" field
#define
ADC_MASK_CH0 (1<<0)
#define
ADC_MASK_CH1 (1<<1)
#define
ADC_MASK_CH2 (1<<2)