功能描述
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
