功能描述
PLL
模拟电路 PLL 用于产生时钟供给整个芯片。
名称 |
用途 |
典型频率 |
展频 |
|---|---|---|---|
PLL_INT0 |
CPU |
480 MHz |
不支持 |
PLL_INT1 |
DE/ GE/ VE/ UART/ DVP/ PWMCS/ ADCIM/ XPWM |
1200 MHz |
不支持 |
PLL_FRA0 |
XSPI/ SPI/ SDMC |
396 MHz |
展频 |
|
PLL_FRA1 |
AUDIO/ I2S |
396 MHz |
展频 |
PLL_FRA2 |
LCD/ DSI |
- |
展频 |
PLL 内部结构如下图所示, PLL 频率计算公式为:PLL_OUT = 24 MHz × (N + 1 + F÷0x1FFFF)/(P+1)/(M+1)。其中,F 为 FRA_IN 小数分频系数,当不使用小数分频时,F=0,频率计算公式简化为:PLL_OUT = 24 MHz × (N + 1)/(P + 1) ÷(M+1)
PLL 配置流程
- PLL 输出配置旁路为 24 MHz, PLL_FRAn_GEN.PLL_OUT_MUX = 0,选择为 24M 时钟
- PLL 电路关闭, PLL_FRAn_GEN.PLL_EN = 0
- PLL 频率系数配置, PLL_FRAn_GEN.FACTOR_P,PLL_FRAn_GEN.FACTOR_N,PLL_FRAn_GEN.FACTOR_M,PLL_FRAn_GEN.FACTOR_M_EN
- PLL 展频/小数分频配置, PLL_FRAn_CFG PLL_FRAn_SDM
- PLL 电路打开, PLL_FRAn_GEN.PLL_EN = 1,延迟 200 us
- PLL 输出使能, PLL_FRAn_GEN.PLL_OUT_EN = 1
- PLL 输出配置切换为高频时钟, PLL_FRAn_GEN.PLL_OUT_MUX = 1
展频配置
- 展频幅度:寄存器为 PLL_FRAn_SDM.SDM_BOT,对应幅度为 24 MHz / (P + 1) × (0x1FFFF − SDM_BOT) ÷ 0x1FFFF
- 展频频率:寄存器为 PLL_FRAn_SDM.SDM_FREQ,建议设置为 3 (33 KHz)
- 展频模式:寄存器为 PLL_FRAn_SDM.SDM_MODE,建议设置为 2 (三角波)
- 根据展频幅度需求,求得 SDM_BOT = 0x1FFFF − SDM_AMP*0x1FFFF × (P+1) / 24 MHz
- 根据展频频率需求,求得 STEP_NUM = 24 MHz ÷ (P + 1) ÷ (SDM_FREQ ÷ 2) = 24000000 ÷ (P+1) ÷ (33000/2)
- 根据展频幅度和展频步数,求得 SDM_STEP = (0x1FFFF− SDM_BOT) ÷ STEP_NUM
- PLL_FRAn_SDM.SDM_STEP 设置值需要和展频幅度和展频频率匹配,以产生正常的展频波形
- 当 P=0 时,最大展频幅度为 24 MHz,如果 N=32,则 PLL 频率为 792 MHz,展频深度为 24/792 ≈ 3.0%
- 当 P=1 时,最大展频幅度为 12 MHz,如果 N=65,则 PLL 频率为 792 MHz,展频深度为 12/792 ≈ 1.5%
模块时钟
|
模块名称 |
总线时钟 |
模块时钟源 |
除频器 |
模块时钟极限频率 |
备注 |
|---|---|---|---|---|---|
|
E907 CORE |
- |
PLL_INT0 |
1~16 |
480 MHz |
PLL_INT0 480 MHz |
|
E907 CLIC |
- |
PLL_INT0÷2 |
- |
240 MHz |
PLL_INT0 480 MHz |
|
E907 CLINT |
- |
PLL_INT0÷2 |
- |
240 MHz |
PLL_INT0 480 MHz |
|
E907 DM |
- |
CLK_24M |
- |
24 MHz |
- |
|
AXI |
AXI |
CPU |
2 |
240 MHz |
CPU 480 MHz |
|
AHB0/1 |
AHB0/1 |
CPU |
2 |
240 MHz |
CPU 480 MHz |
|
APB0 |
APB0 |
AHB |
2 |
120 MHz |
AHB 480 MHz |
|
APB1 |
APB1 |
CLK_24M |
- |
24 MHz |
- |
|
BROM |
AXI |
- |
- |
- |
- |
|
SRAM |
AXI |
- |
- |
- |
- |
|
AHB Matrix |
AHB |
- |
- |
- |
- |
|
DMA |
AHB0 |
- |
- |
- |
- |
|
DCE |
AHB0 |
- |
- |
- |
- |
|
USB DEV |
AHB0 |
- |
- |
- |
- |
|
USB HOST |
AHB0 |
- |
- |
- |
- |
|
USB PHY |
- |
CLK_24M |
- |
- |
- |
|
CAN_FD |
AHB0 |
PLL_INT1 |
1~64 |
80 MHz |
PLL_INT1 1200 MHz |
|
XSPI |
AHB0 |
PLL_FRA0 |
1~16 |
400 MHz |
PLL _FRA0 400MHz |
|
SPI0 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI1 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI2 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI3 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI4 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI5 |
AHB0 |
PLL_FRA0 |
1~16 |
100 MHz |
PLL _FRA0 400MHz |
|
SPI_ENC |
AHB0 |
- |
- |
240 MHz |
- |
|
SDMC0 |
AHB0 |
PLL_FRA0 |
1~16 |
200 MHz |
PLL _FRA0 400MHz |
|
SDMC1 |
AHB0 |
PLL_FRA0 |
1~16 |
200 MHz |
PLL _FRA0 400MHz |
|
AHBCFG |
AHB0 |
- |
- |
240 MHz |
- |
|
GPIO |
AHB0 |
- |
- |
240 MHz |
- |
|
PWMCS |
AHB1 |
- |
- |
240 MHz |
- |
|
ADCIM |
AHB1 |
PLL_INT1 |
1~64 |
100 MHz |
PLL _INT1 1200MHz |
|
GPAI |
AHB1 |
- |
- |
240 MHz |
- |
|
THS |
AHB1 |
- |
- |
240 MHz |
- |
|
RTP |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM0 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM1 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM2 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM3 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM4 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM5 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM6 |
AHB1 |
- |
- |
240 MHz |
- |
|
XPWM7 |
AHB1 |
- |
- |
240 MHz |
- |
|
SYSCFG |
APB0 |
CLK_24M |
- |
24 MHz |
- |
|
CMU |
APB0 |
- |
- |
- |
- |
|
AXICFG |
APB0 |
- |
- |
- |
- |
|
MTOP |
APB0 |
- |
- |
- |
- |
|
I2S |
APB0 |
PLL_FRA1 |
1~64 |
24.75 MHz |
PLL_FRA1 396 MHz |
|
AUDIO |
APB0 |
PLL_FRA1 |
1~64 |
24.75 MHz |
PLL_FRA1 396 MHz |
|
UART0 |
APB0 |
PLL_INT1 |
1~64 |
100 MHz |
PLL_INT1 1200 MHz |
|
UART1 |
APB0 |
PLL_INT1 |
1~64 |
100 MHz |
PLL_INT1 1200 MHz |
|
UART2 |
APB0 |
PLL_INT1 |
1~64 |
100 MHz |
PLL_INT1 1200 MHz |
|
UART3 |
APB0 |
PLL_INT1 |
1~64 |
100 MHz |
PLL_INT1 1200 MHz |
|
UART4 |
APB0 |
PLL_INT1 |
1~64 |
100 MHz |
PLL_INT1 1200 MHz |
|
I2C0 |
APB0 |
- |
- |
- |
|
|
I2C1 |
APB0 |
- |
- |
- |
|
|
LCD |
APB0 |
PLL_FRA2 |
1~8 |
200 MHz |
PLL_FRA2 1200 MHz |
|
DSI |
APB0 |
PLL_FRA2 |
1~8 |
200 MHz |
PLL_FRA2 1200 MHz |
|
DVP |
APB0 |
PLL_INT1 |
1~16 |
150 MHz |
PLL_INT1 1200 MHz |
|
DE |
APB0 |
PLL_INT1 |
1~16 |
150 MHz |
PLL_INT1 1200 MHz |
|
GE |
APB0 |
PLL_INT1 |
1~16 |
150 MHz |
PLL_INT1 1200 MHz |
|
VE |
APB0 |
PLL_INT1 |
1~16 |
200 MHz |
PLL_INT1 1200 MHz |
|
WDOG |
APB1 |
CLK_32K |
32 KHz |
- |
|
|
WRI |
APB1 |
CLK_24M |
24 MHz |
- |
|
|
SID |
APB1 |
CLK_24M |
24 MHz |
- |
|
|
GTC |
APB1 |
- |
- |
- |
|
|
RTC |
APB1 |
- |
- |
- |
|
|
CIR |
APB1 |
- |
- |
- |
模块开关控制和时序
模块一般有三个控制位:
- MOD_RSTN(模块复位控制):同时复位模块和模块总线。
- MOD_BUS_EN(模块总线时钟开关):控制模块的所有总线时钟,包括 AX、AHB 和 APB,如果模块使用到多个总线,由于只有一个控制位,该控制位同时控制多个总线时钟。
- MOD_CLK_EN(模块时钟开关): 控制除了总线时钟以外的模块时钟,如果模块用到多个时钟,由于只有一个控制位,该控制位同时控制多个模块时钟。
| 模块 | 打开时序 | 关闭时序 |
|---|---|---|
| USB_DEV |
|
|
| 标准模块 |
|
|
| 标准模块 |
注:
模块无对应控制位即不进行设置 |
注:
模块无对应控制位即不进行设置 |
