S3C2440時(shí)鐘分析
S3C2440時(shí)鐘控制邏輯可以產(chǎn)生FCLK、HCLK、PCLK和UCLK。FCLK為CPU時(shí)鐘。HCLK為AHB總線外設(shè)時(shí)鐘,包括存儲控制器、中斷控制器、LCD控制器、DMA控制器等。PCLK為APB總線外設(shè)時(shí)鐘,包括看門狗、IIS、IIC、PWM定時(shí)器、MMC接口、ADC、UART、GPIO、RTC和SPI等等。UCLK專用于USB主機(jī)或設(shè)備接口時(shí)鐘。
時(shí)鐘源的選擇:
時(shí)鐘源的選擇是通過OM3和OM2管腳控制的,時(shí)鐘源可以是外部晶振,也可以是外部時(shí)鐘。
S3C2440有兩個(gè)鎖相環(huán)(PLL),一個(gè)用于FCLK、HCLK和PCLK的MPLL,另一個(gè)專用于UCLK的UPLL。
MPLLCON和UPLLCON寄存器用于設(shè)置FCLK和UCLK的時(shí)鐘頻率,那么最后的時(shí)鐘頻率是如何計(jì)算的呢,有如下公式:
對于FCLK:
Fout= (2 * m * Fin) / (p * 2S)
m= (MDIV + 8), p = (PDIV + 2), s = SDIV
對于UCLK:
Fout= (m * Fin) / (p * 2S)
m= (MDIV + 8), p = (PDIV + 2), s = SDIV
S3C2440數(shù)據(jù)手冊上也給出了典型值,我們也來驗(yàn)證一下他給的設(shè)置是否正確。比如UCLK為48MHz,他給的MDIV為56,PDIV為2,SDIV為2,那么UCLK為多少呢,依照上面給的公式計(jì)算得到如下值:(56+8)*12/((2+2)*22)=48,結(jié)果正確。如果我要設(shè)置FCLK為400MHz,數(shù)據(jù)手冊上也沒有給出參考,唯一接近的是405MHz,沒有關(guān)系,我們自己來計(jì)算,下面給出一組參考值:
MDIV= 92、PDIV= 1、SDIV= 1,大家依照上面的公司計(jì)算一下,看FCLK是否為400MHz。
前面也只是設(shè)定了FCLK和UCLK的時(shí)鐘,還有HCLK和PCLK沒有設(shè)置,HCLK和PCLK是通過FCLK分頻得來的。通過CLKDIVN寄存器來控制。
也就是說還和CAMDIVN寄存器有關(guān)。