为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ARM9时钟频率、主频设置

2017-11-15 3页 doc 14KB 41阅读

用户头像

is_447713

暂无简介

举报
ARM9时钟频率、主频设置ARM9时钟频率、主频设置 关于S3C2440时钟设置的理解 ADS1.2中关于时钟的C代码 ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3); ChangeClockDivider(key, 12); 1)FLCK、HCLK和PCLK的关系 S3C2440有三个时钟FLCK、HCLK和PCLK s3c2440官方手册上说P7-8写到: FCLK is used by ARM920T,内核时钟,主频。 HCLK is us...
ARM9时钟频率、主频设置
ARM9时钟频率、主频设置 关于S3C2440时钟设置的理解 ADS1.2中关于时钟的C代码 ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3); ChangeClockDivider(key, 12); 1)FLCK、HCLK和PCLK的关系 S3C2440有三个时钟FLCK、HCLK和PCLK s3c2440官方上说P7-8写到: FCLK is used by ARM920T,内核时钟,主频。 HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是总线时钟,包括USB时钟。 PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI.即IO接口时钟,例如串口的时钟设置就是从PCLK来的; 那么这三个时钟是什么关系呢, 这三个时钟通常设置为1:4:8,1:3:6的分频关系,也就说如果主频FLCK是400MHz,按照1:4:8的设置,那么HLCK是100MHz,PLCK是50MHz 寄存器CLKDIVN明并设置了这三个时钟的关系 void ChangeClockDivider(int hdivn,int pdivn) { // hdivn,pdivn FCLK:HCLK:PCLK // 0,0 1:1:1 // 0,1 1:1:2 // 1,0 1:2:2 // 1,1 1:2:4 // 2,0 1:4:4 // 2,1 1:4:8 // 3,0 1:3:3 // 3,1 1:3:6 rCLKDIVN = (hdivn<<1) | pdivn; if (hdivn == 2) rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9); if (hdivn == 3) rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8); } 如果CLKDIVN设置为0x5,那么比例即为1:4:8,前提是CAMDIVN[9]为0. 2)输入时钟FIN与主频FCLK的关系 现代的CPU基本上都使用了比主频低的多的时钟输入,在CPU内部使用锁相环进行倍频。对于S3C2440,常用的输入时钟FIN有两种:12MHz和16.9344MHz,那么CPU是如何将FIN倍频为FCLK的呢, S3C2440使用了三个倍频因子MDIV、PDIV和SDIV来设置将FIN倍频为MPLL,也就是FCLK MPLL=(2*m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s=SDIV 寄存器MPLLCON就是用来设置倍频因子的 理论上,你可以通过设置该寄存器来实现不同的频率,然而,由于实际存在的各种约束关系,设置一个适当的频率并不容易,手册上列出了一些常用频率的表格, 例如,假设输入时钟FIN=16.9344M,MDIV=110, PDIV=3, SDIV=1, 利用上面的公式,FCLK=2*16.9344*(110+8)/((2+3)*2)=399.65 3)关于USB时钟 S3C2440有两个锁相环,一个主锁相环MPLL提供给FCLK的,另外一个UPLL是提供给USB时钟(48MHz)的,与MPLL一样,UPLL的产生也是通过UPLLCON寄存器设置分频因子得到,计算公式稍有不同: UPLL=(m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s=SDIV,同样,可以通过查表得到一个合适的值。 最后值得一提的是,在CLKDIVN的第三位DIVN_UPLL用来设置USB时钟UCLK和UPLL的关系,如果UPLL已经是48Mhz了,那么这一位应该设置为0,表示1:1的关系,否则是1:2的关系 4)最后,给出我的2440开发板的时钟设置 FIN=16.9344 MDIV:110 HDIV:3 SDIV:1,比例为1:4:8 CLKDIVN: 5 因此,FCLK=399.65MHZ HCLK=99.91MHZ PCLK=49.95MHZ
/
本文档为【ARM9时钟频率、主频设置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索