S3C2440⑤ | S3C2440时钟体系架构及实验

发布者:Serendipitous33最新更新时间:2024-07-15 来源: elecfans关键字:S3C2440  时钟  体系架构 手机看文章 扫描二维码
随时随地手机看文章

1.时钟架构

简化一下如图所示:

1.1.时钟源的选择

S3C2440的时钟源来源有两种:

  • 外部晶振(OSC)

  • 外部时钟信号(EXTCLK)

选择哪一路作为S3C2440的时钟源由模式控制引脚OM3和OM2引脚(的电平)决定,如何选择见下图:

以JZ2440开发板为例,其使用的是12Mhz外部晶振, 硬件电路如下:

其OM3和OM2选择引脚设置如下,选择第一种方式:

1.2.MPLL改变主时钟FCLK的控制时序(上电复位时序)


2.实验 —— LED闪烁(为了后续对比)

2.1.实验目的

使用C语言控制LED闪烁。


2.2.实验代码

启动文件与之前相同;

C程序添加延时函数delay修改后如下:


代码语言:javascript

复制

void delay(unsigned int xms)

{

    while(xms--);

}


int main(void)

{


    /* 设置GPFCON寄存器,配置GPF4引脚为输出模式 */

    *(unsigned int *)0x56000050 &= ~(3<<(2*4));

    *(unsigned int *)0x56000050 |= 1<<(2*4);


    /* 程序循环闪烁LED */

    while(1)

    {

        /* 设置GPFDAT寄存器,GPF4输出低电平,点亮LED */

        *(unsigned int *)0x56000054 &= ~(1<<4);

        delay(100000);


        /* 设置GPFDAT寄存器,GPF4输出高电平,熄灭LED */

        *(unsigned int *)0x56000054 |= (1<<4);

        delay(100000);

    }

}

编译的makefile也和之前相同;


2.3.运行结果

第一个LED先亮起,1s后熄灭,1s后再次点亮,如此循环。

3.实验 —— 设置芯片时钟运行频率

3.1.实验目的

设置芯片的时钟工作频率最高,如下:

  • FCLK  = 400Mhz

  • HCLK = 100Mhz

  • PCLK  = 50Mhz

与实验2对比观察效果。

注:芯片手册中给出的最高时钟频率:

3.2.实验步骤

  1. 设置PLL更改之后的锁定时间(默认即可)

  1. 设置分频系数(UCLK=UPLL(默认值)、HCLK = FCLK/4(100M)、PCLK=HCLK/2(50M))

  1. HDIVN不为0,设置CPU为异步模式 注:其中#R1_nF:OR:R1_iA的值为0xc0000000。

  1. 设置MPLL倍频,产生FCLK=400Mhz:

注:MPLLCON寄存器的值可以由公式自己推算,但芯片手册中推荐直接查找推荐表获得:


3.3.实验代码

时钟修改应该在上电后修改,所以在启动文件中关闭看门狗之后添加:


代码语言:javascript


@ brief:    S3C2440启动文件

@ author:    mculover666

@ note:

@            1.关闭看门狗

@            2.设置栈顶指针SP(从Nand启动)

@            3.设置时钟:FCLK=400Mhz,HCLK=100Mhz,PCLK=50Mhz

@            4.调用main函数,保存返回地址,转入C程序


.text

.global    _start


_start:

    @ 关闭看门狗

    LDR R0,=0x53000000

    MOV R1,#0

    STR R1,[R0]


    @ 设置栈顶指针SP(从Nand启动)

    LDR SP,=4096


    @ 设置时钟:FCLK=400Mhz,HCLK=100Mhz,PCLK=50Mhz

    @ 设置PLL更改之后的锁定时间(默认值)

    LDR R0,=0x4c000000

    LDR R1,=0xFFFFFFFF

    STR R1,[R0]


    @ 设置分频系数

    LDR R0,=0x4c000014

    LDR R1,=0x04

    STR R1,[R0]


    @ HDIVN不为0,设置CPU为异步模式(来源芯片手册)

    mrc p15,0,r0,c1,c0,0

    orr r0,r0,#0xc0000000  @#R1_nF:OR:R1_iA

    mcr p15,0,r0,c1,c0,0


    @ 设置MPLL,输出FCLK=400Mhz

    LDR R0,=0x4c000004

    LDR R1,=(92<<12)|(1<<4)|(1<<0)

    STR R1,[R0] 


    @ 设置MPLL之后锁定一段时间,然后系统变为设置的频率


    @ 调用main函数,保存返回地址,转入C程序

    BL  main


    @ main函数返回,程序暂停

halt:

    B   halt

为了方便对比,C程序与实验2的相同;

编译的makefile和之前的也相同;


3.4.实验结果

程序编译下载后,可以观察到,LED闪烁速度与之前相比快了非常多。


3.5.实验总结

通过本节的两个实验,


从直观的的现象来看:同样的C语言程序(都是delay(100000)),但是在第二个实验中因为CPU时钟FCLK提高到最高运行频率400Mhz,所以LED的闪烁速度与之前相比快了好几倍;

深入到S3C2440芯片的结构:掌握了S3C2440的时钟体系架构和上电复位时序,其时钟源有两个:外部晶振或者外部时钟,通过OM[3:2]硬件选择,其内部主要调整频率的PLL有两个:MPLL(产生FCLK)和UPLL(产生UCLK),其主要的时钟频率有三个(FCLK->CPU使用,HCLK->AHB总线高速外设使用,PCLK->APB总线低速外设使用),其中HCLK和PCLK由FCLK分频而来;

在芯片操作上:掌握了如何编程设置寄存器控制S3C2440的时钟频率(比如本节设置FCLK=400Mhz,HCLK=100Mhz,PCLK=50Mhz)。



关键字:S3C2440  时钟  体系架构 引用地址:S3C2440⑤ | S3C2440时钟体系架构及实验

上一篇:嵌入式:S3C2410与S3C2440的区别
下一篇:S3C2440③ | GPIO实验

推荐阅读最新更新时间:2026-03-19 11:10

S3C2440体系架构
本文是对ARM处理器架构的学习,针对S3C2440型号。参考了Samsung官方的技术文档S3C2440.pdf中的PROGRAMMER’S MODEL一节的内容。 ARM和THUMB指令模式 S3C2440采用了armv4t指令集,同时支持arm指令集和thumb指令集。arm指令是32位的,而thumb指令是16位的。之所以存在thumb指令是为了降低代码的存储空间。 两个指令集之间的切换 手动切换 因为不管是arm指令集还是thumb指令集,代码地址的最低位都是多余的,因为thumb是16位对齐的,arm是32位对齐的。所以最后一位可以用来作为切换的参考。当执行BX指令时,若地址的最后一位置位,则接下来的指令使用thumb
[单片机]
S3C2440-中断体系架构
1.ARM的体系与架构 1.1.ARM体系的CPU有以下其中工作模式: 用户模式 (usr) 快速中断模式 (fiq) 中断模式 (irq) 管理模式 (svc) 数据访问终止模式 (abt) 系统模式 (sys) 未定义指令终止模式 (und) 1.2.ARM寄存器: 31个通用寄存器 : R0~R7(未备份寄存器) , R8~R14(备份寄存器) , R15( 程序计数器PC ) 6个状态寄存器 : CPSR( 当前程序状态寄存器) , SPSR(备份程序状态寄存器) 2.ARM状态下当异常发生时, 处理器将切换进相应的模式: 2.1. 当异常发生时, 处理器将自动完成以
[单片机]
S3C2440-中断<font color='red'>体系</font><font color='red'>架构</font>
家用机器人市场前景广阔 家用机器人体系架构和零部件推荐
家用市场前景广阔, 性能细节会决定市场表现。 近年来,随着在性能、体积、成本和功耗等方面的改进,家用吸尘器、扫地机、割草机、服务机器人、、电动自行车等设备得到长足发展,极大地方便了人们的生活。我们在这里把所有这些设备统称为家用机器人。根据Statista.com的市场研究数据,全球家用机器人市场出货量预计将从2022年的1830万台,增长到2025年的2960万台,期间复合年增长率为18%。 发展趋势与设计挑战 传统的家用电器设备往往采用市电供电,功能单一。但随着()、和技术的发展,当今的家用机器人(家用电器)正在变得越来越复杂,这些机器人可以在复杂环境中导航,识别物体,并能够对语音命令做出响
[机器人]
S3C2440 初始化时钟
一、S3C2440 时钟 1、时钟树 从s3c2440的技术手册的时钟树可以了解到,它的时钟分四大块FCLK,HCLK,PCLK,UCLK。FCLK主要用于CPU的运行时钟,HCLK主要用于内存控制器,中断控制器等一些高速设备的时钟,PCLK主要用于GPIO控制器,I2C控制器等一些较低速设备的时钟,UCLK主要给USB控制器提供时钟的。时钟树如下图: 2、S3C2440支持的时钟速率 1、S3C2440的最高速率:FCLK最高支持400MHz,HCLK最高支持136MHz,PCLK最高支持68MHz。 2、在本实验将 FCLK设置为400MHz,HCLK设置为100MHz,PCLK设置为50MHz。 二、设
[单片机]
<font color='red'>S3C2440</font> 初始化<font color='red'>时钟</font>
S3C2440时钟详解
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 controlle
[单片机]
S3C2440时钟频率
系统时钟 MINI2440开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,也就是说CPU,内存,UART等需要用到时钟频率的硬件都工作12MHz下,而S3C2440A可以正常工作在400MHz下,两者速度相差可想而知,就好比牛车和动车。如果CPU工作在12MHz频率下,开发板的使用效率非常低,所有依赖系统时钟工作的硬件,其工作效率也很低,比如,我们电脑里面经常提到的超频,超频就是让CPU工作在更高的频率下,让电脑运算速度更快,虽然频率是越高越好,但是由于硬件特性决定了任何一个设备都不可能无止境的超频,电脑超频时要考虑到CPU或主板发热过大,烧坏的危险,同样开发板的主板上的外设和CPU也有一个频率限度,AR
[单片机]
<font color='red'>S3C2440</font><font color='red'>时钟</font>频率
s3c2440裸机-时钟编程(一、2440时钟体系介绍)
1.总线框架 下图是2440的总线框架,其中有AHB(Advanced High performance Bus)高速总线,APB(Advanced Peripheral Bus)外围总线。 不同总线对应不同的时钟。 SOC - FCLK AHB - HCLK APB - PCLK 其中: 1.使用AHB总线的有:LCD控制器、usb控制器、中断控制器、内存控制器等... 2.使用APB总线的有:i2c、spi、timer、gpio、adc等...具体上图。 2.时钟框架 下图表示2440 Soc的时钟框图: 下面从细节上讲解时钟体系: 1.如何选择时钟源: s3c2440时钟源有2个,一个是OSC,一个是外部时钟EXTCL
[单片机]
<font color='red'>s3c2440</font>裸机-<font color='red'>时钟</font>编程(一、2440<font color='red'>时钟</font><font color='red'>体系</font>介绍)
ARM体系架构—ARMv7-A处理器模式及寄存器
一、ARMv7-A处理器模式 ARMv7架构支持安全扩展,如果使能了安全扩展,ARMv7-A架构分为安全模式(Secure State)和非安全模式(Non-secure State)两个世界。 在非安全模式下,存在三种运行特权PL0,PL1和PL2(privilege level)。 If the Virtualization Extensions are implemented there is a privilege model different to that of previous architectures. In Non-secure state there can be three privilege l
[单片机]
ARM<font color='red'>体系</font><font color='red'>架构</font>—ARMv7-A处理器模式及寄存器
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved