模数转换器

简介

模数转换器(ADC)采用逐次逼近寄存器(SAR)型结构,支持外部模拟通道与内部通道采集,可满足不同信号检测需求。ADC 提供软件触发、定时器触发及连续采样多种工作模式,适配多样化采样场景。

特性

ADC 的主要特性如下:

  • 分辨率:12 位 SAR

RTL8721Dx:
  • 可用通道数量

    • 7 个外部通道和 1 个 VBAT 通道

    • 3 个内部通道

  • 输入电压范围

    • 外部通道:0 V ~ min(VAH_ADC, 3.3 V)

    • VBAT 通道:0 V ~ 5 V(用于电池)

  • ADC 供电要求 (VAH_ADC):1.8 V 至 3.63 V

  • 包含 64 个 20 位宽的 FIFO 条目,用于存储转换结果

  • 支持多种采样模式:

    • 自动连续采样

  • 硬件过采样以提升信噪比

  • 可配置的 ADC 时钟源与采样率

  • 支持通过通道列表配置通道切换顺序与通道数量

  • 每个通道具备独立的寄存器,用于存储转换结果与状态

  • 支持内置校准

  • 支持多种中断事件:

    • 通道列表扫描完成

    • 特定通道扫描完成

    • 每个通道独立的比较事件

    • 数据覆盖

    • FIFO 空、FIFO 溢出与 FIFO 满状态

框图

12 位 ADC 框图如下图所示。

RTL8721Dx:
../../_images/adc_block_diagram_sar_adc_dplus.svg

功能描述

通道切换列表

ADC 支持软件通过通道切换列表来配置完整的转换序列。软件可通过 REG_ADC_CHSW_LIST_0 和 REG_ADC_CHSW_LIST_1 两个寄存器指定待转换的目标通道编号,并通过配置寄存器 REG_ADC_CONF[7:4] 中的列表长度字段来设置序列中的通道总数。

例如,假设 REG_ADC_CHSW_LIST_0 与 REG_ADC_CHSW_LIST_1 的配置值如下表所示:

寄存器

[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

若 REG_ADC_CONF[7:4] 设为 9,则 ADC 仅转换列表中的前 10 个(即 REG_ADC_CONF[7:4] + 1)通道。在自动模式下,ADC 将按顺序从列表中的首个通道依次转换至最后一个指定通道。当完成转换的通道数达到 REG_ADC_CONF[7:4] 设定的值后,ADC 将回到首个通道并重新开始下一轮转换序列(如下图所示)。

../../_images/auto_mode_waveform.svg

自动模式波形

REG_ADC_LAST_CH[3:0] 字段用于指示最近一次完成转换的通道,便于追踪转换序列的当前进度。此外,REG_ADC_BUSY_STS[0] 位用于指示 ADC 的忙碌状态;当 ADC 正在执行通道转换时,该位保持为 1。

工作模式

RTL8721Dx:

Ameba 仅支持一种工作模式:自动模式。

自动模式

在自动模式下,配置自动通道切换寄存器(REG_ADC_AUTO_CSW_CTRL[0])后,ADC 无需任何外部触发源即可连续执行转换。该模式会持续运行,直至自动通道切换寄存器被清除(REG_ADC_AUTO_CSW_CTRL[0])或自动通道切换功能被禁用(REG_ADC_CONF[3:1])。

自动模式下,ADC 由硬件自动完成采样,无需内核或其他模块介入。该模式适用于内核资源有限且需要实时检测的应用场景。自动模式的波形请参考 自动模式波形

ADC 将按顺序扫描列表中的通道。相邻通道采样之间无时间间隔,扫描速度完全取决于 ADC 的采样率。在采样周期结束时,ADC 会立即将数据输出至寄存器和 FIFO,因此无需设置通道切换时间和建立时间。

当 REG_ADC_AUTO_CSW_CTRL[0] 置位时,采样数据会被连续填充到寄存器和 FIFO。若未被及时读取,数据将会丢失,且溢出的数据不会被继续写入 FIFO。对于需要间歇性从 FIFO 获取数据的场景,建议在读取前先清空 FIFO。

此外,有一种情况需特别注意:若 ADC 采样的信号源内阻较大,输入信号将极易受到干扰。

../../_images/high_resistance_of_input_circuit.svg

解决方案如下:

  1. 降低阻抗

如下图所示,可通过运算放大器(OA)提供极低的输出阻抗。

../../_images/operational_amplifier_or_a_resistance_divider.svg
  1. 在通道列表中插入接地隔离通道

如下图所示,利用 GND 通道(内部 GND 通道或接地的外部通道),将 ADC 的通道列表配置为:CH0, CH_GND, CH1, CH_GND, CH2 ... CH5, CH_GND。此举可有效避免通道间的串扰,由此产生的通道间延迟取决于 ADC 的采样率及通道列表的配置。

../../_images/add_grounding_isolation_channel.svg

低功耗时钟源

RTL8721Dx:

下图展示了 ADC 的时钟树。用户可通过配置寄存器 REG_ADC_CLK_DIV[2:0] 来设定 ADC 的采样频率。ADC 支持 OSC 和 XTAL 两种不同的时钟源,其中,XTAL 时钟的性能更好,而 OSC 时钟具有更低的功耗。

../../_images/clock_generation_tree_smart_lite_dplus.svg

系统进入低功耗状态后,可以通过 ADC 自动模式完成采样,并利用 ADC 中断唤醒系统。

自动模式下,ADC 硬件自动连续对外部模拟电压进行采样。用户可以预设高/低阈值以及比较标准。整个过程 CPU 完全休眠,只有当采样电压符合预设的电压比较标准时,系统才会被唤醒。

低功耗状态下,仅支持 OSC 时钟作为 ADC 时钟源,此时系统可以被唤醒。

备注

RTL8721Dx 在低功耗状态下仅支持自动模式。

各通道的独立比较事件

ADC 可用于实现电压监测功能。ADC 的每个通道均可配置两个独立的比较阈值以及不同的比较标准。当 ADC 的采样值满足设定条件时,可通过 REG_ADC_INTR_STS 寄存器检测到相应中断。

各通道的阈值(包含高阈值与低阈值)可在 REG_ADC_COMP_TH_CHx 寄存器中进行配置。各通道的比较标准则在 REG_ADC_COMP_CTRL 寄存器中配置。ADC 比较功能支持以下四种不同的比较标准:

  • Vin < bit_adc_comp_th_l_chx

  • Vin > bit_adc_comp_th_h_chx

  • Vin >= bit_adc_comp_th_l_chx 且 Vin <= bit_adc_comp_th_h_chx

  • Vin < bit_adc_comp_th_l_chx 或 Vin > bit_adc_comp_th_h_chx

例如,当配置为 Vin < bit_adc_comp_th_l_chx 或 Vin > bit_adc_comp_th_h_chx 时,若 ADC 的转换数据低于低阈值或高于高阈值,系统将触发中断事件。

../../_images/adc_comparison_event.svg
RTL8721Dx:

ADC 支持两种不同的中断触发模式(电平检测和边沿检测),以将比较匹配事件通知给 CPU。其中,电平检测会持续上报中断,边沿检测仅在中断发生时上报一次。

采样结果的获取

FIFO

RTL8721Dx:

用户可通过读取 REG_ADC_DATA_GLOBAL 寄存器从 ADC FIFO 中获取采样结果。ADC 会将所有采样结果存储至 FIFO 中。ADC FIFO 共包含 64 个条目,每个 20 位的 FIFO 数据条目由 4 位通道号和 16 位转换数据组成,如下图所示。

../../_images/fifo_structure_20bit.svg

FIFO 充当了运行速率不同的数据采集系统与数据处理系统之间的缓冲区,因此,及时读取数据对于防止数据丢失至关重要。

在正常运行期间,ADC 会持续将数据写入 FIFO,同时软件从中读取数据。若软件读取数据的速度慢于 ADC 写入数据的速度,则会导致 FIFO 溢出。如上图所示,在发生溢出的情况下,任何新采样的数据均会被丢弃,而不会写入 FIFO。

除了及时获取数据以避免溢出外,强烈建议在启动任何新的数据采样流程之前,先通过置位 REG_ADC_CLR_FIFO[0] 来清空 ADC FIFO。

若启用了 FIFO 溢出中断(ADC_BIT_IT_FIFO_OVER_EN),当 FIFO 发生溢出时,系统将向 NVIC 发送中断信号。同理,若启用了 FIFO 空中断(ADC_BIT_IT_FIFO_EMPTY_EN),当 FIFO 为空时也会触发相应中断。

此外,用户可通过配置 REG_ADC_FULL_LVL[5:0] 来自定义 FIFO 满阈值。在启用 FIFO 满中断(ADC_BIT_IT_FIFO_FULL_EN)的情况下,一旦 FIFO 中的数据量达到此设定阈值,模块便会向 NVIC 发送中断信号,如下图所示。

REG_ADC_FLR[5:0] 用于指示当前 ADC FIFO 中的数据量。

../../_images/fifo_interrupt.svg

独立通道寄存器

每个通道均配备独立的数据寄存器,用于存储其最新的转换结果。此类寄存器统一命名为 REG_ADC_DATA_CHx,其中 x 代表具体的通道编号(例如 CH0)。

RTL8721Dx:
  • REG_ADC_DATA_CHx[15:0] 包含 CHx 的最新转换数据。

  • REG_ADC_DATA_CHx[19:16] 指示与最新转换数据相关联的通道编号。

  • REG_ADC_DATA_CHx[20] 为指示数据覆盖事件的标志位。

  • REG_ADC_DATA_CHx[21] 为指示转换完成的标志位。

PAD 配置

ADC 的模拟前端 (AFE) 属于模拟器件,模拟信号经由芯片引脚输入至芯片内部。因此,在此信号路径上应避免明显的数字信号干扰,且不应存在上拉或下拉电路。

若用户需将 GPIO 引脚复用为 ADC 输入引脚,除了将引脚功能配置为 ADC 外,还需禁用所选引脚的数字电路功能,并将其设置为无上拉/下拉状态(包括在睡眠模式下)。

校准

每颗芯片的 ADC 在出厂前均已完成校准。用户可通过调用 ADC_GetVoltage() 函数并将转换数据作为参数传入,直接获取经校准的精确电压转换结果。

寄存器

RTL8721Dx:

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