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表明并设置了这三个时钟的关系
如果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的关系2410的时钟和电源管理
概述
时钟和电源管理模块由3部分组成:时钟控制、USB控制、电源控制。
时钟控制部分产生3种时钟信号:CPU用的FCLK,AHB总线用的HCLK,APB总线用的PCLK。有2个锁相环,一个用于FCLK HCLK PCLK,另一个用于48MHz的USB时钟。可以通过不使能锁相环来达到慢速省电目的。
电源管理模块提供了4种模式: Normal模式、Slow模式、Idle模式、Power_Off模式。
Normal Mode
该模式下如果所有外围设备都打开时电流消耗最大,允许用户通过软件关闭外围设备达到省电目的。
Slow Mode
不采用PLL的模式,能量消耗仅取决于外时钟的频率。由外部提供的时钟源作FCLK。
Idle Mode
关掉了给cpu的FCLK时钟,但外围设备时钟仍存在,任何到CPU的中断请求可以将cpu唤醒。
Power_off Mode
这种模式关掉了内部供电,仅有给wake_up部分的供电还存在。可以通过外部中断或实时时钟中断可以唤醒。
功能描述
时钟结构:主时钟源来自外部晶振XTlpll或外部时钟EXTCLK。
时钟源选择:通过OM[3: 2]的高低电平选择,现在我们采用00。OM[3:2]的状态在nRESET的上升沿锁存。尽管MPLL在上电复位后就开始工作,但是MPLL输出不作为系统时钟,只有对MPLLCON写入适当的数值后才可以。即使用户不想改变MPLLCON的值,也
要重新写一遍才能使其起作用。
时钟控制逻辑:时钟控制逻辑决定要使用的时钟源,当锁相环被设置为一个新的值时,时钟控制逻辑切断FCLK直到PLL输出稳定。时钟控制逻辑在上电复位或从power_down状态启动时使能。
上电复位:注意上电后必须通过设置PLLCON才能使PLL作用。
在正常操作状态下改变PLL设置:通过改变PMS的值来实现。
USB时钟控制:UCLK不起作用直到UPLL被设置。
FCLK、HCLK、PCLK:可以通过HDIVN、PDIVN、CLKDIVN来改变3种时钟的比率,推荐采用1:2:4的比率。在设置完PMS的值后,需要设置CLKDIVN寄存器,该寄存器设置的值在PLL锁定后生效,只需要1.5个HCLK即可完成比率的修改。
电源管理:4种模式及特点。
Power_Off模式:外部中断EINT[15:0]或RTC alarm中断可以从该模式wakeup.
进入PowerOff模式的流程:
1。将GPIO端口设置为适当的状态;
2。……….
VDDi和VDDiarm的控制:在PowerOff模式,仅VDDi和VDDiarm通过PWREN管脚控制被关闭。如果PWREN为高,VDDi和VDDiarm被外部电源提供,如果为低则关闭。 尽管VDDi,VDDiarm,VDDi_MPLL,VDDi_UPLL可能被关闭,其他电源必须被提供。
EINT[15:0]启动信号: EINTn管脚必须被设置为中断管脚,在启动后,相应的EINTn管脚将不被用作启动,可以被用作外部中断请求。
电池故障信号(nBATT_FLT): 当cpu不在PowerOff模式时,nBATT_FLT将要引起低电平触发的中断。当在PowerOff模式时,nBATT_FLT信号将会禁止芯片从PowerOff模式启动,故所有的wakeup信号被屏蔽,此举用来保护系统电量低时不出现故障。
时钟和电源管理部分寄存器
LOCKTIME: UPLL、 MPLL 锁定时间的计数值。
MPLLCON UPLLCON: 这两个寄存器都有MDIV PDIV SDIV设置,对于输入12M的晶振,有相应的推荐值,产生200M和48M的频率。
CLKCON: 为各种外围接口提供时钟。
CLKSLOW: 是否打开2个PLL。
CLKDIVN: 设置CLK、 HCLK、 PCLK比率的寄存器。
上一篇:ARM9_S3C2440学习(二)ARM状态下的寄存器组织
下一篇:ARM9_S3C2440学习(五)norflash启动,nandflash启动,SDRAM总结
推荐阅读
史海拾趣
近年来,随着物联网和人工智能技术的快速发展,智能化物流成为了电子行业的新趋势。Bomar公司敏锐地捕捉到了这一市场机遇,开始将业务范围拓展至智能化物流领域。通过与深兰科技等公司的合作,Bomar公司成功推出了智能化物流、仓储装备以及清洁机器人等产品,并成功销往欧洲市场。这些产品的推出不仅提升了Bomar公司的市场竞争力,也为公司的未来发展开辟了新的增长点。
在电子行业快速发展的背景下,Cermetek Microelectronics公司深知创新的重要性。公司不断加大对研发的投入,引进先进的研发设备和人才,持续推出具有创新性的微电子产品。这些新产品不仅具有更高的性能和更低的功耗,还更加符合市场需求,为公司带来了更多的商业机会。
某半导体企业在生产过程中面临着生产效率低下、成本过高的问题。为了提高生产效率并降低成本,该企业引入了DFX的设计理念,对生产线进行了全面优化。通过改进设备布局、优化工艺流程和采用自动化生产技术等手段,该企业成功提高了生产效率并降低了成本,增强了市场竞争力。
ESTEK公司深知产品质量对于企业发展的重要性。因此,公司从源头上把控原材料的质量,并在生产过程中严格执行质量管理体系标准。通过一系列严格的质量管控措施,ESTEK公司的产品质量得到了有效保障。在市场上,ESTEK公司的产品以高质量、高可靠性著称,赢得了广大客户的信赖和好评。
proteus里no model specified for u1错误,u1是lm311 proteus里no model specified for u1错误,u1是lm311我在proteus里做了个放大整形电路,仿真后出现no model specified for u1错误,可我同样在multisim里也做了同样的电路,那里面能仿真,说明电路正确,我又在网上下了新的元件库,还是出现这个问 ...… 查看全部问答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 09:39 编辑 2009年全国大学生电子设计竞赛 基本仪器和主要元器件清单 1、基本仪器清单20MHz普通示波器(双通道,外触发输入,有X轴输入,可选带Z轴输入) 60MHz双通道数字示波器低频信号发生器(1Hz~1 ...… 查看全部问答∨ |
本帖最后由 paulhyde 于 2014-9-15 09:02 编辑 欢迎大家加入 小车讨论群QQ群18592870,预测今年小车出题方向 … 查看全部问答∨ |
使用ATMEL公司AT91SAM9263开发板,使用WINCE6.0+VS2005开发,特向各位请教: 1、开发板目前下载自己编译NK.BIN,但感觉分辨率与LCD不太匹配,想进行分辨率与显示方向的旋转操作,按BSP文档介绍,修改显示驱动注册表文件: "Width"=dword:F0 ...… 查看全部问答∨ |
|