OV5640 数据手册2.5节中system clock control一节中给出了其内部PLL的配置框图,从图中可以看出,PCLK的频率与以下几个寄存器有关。如下表所示。
寄存器 |
说明 |
demo |
0x3034 |
0x1A |
|
0x3035 |
0x11 |
|
0x3036 |
0x46 |
|
0x3037 |
0x13 |
|
0x3108 |
0x01 |
|
0x3824 |
0x02 |
通过图可以看出PCLK是经过图中8个步骤之后得到的频率,以下逐步计算得到PCLK。
OV5640要求输入的时钟频率为6-27MHz,一般情况下输入24MHz,在本次计算中也以24MHz为输入频率;
输入时钟首先经过pre-divider进行分频,分频系数由3037[3:0]确定,在本次计算中3037[3:0]为3,故经过分频之后的输出为24/3=8MHz;
经过pre-divider分频后需要给分频后的时钟做一次倍频,乘法因子为3036[6:0]=0x46=70,经过倍频后的时钟频率为8MHz*70=560MHz;
Sys divider0分频,分频系数为0x3035[7:4],在demo中的值为1,故没有进行分频;560MHz/1=560MHz;
PLL R divider分频,如果0x3037[4]为高电平,则进行2分频,否则不分频;在demo中3037[4]为0,故没有分频;560MHz/1=560MHz;
BIT divider分频,分频系数为0x3034[3:0],如果是8,则是2分频,如果是A则是2.5分频,如果是其他则为1分频;在demo中0x3034[3:0]为A,故需要进行2.5分频;560MHz/2.5=224MHz;
PCLK divider分频, 分频系数为0x3108[5:4],00:1分频;01:2分频;10:4分频;11:8分频;在demo中0x3108[5:4]=2’b00,故需要进行1分频;224MHz/1=224MHz;
P divider分频,如果是mipi2 lane,则分频系数是0x3035[3:0],如果是DVP 接口则分频系数为2*0x3035[3:0]=2,在demo中0x3035[3:0]=1,故在此是2分频;224MHz/2=112MHz;
Scale divider分频,分频系数为0x3824[4:0],在demo中0x3824[4:0]=2故需要进行2分频,112MHz/2=56MHz。
通过以上分析可以看出在demo中输入时钟为24MHz时,输出时钟为56MHz。
没有回复内容