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=24MHz , ADC_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=24MHz , PSI = 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
|