1 S3C2440如何设置系统时钟-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S3C2440如何设置系统时钟

工程师邓生 来源:未知 作者:刘芹 2023-09-02 15:12 次阅读

S3C2440如何设置系统时钟

S3C2440是一款嵌入式处理器,属于SAMSUNG公司ARM9系列。系统时钟是嵌入式系统中非常重要的一个参数,它决定了系统的计算速度和精度,是系统稳定性的关键因素之一。对于S3C2440来说,正确设置系统时钟是实现其高效稳定运行的前提条件之一。本文将详细介绍如何设置S3C2440的系统时钟。

一、 S3C2440的时钟系统架构

在了解如何设置S3C2440的系统时钟之前,我们需要先了解一下S3C2440的时钟系统架构。

我们可以看到S3C2440的时钟系统主要由一个PLL锁相环和各种分频器组成。其中,PLL锁相环是时钟系统的核心,它的作用是将输入的基准信号(XTAL或OSC)通过分频器进行分频,然后通过PLL锁相环进行倍频,最终产生所需要的系统时钟。在S3C2440中,PLL锁相环有两个,分别为PLL0和PLL1,它们的输出时钟可以通过寄存器控制。

二、 S3C2440的系统时钟设置流程

了解了S3C2440的时钟系统架构之后,接下来我们就可以开始设置S3C2440的系统时钟了,下面是系统时钟设置的详细步骤:

1、 确定系统时钟频率

在设置S3C2440的系统时钟之前,我们需要先明确所需要的时钟频率。根据实际需要,可以选择不同的时钟频率,如12MHz、13MHz、16MHz等。需要注意的是,时钟频率不能太高或太低,否则会影响系统的稳定性。

2、 设置PLL0时钟

在确定系统时钟频率后,我们可以开始设置PLL0时钟。PLL0时钟的输出频率需要在50MHz~533MHz之间,可以通过设置PLL0的分频器和倍频器来实现。具体的设置方法如下:

(1) 设置MPLLCON寄存器

MPLLCON寄存器用于设置PLL0的参数,包括分频器和倍频器。具体的设置方法如下:

```C
#define FCLK 50000000 // FCLK时钟为50MHz

void PLL0_Init(void)
{
// 定义需要设置的PLL0参数
unsigned int mdiv, pdiv, sdiv;
unsigned int pllcon, clksrc, clkdivn;

// 设置PLL0的MPLLCON寄存器
Get_Frequency(&mdiv, &pdiv, &sdiv, FCLK, SCLK);
pllcon = (mdiv << 12) | (pdiv << 4) | (sdiv << 0);
rMPLLCON = pllcon;

// 设置系统时钟的源和分频器
clksrc = 0x3; // 旁路模式
clkdivn = 0x1; // FCLK = HCLK / 2
rCLKDIVN = (clksrc << 0) | (clkdivn << 4);
}
```

上面的代码中,我们首先定义了需要设置的PLL0参数mdiv、pdiv和sdiv,然后通过Get_Frequency函数计算出具体的参数值,并将其写入MPLLCON寄存器中。其中,mdiv和pdiv分别为PLL0输入频率与PLL0倍频系数的商和余数,sdiv为PLL0输入频率与PLL0分频系数的商。最后,我们通过设置CLKDIVN寄存器的值来设置系统时钟的源和分频器。

(2) 设置MPLLCON寄存器

如果需要使用PLL1时钟,我们可以按照同样的方法来设置PLL1的参数并将其写入UPLLCON寄存器中,具体代码如下:

```C
void PLL1_Init(void)
{
// 定义需要设置的PLL1参数
unsigned int plldivn;
unsigned int pllcon;

// 设置PLL1的UPLLCON寄存器
plldivn = 0x1;
pllcon = (plldivn << 1);
rUPLLCON = pllcon;
}
```

3、 设置系统时钟

在设置好PLL0/PLL1之后,我们就可以根据实际需要来设置系统时钟了。系统时钟可以通过设置CLKDIVN寄存器来实现。具体的设置方法如下:

```C
void System_Init(void)
{
// 设置PLL0/PLL1参数和系统时钟分频器
PLL0_Init();
PLL1_Init();

// 设置系统时钟分频器
rCLKDIVN = 0x5;
}
```

上面的代码中,我们首先调用了PLL0_Init()和PLL1_Init()函数来设置PLL0和PLL1的参数,然后设置了系统时钟分频器为0x5,表示系统时钟为PLL0的输出频率除以5。需要注意的是,系统时钟的分频器值不能太小或太大,否则会影响系统的稳定性。

4、 配置外设时钟

在设置好系统时钟之后,我们还需要配置外设时钟才能使外设正常工作。在S3C2440中,外设时钟可以通过CLKCON寄存器来配置。具体的设置方法如下:

```C
void Peripheral_Init(void)
{
// 设置SDRAM时钟和NAND Flash时钟
rCLKCON = rCLKCON & (~(1 << 0)) & (~(1 << 1));

// 设置UART0时钟
rCLKCON = rCLKCON & (~(1 << 9));
}
```

上面的代码中,我们首先关闭SDRAM时钟和NAND Flash时钟,并将CLKCON寄存器的第0和第1位清零。然后,我们关闭UART0时钟,并将CLKCON寄存器的第9位清零。根据实际需要,我们还可以配置其他外设的时钟。

三、 总结

本文详细介绍了如何设置S3C2440的系统时钟,包括设置PLL0/PLL1和系统时钟分频器,以及配置外设时钟。通过正确设置系统时钟,可以提高S3C2440的运行效率和稳定性,使其更好地适应不同的应用场景。作为嵌入式开发人员,了解和掌握S3C2440的时钟系统架构和设置方法是非常重要的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分频器
    +关注

    关注

    43

    文章

    447

    浏览量

    49873
  • S3C2440
    +关注

    关注

    4

    文章

    132

    浏览量

    38863
  • 嵌入式处理器

    关注

    0

    文章

    253

    浏览量

    30737
  • 倍频器
    +关注

    关注

    8

    文章

    76

    浏览量

    35519
  • 系统时钟
    +关注

    关注

    1

    文章

    30

    浏览量

    9306
收藏 人收藏

    评论

    相关推荐

    快速学习全志T113-S3 开发板时钟操作

    不同的场景下需要对时钟进行不同的使用操作。产品简介眺望电子EVM-T113-S3是一款基于全志T113-S3双核ARMCortex-A7+单核HiFi4DSP异构多核
    的头像 发表于 12-06 01:04 266次阅读
    快速学习全志T113-<b class='flag-5'>S3</b> 开发板<b class='flag-5'>时钟</b>操作

    MHMF082L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF082L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF082L1C3-网络式伺服A6N 设置
    发表于 11-04 19:20
    MHMF082L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    TMS320C6000系统时钟电路示例

    德赢Vwin官网 网站提供《TMS320C6000系统时钟电路示例.pdf》资料免费下载
    发表于 10-28 10:33 0次下载
    TMS320<b class='flag-5'>C</b>6000<b class='flag-5'>系统</b><b class='flag-5'>时钟</b>电路示例

    MHMF042L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF042L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF042L1C3-网络式伺服A6N 设置
    发表于 10-10 19:02
    MHMF042L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    MHMF041L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF041L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF041L1C3-网络式伺服A6N 设置
    发表于 09-10 18:44
    MHMF041L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    MHMF022L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF022L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF022L1C3-网络式伺服A6N 设置
    发表于 08-08 18:37
    MHMF022L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    MHMF021L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF021L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF021L1C3-网络式伺服A6N 设置
    发表于 07-18 18:47
    MHMF021L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    MHMF012L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF012L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF012L1C3-网络式伺服A6N 设置
    发表于 07-04 19:14
    MHMF012L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    如何设置ESP32C3的I2S LCD多路并行信号输出?

    哪位大神能否告诉下如何设置ESP32C3的I2S LCD多路并行信号输出?现在IDF上的驱动貌似只能设置单路信号输出.
    发表于 06-21 07:42

    请问esp32-s3驱动rgb屏像素时钟频率pclk可设置多大?

    esp32-s3 驱动rgb屏像素时钟频率pclk可设置多大?
    发表于 06-18 07:44

    MHMF011L1C3-网络式伺服A6N 设置例 松下

    德赢Vwin官网 网为你提供Panasonic(Panasonic)MHMF011L1C3-网络式伺服A6N 设置例相关产品参数、数据手册,更有MHMF011L1C3-网络式伺服A6N 设置
    发表于 06-11 19:15
    MHMF011L1<b class='flag-5'>C3</b>-网络式伺服A6N <b class='flag-5'>设置</b>例 松下

    基于S3C2440和专用DSP的嵌入式四轴运动控制器

     PCL6045BL是一种新型专用DSP运动控制芯片,它具有强大的数据处理能力和较高的运行速度,可以实现高精度的多轴伺服控制。为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,文中给出一种基于ARM 微处理器S3C2440与DSP运动控制芯片
    发表于 05-03 10:44 544次阅读
    基于<b class='flag-5'>S3C2440</b>和专用DSP的嵌入式四轴运动控制器

    使用CYB06445LQI-S3D42设备配置系统时钟,BSP在时钟初始化时失败怎么解决?

    我们正在使用 CYB06445LQI-S3D42 设备。 从默认时钟配置开始效果很好。 当我们尝试根据电路板设计配置系统时钟(我们有 ECO)时,BSP 无法初始化
    发表于 01-19 06:12

    临时用电供电系统模式设置的问题

    施工现场临时用电供电系统设置时,注意供电系统应满足规范要求。如提供专用变压器时,必须采用TN-S供电系统。如果提供电源为市区公用供电线路时,
    的头像 发表于 01-02 09:23 1037次阅读

    S3C2440的SPI0与AD7739通信,S3C2440作为主机,请问波特率应根据什么设置,应设置为多少?

    我用的S3C2440的SPI0与AD7739通信,S3C2440作为主机,请问波特率应根据什么设置,应设置为多少?问题比较低级,请勿见笑。
    发表于 12-22 06:56