Edit online

功能描述

3 Mar 2025
Read time: 7 minute(s)

PLL

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

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

名称

用途

典型频率

展频

PLL_INT0

CPU

396 MHz

不支持

PLL_INT1

AXI/ AHB/ APB/DE/GE/VE/UART/PWM/I2S/AUDIO

588 MHz

不支持

PLL_FRA0

XSPI/ SPI/ SDMC

384 MHz

展频

PLL_FRA2

LCD

-

展频

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

396 MHz

-

E907 CLIC

-

PLL_INT0÷2

200 MHz

-

E907 CLINT

-

PLL_INT0÷2

200 MHz

-

E907 DM

-

CLK_24M

24 MHz

-

AXI

AXI

PLL_INT1

200 MHz

-

AHB

AHB

PLL_INT1

200 MHz

-

APB0

APB0

PLL_INT1

100 MHz

-

APB1

APB1

-

24 MHz

-

BROM

AXI

-

-

-

SRAM

AXI

-

-

-

AHB Matrix

AHB

-

-

-

DMA

AHB

-

-

-

DCE

AHB

-

-

-

XSPI

AHB

PLL_FRA0

400 MHz

-

SPI0

AHB

PLL_FRA0

100 MHz

-

SPI1

AHB

PLL_FRA0

100 MHz

-

SDMC0

AHB

PLL_FRA0

200 MHz

-

SDMC1

AHB

PLL_FRA0

200 MHz

-

SYSCFG

APB0

CLK_24M

24 MHz

-

CMU

APB0

-

-

-

SPI_ENC

APB0

HCLK

-

-

AXICFG

APB0

-

-

-

MTOP

APB0

-

-

-

AUDIO

APB0

PLL_INT1

26 MHz

-

GPIO

APB0

-

-

-

UART0

APB0

PLL_INT1

60 MHz

-

UART1

APB0

PLL_INT1

60 MHz

-

UART2

APB0

PLL_INT1

60 MHz

-

UART3

APB0

PLL_INT1

60 MHz

-

LCD

APB0

PLL_FRA2

200 MHz

DISP_PIXCLK: 100 MHz

DE

APB0

PLL_INT1

100 MHz

DISP_PIXCLK: 100 MHz

GE

APB0

PLL_INT1

150 MHz

-

VE

APB0

PLL_INT1

200 MHz

-

WDOG

APB1

CLK_32K

32 KHz

-

WRI

APB1

CLK_24M

24 MHz

-

SID

APB1

CLK_24M

24 MHz

-

GTC

APB1

-

-

-

I2C0

APB1

-

-

-

I2C1

APB1

-

-

-

CAN0

APB1

-

-

-

CAN1

APB1

-

-

-

PWM

APB1

CLK_24M

24 MHz

-

ADCIM

APB1

CLK_24M

24 MHz

-

GPAI

APB1

-

-

-

RTP

APB1

-

-

-

THS

APB1

-

-

-

CIR

APB1

-

-

-

UART 在 PLL_INT1=588 MHz 下波特率精度

设定波特率

实际波特率

波特率偏差

CMU 除频

Over sampling

Clock source

UART 除频

300

300

0%

11

16

53454545

11136

600

600

0%

11

16

53454545

5568

1200

1200

0%

11

16

53454545

2784

2400

2400

0%

11

16

53454545

1392

4800

4800

0%

11

16

53454545

696

9600

9600

0%

11

16

53454545

348

14400

14400

0%

11

16

53454545

232

19200

19200

0%

11

16

53454545

174

38400

38401

0%

11

16

53454545

87

57600

57601

0%

11

16

53454545

58

115200

115203

0%

11

16

53454545

29

230400

229687

-0.31%

10

16

58800000

16

380400

382812

0.63%

12

16

49000000

8

460800

459375

-0.31%

10

16

58800000

8

921600

918750

-0.31%

10

16

58800000

4

1000000

1020833

2.08%

12

16

49000000

3

1152000

1148437

-0.31%

16

16

36750000

2

1500000

1531250

2.08%

12

16

49000000

2

1750000

1750000

0%

7

16

84000000

3

2000000

2041666

2.08%

9

16

65333333

2

2450000

2450000

0%

15

16

39200000

1

2500000

2450000

-2%

15

16

39200000

1

3000000

3062500

2.08%

12

16

49000000

1

AUDIO 在 PLL_INT1 = 588 MHz 下精度

设定频率

CMU 除频

实际频率

频率偏差

24.5760 MHz

16

24.5000 MHz

0.3%

22.5792 MHz

17

22.6153 MHz

0.1%

模块开关控制和时序

模块一般有三个控制位:

  • MOD_RSTN(模块复位控制):同时复位模块和模块总线。
  • MOD_BUS_EN(模块总线时钟开关):控制模块的所有总线时钟,包括 AX、AHB 和 APB,如果模块使用到多个总线,由于只有一个控制位,该控制位同时控制多个总线时钟。
  • MOD_CLK_EN(模块时钟开关): 控制除了总线时钟以外的模块时钟,如果模块用到多个时钟,由于只有一个控制位,该控制位同时控制多个模块时钟。
模块开启和关闭具有一定的时序要求,其中 SP_USBD 时序要求较为特殊,其它模块统一开关时序,具体描述如下:
2. 模块开关时序描述

模块

打开时序

关闭时序

USB_DEV

  • 打开控制器时钟
  • 打开模拟 PHY 时钟
  • 延迟 100 微秒
  • 放开模拟 PHY 复位
  • 放开控制器复位
  • 使能控制器复位
  • 使能模拟 PHY 复位
  • 关闭模拟 PHY 时钟
  • 关闭控制器时钟

其它模块

  • 打开模块时钟
  • 打开总线时钟
  • 放开复位控制
  • 使能复位控制
  • 关闭总线时钟
  • 关闭模块时钟
  • 关闭控制器时钟