12.2.7. 寄存器描述

n=0~7为GPAI通道号

12.2.7.1. 0x000 GPAI_MCR

默认值:0x00000000

GPAI模块控制(GPAI Module Control Register)

位域

类型

默认值

描述

31:16

-

-

-

15:8

R/W

0x00

CHEN(Channel Enable,通道使能控制)
本字段8bits分别对应8个通道的独立使能控制,具体如下:
Bit8:0 – 禁止通道0,1 – 使能通道0;
Bit9:0 – 禁止通道1,1 – 使能通道1;
Bit10:0 – 禁止通道2,1 – 使能通道2;
Bit11:0 – 禁止通道3,1 – 使能通道3;
Bit12:0 – 禁止通道4,1 – 使能通道4;
Bit13:0 – 禁止通道5,1 – 使能通道5;
Bit14:0 – 禁止通道6,1 – 使能通道6;
Bit15:0 – 禁止通道7,1 – 使能通道7。

7:1

-

-

-

0

R/W

0

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

12.2.7.2. 0x004 GPAI_INTR

默认值:0x00000000

GPAI中断控制与状态(GPAI Interrupt Register)

位域

类型

默认值

描述

31:24

-

-

-

23

RO

0

CH7_FLG(Channel 7 Flag,通道7事件更新标志)
本字段表示通道7是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道7无新的待处理事件;
1 – 通道7有新的待处理事件。

22

RO

0

CH6_FLG(Channel 6 Flag,通道6事件更新标志)
本字段表示通道6是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道6无新的待处理事件;
1 – 通道6有新的待处理事件。

21

RO

0

CH5_FLG(Channel 5 Flag,通道5事件更新标志)
本字段表示通道5是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道5无新的待处理事件;
1 – 通道5有新的待处理事件。

20

RO

0

CH4_FLG(Channel 4 Flag,通道4事件更新标志)
本字段表示通道4是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道4无新的待处理事件;
1 – 通道4有新的待处理事件。

19

RO

0

CH3_FLG(Channel 3 Flag,通道3事件更新标志)
本字段表示通道3是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道3无新的待处理事件;
1 – 通道3有新的待处理事件。

18

RO

0

CH2_FLG(Channel 2 Flag,通道2事件更新标志)
本字段表示通道2是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道2无新的待处理事件;
1 – 通道2有新的待处理事件。

17

RO

0

CH1_FLG(Channel 1 Flag,通道1事件更新标志)
本字段表示通道1是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道1无新的待处理事件;
1 – 通道1有新的待处理事件。

16

RO

0

CH0_FLG(Channel 0 Flag,通道0事件更新标志)
本字段表示通道0是否有新的事件发生,例如高/低电平报警事件,
数据有效事件,FIFO错误事件等等。
0 – 通道0无新的待处理事件;
1 – 通道0有新的待处理事件。

15:8

-

-

-

7

R/W

0

CH7_INTEN(Channel 7 Interrupt Enable,通道7中断使能)
0 – 禁止通道7中断;
1 – 使能通道7中断。

6

R/W

0

CH6_INTEN(Channel 6 Interrupt Enable,通道6中断使能)
0 – 禁止通道6中断;
1 – 使能通道6中断。

5

R/W

0

CH5_INTEN(Channel 5 Interrupt Enable,通道5中断使能)
0 – 禁止通道5中断;
1 – 使能通道5中断。

4

R/W

0

CH4_INTEN(Channel 4 Interrupt Enable,通道4中断使能)
0 – 禁止通道4中断;
1 – 使能通道4中断。

3

R/W

0

CH3_INTEN(Channel 3 Interrupt Enable,通道3中断使能)
0 – 禁止通道3中断;
1 – 使能通道3中断。

2

R/W

0

CH2_INTEN(Channel 2 Interrupt Enable,通道2中断使能)
0 – 禁止通道2中断;
1 – 使能通道2中断。

1

R/W

0

CH1_INTEN(Channel 1 Interrupt Enable,通道1中断使能)
0 – 禁止通道1中断;
1 – 使能通道1中断。

0

R/W

0

CH0_INTEN(Channel 0 Interrupt Enable,通道0中断使能)
0 – 禁止通道0中断;
1 – 使能通道0中断。

12.2.7.3. 0x100+0x40*n GPAI_CHnCR

默认值:0x000n2F00

GPAI 通道控制(GPAI Channel N Control Register)

位域

类型

默认值

描述

31:26

-

-

-

25:24

R/W

0x0

SBC(Sample Burst Count,采样突发次数)
本字段定义了单点采样(或者周期采样模式中的每点采样)中包含的采样次数。
每点采样的突发次数 = 2^SBC。SBC=0~3分别对应突发次数1/2/4/8。

每次SSEN=1,或者当PSEN=1的每个周期,本模块就会连续突发向ADC模块发
出2^SBC个采样命令,对应地就会返回2^SBC个采样数据。

2^SBC个采样数据经过简单的算数平均计算之后,合并为一个采样数据后,存入FIFO,
并等待软件进行后续处理。

23:20

-

-

-

19:16

RO

0xn

ADC_CHN(ADC Channel Number, ADC通道号)
本字段显示系统分配的ADC通道号,硬件会根据此通道号匹配ADC并获取返回
的数据,软件驱动不需要使用,本字段仅作Debug用。n=0~7。

15:8

R/W

0x2F

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

7:5

-

-

-

4

R/W

0x0

ADC_PRI(ADC Priority, ADC采样优先级)
本字段定义了本次ADC采样的优先级控制。
0 : 表示低优先级非实时采样,采样命令会与其他非实时采样命令进入采样队列
1 :表示高优先级实时采样,采样命令会被直接处理,不进入采样队列

3

-

-

-

2

R

0x0

CHn_State(Channel N State,通道工作状态)
0:空闲;
1: 忙碌。

1

R/W

0

PSEN(Periodic Sample Enable,周期采样使能)
本字段功能为使能GPAI通道周期采样。由软件置位,表示启动相应GPAI
通道的周期性采样,采样间隔由GPAI_CHnPSI寄存器设定。

软件清零表示停止周期性采样,如果在软件清零之前硬件已经启动了一次新的采样,
那么这次采样会继续完成,并最终返回数据。
注意:不允许同时使能周期采样与单次采样,即SSEN与PSEN不可以同时有效。

0

R/WAC

0

SSEN(Single Sample Enable,单点采样使能)
本字段功能为使能GPAI通道单点采样。由软件置位,表示启动相应通道信号的采样,
单点采样完成之后,本字段就会由硬件自动清零。

注意:尽管本字段描述为单点采样,但由于为了避免单次采样误差,
可能需要通过多次采样后进行算术平均,并得到一个相对稳定的信号电平值,
所以本“单点”采样实际上会包含“多次”采样,对应的由硬件向ADC接口控制器
连续发出多个采样命令,连续发出采样命令的个数由SBC设定。

例如SBC配置为0x2,那么每次启动SSEN,硬件会连续发出2^2=4个采样命令,
4个采样命令发出后,硬件自动清零SSEN。

12.2.7.4. 0x104+0x40*n GPAI_CHnINT

默认值:0x00000000

GPAI 通道中断控制与状态(DMA Channel N Interrupt)

位域

类型

默认值

描述

31:24

-

-

-

23

R/W1C

0

LLAR_FLG(Low-Level Alarm Removed Flag,低电平警报解除标志)
本字段高电平有效,表示低电平警报解除,即采样后的数据从低于LLAVV
(低电平警报有效阈值)到高于LLARV(低电平警报解除阈值)。
本字段由软件写1清零。
本字段仅周期采样模式(PSEN==1)下有效。

22

R/W1C

0

LLAV_FLG(Low-Level Alarm Valid Flag,低电平警报有效标志)
本字段高电平有效,表示低电平警报有效,即采样后的数据从高于LLAVR
(低电平警报解除阈值)到低于LLAVV(低电平警报有效阈值)。
本字段由软件写1清零。
本字段仅周期采样模式(PSEN==1)下有效。

21

R/W1C

0

HLAR_FLG(High-Level Alarm Removed Flag,高电平警报解除标志)
本字段高电平有效,表示高电平警报解除,即采样后的数据从高于HLAVV
(高电平警报有效阈值)到低于HLARV(高电平警报解除阈值)。
本字段由软件写1清零。
本字段仅周期采样模式(PSEN==1)下有效。

20

R/W1C

0

HLAV_FLG(High-Level Alarm Valid Flag,高电平警报有效标志)
本字段高电平有效,表示高电平警报有效,即采样后的数据从低于HLARV
(高电平警报解除阈值)到高于HLAVV(高电平警报有效阈值)。
本字段由软件写1清零。
本字段仅周期采样模式(PSEN==1)下有效。

19:18

-

-

-

17

RO

0

FIFO_FLG(FIFO Error Flag,FIFO异常标志)
本字段高电平有效,表示FIFO异常,异常包括Overflow(上溢出)与Underflow(下溢出)。
本字段只读,可以通过清除FIFO控制寄存器来清除本标志位。

16

R/W1C

0

DRDY_FLG(Data Ready Flag,数据有效标志)
本字段高电平有效,表示FIFO数据有效,即FIFO内数据量不少于FIFO数据有效阈值。

15:8

-

-

-

7

R/W

0

LLAR_INTEN(Low-Level Alarm Removed Interrupt Enable,低电平警报解除中断使能)
0 – 禁止LLAR中断;
1 – 使能LLAR中断。

6

R/W

0

LLAV_INTEN(Low-Level Alarm Valid Interrupt Enable,低电平警报有效中断使能)
0 – 禁止LLAV中断;
1 – 使能LLAV中断。

5

R/W

0

HLAR_INTEN(High-Level Alarm Removed Interrupt Enable,高电平警报解除中断使能)
0 – 禁止HLAR中断;
1 – 使能HLAR中断。

4

R/W

0

HLAV_INTEN(High-Level Alarm Valid Interrupt Enable,高电平警报有效中断使能)
0 – 禁止HLAV中断;
1 – 使能HLAV中断。

3:2

-

-

-

1

R/W

0

FIFO_INTEN(FIFO Error Interrupt Enable,FIFO异常中断使能)
0 – 禁止FIFO异常中断;
1 – 使能FIFO异常中断。

0

R/W

0

DRDY_INTEN(Data Ready Interrupt Enable,数据有效中断使能)
0 – 禁止数据有效中断;
1 – 使能数据有效中断。

12.2.7.5. 0x108+0x40*n GPAI_CHnPSI

默认值:0x00005DC0

GPAI 通道采样间隔配置(GPAI Channel N Periodic Sample Interval)

位域

类型

默认值

描述

31:28

-

-

-

27:0

R/W

0x0005DC0

PSI(Periodic Sample Interval,周期性采样间隔)
本字段为0表示连续采样,两次采样循环之间没有Delay。
本字段仅周期采样模式(PSEN==1)下有效。

此字段定义周期性采样的采样间隔,采样间隔为PSI*TPCLK。
举例,假设 PCLK=24MHzPSI = 0x5DC0 = 24000
采样周期 TPSI = 24000/24000000 = 0.001s = 1ms

12.2.7.6. 0x110+0x40*n GPAI_CHnHLAT

默认值:0x00000000

GPAI 高电平报警阈值(Channel N High-Level Alarm Threshold)

位域

类型

默认值

描述

31:28

-

-

-

27:16

R/W

0x000

HLARV(High-Level Alarm Removed Value,高电平报警解除阈值)
本字段定义了高电平报警解除的比较阈值,当采样值从高于HLAVV到低于HLARV,
表示高电平报警解除。
HLAVV必须保证不小于HLARV,(HLAVV-HLARV)就是高电平报警的迟滞值。
本字段仅周期采样模式(PSEN==1)下有效。

15:12

-

-

-

11:0

R/W

0x000

HLAVV(High-Level Alarm Valid Value,高电平报警有效阈值)
本字段定义了高电平报警有效的比较阈值,当采样值从低于HLARV到高于HLAVV,
表示高电平报警有效。
HLAVV必须保证不小于HLARV,(HLAVV-HLARV)就是高电平报警的迟滞值。
本字段仅周期采样模式(PSEN==1)下有效。

12.2.7.7. 0x114+0x40*n GPAI_CHnLLAT

默认值:0x00000000

GPAI 低电平报警阈值(Channel N Low-Level Alarm Threshold)

位域

类型

默认值

描述

31:28

-

-

-

27:16

R/W

0x000

LLARV(Low-Level Alarm Removed Value,低电平报警解除阈值)
本字段定义了低电平报警解除的比较阈值,当采样值从低于LLAVV到高于LLARV,
表示低电平报警解除。
LLAVV必须保证不大于LLARV,(LLARV-LLAVV)就是低电平报警的迟滞值。
本字段仅周期采样模式(PSEN==1)下有效。

15:12

-

-

-

11:0

R/W

0x000

LLAVV(Low-Level Alarm Valid Value,低电平报警有效阈值)
本字段定义了低电平报警有效的比较阈值,当采样值从高于LLARV到低于LLAVV,
表示低电平报警有效。
LLAVV必须保证不大于LLARV,(LLARV-LLAVV)就是低电平报警的回滞值。
本字段仅周期采样模式(PSEN==1)下有效。

12.2.7.8. 0x118+0x40*n GPAI_CHnACR

默认值:0x00000000

GPAI 报警控制(GPAI Alarm Control Register )

位域

类型

默认值

描述

31:7

-

-

-

6

R/W

0

NLD_DIS(Discard Normal-Level Data,丢弃正常电平的采样数据)
在高/低电平报警使能 ((HLA_EN==1) || (LLA_EN==1))情况下,
本字段控制是否丢弃保留正常电平的采样数据,
如果丢弃则意味着这期间的采样数据不会存入FIFO,否则就会仍然存入FIFO。
0 – 保留正常电平采样数据;
1 – 丢弃正常电平采样数据。

5

R/W

0

LLD_DIS(Discard Low-Level Data,丢弃低电平的采样数据)
在低电平报警使能(LLA_EN==1)情况下,本字段控制是否丢弃保留低电平
报警有效之后至低电平报警解除之前的采样数据,
如果丢弃则意味着这期间的采样数据不会存入FIFO,否则就会仍然存入FIFO。
0 – 保留低电平采样数据;
1 – 丢弃低电平采样数据。

4

R/W

0

HLD_DIS(Discard High-Level Data,丢弃高电平的采样数据)
在高电平报警使能(HLA_EN==1)情况下,本字段控制是否丢弃保留高电平
报警有效之后至高电平报警解除之前的采样数据,
如果丢弃则意味着这期间的采样数据不会存入FIFO,否则就会仍然存入FIFO。
0 – 保留高电平采样数据;
1 – 丢弃高电平采样数据。

3:2

-

-

-

1

R/W

0

LLA_EN(Low-Level Alarm Enable,低电平报警使能)
0 – 禁止低电平报警功能;低温警报阈值无效;
1 – 使能低电平报警功能,仅在周期采样模式有效。

0

R/W

0

HLA_EN(High-Level Alarm Enable,高电平报警使能)
0 – 禁止高电平报警功能;高温警报阈值无效;
1 – 使能高电平报警功能,仅在周期采样模式有效。

12.2.7.9. 0x120+0x40*n GPAI_CHnFCR

默认值:0x00000000

GPAI FIFO控制(GPAI Channel N FIFO Control Register)

位域

类型

默认值

描述

31

-

-

-

30:24

RO

0x0

FIFO_DCNT(FIFO Data Count,FIFO有效数据量)
本字段定义了当前FIFO有效数据量,
对于CH0~CH1,0x0~0x40为合法值;
对于CH2~CH7,0x0~0x8为合法值。

23:19

-

-

-

18

R/W1C

0

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

17

R/W1C

0

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

16

-

-

-

15:8

R/W

0x0

FIFO_DRTH(FIFO Data Ready Threshold,FIFO数据有效阈值)
本字段定义了FIFO数据有效的阈值,当FIFO的数据量达到了本阈值后,
就会置位GPAI_CHnINT.DRDY_FLG标志位,
如果同时GPAI_CHnINT.DRDY_INTEN也有效,就会产生中断。

对于CH0~CH1:
0x00表示不设置有效阈值,导致不会产生DRDY_FLG标志;
0x01~0x20表示有效阈值范围,当FIFO数据量达到了对应数值后,就会置位DRDY_FLG标志;
0x21~0x7F为非法配置,效果等同于0x00。

对于CH2~CH7:
0x00表示不设置有效阈值,导致不会产生DRDY_FLG标志;
0x01~0x08表示有效阈值范围,当FIFO数据量达到了对应数值后,就会置位DRDY_FLG标志;
0x09~0x7F为非法配置,效果等同于0x00。

7:1

-

-

-

0

R/WAC

0

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

12.2.7.10. 0x124+0x40*n GPAI_CHnDATA

默认值:0x00000000

GPAI 通道数据(GPAI Channel N Data)

位域

类型

默认值

描述

31:12

-

-

-

11:0

RO

0x000

DATA(Sample Data,采样数据)
FIFO数据读取访问入口。
如果SBC不为0,则本寄存器返回的数据,均为经过算术平均之后的计算值。

12.2.7.11. 0xFFC VERSION

默认值:0x00000100

GPAI 版本寄存器(GPAI Version)

位域

类型

默认值

描述

31:0

RO

0x00000100

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