功能描述
PLL
模拟电路 PLL 用于产生时钟供给整个芯片。
CMU PLL 用途及特性列出了各个 PLL 的用途及特性。
名称 | 用途 | 典型频率 | 展频或小数分频 |
---|---|---|---|
PLL_INT0 | CPU | 600 MHz @ 1.2V | 不支持 |
PLL_INT1 | AXI/AHB/ APB/ CE/ DE/ GE/ VE/ DVP/ PWMCS/ UART | 1.2 GHz | 不支持 |
PLL_FRA0 | DRAM/ SDMC/ SPI | 1008 MHz | 展频 |
PLL_FRA1 | I2S/ AUDIO | 491.52 MHz 451.584 MHz |
小数分频 |
PLL_FRA2 | LCD/ LVDS/ MIPI_DSI | - | 展频 |
PLL 内部结构如下图所示, PLL 频率计算公式为:PLL_OUT = 24 MHz ÷ (P + 1) × (N +1 + (F ÷ (2^17-1))) ÷ (M + 1)。
CLKOUT
时钟输出用于输出时钟给芯片外设使用, 总共四路 CLKOUT,可选来源为 PLL_INT1/ PLL_FRA1/ PLL_FRA2,可配置 1~256 除频, CLKOUT 通路如下图所示。
模块时钟
模块名称 | 总线时钟 | 模块时钟源 | 模块时钟极限频率 | 备注 |
---|---|---|---|---|
C906 CORE | - | PLL_INT0 | 504 MHz | 600 MHz@1.2V |
AXI | AXI | - | 240 MHz | - |
AHB | AHB | - | 240 MHz | - |
APB0 | APB0 | - | 100 MHz | - |
APB1 | APB1 | - | 24 MHz | - |
AHB Matrix | AHB0 | - | - | - |
BROM | AHB0 | - | - | - |
SRAM | AHB0 | - | - | - |
DMA | AHB0 | - | - | - |
CE | AHB0 | PLL_INT1 | 200 MHz | - |
USB DEV | AHB0 | - | - | - |
USB HOST0 | AHB0 | - | - | - |
USB HOST1 | AHB0 | - | - | - |
USB PHY0 | - | CLK_24M | - | - |
USB PHY1 | - | CLK_24M | - | - |
GMAC0 | AHB0 | PLL_INT1 | 50 MHz | - |
GMAC1 | AHB0 | PLL_INT1 | 50 MHz | - |
QSPI0 | AHB0 | PLL_FRA0 | 100 MHz | - |
QSPI1 | AHB0 | PLL_FRA0 | 100 MHz | - |
QSPI2 | AHB0 | PLL_FRA0 | 100 MHz | - |
QSPI3 | AHB0 | PLL_FRA0 | 100 MHz | - |
SDMC0 | AHB0 | PLL_FRA0 | 200 MHz | - |
SDMC1 | AHB0 | PLL_FRA0 | 200 MHz | - |
SDMC2 | AHB0 | PLL_FRA0 | 200 MHz | - |
PBUS | AHB0 | - | - | - |
SYSCFG | APB0 | CLK_24M | 24 MHz | - |
CMU | APB0 | - | - | - |
CMT (SIM) | APB0 | - | - | - |
SPI ENC | APB0 | HCLK | - | - |
PWMCS | APB0 | PLL_INT1 | 200 MHz | - |
PSADC | APB0 | - | - | - |
DDR CTL | APB0 | - | - | - |
MTOP | APB0 | - | - | - |
DDR PHY | APB0 | PLL_FRA0 | 336MHz | - |
I2S0 | APB0 | PLL_FRA1 | 26MHz | - |
I2S1 | APB0 | PLL_FRA1 | 26MHz | - |
AUDIO | APB0 | PLL_FRA1 | 26MHz | - |
LCD | APB0 | PLL_FRA2 | 800 MHz | DISP_PIXCLK:200 MHz |
LVDS | APB0 | PLL_FRA2 | 1000 MHz | DISP_PIXCLK:200 MHz |
MIPI DSI | APB0 | PLL_FRA2 | 1200 MHz | DISP_PIXCLK:200 MHz |
DVP | APB0 | PLL_INT1 | 200 MHz | - |
DE | APB0 | PLL_INT1 | 200 MHz | DISP_PIXCLK:200 MHz |
GE | APB0 | PLL_INT1 | 200 MHz | - |
VE | TBD | PLL_INT1 | 200 MHz | - |
WDOG | APB1 | CLK_32K | 32 KHz | - |
WRI | APB1 | CLK_24M | 24 MHz | - |
SID | APB1 | CLK_24M | 24 MHz | - |
RTC | APB1 | RTC domain | - | - |
GTC | APB1 | - | - | - |
GPIO | APB1 | - | - | - |
PMT (SIM) | APB1 | - | - | - |
UART0 | APB1 | PLL_INT1 | 60 MHz | - |
UART1 | APB1 | PLL_INT1 | 60 MHz | - |
UART2 | APB1 | PLL_INT1 | 60 MHz | - |
UART3 | APB1 | PLL_INT1 | 60 MHz | - |
UART4 | APB1 | PLL_INT1 | 60 MHz | - |
UART5 | APB1 | PLL_INT1 | 60 MHz | - |
UART6 | APB1 | PLL_INT1 | 60 MHz | - |
UART7 | APB1 | PLL_INT1 | 60 MHz | - |
I2C0 | APB1 | - | - | - |
I2C1 | APB1 | - | - | - |
I2C2 | APB1 | - | - | - |
I2C3 | APB1 | - | - | - |
CAN0 | APB1 | - | - | - |
CAN1 | APB1 | - | - | - |
PWM | APB1 | PLL_INT1 | 100 MHz | - |
ADCIM | APB1 | CLK_24M | 24 MHz | - |
GPAI | APB1 | - | - | - |
RTP | APB1 | - | - | - |
THS | APB1 | - | - | - |
CIR | APB1 | - | - | - |
UART 在 PLL_INT1=1.2 GHz 下波特率精度
设定波特率 | 实际波特率 | 波特率偏差 | CMU 除频 | Over sampling | Clock source | UART除频 |
---|---|---|---|---|---|---|
300 | 300 | 0 | 25 | 16 | 48000000 | 10000 |
600 | 600 | 0 | 25 | 16 | 48000000 | 5000 |
1200 | 1200 | 0 | 25 | 16 | 48000000 | 2500 |
2400 | 2400 | 0 | 25 | 16 | 48000000 | 1250 |
4800 | 4800 | 0 | 25 | 16 | 48000000 | 625 |
9600 | 9615 | 0.16 | 25 | 16 | 48000000 | 312 |
14400 | 14423 | 0.16 | 25 | 16 | 48000000 | 208 |
19200 | 19230 | 0.16 | 25 | 16 | 48000000 | 156 |
38400 | 38461 | 0.16 | 25 | 16 | 48000000 | 78 |
57600 | 57692 | 0.16 | 25 | 16 | 48000000 | 52 |
115200 | 115384 | 0.16 | 25 | 16 | 48000000 | 26 |
230400 | 230769 | 0.16 | 25 | 16 | 48000000 | 13 |
380400 | 378787 | -0.42 | 22 | 16 | 54545454 | 9 |
460800 | 462963 | 0.47 | 27 | 16 | 44444444 | 6 |
921600 | 925925 | 0.47 | 27 | 16 | 44444444 | 3 |
1000000 | 1000000 | 0 | 25 | 16 | 48000000 | 3 |
1152000 | 1136363 | 1.36 | 22 | 16 | 54545454 | 3 |
1500000 | 1500000 | 0 | 25 | 16 | 48000000 | 2 |
2500000 | 2500000 | 0 | 30 | 16 | 40000000 | 1 |
3000000 | 3000000 | 0 | 25 | 16 | 48000000 | 1 |
模块开关时序
DDR
- 打开时序:
ctrl clk 1 -> bus clk 1 -> phy clk 1 -> phy rst 1 -> ctrl rst 1
- 关闭时序:
ctrl rst 0 -> phy rst 0 -> phy clk 0 -> bus clk 0 -> ctrl clk 0
DDR 部分寄存器要求在复位下配置,详细开关时序参考 DDR 模块规格书执行。
USB
- 打开时序:
ctrlclk1->phyclk1->100us->phyrst1->ctrlrst1
- 关闭时序:
ctrlrst0->phyrst0->phyclk0->ctrlclk0
其他模块c
- 打开时序:
modclk1->busclk1->rst1
- 关闭时序:
rst0->busclk0->modclk0