Edit online

功能描述

PLL

模拟电路 PLL 用于产生时钟供给整个芯片。

下表列出了各个 PLL 的用途及特性。
注:
为保证 PLL 性能要求,PLL_VCO = 24 MHz ÷ (P + 1) × (N + 1) 频率建议在 720 MHz~1584 MHz 之间。
1. CMU 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)



1. CMU PLL 内部框图

PLL 配置流程

为保证 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(模块时钟开关): 控制除了总线时钟以外的模块时钟,如果模块用到多个时钟,由于只有一个控制位,该控制位同时控制多个模块时钟。
模块开启和关闭具有一定的时序要求,其中 SP_USBD 时序要求较为特殊,其它模块统一开关时序,具体描述如下:
2. 模块开关时序描述
模块 打开时序 关闭时序
USB_DEV
  • 打开控制器时钟
  • 打开模拟 PHY 时钟
  • 延迟 100 微秒
  • 放开模拟 PHY 复位
  • 放开控制器复位
  • 使能控制器复位
  • 使能模拟 PHY 复位
  • 关闭模拟 PHY 时钟
  • 关闭控制器时钟
标准模块
  • 打开模块时钟
  • 打开总线时钟
  • 放开复位控制
  • 使能复位控制
  • 关闭总线时钟
  • 关闭模块时钟
  • 关闭控制器时钟
标准模块
  • 设置模块时钟除频系数
  • 打开模块时钟预使能
  • 打开模块时钟使能
  • 打开 APB 总线时钟
  • 打开 AHB 总线时钟
  • 打开 AXI 总线时钟
  • 放开复位控制
注:
模块无对应控制位即不进行设置
  • 使能复位控制
  • 关闭 AXI 总线时钟
  • 关闭 AHB 总线时钟
  • 关闭 APB 总线时钟
  • 关闭模块时钟使能
  • 关闭模块时钟预使能
注:
模块无对应控制位即不进行设置