RX Family ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20 Page 42 of 74
Dec 01, 2016
typedef struct st_adc_time
{
adc_sst_reg_t reg_id;
uint8_t num_states; // ch8-20 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_CH8 (1<<8)
#define ADC_MASK_CH9 (1<<9)
#define ADC_MASK_CH10 (1<<10)
#define ADC_MASK_CH11 (1<<11)
#define ADC_MASK_CH12 (1<<12)
#define ADC_MASK_CH13 (1<<13)
#define ADC_MASK_CH14 (1<<14)
#define ADC_MASK_CH15 (1<<15)
#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_TEMP (1<<21) // temperature sensor
#define ADC_MASK_VOLT (1<<22) // internal reference voltage sensor
#define ADC_MASK_SENSORS (ADC_MASK_TEMP | ADC_MASK_VOLT)
#define ADC_MASK_GROUPB_OFF (0)
#define ADC_MASK_ADD_OFF (0)
#define ADC_MASK_SAMPLE_HOLD_OFF (0)
typedef enum e_adc_grpa // action when groupa interrupts groupb
scan
{
ADC_GRPA_PRIORITY_OFF = 0, // groupa ignored;does not interrupt groupb
ADC_GRPA_GRPB_WAIT_TRIG = 1, // groupb restarts at next trigger
ADC_GRPA_GRPB_RESTART_SCAN = 3, // groupb restarts immediately
ADC_GRPA_GRPB_CONT_SCAN= 0x8001, // groupb restarts immed and scans cont.
} adc_grpa_t;
typedef enum e_adc_diag // Self-Diagnosis Channel
{
ADC_DIAG_OFF = 0x00,
ADC_DIAG_0_VOLT = 0x01,
ADC_DIAG_HALF_VREFH0 = 0x2,
ADC_DIAG_VREFH0 = 0x3,
ADC_DIAG_ROTATE_VOLTS = 0x4
} adc_diag_t;
#define ADC_SST_SH_CNT_MIN (4) // minimum sample&hold states
#define ADC_SST_SH_CNT_MAX (255) // maximum sample&hold states