Edit online

寄存器描述

12 Apr 2024
Read time: 12 minute(s)

0x000 GPAI_MCR

默认值:0x00000000 GPAI 模块控制 (GPAI Module Control Register)
位域 类型 默认值 描述
31:16 - - -
15:8 R/W 0x00 CHEN

通道使能控制 (Channel Enable)

包含 8 bits,分别对应八个通道的独立使能控制。每个 bit 分别对应一个通道:
  • Bit8:通道 0
  • Bit9:通道 1
  • Bit10:通道 2
  • Bit11:通道 3
  • Bit12:通道 4
  • Bit13:通道 5
  • Bit14:通道 6
  • Bit15:通道 7
每个 bit 位都可通过设置以下值控制对应的通道使能:
  • 0:禁止通道
  • 1:使能通道
7:1 - - -
0 R/W 0 EN

模块使能 (Module Enable)

  • 0:本模块被禁止,本模块停止工作。
  • 1:本模块被使能。

0x004 GPAI_INTR

默认值:0x00000000 GPAI 中断控制与状态 (GPAI Interrupt Register)
位域 类型 默认值 描述
31:24 - - -
23 RO 0 CH7_FLG

通道 7 事件更新标志 (Channel 7 Flag)

通道 7 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
22 RO 0 CH6_FLG

通道 6 事件更新标志 (Channel 6 Flag)

通道 6 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
21 RO 0 CH5_FLG

通道 5 事件更新标志 (Channel 5 Flag)

通道 5 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
20 RO 0 CH4_FLG

通道 4 事件更新标志 (Channel 4 Flag)

通道 4 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
19 RO 0 CH3_FLG

通道 3 事件更新标志 (Channel 3 Flag)

通道 3 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
18 RO 0 CH2_FLG

通道 2 事件更新标志 (Channel 2 Flag)

通道 2 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
17 RO 0 CH1_FLG

通道 1 事件更新标志 (Channel 1 Flag)

通道 1 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
16 RO 0 CH0_FLG

通道 0 事件更新标志 (Channel 0 Flag)

通道 0 是否有新的事件发生,例如高/低电平报警事件,数据有效事件,FIFO 错误事件。
  • 0:无新的待处理事件。
  • 1:有新的待处理事件。
15:8 - - -
7 R/W 0 CH7_INTEN
通道 7 中断使能 (Channel 7 Interrupt Enable)
  • 0:禁止中断
  • 1:使能中断
6 R/W 0 CH6_INTEN

通道 6 中断使能 (Channel 6 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断
5 R/W 0 CH5_INTEN
通道 5 中断使能 (Channel 5 Interrupt Enable)
  • 0:禁止中断
  • 1:使能中断
4 R/W 0 CH4_INTEN

通道 4 中断使能 (Channel 4 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断
3 R/W 0 CH3_INTEN

通道 3 中断使能 (Channel 3 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断
2 R/W 0 CH2_INTEN

通道 2 中断使能 (Channel 2 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断
1 R/W 0 CH1_INTEN

通道 1 中断使能 (Channel 1 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断
0 R/W 0 CH0_INTEN

通道 0 中断使能 (Channel 0 Interrupt Enable)

  • 0:禁止中断
  • 1:使能中断

0x100+0x40*n GPAI_CHnCR

1
默认值:0x000n2F00 GPAI 通道控制 (GPAI Channel N Control Register)
位域 类型 默认值 描述
31:26 - - -
25:24 R/W 0x0 SBC

采样突发次数 (Sample Burst Count)

单点采样(或者周期采样模式中的每点采样)中包含的采样次数。
  • 每点采样的突发次数 = 2SBC
  • SBC = 0~3 分别对应突发次数 1/ 2/ 4/ 8。

每次单点采样使能 (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 的周期数,TADC_ACQ = (ADC_ACQ+1) *TADC_CLK。假设 ADC_CLK=24MHzADC_ACQ=0x2FTADC_ACQ = (47+1)*41.67ns = 2us

7:5 - - -
4 R/W 0x0 ADC_PRI

ADC 采样优先级 (ADC Priority)

本次 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,硬件会连续发出 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(低电平警报解除阈值)。
  • 由软件写 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 异常标志 (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)
  • 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 异常中断使能 (FIFO Error Interrupt Enable)
  • 0:禁止 FIFO 异常中断
  • 1:使能 FIFO 异常中断
0 R/W 0 DRDY_INTEN
数据有效中断使能 (Data Ready Interrupt Enable)
  • 0:禁止数据有效中断
  • 1:使能数据有效中断

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,示例如下:

假设 PCLK = 24 MHzPSI = 0x5DC0 = 24000,采样周期 TPSI = 24000/24000000 = 0.001 s = 1 ms

本字段为 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) 下有效:
  • 当采样值从高于 HLAVV 到低于 HLARV,表示高电平报警解除。
  • HLAVV 必须保证不小于 HLARV,(HLAVV-HLARV) 就是高电平报警的迟滞值。
15:12 - - -
11:0 R/W 0x000 HLAVV

高电平报警有效阈值 (High-Level Alarm Valid Value)

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

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) 下有效:
  • 当采样值从低于 LLAVV 到高于 LLARV,表示低电平报警解除。
  • LLAVV 必须保证不大于 LLARV,(LLARV-LLAVV) 就是低电平报警的迟滞值。
15:12 - - -
11:0 R/W 0x000 LLAVV

低电平报警有效阈值 (Low-Level Alarm Valid Value)

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

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 的情况下,本字段控制是否丢弃保留正常电平的采样数据:
  • 0:保留正常电平采样数据,存入 FIFO。
  • 1:丢弃正常电平采样数据,不会存入 FIFO。
5 R/W 0 LLD_DIS

丢弃低电平的采样数据 (Discard Low-Level Data)

在低电平报警使能 (LLA_EN=1) 情况下,本字段控制是否丢弃保留低电平报警有效之后至低电平报警解除之前的采样数据:
  • 0:保留低电平采样数据,存入 FIFO。
  • 1:丢弃低电平采样数据,不会存入 FIFO。
4 R/W 0 HLD_DIS

丢弃高电平的采样数据 (Discard High-Level Data)

在高电平报警使能 (HLA_EN=1) 情况下,本字段控制是否丢弃保留高电平报警有效之后至高电平报警解除之前的采样数据:
  • 0:保留高电平采样数据,存入 FIFO。
  • 1:丢弃高电平采样数据,不会存入 FIFO。
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:使能高电平报警功能,仅在周期采样模式有效。

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 有效数据量:
  • 对于 CH0~CH1:0x0 ~ 0x20 为合法值。
  • 对于 CH2~CH7:0x0 ~ 0x8 为合法值。
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 也有效,就会产生中断。
  • 对于 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 清空操作 (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

1 n=0~7 为 GPAI 通道号。