13.2.5. 寄存器描述

13.2.5.1. 0x000 PSADC_MCR

默认值:0x00002F00

PSADC模块控制(PSADC Module Control Register)

位域

类型

默认值

描述

31

-

-

-

30

R/WAC

0

Q2_TRIGS
本字段定义Q2的状态,同时软件也可以通过本字段触发PSADC队列2进行采样。
0 – 显示Q2处于空闲状态,此状态下,软件可以通过置位本字段触发Q2进行采样;
1 – 显示Q2处于工作状态,采样的触发有可能来自于任何触发源(包括TRIGB/TRIGS),
一旦采样完成,本字段会被硬件自动清零。

29

-

-

-

28

R/W

0

Q2_TRIGB(队列2 PWM采样触发B使能信号)
本字段决定了是否使能PWM采样触发B信号(PWM_ADC_CVRB)
对PSADC队列2的采样触发功能。
0 – 禁止PWM_ADC_CVRB触发队列2;
1 – 使能PWM_ADC_CVRB触发队列2。
关于PWM_ADC_CVRB触发信号所代表的含义,请参考PWM模块的配置。

27

-

-

-

26

R/W

0

Q2_INTE(队列2中断使能)
本字段设定了队列2的中断使能。
0 – 禁止Q2_INT中断,尽管Q2_INT中断标志置位了,但是仍然不会产生中断;
1 – 使能Q2_INT中断,只要Q2_INT中断标志被置位,就会产生中断,
直至Q2_INT标志被软件清除。

25

R/W

0

Q2_INTM(队列2中断模式选择)
本字段设定了队列2的中断模式。
0 – 每次队列执行结束都会产生一次Q2_INT中断;
1 – 每隔一次(每两次)队列执行结束就会产生一次Q2_INT中断。

24

R/WAC

0

Q2_RST(队列2复位信号)
本字段的复位针对队列2(Q2)。
0 – 无使能
1 – 立刻复位队列2(Q2)到Q2的节点0,下一次触发发生后,从节点0开始执行采样,
复位后现有未执行的采样命令立刻放弃,
并等待已执行的采样命令完成后,硬件自动清零本字段。

23

R/W

0

QC_TRIGB
本字段决定了是否使能PWM采样触发B信号(PWM_ADC_CVRB)
对PSADC合并队列(QC)的采样触发功能。
0 – 禁止PWM_ADC_CVRB触发QC
1 – 使能PWM_ADC_CVRB触发QC
关于PWM_ADC_CVRB触发信号所代表的含义,请参考PWM模块的配置

22

R/WAC

0

Q1_TRIGS
本字段定义Q1或QC的状态,同时软件也可以通过本字段触发PSADC队列1
(包括合并队列QC)进行采样。
0 – 显示Q1或QC处于空闲状态,此状态下,软件可以通过置位本字段触发Q1/QC进行采样;
1 – 显示Q1或QC处于工作状态,采样的触发有可能来自于任何触发源
(包括TRIGA/TRIGB/TRIGE/TRIGS),一旦采样完成,本字段会被硬件自动清零。

21

R/W

0

Q1_TRIGE
本字段决定了是否使能外部触发信号(TRIGE)对PSADC队列1
(包括合并队列QC)的采样触发功能。
0 – 禁止TRIGE触发Q1或QC;
1 – 使能TRIGE触发Q1或QC。
关于PWN_STA触发信号所代表的含义,请参考PWM模块的配置。

20

R/W

0

Q1_TRIGA(队列1 PWM采样触发A使能信号)
本字段决定了是否使能PWM采样触发A信号(PWM_ADC_CVRA)对PSADC队列1
(包括合并队列QC)
的采样触发功能。
0 – 禁止PWM_ADC_CVRA触发Q1或QC;
1 – 使能PWM_ADC_CVRA触发Q1或QC。
关于PWM_ADC_CVRA触发信号所代表的含义,请参考PWM模块的配置。

19

-

-

-

18

R/W

0

Q1_INTE(队列1中断使能)
本字段设定了队列1(或者合并队列)的中断使能。
0 – 禁止Q1_INT中断,尽管Q1_INT中断标志置位了,但是仍然不会产生中断;
1 – 使能Q1_INT中断,只要Q1_INT中断标志被置位,就会产生中断,
直至Q1_INT标志被软件清除。

17

R/W

0

Q1_INTM(队列1中断模式选择)
本字段设定了队列1(或者合并队列)的中断模式。
0 – 每次队列执行结束都会产生一次Q1_INT中断;
1 – 每隔一次(每两次)队列执行结束就会产生一次Q1_INT中断。

16

R/WAC

0

Q1_RST(队列1复位信号)
本字段的复位针对队列1(Q1),包括合并后的队列(QC)。
0 – 无使能
1 – 立刻复位队列1(Q1)/合并队列(QC)到Q1的节点0,下一次触发发生后,
从节点0开始执行采样,复位后现有未执行的采样命令立刻放弃,
并等待已执行的采样命令完成后,硬件自动清零本字段。

15:8

R/W

0x2F

ADC_ACQ(ADC捕获时间)
本字段定义了本ADC所有通道的捕获时间长度。本计数值单位为ADC_CLK的周期数,
TADCACQ =(ADC_ACQ+1)*TADC_CLK。
假设ADC_CLK=24MHz,ADC_ACQ=0x2F,TADCACQ = (47+1)*41.67ns = 2us。

7:3

-

-

-

2

R/W

0

QUE_Override:
0:Wraps around to 0 with TRIG_CNT set(第TRIG_CNT+1)
1:Wraps around to 0
QC: after adcresult15 register is reached(第16个节点完成)
Q1/Q2 after adcresult8 register is reached (第8个节点完成)

1

R/W

0

QUE_COMB(合并队列)
本字段决定了是否把两个独立的8节点采样队列Q1与Q2合并为一个16节点采样队列(QC)
0 – 两个采样队列相互独立,队列1(Q1)和队列2(Q2)各有8个节点;
1 – 合并两个队列,Q1与Q2合并后,统一作为Q1进行控制,变成单个16个节点的队列(QC)

0

R/W

0

EN(模块使能)
0 – 本模块被禁止,本模块停止工作;
1 – 本模块被使能。

13.2.5.2. 0x004 PSADC_TCR

默认值:0x00000000

PSADC队列采样节点数(PSADC Trigger Count Register)

位域

类型

默认值

描述

31:7

-

-

-

6:4

R/W

0x0

Q2_TRIG_CNT(队列2触发采样节点数)
本字段设定了队列2的每次触发信号发生后,采样队列的连续节点数,
实际采样节点数为Q2_TRIG_CNT+1。
0x0 – 每次触发执行1个采样节点;
0x1 – 每次触发执行2个采样节点;
0x7 – 每次触发执行8个采样节点。

3:0

R/W

0x0

Q1_TRIG_CNT(队列1触发采样节点数)
本字段设定了队列1(包括合并队列)的每次触发信号发生后,采样队列的连续节点数,
实际采样节点数为Q1_TRIG_CNT+1。
0x0 – 每次触发执行1个采样节点;
0x1 – 每次触发执行2个采样节点;
0xF – 每次触发执行16个采样节点。

13.2.5.3. 0x008 PSADC_NODE1

默认值:0x00000000

PSADC队列1节点(PSADC Queue 1 Node)

位域

类型

默认值

描述

31:28

R/W

0

Q1_NODE7
本字段定义了Q1节点7或QC节点7的ADC输入通道号。

27:24

R/W

0

Q1_NODE6
本字段定义了Q1节点6或QC节点6的ADC输入通道号。

23:20

R/W

0

Q1_NODE5
本字段定义了Q1节点5或QC节点5的ADC输入通道号。

19:16

R/W

0

Q1_NODE4
本字段定义了Q1节点4或QC节点4的ADC输入通道号。

15:12

R/W

0

Q1_NODE3
本字段定义了Q1节点3或QC节点3的ADC输入通道号。

11:8

R/W

0

Q1_NODE2
本字段定义了Q1节点2或QC节点2的ADC输入通道号。

7:4

R/W

0

Q1_NODE1
本字段定义了Q1节点1或QC节点1的ADC输入通道号。

3:0

R/W

0

Q1_NODE0
本字段定义了Q1节点0或QC节点0的ADC输入通道号。
0x0 – 选择ADC输入通道0;
0x1 – 选择ADC输入通道1;
0xF – 选择ADC输入通道15。

13.2.5.4. 0x00C PSADC_NODE2

默认值:0x00000000

PSADC队列2节点(PSADC Queue 2 Node)

位域

类型

默认值

描述

31:28

R/W

0

Q2_NODE7
本字段定义了Q2节点7或QC节点15的ADC输入通道号。

27:24

R/W

0

Q2_NODE6
本字段定义了Q2节点6或QC节点14的ADC输入通道号。

23:20

R/W

0

Q2_NODE5
本字段定义了Q2节点5或QC节点13的ADC输入通道号。

19:16

R/W

0

Q2_NODE4
本字段定义了Q2节点4或QC节点12的ADC输入通道号。

15:12

R/W

0

Q2_NODE3
本字段定义了Q2节点3或QC节点11的ADC输入通道号。

11:8

R/W

0

Q2_NODE2
本字段定义了Q2节点2或QC节点10的ADC输入通道号。

7:4

R/W

0

Q2_NODE1
本字段定义了Q2节点1或QC节点9的ADC输入通道号。

3:0

R/W

0

Q2_NODE0
本字段定义了Q2节点0或QC节点8的ADC输入通道号。
0x0 – 选择ADC输入通道0;
0x1 – 选择ADC输入通道1;
0xF – 选择ADC输入通道15。

13.2.5.5. 0x010 PSADC_MSR

默认值:0x00000000

PSADC模块状态(PSADC Module State Register)

位域

类型

默认值

描述

31:28

-

-

-

27:24

RO

0x0

QX_CNT(当前队列计数)
本字段显示内部状态机的当前队列剩余采样节点数的计数值。

23

-

-

-

22:20

RO

0x0

Q2_STATE(队列2状态)
本字段显示当前队列2所处的采样节点位置。
初始为0,显示队列2处于NODE0的位置,随着触发采样的递进,
Q2_STATE会不断往前计数,
例如Q2_STATE=3,就表示下一次会对NODE3描述的通道号进行采样。

19:16

RO

0x0

Q1_STATE(队列1状态)
本字段显示当前队列1(包括合并队列)所处的采样节点位置。
初始为0,显示队列1处于NODE0的位置,随着触发采样的递进,
Q1_STATE会不断往前计数,
例如Q1_STATE=5,就表示下一次会对NODE5描述的通道号进行采样。

15:8

-

-

-

11

RO

0

Q2_EOQ(队列2结束翻转标志)
本字段定义了队列2的单次队列采样完成翻转标志。
本字段仅在中断模式1(Q2_INTM=1)有效,在中断模式0
(Q2_INTM=0)下,本字段固定为0。
在中断模式1下,每次按照Q2_TRIG_CNT计数完成相应的采样节点数
后就会自动翻转一次(由0翻转为1,或者由1翻转为0)。

10

RO

0

Q1_EOQ(队列1结束翻转标志)
本字段定义了队列1(包括合并队列)的单次队列采样完成翻转标志。
本字段仅在中断模式1(Q1_INTM=1)有效,在中断模式0(Q1_INTM=0)下,
本字段固定为0。
在中断模式1下,每次按照Q1_TRIG_CNT计数完成相应的采样节点数后
就会自动翻转一次(由0翻转为1,或者由1翻转为0)。

9

RO

0

Q2_BUSY(队列2忙状态标志)
0 – 队列2处于空闲状态,等待触发信号;
1 – 队列2处于采样过程中。

8

RO

0

Q1_BUSY(队列1忙状态标志)
0 – 队列1(或合并队列)处于空闲状态,等待触发信号;
1 – 队列1(或合并队列)处于采样过程中。

7

-

-

-

6

RO

0

Q2_FERR(队列2 FIFO异常中断标志)
本字段为队列2的FIFO异常中断标志。

5

RO

0

Q2_FRDY(队列2 FIFO数据就绪中断标志)
本字段为队列2的FIFO数据就绪中断标志。

4

R/W1C

0

Q2_INT(队列2完成事件标志)
本字段为队列2完成事件标志位。
0 – 无完成事件;
1 – 有完成事件,本字段可以通过软件写‘1’清零。

3

-

-

-

2

RO

0

Q1_FERR(队列1 FIFO异常中断标志)
本字段为队列1(包括合并队列)的FIFO异常中断标志。
本字段为只读,FIFO上/下溢出状态有效(FIFO_OFS或FIFO_UFS),
硬件就会自动置位本字段
清零本字段的手段:清零FIFO上/下溢出状态(FIFO_OFS或FIFO_UFS=0)。

1

RO

0

Q1_FRDY(队列1 FIFO数据就绪中断标志)
本字段为队列1(包括合并队列)的FIFO数据就绪中断标志。
本字段为只读, FIFO数据就绪,硬件就会置位本字段。
清零本字段的手段:读FIFO数据,让FIFO有效数据量低于FIFO数据就绪阈值
(FIFO_DCNT<FIFO_DRTH)。

0

R/W1C

0

Q1_INT(队列1完成事件标志)
本字段为队列1(包括合并队列QC)完成事件标志位。
0 – 无完成事件;
1 – 有完成事件,本字段可以通过软件写‘1’清零。

13.2.5.6. 0x014 PSADC_CALCSR

默认值:0x08002F00

PSADC校准控制(PSADC Calibration Control Set Register)

位域

类型

默认值

描述

31

R/W

0

CALVAL_UPD(Calibration Value Update,ADC校准值更新)
通过软件设置CALVAL的同时,置位本字段,表示软件需要更新CALVAL值,
本字段被置位后会触发内部更新的动作,硬件更新完毕之后,会自动清零本字段。

30:28

-

-

-

27:16

R/W

0x800

CALVAL(Calibration Value,ADC校准输出值)(bit31 write enable)
ADC的校准过程是去采样一个参考电压的中间电平,就会返回一个12bits的值,
本字段会把这个值保存下来。并且由硬件使用这个值对所有的采样数据进行校准。
如果希望使用一个非硬件自动校准取得的值,对ADC数据进行校准,还可以通过
软件设置一个合适的值,硬件就会参考本字段,对ADC采样数据进行自动校准。

15:8

R/W

0x2F

ADC_ACQ(ADC捕获时间)
本字段定义了本ADC所有通道的捕获时间长度。本计数值单位为ADC_CLK的周期数,
TADCACQ =(ADC_ACQ+1)*TADC_CLK。
假设ADC_CLK=24MHz,ADC_ACQ=0x2F,TADCACQ = (47+1)*41.67ns = 2us。

7:6

-

-

-

5:4

R/W

0x00

OP_BIAS(模拟配置)(新增) (bit31 write enable)

1

R/W

0

DCALMASK(Data Calibration Mask,采样数据校准屏蔽)
0 – 硬件默认对采样数据进行校准后送给ADC应用功能模块;
1 – 屏蔽采样数据校准功能,本模块直接把来自ADC模拟电路的采样数据
不经校准地送给ADC应用功能模块。

0

R/WAC

0

CALEN(Calibration Enable,ADC校准使能)
本使能信号由软件置位,使能ADC校准,ADC校准完后,对此控制信号自动清零。
软件查询到此信号被清零后,意味着校准已完成。

13.2.5.7. 0x01C PSADC_FILTER

默认值:0x00000000

PSADC滤波控制(PSADC Filter)

位域

类型

默认值

描述

31:16

-

-

-

15:8

R/W

0x0

二级去抖分频器(divclk)、仅对PSADC_TRIG有效(pad输入)
本计数单位为TPCLK。当本字段为0(即0x0000)时,去抖功能无效。
本字段定义的去抖时间范围为0~(2^8-1)*TPCLK。

7:4

R/W

0x0

一级去抖计数器、仅对PSADC_TRIG有效(pad输入)
本计数单位为TPCLK。当本字段为0(即0x0000)时,去抖功能无效。
本字段定义的去抖时间范围为0~(2^4-1)*TPCLK。

3:0

R/W

0x0

二级去抖计数器、仅对PSADC_TRIG有效(pad输入)
本计数单位为divclk。当本字段为0(即0x0000)时,抬起去抖功能无效。
本字段定义的去抖时间范围为0~(2^4-1)*divclk

13.2.5.8. 0x020 PSADC_Q1FCR

默认值:0x00000000

PSADC队列1 FIFO控制(PSADC Queue 1 FIFO Control Register)

位域

类型

默认值

描述

31:29

-

-

-

28:24

RO

0x0

FIFO_DCNT(FIFO Data Count,FIFO有效数据量)
本字段定义了当前FIFO有效数据量,Q1 FIFO的总深度为20,因此,0x0~0x14为有效。

23:18

-

-

-

17

R/W1C

0

FIFO_UFS(FIFO Underflow Status,FIFO下溢出状态)
本字段定义了当前FIFO下溢出状态,高电平有效。本字段由硬件置位,并由软件写1清零。

16

R/W1C

0

FIFO_OFS(FIFO Overflow Status,FIFO上溢出状态)
本字段定义了当前FIFO上溢出状态,高电平有效。本字段由硬件置位,并由软件写1清零。

15:13

-

-

-

12:8

R/W

0x0

FIFO_DRTH(FIFO Data Ready Threshold,FIFO数据就绪阈值)
本字段定义了FIFO数据就绪的阈值,当FIFO的数据量达到了本阈值后,
就有可能会产生数据就绪中断或者DMA请求。
0x01~0x14表示有效阈值范围,当FIFO数据量达到了对应数值后,就会发出中断/DMA请求;
0x00,0x15~0x1F为非法配置,会导致无中断/DMA请求。

7:4

-

-

-

3

R/W

0

FIFO_ERRIE(FIFO异常中断使能)
本字段控制FIFO出现上/下溢出异常后,是否产生FIFO异常中断(FERR)。
0 – 禁止产生中断;
1 – 允许产生中断。

2

R/W

0

FIFO_DRQE(FIFO DMA数据请求使能)
本字段控制FIFO有效数据量达到FIFO数据就绪阈值(FIFO_DCNT≥FIFO_DRTH)后,
是否向DMA发出FIFO数据就绪请求(FDRQ)。
0 – 禁止向DMA发出DRQ;
1 – 允许向DMA发出DRQ。

1

R/W

0

FIFO_RDYIE(FIFO数据就绪中断使能)
本字段控制FIFO有效数据量达到FIFO数据就绪阈值(FIFO_DCNT≥FIFO_DRTH)后,
是否产生FIFO数据就绪中断(FDRY)。
0 – 禁止产生中断;
1 – 允许产生中断。

0

R/WAC

0

FIFO_FLUSH(FIFO Flush,FIFO清空操作)
本字段定义了FIFO清空操作,本字段由软件置位硬件清零。软件置位启动
FIFO清空操作,FIFO清空操作完成后,由硬件清零。

13.2.5.9. 0x024 PSADC_Q2FCR

默认值:0x00000000

PSADC队列2 FIFO控制(PSADC Queue 2 FIFO Control Register)

位域

类型

默认值

描述

31:29

-

-

-

28:24

RO

0x0

FIFO_DCNT(FIFO Data Count,FIFO有效数据量)
本字段定义了当前FIFO有效数据量,Q2 FIFO的总深度为12,因此,0x0~0xC为有效。

23:18

-

-

-

17

R/W1C

0

FIFO_UFS(FIFO Underflow Status,FIFO下溢出状态)
本字段定义了当前FIFO下溢出状态,高电平有效。本字段由硬件置位,并由软件写1清零。

16

R/W1C

0

FIFO_OFS(FIFO Overflow Status,FIFO上溢出状态)
本字段定义了当前FIFO上溢出状态,高电平有效。本字段由硬件置位,并由软件写1清零。

15:12

-

-

-

11:8

R/W

0x0

FIFO_DRTH(FIFO Data Ready Threshold,FIFO数据就绪阈值)
本字段定义了FIFO数据就绪的阈值,当FIFO的数据量达到了本阈值后,
就有可能会产生数据就绪中断或者DMA请求。
0x1~0xC表示有效阈值范围,当FIFO数据量达到了对应数值后,就会发出中断/DMA请求;
0x0,0xD~0xF为非法配置,会导致无中断/DMA请求。

7:4

-

-

-

3

R/W

0

FIFO_ERRIE(FIFO异常中断使能)
本字段控制FIFO出现上/下溢出异常后,是否产生FIFO异常中断(FERR)。
0 – 禁止产生中断;
1 – 允许产生中断。

2

R/W

0

FIFO_DRQE(FIFO DMA数据请求使能)
本字段控制FIFO有效数据量达到FIFO数据就绪阈值(FIFO_DCNT≥FIFO_DRTH)后,
是否向DMA发出FIFO数据就绪请求(FDRQ)。
0 – 禁止向DMA发出DRQ;
1 – 允许向DMA发出DRQ。

1

R/W

0

FIFO_RDYIE(FIFO数据就绪中断使能)
本字段控制FIFO有效数据量达到FIFO数据就绪阈值(FIFO_DCNT≥FIFO_DRTH)后,
是否产生FIFO数据就绪中断(FDRY)。
0 – 禁止产生中断;
1 – 允许产生中断。

0

R/WAC

0

FIFO_FLUSH(FIFO Flush,FIFO清空操作)
本字段定义了FIFO清空操作,本字段由软件置位硬件清零。软件置位启动
FIFO清空操作,FIFO清空操作完成后,由硬件清零。

13.2.5.10. 0x040 PSADC_Q1FDR

默认值:0x00000000

PSADC队列1 FIFO数据(PSADC Queue 1 FIFO Data Register)

位域

类型

默认值

描述

31:16

-

-

-

15:12

RO

0x0

CHNUM(ADC采样通道号)
本字段为DATA对应的通道号,与Q1_NODEx中的数值对应。本字段的主要是目的是Debug使
用,接收到数据后可以与Q1_NODEx中的数值进行比较,判断控制器是否出错。

11:0

RO

0x000

DATA(ADC采样数据)
本字段为12bit ADC采样后转化为数字量的数据。

13.2.5.11. 0x080 PSADC_Q2FDR

默认值:0x00000000

PSADC队列2 FIFO数据(PSADC Queue 2 FIFO Data Register)

位域

类型

默认值

描述

31:16

-

-

-

15:12

RO

0x0

CHNUM(ADC采样通道号)
本字段为DATA对应的通道号,与Q2_NODEx中的数值对应。本字段的主要是目的是Debug使
用,接收到数据后可以与Q2_NODEx中的数值进行比较,判断控制器是否出错。

11:0

RO

0x000

DATA(ADC采样数据)
本字段为12bit ADC采样后转化为数字量的数据。

13.2.5.12. 0xFFC VERSION

默认值:0x00000100

PSADC模块版本(PSADC Version)

位域

类型

默认值

描述

31:0

RO

0x00000100

Version(模块版本号)
采用BCD码显示,V1.00