S3C2440 clock研究

本文详细介绍了嵌入式系统中的时钟产生机制及控制逻辑,包括PLL锁相环的工作原理及其配置方法,以及如何通过软件控制实现时钟频率的调整。

Clock研究

关键字

PLL锁相环,用于产生高频率时钟,有两种锁相环,MPLLUPLL

MPLL用于对CPU产生高频率的锁相环

UPLL用于对USB设备产生高频率的锁相环

XTIpll外部晶振

EXTCLK外部时钟

OSC振荡器

FCLK CPU系统时钟

HCLK AHB高速总线时钟

PCLK APB外围设备总线时钟

 

  1. Clock框图

  1. 时钟的产生


如上图所示,可以通过设置CPU引脚OM[3:2]选择使用外部时钟EXTCLK或者由外部晶振XTIpll通过OSC产生时钟。

MPLL在复位开始的时候,MPLL输出(Mpll)并没有作为系统时钟,而是使用外部时钟或者外部晶振提供的时钟直接作为系统时钟。只有在MPLLCON寄存器中写入值之后才由MPLL的输出作为系统时钟

 

  1. 时钟控制逻辑


时钟控制逻辑决定使用PLL时钟(Mpll)还是直接使用外部时钟(XTpll或者EXTCLK)。

上图实际上包括了两个过程:上电复位和配置PLL

  • 上电复位

时钟控制逻辑如下:

晶振在若干毫秒内开始震荡(第三行)

OSCXTIpll)时钟稳定后,此时的PLL按照默认配置运行,PLL输出不稳定,使用Fin作为FCLK(第六行)

释放nRESET信号,即nRESET上拉(第二行)

需要说明的是在nRESETCPU的一个引脚,它处于高位的时候,Fin才会向CPU输出频率,也就是说上图在nRESET上拉的时候,CPU才开始工作,如果nRESET处于低位4个时钟周期,并从低电平变为高电平的时候,将会引发CPU复位,在CPU复位的时候,将会有如下操作:

  1. 复制当前PCCPSR的值到R14_svcSPSR_svc

  2. 强制进入管理模式,职位CPSR中的IF位,清楚CPSR中的T

  3. 强制PC开始从0地址取值

  4. ARM状态下恢复执行

 

  • 配置PLL

不论是上电复位还是在普通模式下都可以改变PLL,其时钟控制过程也是相同的。

时钟控制逻辑禁止FCLK,时间长度是一个Lock Time,然后PLL便可以稳定输出(如上图第四行)

 

  1. 锁相环是如何得到高频率的


Mpll = (2*m*Fin)/(p*2s)

其中MpllMPLL的输出频率,mps是三个分频器的值,Fin是输入频率

 

  1. 分频

Clock框图中可以看出,FCLK是供给给Arm920T内核的时钟,HCLK是供给给内存控制器,Nand控制器,LCD控制器等的时钟,PCLK是供给给外部的低速设备控制器的时钟。Mpll输出的频率需要将FCLK分频,供给给HCLKPCLK,这是通过设置CLKDIVNCAMDIVN寄存器来实现的。除此之外,当FCLKHCLK相等的时候,CPU工作在fast bus mode快速总线模式下,当他们不相等的时候,需要将CPU设置为异步总线模式

 

 

  1. 从软件角度看时钟系统

时钟是计算机系统的硬件基础,所有的硬件都是工作在时钟信号之上的,随着高信号和低信号的交替变换,完成一步一步预定的操作。硬件和软件在逻辑上是等效的。从软件角度看,这不就是一个并行系统么?硬件部件可以看做是软件模块,只要有时钟存在,他们就会不停的运作,不论是CPU,内存,LCDUART还是DMA,他们都更随时钟的脚步,当然他们之间也需要有协调和同步的时候,但从逻辑上看,他们不就像是操作系统上不同的进程在运行么?CPU通过寄存器来控制和读取不同硬件的状态,设备通过中断向CPU发出请求,这不都是一种进程间通信的手段么?不同于单CPU操作系统上的多进程实际上是分时系统,这些硬件组成的是真正的并行系统

 

  1. 代码实现:

WTCON EQU 0x53000000 ;看门狗控制寄存器

WTDAT EQU 0x53000004 ;看门狗数据寄存器

LOCKTIME EQU 0x4c000000 ;变频锁定时间寄存器

MPLLCON EQU 0x4c000004 ; MPLL寄存器

CLKDIVN EQU 0x4c000014 ;分频比寄存器

 

AREA CLOCK, CODE, READONLY

ENTRY

start

ldr r0, = 0x53000000 ;看门狗关闭代码

mov r1, #0

str r1, [r0]

 

;bl clock_init ;调用时钟初始化函数

bl led_on ;调用点亮Led函数

 

clock_init ;时钟初始化代码

;设置锁频时间

ldr r0, =LOCKTIME ;取得LOCKTIME寄存器地址

ldr r1, =0x00ffffff ; LOCKTIME寄存器设置数据

str r1, [r0] ;LOCKTIME设置数据写入LOCKTIME寄存器

;设置分频数

ldr r0, =CLKDIVN ;取得CLKDIVN寄存器地址

mov r1, #0x05 ; CLKDIVN寄存器设置数据

str r1, [r0] ;CLKDIVN设置数据写入CLKDIVN寄存器

 

;修改CPU总线模式

mrc p15, 0, r1, c1, c0, 0

orr r1, r1, #0xc0000000

mcr p15, 0, r1, c1, c0, 0

 

ldr r0, =MPLLCON

ldr r1, =0x5c011 ; MPLL is 400MHz

str r1, [r0]

mov pc, lr

 

参考

S3C2440全套中文手册.pdf

深入浅出嵌入式底层软件


内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值