Analog-to-Digital Converter

Introduction

Analog-to-digital converter (ADC) is a successive-approximation register (SAR) ADC, which includes external channels and internal channels.

ADC supports multiple sampling modes, e.g. continuous sampling, software-trigger sampling and timer-trigger sampling. The ADC conversion result is stored in the result register and can be read on demand.

Features

The features of ADC are listed below:

  • Resolution: 12-bit SAR

  • Available channel number

    • 7x external channels and 1x VBAT channel

    • 3x internal channels

  • Input voltage range

    • External channels: 0V ~ min(VAH_ADC, 3.3 V)

    • VBAT channel: 0V ~ 5V (for battery)

  • ADC supply requirement (VAH_ADC): 1.8V to 3.63 V

  • Contain 64 x 20-bit FIFO entries for storing the conversion results

  • Multiple sampling mode:

    • Auto continuous sampling

  • Hardware oversample for higher SNR

  • Configurable ADC clock source and sampling rate

  • Configurable channel switch order and channel number through the channel list

  • Individual channel register for storing the conversion results and status

  • Built-in calibration

  • Multiple interrupts:

    • End of channel list scan

    • End of the specific channel scan

    • Independent comparison event of each channel

    • Data overwritten situation

    • FIFO empty, FIFO overflow and FIFO full status

Block Diagram

The following figure shows the block diagram of the 12-bit ADC.

Functional Description

Channel Switch List

The ADC provides a mechanism that allows software to configure the complete conversion sequence via an ADC channel switch list. Software can specify the target channel numbers to be converted with two registers (REG_ADC_CHSW_LIST_0 and REG_ADC_CHSW_LIST_1). The list length field in the REG_ADC_CONF[7:4] register can be configured to configure the number of channels in the sequence.

For example, consider the values configured for REG_ADC_CHSW_LIST_0 and REG_ADC_CHSW_LIST_1 as shown in the following table:

Register

[3:0]

[7:4]

[11:8]

[15:12]

[19:16]

[23:20]

[27:24]

[31:28]

REG_ADC_CHSW_LIST_0

0

1

2

3

4

5

9

0

REG_ADC_CHSW_LIST_1

1

9

5

4

3

2

1

0

If REG_ADC_CONF[7:4] is set to 9, the ADC converts only the first 10(the value of REG_ADC_CONF[7:4] + 1) channels in the list. When operating in Auto mode, the ADC performs conversions sequentially from the first channel to the last channel specified in the list. Once the channel length count reaches the value configured in REG_ADC_CONF[7:4], the ADC restarts the conversion sequence from the first channel (as illustrated in the following figure).

../../_images/auto_mode_waveform.svg

Auto_Mode_Waveform

The REG_ADC_LAST_CH[3:0] field indicates the last converted channel, which helps in tracking the current position within the sequence. Additionally, the REG_ADC_BUSY_STS[0] bit indicates the ADC’s busy status; it remains 1 while the ADC is actively processing a channel conversion.

Operation Mode

Ameba supports only one operation mode: auto mode.

Auto Mode

In auto mode, ADC continuously executes conversions without any trigger sources after auto channel switch register is set. Auto mode would not stop conversions until auto channel switch register is clear (register REG_ADC_AUTO_CSW_CTRL [0]) or the auto channel switch is disabled (register REG_ADC_CONF[3:1]).

In auto mode, ADC samples automatically by hardware without assistance of core or other modules, it can be applied to the situation where core resources are limited and real-time detection is required. Refer to Auto_Mode_Waveform for the auto mode waveform.

The ADC will scan the channels in the list in order. There is no interval between the adjacent channels, and the scanning speed only depends on the sampling rate of the ADC. At the end of the sampling period, the ADC immediately outputs the data to register and FIFO. So there is no need to set the CH switching time and settling time.

Because the sampled data is continuously filled into the register and FIFO when the REG_ADC_AUTO_CSW_CTRL [0] is set, if the data cannot be taken out, the data will be lost and the overflowed data will not be filled into the FIFO. For intermittent data getting from FIFO, FIFO clearing is recommended before getting.

However, there is a situation that needs to be paid attention to: if the internal resistance of the signal source sampled by ADC is very large, the input signal is easy to receive interference.

../../_images/high_resistance_of_input_circuit.svg

The solution is as follows:

  1. Reduce the impedance

As shown in the following figure, operational amplifier (OA) provides extremely low output impedance.

../../_images/operational_amplifier_or_a_resistance_divider.svg
  1. Arrange Grounding Isolation Channel in channel list

As shown in the following figure, using a GND channel (internal GND channel or external channel which is connected to GND), configure the channel list of ADC to: CH0, CH_GND, CH1, CH_GND, CH2 … CH5, CH_GND. This avoids crosstalk, and the resulting inter-channel delay depends on the sampling rate of the ADC and the configuration of the channel list.

../../_images/add_grounding_isolation_channel.svg

Low Power Mode

The following figure shows the ADC clock generation tree. Users can configure ADC sample frequency by setting register REG_ADC_CLK_DIV[2:0].

../../_images/clock_generation_tree_smart_lite_dplus.svg

After the system enters the low-power state, the ADC can execute sampling operations via auto mode, and the system can be woken up by an ADC interrupt.

Under auto mode, the ADC hardware automatically and continuously samples the external analog voltage. Users can preset high/low thresholds as well as comparison criteria. The CPU remains completely in sleep mode throughout the entire process, and the system is woken up only when the sampled voltage meets the predefined comparison criteria.

In the low-power state, only OSC clock can be selected as the ADC clock, allowing the system to be woken up.

Independent Comparison Event of Each Channel

The voltage monitoring function can be realized by using ADC, and each CH of ADC can be configured with two independent comparison thresholds and different comparison criterion. When the sample value of ADC reaches the configured condition, an interrupt can be detected in REG_ADC_INTR_STS.

The threshold of each channel can be configured in REG_ADC_COMP_TH_CHx, which contains both high threshold and low threshold. The comparison criterion of each channel can be configured in REG_ADC_COMP_CTRL. ADC comparison supports four different comparison criterion:

  • Vin < bit_adc_comp_th_l_chx

  • Vin > bit_adc_comp_th_h_chx

  • Vin >= bit_adc_comp_th_l_chx and Vin <= bit_adc_comp_th_h_chx

  • Vin < bit_adc_comp_th_l_chx or Vin > bit_adc_comp_th_h_chx.

For example, when configured as Vin < bit_adc_comp_th_l_chx or Vin > bit_adc_comp_th_h_chx, if the ADC conversion data exceeds the higher and lower threshold, an interrupt event will occur.

../../_images/adc_comparison_event.svg

Two different interrupt generation modes (level detection and edge detection) is used to inform CPU of comparison match events. The level detection mode continuously reports the interrupt, while the edge detection mode reports it only once when the interrupt is generated.

Acquisition of Sampling Results

FIFO

Users can easily acquire ADC sample results from the ADC FIFO by reading the REG_ADC_DATA_GLOBAL register. The ADC stores all sampled results within this FIFO. The ADC FIFO has 64 entries, and each 20-bit FIFO data entry consists of a 4-bit channel number and 16-bit conversion data, as shown in the following figure.

../../_images/fifo_structure_20bit.svg

Because the FIFO acts as a buffer between the data acquisition and data processing systems operating at different speeds, timely data retrieval is crucial to prevent data loss.

During normal operation, the ADC continuously writes data to the FIFO, while the system reads from it. If the system reads data slower than the ADC writes it, a FIFO overflow will occur. In the event of an overflow, any newly sampled data is discarded and will not be written to the FIFO, as shown in the figure above.

In addition to retrieving data promptly to avoid overflows, it is highly recommended to clear the ADC FIFO by setting REG_ADC_CLR_FIFO[0] before initiating any new data sampling process.

If the FIFO overflow interrupt (ADC_BIT_IT_FIFO_OVER_EN) is enabled, an interrupt signal is sent to the CPU NVIC upon a FIFO overflow. Similarly, if the FIFO empty interrupt (ADC_BIT_IT_FIFO_EMPTY_EN) is enabled, an interrupt is triggered when the FIFO becomes empty.

Additionally, users can set a custom FIFO full threshold by configuring REG_ADC_FULL_LVL[5:0]. When the FIFO full interrupt (ADC_BIT_IT_FIFO_FULL_EN) is enabled, an interrupt is sent to the CPU NVIC once the number of FIFO entries reaches this configured threshold, as shown in the following figure.

REG_ADC_FLR[5:0] indicates the current number of entries in the ADC FIFO.

../../_images/fifo_interrupt.svg

Individual Channel Register

Each channel has its own data register to store its latest conversion result. These registers are named REG_ADC_DATA_CHx, where x represents the specific channel number (e.g., CH0).

  • REG_ADC_DATA_CHx[15:0] contains the latest conversion data for CHx.

  • REG_ADC_DATA_CHx[19:16] indicates the channel number associated with the latest conversion data.

  • REG_ADC_DATA_CHx[20] is a flag indicating a data overwrite event.

  • REG_ADC_DATA_CHx[21] is a flag indicating that a conversion is complete.

PAD Configuration

The ADC analog front-end(AFE) is an analog device and the analog signal enters the chip through the chip pins. Therefore there should be no significant digital signal interference and pull-up/pull-down circuits on this path.

If users want to use a GPIO pin as an ADC input pin, besides configuring the pin function as ADC, the digital circuit function of the selected pin should be disabled and the pin should be set as no pull state (including sleep state) as well.

Calibration

Each IC’s ADC is factory calibrated. The users can directly obtain the exact voltage conversion results that have been calibrated by calling ADC_GetVoltage() with conversion data as parameter.

Registers

Base Address: 0x41011000

Name

Address offset

Access

Description

REG_ADC_CONF

000h

R/W

The basic configuration of ADC includes enable and operation mode.

REG_ADC_IN_TYPE

004h

R/W

This register is used to configure analog ADC input type.

REG_ADC_COMP_TH_CH0

008h

R/W

REG_ADC_COMP_TH_CH1

00Ch

R/W

REG_ADC_COMP_TH_CH2

010h

R/W

REG_ADC_COMP_TH_CH3

014h

R/W

REG_ADC_COMP_TH_CH4

018h

R/W

REG_ADC_COMP_TH_CH5

01Ch

R/W

REG_ADC_COMP_TH_CH6

020h

R/W

REG_ADC_COMP_TH_CH7

024h

R/W

REG_ADC_COMP_TH_CH8

028h

R/W

REG_ADC_COMP_TH_CH9

02Ch

R/W

REG_ADC_COMP_TH_CH10

030h

R/W

REG_ADC_COMP_CTRL

034h

R/W

This is channel comparison criterion control register, which can be used to control every channel’s comparison criterion. There are 3 kinds of criterions.

REG_ADC_COMP_STS

038h

R

This is the register about comparison status of every channel.

REG_ADC_CHSW_LIST_0

03Ch

R/W

Software channel list 0, used to define the analog channels to own channel list.

REG_ADC_CHSW_LIST_1

040h

R/W

Software channel list 1, refer to REG_ADC_CHSW_LIST_0.

REG_ADC_AUTO_CSW_CTRL

048h

R/W

This is the register about automatic switch channel function.

REG_ADC_SW_TRIG

04Ch

R/W

Software controls to trigger the channel switch.

REG_ADC_LAST_CH

050h

R

This register records the last channel.

REG_ADC_BUSY_STS

054h

R

This register reflects the ADC FSM and FIFO status.

REG_ADC_INTR_CTRL

058h

R/W

This register is used to enable or disable the different kinds of interrupts.

REG_ADC_INTR_RAW_STS

05Ch

R

This register is used to record the different kinds of interrupt raw status (bypass the enable register’s control).

REG_ADC_INTR_STS

060h

R/W

This register is used to record the different kinds of interrupt status.

REG_ADC_IT_CHNO_CON

064h

R/W

This register is about the specific channel to trigger interrupts.

REG_ADC_FULL_LVL

068h

R/W

REG_ADC_EXT_TRIG_TIMER_SEL

06Ch

R/W

This register is used to select the specific external timer source.

REG_ADC_DATA_CH0

070h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH1

074h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH2

078h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH3

07Ch

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH4

080h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH5

084h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH6

088h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH7

08Ch

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH8

090h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH9

094h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_CH10

098h

R

This register is used to store the channel data, ready and overwritten information.

REG_ADC_DATA_GLOBAL

09Ch

R

This register is used to store global data, ready, channel and overwritten information.

REG_ADC_FLR

0A0h

R

This register is used to store FIFO entry number.

REG_ADC_CLR_FIFO

0A4h

R/W

This register is used to clear FIFO.

REG_ADC_CLK_DIV

0A8h

R/W

This register is used to control clock dividend and channel unmask.

REG_ADC_OVERSAMPLE

0ACh

R/W

This register is used to configure ADC over sample.

REG_ADC_PWR_CTRL

0B0h

R/W

This register is used to control the ADC power and debug configuration.

REG_ADC_SW_TMODE

0B4h

R/W

This register is used to set the software test mode.

REG_ADC_DUMMY

0B8h

R/W

REG_ADC_CONF

  • Name: ADC Configuration Register

  • Size: 32

  • Address offset: 000h

  • Read/write access: R/W

The basic configuration of ADC includes enable and operation mode.

31:10 RSVD 9 BIT_ADC_ENABLE 8 RSVD 7:4 BIT_ADC_CVLIST_LEN 3:1 BIT_ADC_OP_MOD 0 RSVD

Bit

Symbol

Access

INI

Description

31:10

RSVD

R

-

Reserved

9

BIT_ADC_ENABLE

R/W

0h

This bit is for ADC enable control

8

RSVD

R

-

Reserved

7:4

BIT_ADC_CVLIST_LEN

R/W

0h

This field defines the number of items in the ADC conversion channel list.

3:1

BIT_ADC_OP_MOD

R/W

0h

These bits selects ADC operation mode.

  • 0: software trigger mode.

  • 1: automatic mode

  • 2: timer-trigger mode.

  • 3: comparator-assist mode

0

RSVD

R

-

Reserved

REG_ADC_IN_TYPE

  • Name: ADC Input Type Register

  • Size: 32

  • Address offset: 004h

  • Read/write access: R/W

This register is used to configure analog ADC input type.

31:11 RSVD 10 BIT_ADC_IN_TYPE_CH10 9 BIT_ADC_IN_TYPE_CH9 8 BIT_ADC_IN_TYPE_CH8 7 BIT_ADC_IN_TYPE_CH7 6 BIT_ADC_IN_TYPE_CH6 5 BIT_ADC_IN_TYPE_CH5 4 BIT_ADC_IN_TYPE_CH4 3 BIT_ADC_IN_TYPE_CH3 2 BIT_ADC_IN_TYPE_CH2 1 BIT_ADC_IN_TYPE_CH1 0 BIT_ADC_IN_TYPE_CH0

Bit

Symbol

Access

INI

Description

31:11

RSVD

R

-

Reserved

10

BIT_ADC_IN_TYPE_CH10

R

0

This bit reflects which kind of input type channel 10 is. Since channel 10 is a fixed internal channel.

9

BIT_ADC_IN_TYPE_CH9

R

0

This bit reflects which kind of input type channel 9 is. Since channel 9 is a fixed internal channel.

8

BIT_ADC_IN_TYPE_CH8

R

0

This bit reflects which kind of input type channel 8 is. Since channel 8 is a fixed internal channel.

7

BIT_ADC_IN_TYPE_CH7

R

0

This bit reflects which kind of input type channel 7 is. Since channel 7 is a fixed internal channel.

6

BIT_ADC_IN_TYPE_CH6

R

0

This bit reflects which kind of input type channel 6 is. Since channel 6 is a fixed single-end input channel.

5

BIT_ADC_IN_TYPE_CH5

R/W

0

This bit controls channel 5 input type. If it’s set to differential types (value of this bit is 1), channel 4 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 5 is single-end input.

  • 1: ADC channel 5 is differential input which is paired with channel 4.

4

BIT_ADC_IN_TYPE_CH4

R/W

0

This bit controls channel 4 input type. If it’s set to differential types (value of this bit is 1), channel 5 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 4 is single-end input.

  • 1: ADC channel 4 is differential input which is paired with channel 5.

3

BIT_ADC_IN_TYPE_CH3

R/W

0

This bit controls channel 3 input type. If it’s set to differential types (value of this bit is 1), channel 2 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 3 is single-end input.

  • 1: ADC channel 3 is differential input which is paired with channel 2.

2

BIT_ADC_IN_TYPE_CH2

R/W

0

This bit controls channel 2 input type. If it’s set to differential types (value of this bit is 1), channel 3 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 2 is single-end input.

  • 1: ADC channel 2 is differential input which is paired with channel 3.

1

BIT_ADC_IN_TYPE_CH1

R/W

0

This bit controls channel 1 input type. If it’s set to differential types (value of this bit is 1), channel 0 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 1 is single-end input.

  • 1: ADC channel 1 is differential input which is paired with channel 0.

0

BIT_ADC_IN_TYPE_CH0

R/W

0

This bit controls channel 0 input type. If it’s set to differential types (value of this bit is 1), channel 1 should also be set to differential type since they are hardware-fixed differential pair.

  • 0: ADC channel 0 is single-end input.

  • 1: ADC channel 0 is differential input which is paired with channel 1.

REG_ADC_COMP_TH_CHx

  • Name: ADC Channel x Comparison Threshold Register

  • Size: 32

  • Address offset: 008h + 04h * x (x=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

  • Read/write access: R/W

31:16 BIT_ADC_COMP_TH_H_CHx 15:0 BIT_ADC_COMP_TH_L_CHx

Bit

Symbol

Access

INI

Description

31:16

BIT_ADC_COMP_TH_H_CHx

R/W

0h

This field defines the higher threshold of channel x for ADC automatic comparison.

15:0

BIT_ADC_COMP_TH_L_CHx

R/W

0h

This field defines the lower threshold of channel x for ADC automatic comparison.

REG_ADC_COMP_CTRL

  • Name: ADC Comparison Control Register

  • Size: 32

  • Address offset: 034h

  • Read/write access: R/W

This is channel comparison criterion control register, which can be used to control every channel’s

comparison criterion. There are 3 kinds of criterions.

31:22 RSVD 21:20 BIT_ADC_COMP_CTRL_CH10 19:18 BIT_ADC_COMP_CTRL_CH9 17:16 BIT_ADC_COMP_CTRL_CH8 15:14 BIT_ADC_COMP_CTRL_CH7 13:12 BIT_ADC_COMP_CTRL_CH6 11:10 BIT_ADC_COMP_CTRL_CH5 9:8 BIT_ADC_COMP_CTRL_CH4 7:6 BIT_ADC_COMP_CTRL_CH3 5:4 BIT_ADC_COMP_CTRL_CH2 3:2 BIT_ADC_COMP_CTRL_CH1 1:0 BIT_ADC_COMP_CTRL_CH0

Bit

Symbol

Access

INI

Description

31:22

RSVD

R

-

Reserved

21:20

BIT_ADC_COMP_CTRL_CH10

R/W

0h

This field defines ADC channel comparison criteria which would notify system by interrupt when the criterion matches. Once a criterion matches, ADC should send an interrupt signal to system if the related interrupt mask is unmask. ADC also updates comparison results in reg_adc_comp_sts.

  • 0: When Vin < bit_adc_comp_th_l_chx, comparison criterion matches.

  • 1: When Vin > bit_adc_comp_th_h_chx, comparison criterion matches.

  • 2: When Vin >= bit_adc_comp_th_l_chx and Vin <= bit_adc_comp_th_h_chx, comparison criterion matches.

  • 3: When Vin < bit_adc_comp_th_l_chx or Vin > bit_adc_comp_th_h_chx, comparison criterion matches.

19:18

BIT_ADC_COMP_CTRL_CH9

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

17:16

BIT_ADC_COMP_CTRL_CH8

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

15:14

BIT_ADC_COMP_CTRL_CH7

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

13:12

BIT_ADC_COMP_CTRL_CH6

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

11:10

BIT_ADC_COMP_CTRL_CH5

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

9:8

BIT_ADC_COMP_CTRL_CH4

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

7:6

BIT_ADC_COMP_CTRL_CH3

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

5:4

BIT_ADC_COMP_CTRL_CH2

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

3:2

BIT_ADC_COMP_CTRL_CH1

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

1:0

BIT_ADC_COMP_CTRL_CH0

R/W

0h

The function is the same as BIT_ADC_COMP_CTRL_CH10.

REG_ADC_COMP_STS

  • Name: ADC Comparison Status Register

  • Size: 32

  • Address offset: 038h

  • Read/write access: R

This is the register about comparison status of every channel.

31:22 RSVD 21:20 BIT_ADC_COMP_STS_CH10 19:18 BIT_ADC_COMP_STS_CH9 17:16 BIT_ADC_COMP_STS_CH8 15:14 BIT_ADC_COMP_STS_CH7 13:12 BIT_ADC_COMP_STS_CH6 11:10 BIT_ADC_COMP_STS_CH5 9:8 BIT_ADC_COMP_STS_CH4 7:6 BIT_ADC_COMP_STS_CH3 5:4 BIT_ADC_COMP_STS_CH2 3:2 BIT_ADC_COMP_STS_CH1 1:0 BIT_ADC_COMP_STS_CH0

Bit

Symbol

Access

INI

Description

31:22

RSVD

R

-

Reserved

21:20

BIT_ADC_COMP_STS_CH10

R

0h

This field reflects the comparison result of channel 10 immediately

19:18

BIT_ADC_COMP_STS_CH9

R

0h

This field reflects the comparison result of channel 9 immediately

17:16

BIT_ADC_COMP_STS_CH8

R

0h

This field reflects the comparison result of channel 8 immediately

15:14

BIT_ADC_COMP_STS_CH7

R

0h

This field reflects the comparison result of channel 7 immediately

13:12

BIT_ADC_COMP_STS_CH6

R

0h

This field reflects the comparison result of channel 6 immediately

11:10

BIT_ADC_COMP_STS_CH5

R

0h

This field reflects the comparison result of channel 5 immediately

9:8

BIT_ADC_COMP_STS_CH4

R

0h

This field reflects the comparison result of channel 4 immediately

7:6

BIT_ADC_COMP_STS_CH3

R

0h

This field reflects the comparison result of channel 3 immediately

5:4

BIT_ADC_COMP_STS_CH2

R

0h

This field reflects the comparison result of channel 2 immediately

3:2

BIT_ADC_COMP_STS_CH1

R

0h

This field reflects the comparison result of channel 1 immediately

1:0

BIT_ADC_COMP_STS_CH0

R

0h

This field reflects the comparison result of channel 0 immediately

REG_ADC_CHSW_LIST_0

  • Name: ADC Channel Switch List 0 Register

  • Size: 32

  • Address offset: 03Ch

  • Read/write access: R/W

Software channel list 0, used to define the analog channels to own channel list.

31:28 BIT_ADC_CHSW_7 27:24 BIT_ADC_CHSW_6 23:20 BIT_ADC_CHSW_5 19:16 BIT_ADC_CHSW_4 15:12 BIT_ADC_CHSW_3 11:8 BIT_ADC_CHSW_2 7:4 BIT_ADC_CHSW_1 3:0 BIT_ADC_CHSW_0

Bit

Symbol

Access

INI

Description

31:28

BIT_ADC_CHSW_7

R/W

0h

This field defines the number 7 channel to do a conversion when a conversion event takes place.

27:24

BIT_ADC_CHSW_6

R/W

0h

This field defines the number 6 channel to do a conversion when a conversion event takes place.

23:20

BIT_ADC_CHSW_5

R/W

0h

This field defines the number 5 channel to do a conversion when a conversion event takes place.

19:16

BIT_ADC_CHSW_4

R/W

0h

This field defines the number 4 channel to do a conversion when a conversion event takes place.

15:12

BIT_ADC_CHSW_3

R/W

0h

This field defines the number 3 channel to do a conversion when a conversion event takes place.

11:8

BIT_ADC_CHSW_2

R/W

0h

This field defines the number 2 channel to do a conversion when a conversion event takes place.

7:4

BIT_ADC_CHSW_1

R/W

0h

This field defines the number 1 channel to do a conversion when a conversion event takes place.

3:0

BIT_ADC_CHSW_0

R/W

0h

This field defines the number 0 channel to do a conversion when a conversion event takes place.

REG_ADC_CHSW_LIST_1

  • Name: ADC Channel Switch List 1 Register

  • Size: 32

  • Address offset: 040h

  • Read/write access: R/W

Software channel list 1, refer to REG_ADC_CHSW_LIST_0.

31:28 BIT_ADC_CHSW_15 27:24 BIT_ADC_CHSW_14 23:20 BIT_ADC_CHSW_13 19:16 BIT_ADC_CHSW_12 15:12 BIT_ADC_CHSW_11 11:8 BIT_ADC_CHSW_10 7:4 BIT_ADC_CHSW_9 3:0 BIT_ADC_CHSW_8

Bit

Symbol

Access

INI

Description

31:28

BIT_ADC_CHSW_15

R/W

0h

This field defines the number 15 channel to do a conversion when a conversion event takes place.

27:24

BIT_ADC_CHSW_14

R/W

0h

This field defines the number 14 channel to do a conversion when a conversion event takes place.

23:20

BIT_ADC_CHSW_13

R/W

0h

This field defines the number 13 channel to do a conversion when a conversion event takes place.

19:16

BIT_ADC_CHSW_12

R/W

0h

This field defines the number 12 channel to do a conversion when a conversion event takes place.

15:12

BIT_ADC_CHSW_11

R/W

0h

This field defines the number 11 channel to do a conversion when a conversion event takes place.

11:8

BIT_ADC_CHSW_10

R/W

0h

This field defines the number 10 channel to do a conversion when a conversion event takes place.

7:4

BIT_ADC_CHSW_9

R/W

0h

This field defines the number 9 channel to do a conversion when a conversion event takes place.

3:0

BIT_ADC_CHSW_8

R/W

0h

This field defines the number 8 channel to do a conversion when a conversion event takes place.

REG_ADC_AUTO_CSW_CTRL

  • Name: ADC Automatic Channel Switch Control Register

  • Size: 32

  • Address offset: 048h

  • Read/write access: R/W

This is the register about automatic switch channel function.

31:1 RSVD 0 BIT_ADC_AUTOSW_EN

Bit

Symbol

Access

INI

Description

31:1

RSVD

R

-

Reserved

0

BIT_ADC_AUTOSW_EN

R/W

0h

This bit controls the automatic channel switch enabled or disabled.

  • 0: Disable the automatic channel switch. If an automatic channel switch is in process, writing 0 will terminate the automatic channel switch.

  • 1: Enable the automatic channel switch. When setting this bit, an automatic channel switch starts from the first channel in the channel switch list.

REG_ADC_SW_TRIG

  • Name: ADC Software Trigger Register

  • Size: 32

  • Address offset: 04Ch

  • Read/write access: R/W

Software controls to trigger the channel switch.

31:1 RSVD 0 BIT_ADC_SW_TRIG

Bit

Symbol

Access

INI

Description

31:1

RSVD

R

-

Reserved

0

BIT_ADC_SW_TRIG

R/W

0h

This bit controls the ADC module to do a conversion.

Every time this bit is set to 1, ADC module would switch to a new channel and do one conversion. Therefore, this bit could be used as a start-convert event which is controlled by software. Every time a conversion is done, software MUST clear this bit manually. The interval between clearing and restart this bit must exceed one sample clock period.

  • 0: Disable the analog module and analog mux.

  • 1: Enable the analog module and analog mux, and then start a new channel conversion.

REG_ADC_LAST_CH

  • Name: ADC Last Channel Register

  • Size: 32

  • Address offset: 050h

  • Read/write access: R

This register records the last channel.

31:4 RSVD 3:0 BIT_ADC_LAST_CH

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3:0

BIT_ADC_LAST_CH

R

0h

This field reflects the last used channel.

REG_ADC_BUSY_STS

  • Name: ADC Busy Status Register

  • Size: 32

  • Address offset: 054h

  • Read/write access: R

This register reflects the ADC FSM and FIFO status.

31:3 RSVD 2 BIT_ADC_FIFO_EMPTY 1 BIT_ADC_FIFO_FULL_REAL 0 BIT_ADC_BUSY_STS

Bit

Symbol

Access

INI

Description

31:3

RSVD

R

-

Reserved

2

BIT_ADC_FIFO_EMPTY

R

1

  • 0: FIFO in ADC is not empty.

  • 1: FIFO in ADC is empty.

1

BIT_ADC_FIFO_FULL_REAL

R

0

  • 0: FIFO in ADC is not real full.

  • 1: FIFO in ADC is real full.

0

BIT_ADC_BUSY_STS

R

0

This bit reflects the ADC is busy or not. If the ADC is processing a conversion of a channel, this bit remains 1 which indicates it’s busy. Once a conversion is done, this bit becomes 0 which indicates it’s ready to do another conversion.

  • 0: The ADC is ready.

  • 1: The ADC is busy.

REG_ADC_INTR_CTRL

  • Name: ADC Interrupt Control Register

  • Size: 32

  • Address offset: 058h

  • Read/write access: R/W

This register is used to enable or disable the different kinds of interrupts.

31 BIT_ADC_IT_COMP_DET_MOD 30:19 RSVD 18 BIT_ADC_IT_COMP_CH10_EN 17 BIT_ADC_IT_COMP_CH9_EN 16 BIT_ADC_IT_COMP_CH8_EN 15 BIT_ADC_IT_COMP_CH7_EN 14 BIT_ADC_IT_COMP_CH6_EN 13 BIT_ADC_IT_COMP_CH5_EN 12 BIT_ADC_IT_COMP_CH4_EN 11 BIT_ADC_IT_COMP_CH3_EN 10 BIT_ADC_IT_COMP_CH2_EN 9 BIT_ADC_IT_COMP_CH1_EN 8 BIT_ADC_IT_COMP_CH0_EN 7 BIT_ADC_IT_ERR_EN 6 BIT_ADC_IT_DAT_OVW_EN 5 BIT_ADC_IT_FIFO_EMPTY_EN 4 BIT_ADC_IT_FIFO_OVER_EN 3 BIT_ADC_IT_FIFO_FULL_EN 2 BIT_ADC_IT_CHCV_END_EN 1 BIT_ADC_IT_CV_END_EN 0 BIT_ADC_IT_CVLIST_END_EN

Bit

Symbol

Access

INI

Description

31

BIT_ADC_IT_COMP_DET_MOD

R/W

0h

This bit controls the interrupt bit_adc_it_comp_chx operation. Comparison criterion matching is rising edge.

  • 0: The detection mode is level detection. When the comparison criterion is match, bit_adc_it_comp_chx will send interrupt continuously.

  • 1: The detection mode is edge detection. When the comparison criterion is match, bit_adc_it_comp_chx will send interrupt once at the time of matching.

30:19

RSVD

R

-

Reserved

18

BIT_ADC_IT_COMP_CH10_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

17

BIT_ADC_IT_COMP_CH9_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

16

BIT_ADC_IT_COMP_CH8_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

15

BIT_ADC_IT_COMP_CH7_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

14

BIT_ADC_IT_COMP_CH6_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

13

BIT_ADC_IT_COMP_CH5_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

12

BIT_ADC_IT_COMP_CH4_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

11

BIT_ADC_IT_COMP_CH3_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

10

BIT_ADC_IT_COMP_CH2_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

9

BIT_ADC_IT_COMP_CH1_EN

R/W

0h

The function is the same as BIT_ADC_IT_COMP_CH0_EN

8

BIT_ADC_IT_COMP_CH0_EN

R/W

0h

This bit controls the interrupt is enabled or not when channel 0 comparison criterion matches.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

7

BIT_ADC_IT_ERR_EN

R/W

0h

This bit controls the interrupt is enabled or not when an error state takes place.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

6

BIT_ADC_IT_DAT_OVW_EN

R/W

0h

This bit controls the interrupt is enabled or not when a data overwritten situation takes place.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

5

BIT_ADC_IT_FIFO_EMPTY_EN

R/W

0h

This bit controls the interrupt is enabled or not when a FIFO empty state takes place.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

4

BIT_ADC_IT_FIFO_OVER_EN

R/W

0h

This bit controls the interrupt is enabled or not when a FIFO overflow state takes place.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

3

BIT_ADC_IT_FIFO_FULL_EN

R/W

0h

This bit controls the interrupt is enabled or not when a FIFO full state takes place.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

2

BIT_ADC_IT_CHCV_END_EN

R/W

0h

This bit controls the interrupt is enabled or not when a particular channel conversion is done. refer to reg_adc_it_chno_con.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

1

BIT_ADC_IT_CV_END_EN

R/W

0h

This bit controls the interrupt is enabled or not every time a conversion is done.

No matter ADC module is in what kind of operation mode. Every time a conversion is executed, ADC module would notify system if This bit is set.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

0

BIT_ADC_IT_CVLIST_END_EN

R/W

0h

This bit controls the interrupt is enabled or not when a conversion of the last channel in the list is done.

For example, in automatic mode conversions would be executed continuously.

Every time the last channel conversion is done, which means all channel conversions in the list is done, ADC could notify system if This bit is set.

  • 0: This interrupt is disabled.

  • 1: This interrupt is enabled.

REG_ADC_INTR_RAW_STS

  • Name: ADC Interrupt Raw Status Register

  • Size: 32

  • Address offset: 05Ch

  • Read/write access: R

This register is used to record the different kinds of interrupt raw status (bypass the enable

register’s control).

31:19 RSVD 18 BIT_ADC_IT_COMP_CH10_RAW_STS 17 BIT_ADC_IT_COMP_CH9_RAW_STS 16 BIT_ADC_IT_COMP_CH8_RAW_STS 15 BIT_ADC_IT_COMP_CH7_RAW_STS 14 BIT_ADC_IT_COMP_CH6_RAW_STS 13 BIT_ADC_IT_COMP_CH5_RAW_STS 12 BIT_ADC_IT_COMP_CH4_RAW_STS 11 BIT_ADC_IT_COMP_CH3_RAW_STS 10 BIT_ADC_IT_COMP_CH2_RAW_STS 9 BIT_ADC_IT_COMP_CH1_RAW_STS 8 BIT_ADC_IT_COMP_CH0_RAW_STS 7 BIT_ADC_IT_ERR_RAW_STS 6 BIT_ADC_IT_DAT_OVW_RAW_STS 5 BIT_ADC_IT_FIFO_EMPTY_RAW_STS 4 BIT_ADC_IT_FIFO_OVER_RAW_STS 3 BIT_ADC_IT_FIFO_FULL_RAW_STS 2 BIT_ADC_IT_CHCV_END_RAW_STS 1 BIT_ADC_IT_CV_END_RAW_STS 0 BIT_ADC_IT_CVLIST_END_RAW_STS

Bit

Symbol

Access

INI

Description

31:19

RSVD

R

-

Reserved

18

BIT_ADC_IT_COMP_CH10_RAW_STS

R

0h

17

BIT_ADC_IT_COMP_CH9_RAW_STS

R

0h

Merged

16

BIT_ADC_IT_COMP_CH8_RAW_STS

R

0h

Merged

15

BIT_ADC_IT_COMP_CH7_RAW_STS

R

0h

Merged

14

BIT_ADC_IT_COMP_CH6_RAW_STS

R

0h

Merged

13

BIT_ADC_IT_COMP_CH5_RAW_STS

R

0h

Merged

12

BIT_ADC_IT_COMP_CH4_RAW_STS

R

0h

Merged

11

BIT_ADC_IT_COMP_CH3_RAW_STS

R

0h

Merged

10

BIT_ADC_IT_COMP_CH2_RAW_STS

R

0h

Merged

9

BIT_ADC_IT_COMP_CH1_RAW_STS

R

0h

Merged

8

BIT_ADC_IT_COMP_CH0_RAW_STS

R

0h

Merged

7

BIT_ADC_IT_ERR_RAW_STS

R

0h

Merged

6

BIT_ADC_IT_DAT_OVW_RAW_STS

R

0h

Merged

5

BIT_ADC_IT_FIFO_EMPTY_RAW_STS

R

1h

Merged

4

BIT_ADC_IT_FIFO_OVER_RAW_STS

R

0h

Merged

3

BIT_ADC_IT_FIFO_FULL_RAW_STS

R

0h

Merged

2

BIT_ADC_IT_CHCV_END_RAW_STS

R

0h

Merged

1

BIT_ADC_IT_CV_END_RAW_STS

R

0h

Merged

0

BIT_ADC_IT_CVLIST_END_RAW_STS

R

0h

Merged

REG_ADC_INTR_STS

  • Name: ADC Interrupt Status Register

  • Size: 32

  • Address offset: 060h

  • Read/write access: R/W

This register is used to record the different kinds of interrupt status.

31:19 RSVD 18 BIT_ADC_IT_COMP_CH10_STS 17 BIT_ADC_IT_COMP_CH9_STS 16 BIT_ADC_IT_COMP_CH8_STS 15 BIT_ADC_IT_COMP_CH7_STS 14 BIT_ADC_IT_COMP_CH6_STS 13 BIT_ADC_IT_COMP_CH5_STS 12 BIT_ADC_IT_COMP_CH4_STS 11 BIT_ADC_IT_COMP_CH3_STS 10 BIT_ADC_IT_COMP_CH2_STS 9 BIT_ADC_IT_COMP_CH1_STS 8 BIT_ADC_IT_COMP_CH0_STS 7 BIT_ADC_IT_ERR_STS 6 BIT_ADC_IT_DAT_OVW_STS 5 BIT_ADC_IT_FIFO_EMPTY_STS 4 BIT_ADC_IT_FIFO_OVER_STS 3 BIT_ADC_IT_FIFO_FULL_STS 2 BIT_ADC_IT_CHCV_END_STS 1 BIT_ADC_IT_CV_END_STS 0 BIT_ADC_IT_CVLIST_END_STS

Bit

Symbol

Access

INI

Description

31:19

RSVD

R

-

Reserved

18

BIT_ADC_IT_COMP_CH10_STS

R/W

0h

17

BIT_ADC_IT_COMP_CH9_STS

R/W

0h

Merged

16

BIT_ADC_IT_COMP_CH8_STS

R/W

0h

Merged

15

BIT_ADC_IT_COMP_CH7_STS

R/W

0h

Merged

14

BIT_ADC_IT_COMP_CH6_STS

R/W

0h

Merged

13

BIT_ADC_IT_COMP_CH5_STS

R/W

0h

Merged

12

BIT_ADC_IT_COMP_CH4_STS

R/W

0h

Merged

11

BIT_ADC_IT_COMP_CH3_STS

R/W

0h

Merged

10

BIT_ADC_IT_COMP_CH2_STS

R/W

0h

Merged

9

BIT_ADC_IT_COMP_CH1_STS

R/W

0h

Merged

8

BIT_ADC_IT_COMP_CH0_STS

R/W

0h

Merged

7

BIT_ADC_IT_ERR_STS

R/W

0h

Merged

6

BIT_ADC_IT_DAT_OVW_STS

R/W

0h

Merged

5

BIT_ADC_IT_FIFO_EMPTY_STS

R/W

0h

Merged

4

BIT_ADC_IT_FIFO_OVER_STS

R/W

0h

Merged

3

BIT_ADC_IT_FIFO_FULL_STS

R/W

0h

Merged

2

BIT_ADC_IT_CHCV_END_STS

R/W

0h

Merged

1

BIT_ADC_IT_CV_END_STS

R/W

0h

Merged

0

BIT_ADC_IT_CVLIST_END_STS

R/W

0h

Merged

REG_ADC_IT_CHNO_CON

  • Name: ADC Interrupt Channel Number Configuration Register

  • Size: 32

  • Address offset: 064h

  • Read/write access: R/W

This register is about the specific channel to trigger interrupts.

31:4 RSVD 3:0 BIT_ADC_IT_CHNO_CON

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3:0

BIT_ADC_IT_CHNO_CON

R/W

0h

This field defines that ADC module should send interrupt signal to system when a conversion which of channel number is the same as this field. This register is only valid when bit_adc_it_chcv_end_en is set.

Bit_adc_it_chno_con: channel number

REG_ADC_FULL_LVL

  • Name: ADC FIFO Full Threshold Register

  • Size: 32

  • Address offset: 068h

  • Read/write access: R/W

31:6 RSVD 5:0 BIT_ADC_FULL_LVL

Bit

Symbol

Access

INI

Description

31:6

RSVD

R

-

Reserved

5:0

BIT_ADC_FULL_LVL

R/W

0h

This field defines the FIFO full entry threshold level and it’s used for FIFO full interrupt. It should be set according to ADC FIFO depth.

A value of 0 sets the threshold for 1 entry, and a value of 15 sets the threshold for 16 entries.

REG_ADC_EXT_TRIG_TIMER_SEL

  • Name: ADC External Trigger Timer Select Register

  • Size: 32

  • Address offset: 06Ch

  • Read/write access: R/W

This register is used to select the specific external timer source.

31:3 RSVD 2:0 BIT_ADC_EXT_TRIG_TIMER_SEL

Bit

Symbol

Access

INI

Description

31:3

RSVD

R

-

Reserved

2:0

BIT_ADC_EXT_TRIG_TIMER_SEL

R/W

0h

These three bits defines which timer channel would be used to make ADC module do a conversion.

  • 0: Timer module 0 is used as the comparator external trigger source.

  • 1: Timer module 1 is used as the comparator external trigger source.

  • 7: Timer module 7 is used as the comparator external trigger source.

REG_ADC_DATA_CHx

  • Name: ADC Channel x Data Register

  • Size: 32

  • Address offset: 070h + 04h * x (x=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

  • Read/write access: R

This register is used to store the channel data, ready and overwritten information.

31:22 RSVD 21 BIT_ADC_DAT_RDY_CHx 20 BIT_ADC_DAT_OVW_CHx 19:16 BIT_ADC_NUM_CHx 15:0 BIT_ADC_DATA_CHx

Bit

Symbol

Access

INI

Description

31:22

RSVD

R

-

Reserved

21

BIT_ADC_DAT_RDY_CHx

R

0

This bit indicates that a conversion is done. Every time a conversion is done, this bit should be set to 1 and it would be cleared to 0 when a read operation of reg_adc_data_chx.

20

BIT_ADC_DAT_OVW_CHx

R

0

This bit indicates that there is a data overwritten situation in bit_adc_data_global taking place. A data overwritten situation is that a former conversion data is NOT read before a new conversion is written to data field. It would be cleared to 0 when a read operation of reg_adc_data_chx.

  • 0: There is no data overwritten case.

  • 1: There is a data overwritten case.

19:16

BIT_ADC_NUM_CHx

R

0

This field contains the newest conversion data of channel x

[19:16]: which channel in channel list the data belongs to, only valid when bit_adc_ch_unmask=1

15:0

BIT_ADC_DATA_CHx

R

0

This field contains the newest conversion data of channel x

[15:0]: newest data

REG_ADC_DATA_GLOBAL

  • Name: ADC Global Data Register

  • Size: 32

  • Address offset: 09Ch

  • Read/write access: R

This register is used to store global data, ready, channel and overwritten information.

31:22 RSVD 21 BIT_ADC_DAT_RDY_GLOBAL 20 BIT_ADC_DAT_OVW_GLOBAL 19:16 BIT_ADC_CH_NUM_GLOBAL 15:0 BIT_ADC_DATA_GLOBAL

Bit

Symbol

Access

INI

Description

31:22

RSVD

R

-

Reserved

21

BIT_ADC_DAT_RDY_GLOBAL

R

0

This bit indicates that a conversion is done. Every time a conversion is done, this bit should be set to 1 and it would be cleared to 0 when a read operation of reg_adc_data_global

20

BIT_ADC_DAT_OVW_GLOBAL

R

0

This bit indicates that there is a data overwritten situation in bit_adc_data_global taking place. A data overwritten situation is that a former conversion data is NOT read before a new conversion is written to data field.

  • 0: there is no data overwritten case.

  • 1: there is a data overwritten case.

19:16

BIT_ADC_CH_NUM_GLOBAL

R

0

This field contains the newest conversion data of channel in the list.

[19:16]: which channel in channel list the data belongs to, only valid when bit_adc_ch_unmask=1

15:0

BIT_ADC_DATA_GLOBAL

R

0

This field contains the newest conversion data of channel in the list.

[15:0]: newest data

REG_ADC_FLR

  • Name: ADC FIFO Level Register

  • Size: 32

  • Address offset: 0A0h

  • Read/write access: R

This register is used to store FIFO entry number.

31:6 RSVD 5:0 BIT_ADC_FLR

Bit

Symbol

Access

INI

Description

31:6

RSVD

R

-

Reserved

5:0

BIT_ADC_FLR

R

0

This field records the current ADC FIFO entry number.

REG_ADC_CLR_FIFO

  • Name: ADC Clear FIFO Register

  • Size: 32

  • Address offset: 0A4h

  • Read/write access: R/W

This register is used to clear FIFO.

31:1 RSVD 0 BIT_ADC_CLR_FIFO

Bit

Symbol

Access

INI

Description

31:1

RSVD

R

-

Reserved

0

BIT_ADC_CLR_FIFO

R/W

0

This bit is used to clear FIFO contents and makes it to the default status. Every time this bit is set to 1. FIFO would be cleared to the default status. Software should set this bit to 0 after FIFO is cleared.

  • 0: No effect

  • 1: Clear FIFO

REG_ADC_CLK_DIV

  • Name: ADC Clock Divider Register

  • Size: 32

  • Address offset: 0A8h

  • Read/write access: R/W

This register is used to control clock dividend and channel unmask.

31:15 BIT_ADC_DUMMY_CHN_SCNT 14:8 RSVD 7:4 BIT_SETTLE_CTC_TO_ADC 3 RSVD 2:0 BIT_ADC_CLK_DIV

Bit

Symbol

Access

INI

Description

31:15

BIT_ADC_DUMMY_CHN_SCNT

R/W

0h

Dummy channel time counter.

In auto mode, ADC shares the dummy channel for Cap-Touch. This register controls the time of dummy channel, the unit is 4MHz.

14:8

RSVD

R

-

Reserved

7:4

BIT_SETTLE_CTC_TO_ADC

R/W

0h

Settle count for sample data from Cap-Touch to ADC, the unit is ADC sample clock.

  • 0: means no need to settle

3

RSVD

R

-

Reserved

2:0

BIT_ADC_CLK_DIV

R/W

3h

This field defines clock driver level of ADC module. The source clock is OSC4M.

A value of 0 is for clock divided by 4.

A value of 1 is for clock divided by 8.

A value of 2 is for clock divided by 16.

A value of 3 is for clock divided by 24.

A value of 4 is for clock divided by 32.

A value of 5 is for clock divided by 64.

A value of 6 is for clock divided by 128.

REG_ADC_OVERSAMPLE

  • Name: ADC Oversample Register

  • Size: 32

  • Address offset: 0ACh

  • Read/write access: R/W

This register is used to configure ADC over sample.

31:9 RSVD 8:6 BIT_ADC_OSF 5:3 BIT_ADC_OSR 2 RSVD 1 BIT_OV_MODE 0 BIT_ADC_OS_EN

Bit

Symbol

Access

INI

Description

31:9

RSVD

R

-

Reserved

8:6

BIT_ADC_OSF

R/W

0

Oversampling right shift

  • 000: no shift

  • 001: shift 1-bit

  • 010: shift 2-bit

  • 011: shift 3-bit

  • 100: shift 4-bit

5:3

BIT_ADC_OSR

R/W

0

Oversample ratio

  • 000: 2x

  • 001: 4x

  • 010: 8x

  • 011: 16x

  • 100: 32x

  • 101: 64x

  • 110: 128x

  • 111: 256x

2

RSVD

R

-

Reserved

1

BIT_OV_MODE

R/W

0

Oversample mode

  • 1: All oversampling conversions done in regular sequence

  • 0: All oversampling conversions done in staggered sequence

0

BIT_ADC_OS_EN

R/W

0

Oversample enable

  • 1: enable

  • 0: disable

REG_ADC_PWR_CTRL

  • Name: ADC Power Control Register

  • Size: 32

  • Address offset: 0B0h

  • Read/write access: R/W

This register is used to control the ADC power and debug configuration.

31:4 RSVD 3 BIT_ADC_DBG_EN 2:1 BIT_ADC_DBG_SEL 0 BIT_ADC_PWR_CTRL

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

BIT_ADC_DBG_EN

R/W

0

Debug port enable

2:1

BIT_ADC_DBG_SEL

R/W

0

Debug port select

0

BIT_ADC_PWR_CTRL

R/W

0

This field is used to power control.

REG_ADC_SW_TMODE

  • Name: ADC Software Test Mode

  • Size: 32

  • Address offset: 0B4h

  • Read/write access: R/W

This register is used to set the software test mode.

31:1 RSVD 0 BIT_ADC_SW_TMODE

Bit

Symbol

Access

INI

Description

31:1

RSVD

R

-

Reserved

0

BIT_ADC_SW_TMODE

R/W

0

This bit is used to change the high 4 bits in FIFO.

  • 0: normal mode, the high 4 bits will be null or the channel number.

  • 1: software test mode, the high 4 bits will be the counter number of sample points (loop from 0 to 15).

REG_ADC_DUMMY

  • Name: ADC Dummy Register

  • Size: 32

  • Address offset: 0B8h

  • Read/write access: R/W

31:0 DUMMY

Bit

Symbol

Access

INI

Description

31:0

DUMMY

R/W

ffffh

Dummy register