Xilinx zynq7000,zynq7k上CLOCK Distribution 调试笔记

来源:互联网 发布:埃德和沃伦夫妇知乎 编辑:程序博客网 时间:2024/05/16 01:44


2时钟Clock
PS和PL的时钟输入都来源于PS_CLK(一般为33.33Mhz或50MHz),PS_CLK经过三个锁相环PLL之后产生不同的输出频率,给不同的模块提供需要的时钟
三个锁相环分别是ARMPLL,DDRPLL和IOPLL.锁相环的倍频系数可以通过设置ARM_PLL_CTRL(0xF8000100)/DDR_PLL_CTRL(0xF8000104)/IO_PLL_CTRL(0xF8000108)
的PLL_FDIV[18..12]字段获得指定的输出频率.DDRPLL可以用来给所有模块(CPU,DDR和IO)提供时钟而ARMPLL和IOPLL则只能给CPU和IO提供时钟.
CPU CLOCK有2种设置模式(6:2:1)或(4:2:1)指的是CPU L2 Cache:APU:IO的和CPU1x的速度比(CPU1x=133,当33.33MHZ或150当50MHz)

以设置SPI1,12.5MHz,PS_CLK输入为33.33MHz,使用IOPLL为例:

IOPLL(0xF8000108)的PLL_FDIV=30 ,即IOPLL[18..12]=30,则IOPLL的输出频率1000MHz
继续设置SPI_CLK_CTRL(0xF8000158)寄存器的DIVISOR=5和SRCSEL=00,CLKACT1=1则指定了SPI模块的输入频率1000/5=200MHz,使用IOPLL.

进入SPI模块配置SPI的工作频率
SPI Config_reg0(0xE0007000)的BAUD_RATE_DIV设置为0b011即16分频,则SPI输出频率为200/16=12.5MHz

原创粉丝点击