寄存器描述
0x000 GPAI_MCR
默认值:0x00000000 | GPAI 模块控制 (GPAI Module Control Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:8 | R/W | 0x00 | CHEN 通道使能控制 (Channel Enable) 包含 8 bits,分别对应八个通道的独立使能控制。每个 bit 分别对应一个通道:
每个 bit 位都可通过设置以下值控制对应的通道使能:
|
7:1 | - | - | - |
0 | R/W | 0 | EN 模块使能 (Module Enable)
|
0x004 GPAI_INTR
默认值:0x00000000 | GPAI 中断控制与状态 (GPAI Interrupt Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | - | - | - |
23 | RO | 0 | CH7_FLG 通道 7 事件更新标志 (Channel 7 Flag) 通道 7
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
22 | RO | 0 | CH6_FLG 通道 6 事件更新标志 (Channel 6 Flag) 通道 6
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
21 | RO | 0 | CH5_FLG 通道 5 事件更新标志 (Channel 5 Flag) 通道 5
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
20 | RO | 0 | CH4_FLG 通道 4 事件更新标志 (Channel 4 Flag) 通道 4
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
19 | RO | 0 | CH3_FLG 通道 3 事件更新标志 (Channel 3 Flag) 通道 3
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
18 | RO | 0 | CH2_FLG 通道 2 事件更新标志 (Channel 2 Flag) 通道 2
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
17 | RO | 0 | CH1_FLG 通道 1 事件更新标志 (Channel 1 Flag) 通道 1
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
16 | RO | 0 | CH0_FLG 通道 0 事件更新标志 (Channel 0 Flag) 通道 0
是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
|
15:8 | - | - | - |
7 | R/W | 0 | CH7_INTEN 通道 7 中断使能 (Channel 7 Interrupt Enable)
|
6 | R/W | 0 | CH6_INTEN 通道 6 中断使能 (Channel 6 Interrupt Enable)
|
5 | R/W | 0 | CH5_INTEN 通道 5 中断使能 (Channel 5 Interrupt Enable)
|
4 | R/W | 0 | CH4_INTEN 通道 4 中断使能 (Channel 4 Interrupt Enable)
|
3 | R/W | 0 | CH3_INTEN 通道 3 中断使能 (Channel 3 Interrupt Enable)
|
2 | R/W | 0 | CH2_INTEN 通道 2 中断使能 (Channel 2 Interrupt Enable)
|
1 | R/W | 0 | CH1_INTEN 通道 1 中断使能 (Channel 1 Interrupt Enable)
|
0 | R/W | 0 | CH0_INTEN 通道 0 中断使能 (Channel 0 Interrupt Enable)
|
0x100+0x40*n GPAI_CHnCR
1默认值:0x000n2F00 | GPAI 通道控制 (GPAI Channel N Control Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:26 | - | - | - |
25:24 | R/W | 0x0 | SBC 采样突发次数 (Sample Burst Count) 单点采样(或者周期采样模式中的每点采样)中包含的采样次数。
每次单点采样使能 (SSEN=1) 或者周期采样使能 (PSEN=1) ,GPAI 模块就会连续向 ADC 模块发出 2SBC 个采样命令,对应地 ADC 就会返回 2SBC 个采样数据。2SBC 个采样数据经过简单的算数平均计算(保留整数部分)之后,合并为一个采样数据后,存入 FIFO,并等待软件进行后续处理。 |
23:20 | - | - | - |
19:16 | RO | 0xn | ADC_CHN ADC 通道号 (ADC Channel Number) 显示系统分配的 ADC 通道号,硬件会根据此通道号匹配 ADC 并获取返回的数据,软件驱动不需要使用,仅 debug 使用。n=0~7。 |
15:8 | R/W | 0x2F | ADC_ACQ ADC 捕获时间 (ADC Acquisition Time) 对应 ADC
通道的捕获时间长度。计数值单位为 ADC_CLK 的周期数, |
7:5 | - | - | - |
4 | R/W | 0x0 | ADC_PRI ADC 采样优先级 (ADC Priority) 本次 ADC 采样的优先级控制。
|
3 | - | - | - |
2 | R | 0x0 | CHn_State 通道工作状态 (Channel N State)
|
1 | R/W | 0 | PSEN 周期采样使能 (Periodic Sample Enable) 使能 GPAI
通道周期采样。由软件置位,表示启动相应 GPAI 通道的周期性采样:
注: 不允许同时使能周期采样与单次采样,即 SSEN 与 PSEN
不可以同时有效。 |
0 | R/WAC | 0 | SSEN 单点采样使能 (Single Sample Enable) 使能 GPAI 通道单点采样。由软件置位,表示启动相应通道信号的采样:
注: 尽管本字段描述为单点采样,但此处单点采样实际上会包含多次采样,避免单次采样产生误差。通过多次采样后进行算术平均(保留整数部分),得到一个相对稳定的信号电平值。由硬件向
ADC 接口控制器连续发出多个采样命令,连续发出采样命令的个数由 SBC 设定。例如 SBC 配置为 0x2,则每次启动
SSEN,硬件会连续发出 22 = 4 个采样命令,四个采样命令发出后,硬件自动清零
SSEN。 |
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(低电平警报解除阈值)。
|
22 | R/W1C | 0 | LLAV_FLG 低电平警报有效标志 (Low-Level Alarm Valid Flag) 本字段高电平有效,表示低电平警报有效,即采样后的数据从高于 LLAVR(低电平警报解除阈值)到低于 LLAVV(低电平警报有效阈值)。
|
21 | R/W1C | 0 | HLAR_FLG 高电平警报解除标志 (High-Level Alarm Removed Flag) 本字段高电平有效,表示高电平警报解除,即采样后的数据从高于 HLAVV(高电平警报有效阈值)到低于
HLARV(高电平警报解除阈值)。
|
20 | R/W1C | 0 | HLAV_FLG 高电平警报有效标志 (High-Level Alarm Valid Flag) 本字段高电平有效,表示高电平警报有效,即采样后的数据从低于 HLARV(高电平警报解除阈值)到高于
HLAVV(高电平警报有效阈值)。
|
19:18 | - | - | - |
17 | RO | 0 | FIFO_FLG FIFO 异常标志 (FIFO Error Flag) 本字段高电平有效,表示 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)
|
6 | R/W | 0 | LLAV_INTEN 低电平警报有效中断使能 (Low-Level Alarm Valid Interrupt
Enable)
|
5 | R/W | 0 | HLAR_INTEN (High-Level Alarm Removed Interrupt
Enable,高电平警报解除中断使能)
|
4 | R/W | 0 | HLAV_INTEN (High-Level Alarm Valid Interrupt Enable,高电平警报有效中断使能)
|
3:2 | - | - | - |
1 | R/W | 0 | FIFO_INTEN FIFO 异常中断使能 (FIFO Error Interrupt Enable)
|
0 | R/W | 0 | DRDY_INTEN 数据有效中断使能 (Data Ready
Interrupt Enable)
|
0x108+0x40*n GPAI_CHnPSI
默认值:0x00005DC0 | GPAI 通道采样间隔配置 (GPAI Channel N Periodic Sample Interval) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:28 | - | - | - |
27:0 | R/W | 0x0005DC0 | PSI 周期性采样间隔 (Periodic Sample Interval) 定义周期性采样的采样间隔,仅周期采样模式 (PSEN=1) 下有效。 采样间隔为 PSI*TPCLK,示例如下: 假设 本字段为 0 表示连续采样,两次采样循环之间没有 延时。 |
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) 本字段定义了高电平报警解除的比较阈值,仅周期采样模式 (PSEN=1) 下有效:
|
15:12 | - | - | - |
11:0 | R/W | 0x000 | HLAVV 高电平报警有效阈值 (High-Level Alarm Valid Value) 本字段定义了高电平报警有效的比较阈值,仅周期采样模式 (PSEN=1) 下有效:
|
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) 本字段定义了低电平报警解除的比较阈值,仅周期采样模式 (PSEN=1) 下有效:
|
15:12 | - | - | - |
11:0 | R/W | 0x000 | LLAVV 低电平报警有效阈值 (Low-Level Alarm Valid Value) 本字段定义了低电平报警有效的比较阈值,仅周期采样模式 (PSEN=1) 下有效:
|
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
的情况下,本字段控制是否丢弃保留正常电平的采样数据:
|
5 | R/W | 0 | LLD_DIS 丢弃低电平的采样数据 (Discard Low-Level Data) 在低电平报警使能
(LLA_EN=1) 情况下,本字段控制是否丢弃保留低电平报警有效之后至低电平报警解除之前的采样数据:
|
4 | R/W | 0 | HLD_DIS 丢弃高电平的采样数据 (Discard High-Level Data) 在高电平报警使能
(HLA_EN=1) 情况下,本字段控制是否丢弃保留高电平报警有效之后至高电平报警解除之前的采样数据:
|
3:2 | - | - | - |
1 | R/W | 0 | LLA_EN 低电平报警使能 (Low-Level Alarm Enable)
|
0 | R/W | 0 | HLA_EN 高电平报警使能 (High-Level Alarm Enable)
|
0x120+0x40*n GPAI_CHnFCR
默认值:0x00000000 | GPAI FIFO 控制 (GPAI Channel N FIFO Control Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | - | - | - |
30:24 | RO | 0x0 | FIFO_DCNT FIFO 有效数据量 (FIFO Data Count) 当前 FIFO 有效数据量:
|
23:19 | - | - | - |
18 | R/W1C | 0 | FIFO_UFS FIFO 下溢出状态 (FIFO Underflow Status) 当前 FIFO 下溢出状态,高电平有效。 本字段有效,会导致 GPAI_CHnINT.FIFO_FLG 置位。 本字段由硬件置位,并由软件写 1 清零。 |
17 | R/W1C | 0 | FIFO_OFS FIFO 上溢出状态 (FIFO Overflow Status) 本字段定义了当前 FIFO 上溢出状态,高电平有效。 本字段有效,会导致 GPAI_CHnINT.FIFO_FLG 置位。 本字段由硬件置位,并由软件写 1 清零。 |
16 | - | - | - |
15:8 | R/W | 0x0 | FIFO_DRTH FIFO 数据有效阈值 (FIFO Data Ready Threshold) 当 FIFO 的数据量达到了本阈值后,就会置位 GPAI_CHnINT.DRDY_FLG 标志位,如果同时 GPAI_CHnINT.DRDY_INTEN 也有效,就会产生中断。 |
7:1 | - | - | - |
0 | R/WAC | 0 | FIFO_FLUSH FIFO 清空操作 (FIFO Flush) 由软件置位硬件清零。软件置位启动 FIFO 清空操作,FIFO 清空操作完成后,由硬件清零。 |
0x124+0x40*n GPAI_CHnDATA
默认值:0x00000000 | GPAI 通道数据 (GPAI Channel N Data) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:12 | - | - | - |
11:0 | RO | 0x000 | DATA 采样数据 (Sample Data) FIFO 数据读取访问入口。 如果 SBC 不为 0,则本寄存器返回的数据,均为经过算术平均(保留整数部分)之后的计算值。 |
0xFFC VERSION
默认值:0x00000100 | GPAI 版本寄存器(GPAI Version) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | RO | 0x00000100 | Version 模块版本号 (Module Version) 采用 BCD 码显示,V1.0 |