Edit online

功能描述

3 Mar 2025
Read time: 5 minute(s)

PLL

在 CMU 中,有两个模拟电路 PLL 用于产生稳定且精确的时钟供给整个芯片,如下表所示:

1. PLL 用途及特性

名称

用途

典型频率

展频

PLL_INT

CPU/ AXI/ AHB/APB0/ DMA/ PWMCS/ SDFM/ PWM/ FFT

480 MHz

不支持

PLL_FRA

TA_IF/ EDAT_IF/ BIS_IF/ UART/ CE/ CANFD/ EMAC/ QSPI

1200 MHz

支持

PLL 内部结构如下图所示, PLL 频率计算公式为:PLL_OUT = 24MHz÷(P+1)×(N+1+(F÷(217-1)))÷(M+1)。



1. CMU PLL 内部框图

CLKOUT

时钟输出 (CLKOUT) 用于输出时钟给芯片外设使用, 总共两路 CLKOUT,可选来源为 PLL_INT 以及 PLL_FRA,可配置 1~258 除频, CLKOUT 通路如下图所示。


2. CMU CLKOUT 通路

OSC24M 和 XTAL

时钟源输入 CLK_24M 用于给芯片提供时钟,总共两个时钟源选择:
  • 内部 OSC24M
  • 外部 XTAL

正常使用模式: 软件先配置 xtal_swen 打开引脚连接,延迟 1 ms,再配置 xtal_sel 切换到 xtal 时钟。

强制切换模式: 通过引脚 XTAL_FORCE_N 拉低或者 ETC 配置 xtal_force=1 均可以强制打开引脚和切换时钟。

时钟源选择的规则如下:
  • 当引脚 SYS_TEST 配置的值为 1 时,无论 BID_1 为何值,只能选择外部 XTAL 作为芯片时钟源输入。

  • 当引脚 SYS_TEST 配置的值为 0 时,根据 BID_1 的值选择芯片的输入时钟源:
    • 若 BID_1 值为 1,则选择外部 XTAL 时钟源。
    • 若 BID_1 值为 0,则选择内部 OSC24M 时钟源。


3. 时钟源选择

模块时钟

模块名称

总线时钟

模块时钟源

模块时钟极限频率

备注

E907 CORE

-

PLL_INT

480 MHz

-

E907 PLIC

-

PLL_INT÷2

240 MHz

-

E907 CLINT

-

PLL_INT÷2

240 MHz

-

E907 DM

-

CLK_24M

24 MHz

-

AXI

AXI

-

240 MHz

-

AHB0

AHB0

-

240 MHz

-

AHB1

AHB1

-

240 MHz

-

APB0

APB0

-

120 MHz

-

APB1

APB1

-

24 MHz

-

BROM

AXI

-

-

-

SRAM

AXI

-

-

-

AHB Matrix

AHB

-

-

-

DMA0

AHB0

-

-

-

DMA1

AHB0

-

-

-

DCE

AHB0

-

-

-

CE

AHB0

PLL_FRA

200 MHz

-

EMAC

AHB0

PLL_FRA

(AHB)

-

SPI0

AHB0

PLL_FRA

266 MHz

-

SPI1

AHB0

PLL_FRA

266 MHz

-

SPI2

AHB0

PLL_FRA

266 MHz

-

SPI3

AHB0

PLL_FRA

266 MHz

-

SPI4

AHB0

PLL_FRA

266 MHz

-

SPI5

AHB0

PLL_FRA

266 MHz

-

PBUS

AHB0

-

-

-

CAN-FD0

AHB0

PLL_FRA

80 MHz

-

CAN-FD1

AHB0

PLL_FRA

80 MHz

-

GPIO

AHB0

-

-

-

USBFS

AHB0

PLL_FRA

48 MHz

48 MHz

PWM

AHB1

-

-

-

EDAT_IF

AHB1

PLL_FRA

240 MHz

-

BIS_IF

AHB1

PLL_FRA

240 MHz

-

TA_IF

AHB1

PLL_FRA

240 MHz

-

PWMCS

AHB1

-

-

-

ADC

AHB1

-

-

-

RDC

AHB1

-

-

-

CORDIC

AHB1

-

-

-

HCL

AHB1

-

-

-

SDFM

AHB1

-

-

-

THS

AHB1

-

-

-

CPM

AHB1

-

-

-

VTS

AHB1

-

-

-

FFT

AHB1

-

-

-

GPT

AHB1

-

-

-

PGA

AHB1

-

-

-

I2C0

APB0

-

-

-

I2C1

APB0

-

-

-

I2C2

APB0

-

-

-

I2C3

APB0

-

-

-

UART0

APB0

PLL_FRA

120 MHz

-

UART1

APB0

PLL_FRA

120 MHz

-

UART2

APB0

PLL_FRA

120 MHz

-

UART3

APB0

PLL_FRA

120 MHz

-

UART4

APB0

PLL_FRA

120 MHz

-

UART5

APB0

PLL_FRA

120 MHz

-

UART6

APB0

PLL_FRA

120 MHz

-

UART7

APB0

PLL_FRA

120 MHz

-

UART8

APB0

PLL_FRA

120 MHz

-

SYSCFG

APB0

CLK_24MHz

-

-

CMU

APB0

-

-

-

SPI_ENC

APB0

-

-

-

WDOG

APB1

CLK_32K

32 KHz

-

WRI

APB1

CLK_24M

24 MHz

-

SID

APB1

CLK_24M

24 MHz

-

GTC

APB1

-

-

-

模块开关控制和时序

USB

打开时序:

ctrlclk1->phyclk1->100us->phyrst1->ctrlrst1

关闭时序:

ctrlrst0->phyrst0->phyclk0->ctrlclk0

其它模块

打开时序:

modclk1->busclk1->rst1

关闭时序:

rst0->busclk0->modclk0