功能描述
PLL
在 CMU 中,有两个模拟电路 PLL 用于产生稳定且精确的时钟供给整个芯片,如下表所示:
名称 | 用途 | 典型频率 | 展频 |
|---|---|---|---|
PLL_INT | CPU/ AXI/ AHB/APB0/ DMA/ PWMCS/ SDFM/ PWM/ FFT | 480 MHz | 不支持 |
PLL_FRA | UART/ CE/ CANFD/ EMAC/ QSPI | 1200 MHz | 支持 |
PLL 内部结构如下图所示, PLL 频率计算公式为:PLL_OUT = 24MHz÷(P+1)×(N+1+(F÷(217-1)))÷(M+1)。

CLKOUT

OSC24M 和 XTAL
- 内部 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 时钟源。

模块时钟
模块名称 | 总线时钟 | 模块时钟源 | 模块时钟极限频率 | 备注 |
|---|---|---|---|---|
|
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 |
- |
- |
- |
|
PWMCS |
AHB1 |
- |
- |
- |
| ADC |
AHB1 |
- |
- |
- |
|
RDC |
AHB1 |
- |
- |
- |
|
CORDIC |
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
