RX Family
ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20
Page 28 of 74
Dec 01, 2016
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)
#define
ADC_MASK_CH3 (1<<3)
#define
ADC_MASK_CH4 (1<<4)
#define
ADC_MASK_CH5 (1<<5)
#define
ADC_MASK_CH6 (1<<6)
#define
ADC_MASK_CH7 (1<<7)
#define
ADC_MASK_CH16 (1<<16)
#define
ADC_MASK_CH17 (1<<17)
#define
ADC_MASK_CH18 (1<<18)
#define
ADC_MASK_CH19 (1<<19)
#define
ADC_MASK_CH20 (1<<20)
#define
ADC_MASK_CH21 (1<<21)