RCPU 子系统包括:
256 kB SRAM
DMA
面向传感器集线器子系统(Sensor-Hub)的各类 APB 外设(如 I2C、SSP、PWM 等)
RCPU 子系统的电源域独立于其他模块,因此即使进入低功耗模式,音频子系统也可以继续工作。
1× I2C 控制器 :支持 100 kHz(标准)、400 kHz(快速)、3.4 MHz(高速)
1 组定时器 :包含 3 个计数器,每个计数器具有 3 个匹配值
1× SPI 控制器 :数据率最高 24 Mbps
2× UART 控制器 :其中 1 个 UART 支持自动流控
10× PWM 控制器
高级时钟门控:包括针对外设的软件门控,以及针对总线、互联结构与桥的自动时钟门控
音频子系统可运行在 D0(正常上电)模式,以及 D1、D2(低功耗)模式
音频子系统的四种电源模式:
ACTIVE
CLK_GATING
PLL_OFF
PWR_OFF
备注:基地址 = 0xC0A10000
16.3.1.1 AUDIO_PMU_VOTE 寄存器(偏移 0x18)
位段
字段
类型
复位
描述
31:4
保留
RO
0
预留
3
音频 PMU 进入 PWR_OFF 的投票
RW
0x1
1:允许进入关断(PWR_OFF);0:不允许
2
音频 PMU 进入 PLL_OFF 的投票
RW
0x1
1:允许进入 PLL 关闭;0:不允许
1
音频 PMU 进入低功耗的投票
RW
0x1
1:允许进入低功耗;0:不允许
0
保留
RO
0
预留
16.3.1.2 AUDIO_VOTE_FOR_MAIN_PMU 寄存器(偏移 0x20)
位段
字段
类型
复位
描述
31:7
保留
RO
0
预留
6
音频对 AP AXI 时钟关闭的投票
RW
0x1
1:允许 AP AXI 时钟关闭;0:不允许
5
音频对 DDR 关断的投票
RW
0x1
1:允许 DDR 关断;0:不允许
4
保留
RO
0
预留
3
音频对 VCTCXO 关闭的投票
RW
0x1
1:允许 VCTCXO 关闭;0:不允许
2
音频对主 PMU 睡眠态的投票
RW
0x1
1:允许主 PMU 进入睡眠;0:不允许
1
音频对 AP 待机态的投票
RW
0x1
1:允许 AP 进入待机;0:不允许
0
保留
RO
0
预留
16.3.1.3 AUDIO_WAKEUP_EN 寄存器(偏移 0x28)
位段
字段
类型
复位
描述
31:8
保留
RO
0
预留
7
保留
RO
0
预留
6
保留
RO
0
预留
5
保留
RO
0
预留
4
timer_wkup_en
RW
0x0
音频定时器唤醒使能;1:使能;0:禁用
3
ap_wkup_en
RW
0x0
AP 唤醒使能;1:使能;0:禁用
2
保留
RO
0
预留
1
ipc_ap_wkup_en
RW
0x0
音频到 AP 的 IPC 唤醒使能;1:使能;0:禁用
0
shub_int_wkup_en
RW
0x0
传感器集线器唤醒使能;1:使能;0:禁用
16.3.1.4 AON_PER_CLK_RST_CTRL 寄存器(偏移 0x2C)
位段
字段
类型
复位
描述
31:2
保留
RO
0
预留
1
ipc2ap 时钟使能
RW
0x0
1:使能;0:禁用
0
aipc_ap_rstn
RW
0x0
1:释放复位;0:复位
16.3.1.5 MCU_EXECUTION_CTRL 寄存器(偏移 0x30)
位段
字段
类型
复位
描述
31:1
保留
RO
0
预留
0
mcu_execution_ctrl
RW
0x0
1:MCU 运行;0:MCU 暂停
16.3.1.6 AUDIO_BUS_CLK_DIV 寄存器(偏移 0x38)
位段
字段
类型
复位
描述
31:7
保留
RO
0
预留
6:4
apb_clk_div
RW
0x3
0:保留;1:÷2;2:÷4;3:÷8;4:÷16;5/6/7:保留
3:2
保留
RO
0
预留
1:0
axi_clk_div
RW
0x1
0:÷1;1:÷2;2:÷4;3:÷8
16.3.1.7 SHUB_GPO 寄存器(偏移 0x3C)
位段
字段
类型
复位
描述
31:8
保留
RO
0
预留
7:0
shub_gpo
RW
0x0
传感器集线器 GPIO 输出值
16.3.1.8 AUDIO_CTRL 寄存器(偏移 0xE0)
位段
字段
类型
复位
描述
31
音频 ADC 测试中断状态
RW
0x0
测试完成:1
30
保留
RO
0
预留
29
挂机键(hook key)中断清除
RW
0x0
1:清除;状态见 AUDIO_STATUS[21:14]
28:24
挂机键去抖时钟分频
RW
0xF
从 32 kHz 分频得到
23
Class G 右声道 OCP 中断清除
RW
0x0
1:清除;状态见 AUDIO_STATUS[13]
22
Class G 左声道 OCP 中断清除
RW
0x0
1:清除;状态见 AUDIO_STATUS[12]
21
Class AB OCP 中断清除
RW
0x0
1:清除;状态见 AUDIO_STATUS[11]
20:15
保留
RO
0
预留
14
classge_shortpwr 中断使能
RW
0x0
0:禁用;1:使能
13
classge_r_shortpwr_clr
RW
0x0
1:清除右声道短路功耗中断
12
classge_l_shortpwr_clr
RW
0x0
1:清除左声道短路功耗中断
11:4
保留
RO
0
预留
3
插拔唤醒中断清除
RW
0x0
1:清除;状态见 AUDIO_STATUS[10:9]
2
自动 OCP 复位使能
RW
0x1
对 Class G/AB 自动产生 ocp_rst:1 使能
1
模拟测试模式中断屏蔽
RW
0x0
测试完成时是否产生中断;1:使能
0
模拟插入极性
RW
0x0
0:高电平表示插入;1:低电平表示插入
16.3.1.9 AUDIO_CTRL2 寄存器(偏移 0xE4)
位段
字段
类型
复位
描述
31:28
保留
RO
0
预留
27:19
Class G 的 OCP 持续长度
RW
0xff
以 32 kHz 周期计数,达到后自动产生 ocp_rst
18:14
Class G 触发中断前的 OCP 次数
RW
0x1f
OCP 发生的次数阈值
13:5
RCV 的 OCP 持续长度
RW
0x7
以 32 kHz 周期计数,达到后自动产生 ocp_rst
4:0
RCV 触发中断前的 OCP 次数
RW
0x2
OCP 发生的次数阈值
16.3.1.10 AUD_DET_CLK_DIV 寄存器(偏移 0xE8)
位段
字段
类型
复位
描述
31:28
保留
RO
0
预留
27:16
hok_deb_div
RW
0xFF
挂机键去抖分频
15:12
保留
RO
0
预留
11:0
plg_deb_div
RW
0xFF
插拔去抖分频
16.3.1.11 AUD_INT_MSK 寄存器(偏移 0xF0)
位段
字段
类型
复位
描述
31:3
保留
RO
0
预留
2
aud_ocpgr_int / aud_ocpgl_int / aud_ocpab_int 的中断屏蔽
RW
0x0
0:使能中断;1:屏蔽中断
1
插入/拔出中断屏蔽
RW
0x0
0:使能;1:屏蔽
0
hook_key_int_msk
RW
0x0
0:使能;1:屏蔽
16.3.2 AUD_MCUSYSCTRL 寄存器
备注:基地址 = 0xC0880000
16.3.2.1 SHUBSSP0_CLK_RES_CTRL 寄存器(偏移 0x28)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
shubssp0 时钟分频
RW
0x0
fclk = source_clk / (shubssp0_fclk_div + 1)
7:6
保留
RO
0
预留
5:4
shubssp0 fclk 选择
RW
0x0
00:62 MHz;01:24.576 MHz;10:13 MHz;11:3.25 MHz
3
保留
RO
0
预留
2
shubssp0 pclk 使能
RW
0x0
0:禁用;1:使能
1
shubssp0 fclk 使能
RW
0x0
0:禁用;1:使能
0
shubssp0 复位使能
RW
0x0
0:禁用;1:使能
16.3.2.2 SHUBI2C0_CLK_RES_CTRL 寄存器(偏移 0x30)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
shubi2c0 时钟分频
RW
0x0
fclk = source_clk / (shubi2c0_fclk_div + 1)
7:6
保留
RO
0
预留
5:4
shubi2c0 fclk 选择
RW
0x0
00:62 MHz;01:26 MHz;10:13 MHz;11:3.25 MHz
3
保留
RO
0
预留
2
shubi2c0 pclk 使能
RW
0x0
0:禁用;1:使能
1
shubi2c0 fclk 使能
RW
0x0
0:禁用;1:使能
0
shubi2c0 复位使能
RW
0x0
0:禁用;1:使能
16.3.2.3 UART1_CLK_RES_CTRL 寄存器(偏移 0x3C)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
uart 时钟分频
RW
0x0
fclk = source_clk / (uart_fclk_div + 1)
7:6
保留
RO
0
预留
5:4
uart fclk 选择
RW
0x0
00:62 MHz;01:26 MHz;10:13 MHz;11:3.25 MHz
3
保留
RO
0
预留
2
uart pclk 使能
RW
0x0
0:禁用;1:使能
1
uart fclk 使能
RW
0x0
0:禁用;1:使能
0
uart 复位使能
RW
0x0
0:禁用;1:使能
16.3.2.4 R_CAN_CLK_RES_CTRL 寄存器(偏移 0x48)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
CAN 时钟分频
RW
0x0
fclk = source_clk / (shubi2c1_fclk_div + 1)
7:6
保留
RO
0
预留
5:4
CAN fclk 选择
RW
0x0
00:62 MHz;01:26 MHz;10:13 MHz;11:3.25 MHz
3
保留
RO
0
预留
2
CAN pclk 使能
RW
0x0
0:禁用;1:使能
1
CAN fclk 使能
RW
0x0
0:禁用;1:使能
0
CAN 复位使能
RW
0x0
0:禁用;1:使能
16.3.2.5 R_R_IR_CLK_RES_CTRL 寄存器(偏移 0x4C)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
保留
RO
0
预留
7:6
保留
RO
0
预留
5:4
保留
RO
0
预留
3
保留
RO
0
预留
2
R_IR pclk 使能
RW
0x0
0:禁用;1:使能
1
保留
RO
0
预留
0
R_IR 复位使能
RW
0x0
0:禁用;1:使能
16.3.2.6 DDR_REMAP_BASE 寄存器(偏移 0xC0)
位段
字段
类型
复位
描述
31:0
ddr_remap_base
RW
0x0
STAR 内核访问 DDR 的基地址。内存窗口 0x3000_0000–0x3FFF_FFFF 映射到 ddr_remap_base + 0x0 至 ddr_remap_base + 0x0FFF_FFFF。
16.3.2.7 UART0_CLK_RES_CTRL 寄存器(偏移 0xD8)
位段
字段
类型
复位
描述
31:19
保留
RO
0
预留
18:8
uart 时钟分频
RW
0x0
fclk = source_clk / (uart_fclk_div + 1)
7:6
保留
RO
0
预留
5:4
uart fclk 选择
RW
0x0
00:62 MHz;01:26 MHz;10:13 MHz;11:3.25 MHz
3
保留
RO
0
预留
2
uart pclk 使能
RW
0x0
0:禁用;1:使能
1
uart fclk 使能
RW
0x0
0:禁用;1:使能
0
uart 复位使能
RW
0x0
0:禁用;1:使能
备注:基地址 = 0xC0882000
16.3.3.1 AUDIO_CODEC_TX_RX_CLK_CTRL 寄存器(偏移 0x14)
位段
字段
类型
复位
描述
31:18
保留
RO
0
预留
17:16
sspa_func_clk_source_sel
RW
0x0
0:SSPA_FCLK_SRC=245.76 MHz;1:SSPA_FCLK_SRC=24.576 MHz
15
保留
RO
0
预留
14:4
sspa_func_clk_div
RW
0x9f
SSPA_FCLK = SSPA_FCLK_SRC / (SSPA_FCLK_DIV + 1)
3
保留
RO
0
预留
2
sspa_func_clk_en
RW
0x0
0:门控;1:打开
1
tx_rx_bus_clk_en
RW
0x0
0:门控;1:打开
0
tx_rx_sw_rstn
RW
0x0
0:复位;1:释放复位
16.3.3.2 AUDIO_DFE_CLK_CTRL 寄存器(偏移 0x1C)
位段
字段
类型
复位
描述
31:6
保留
RO
0
预留
5
dfe_sw_reset
RW
0x0
0:复位;1:释放复位
4
dfe_func_clk_enable
RW
0x0
0:禁用;1:使能
3
dac_sw_reset
RW
0x0
0:复位;1:释放复位
2
dac_clk_inv_en
RW
0x0
0:使用原始时钟;1:使用反相信号
1
adc_sw_reset
RW
0x0
0:复位;1:释放复位
0
adc_clk_inv_en
RW
0x0
0:使用原始时钟;1:使用反相信号
16.3.3.3 AUDIO_I2S1_TX_RX_CLK_CTRL 寄存器(偏移 0x40)
位段
字段
类型
复位
描述
31:18
保留
RO
0
预留
17:16
sspa_func_clk_source_sel
RW
0x0
0:245.76 MHz;1:24.576 MHz
15
保留
RO
0
预留
14:4
sspa_func_clk_div
RW
0x9f
SSPA_FCLK = SSPA_FCLK_SRC / (SSPA_FCLK_DIV + 1)
3
保留
RO
0
预留
2
sspa_func_clk_en
RW
0x0
0:门控;1:打开
1
tx_rx_bus_clk_en
RW
0x0
0:门控;1:打开
0
tx_rx_sw_rstn
RW
0x0
0:复位;1:释放复位
16.3.3.4 AUDIO_HDMI_CLK_CTRL 寄存器(偏移 0x44)
位段
字段
类型
复位
描述
31:18
保留
RO
0
预留
17:16
sspa_func_clk_source_sel
RW
0x0
0:245.76 MHz;1:24.576 MHz
15
保留
RO
0
预留
14:4
sspa_func_clk_div
RW
0x9f
SSPA_FCLK = SSPA_FCLK_SRC / (SSPA_FCLK_DIV + 1)
3
保留
RO
0
预留
2
sspa_func_clk_en
RW
0x0
0:门控;1:打开
1
tx_rx_bus_clk_en
RW
0x0
0:门控;1:打开
0
tx_rx_sw_rstn
RW
0x0
0:复位;1:释放复位
16.3.3.5 AUDIO_I2S0_TX_RX_CLK_CTRL 寄存器(偏移 0x60)
位段
字段
类型
复位
描述
31:18
保留
RO
0
预留
17:16
sspa_func_clk_source_sel
RW
0x0
0:245.76 MHz;1:24.576 MHz
15
保留
RO
0
预留
14:4
sspa_func_clk_div
RW
0x9f
SSPA_FCLK = SSPA_FCLK_SRC / (SSPA_FCLK_DIV + 1)
3
保留
RO
0
预留
2
sspa_func_clk_en
RW
0x0
0:门控;1:打开
1
tx_rx_bus_clk_en
RW
0x0
0:门控;1:打开
0
tx_rx_sw_rstn
RW
0x0
0:复位;1:释放复位
备注:基地址 = 0xC0884000
16.3.4.1 DMA_DCR 寄存器(偏移 0x00)
位段
字段
类型
复位
描述
31:3
保留
RO
0
预留
2
DMA 访问模式
RW
0x0
0:特权访问;1:用户访问
1
DMA 软复位
W1C
0x0
写 1 产生 3 周期复位脉冲
0
DMA 使能
RW
0x0
0:禁用;1:使能
16.3.4.2 DMA_SR 寄存器(偏移 0x04)
各通道中断挂起位(写 1 清除,W1C)。
位段
字段
类型
复位
描述
31:16
保留
RO
0
预留
15
CH15 Int pending
W1C
0x0
1:有中断,写 1 清除
14
CH14 Int pending
W1C
0x0
1:有中断,写 1 清除
13
CH13 Int pending
W1C
0x0
1:有中断,写 1 清除
12
CH12 Int pending
W1C
0x0
1:有中断,写 1 清除
11
CH11 Int pending
W1C
0x0
1:有中断,写 1 清除
10
CH10 Int pending
W1C
0x0
1:有中断,写 1 清除
9
CH9 Int pending
W1C
0x0
1:有中断,写 1 清除
8
CH8 Int pending
W1C
0x0
1:有中断,写 1 清除
7
CH7 Int pending
W1C
0x0
1:有中断,写 1 清除
6
CH6 Int pending
W1C
0x0
1:有中断,写 1 清除
5
CH5 Int pending
W1C
0x0
1:有中断,写 1 清除
4
CH4 Int pending
W1C
0x0
1:有中断,写 1 清除
3
CH3 Int pending
W1C
0x0
1:有中断,写 1 清除
2
CH2 Int pending
W1C
0x0
1:有中断,写 1 清除
1
CH1 Int pending
W1C
0x0
1:有中断,写 1 清除
0
CH0 Int pending
W1C
0x0
1:有中断,写 1 清除
16.3.4.3 DMA_DIMR 寄存器(偏移 0x08)
位段
字段
类型
复位
描述
31:16
保留
RO
0
预留
15:0
通道 n 中断屏蔽
RW
0xFFFF
通道 15~0:0 开启中断;1 屏蔽中断
16.3.4.4 DMA_SARN 寄存器(偏移 0x080 + 0x40×n)
位段
字段
类型
复位
描述
31:0
源地址
RW
0x0
DMA 传输读取的源地址。不支持非对齐访问 :32 位传输忽略地址低 2 位;8 位传输精确按地址开始。软件需确保对齐。
16.3.4.5 DMA_DARN 寄存器(偏移 0x084 + 0x40×n)
位段
字段
类型
复位
描述
31:0
目的地址
RW
0x0
DMA 写入的目的地址。不支持非对齐访问 :32 位传输忽略地址低 2 位;8 位传输精确按地址开始。软件需确保对齐。
16.3.4.6 DMA_CNTRN 寄存器(偏移 0x088 + 0x40×n)
位段
字段
类型
复位
描述
31:24
保留
RO
0
预留
23:0
计数(Count)
RW
0x0
本次 DMA 传输的字节数。
16.3.4.7 DMA_CCRN 寄存器(偏移 0x08C + 0x40×n)
位段
字段
类型
复位
描述
31:14
保留
RO
0
预留
13:12
目的模式
RW
0x0
0x0:内存;0x2:FIFO;0x1/0x3:保留
11:10
源模式
RW
0x0
0x0:内存;0x2:FIFO;0x1/0x3:保留
9:8
保留
RO
0
预留
7:6
目的数据宽度
RW
0x0
00:32 位;01:8 位;10:16 位;11:保留
5:4
源数据宽度
RW
0x0
00:32 位;01:8 位;10:16 位;11:保留
3
请求使能(REN)
RW
0x0
1:由外设 dma_req 触发突发;0:由 CEN 触发
2:1
保留
RO
0
预留
0
通道使能(CEN)
RW
0x0
1:使能;0:禁用。注意 :在 AHB 突发中途清 0 会中止突发。
16.3.4.8 DMA_RSSRN 寄存器(偏移 0x090 + 0x40×n)
位段
字段
类型
复位
描述
31:6
保留
RO
0
预留
5:0
请求源选择
RW
0x0
选择 64 路 dma_req 中的 1 路:000000 表示 dma_req[0],…,111111 表示 dma_req[63]。
16.3.4.9 DMA_BLRN 寄存器(偏移 0x094 + 0x40×n)
位段
字段
类型
复位
描述
31:6
保留
RO
0
预留
5:0
突发长度
RW
0x0
为一次 DMA 突发传输的字节数:000001=1 字节读+1 字节写,…,111111=63 字节读+63 字节写;000000=64/64。
16.3.4.10 DMA_TRSF_CNT 寄存器(偏移 0x09C + 0x40×n)
位段
字段
类型
复位
描述
31:24
保留
RO
0
预留
23:0
TRSF_CNT
RO
0x0
已传输的字节数(只读统计)。
16.3.4.11 DMA_BTYPE 寄存器(偏移 0x0A0 + 0x40×n)
位段
字段
类型
复位
描述
31:2
保留
RO
0
预留
1:0
突发类型
RW
0x0
0x0:INCR;0x2:INCR4;0x3:INCR8;0x4:INCR16
备注:PWMn(n = 1…20)基地址为 0xD401A000 ,步长 0x400 。
16.3.5.1 PWM_CRX 寄存器(偏移 0x0 + (n-1)×0x400)
PWM 控制寄存器。用于配置 PWM 模块的行为,包括:
关断响应方式
时钟分频:通过调整输入时钟频率来确定缩放后的计数器时钟频率
位段
字段
类型
复位
描述
31:9
保留
RO
0x0
预留
8
PWM_OUTCNTen
RW
0x0
PWM 输出计数器寄存器使能;0:禁用;1:使能
7
保留
RO
0
预留
6
PWM 关断模式
RW
0x0
0:优雅关断(SoC 停钟时渐停);1:立即关断(SoC 停钟时立刻停止)
5:0
Prescale
RW
0x0
缩放后计数时钟频率:Freq = PSCLK_PWM / (PRESCALE + 1)
16.3.5.2 PWM_DCR 寄存器(偏移 0x4 + (n-1)×0x400)
PWM 占空比寄存器。配置 PWM_OUT 的占空比。
位段
字段
类型
复位
描述
31:11
保留
RO
0x0
预留
10
全占空比
RW
0x0
0:由“PWM_OUT 占空比”字段决定;1:输出持续为高
9:0
PWM_OUT 占空比
RW
0x0
高电平时间 = (PRESCALE + 1) × (1 / 12.8 MHz)。当“全占空比”=1 时本字段无效。
16.3.5.3 PWM_PCR 寄存器(偏移 0x8 + (n-1)×0x400)
PWM 周期控制寄存器。配置 PWM_OUT 的周期时间;当写 0 时,PWM_OUT 将保持为高。
位段
字段
类型
复位
描述
31:10
保留
RO
0x0
预留
9:0
周期值
RW
0x4
PWM 周期 = (Period Value + 1 ) × (1 / 缩放后时钟频率)。写 0 会导致 PWM_OUT 持续为高。
16.3.5.4 PWM_OUTCNT 寄存器(偏移 0x10 + (n-1)×0x400)
PWM 输出计数器寄存器。
位段
字段
类型
复位
描述
31:16
保留
RO
0x0
预留
15:0
计数器值
RW
0x0
指定 PWM 输出脉冲数。