如何设置ARM?S3C24x0的系统时钟(MPLL、UPLL)?

作者:cambrain     发布时间:2025-01-22     点击数:0    

ARM S3C24x0设置系统时钟(MPLL、UPLL)主要涉及对相关寄存器的配置,以下是具体步骤及要点:

MPLL设置

1.确定目标频率

首先需要根据系统需求确定MPLL要设置的目标频率。S3C24x0的MPLL可以通过对输入时钟进行倍频等操作来产生系统时钟。例如,如果外部晶振为12MHz,而系统需要运行在400MHz的频率下,就需要通过MPLL进行合适的倍频设置。

2.计算参数值

根据MPLL的计算公式\[f_{MPLL}= \frac{M \times f_{in}}{P \times 2^{S}}\],其中\(f_{MPLL}\)是MPLL输出频率,\(f_{in}\)是输入时钟频率,\(M\)是倍增因子,\(P\)是分频因子,\(S\)是电源管理模式下的分频因子。根据目标频率和已知的输入时钟频率,计算出合适的\(M\)、\(P\)、\(S\)值。

3.配置MPLLCON寄存器

MPLL的设置主要通过配置MPLLCON寄存器来实现。该寄存器的位[19:12]用于设置\(M\)值,位[9:4]用于设置\(P\)值,位[1:0]用于设置\(S\)值。将计算得到的\(M\)、\(P\)、\(S\)值写入到MPLLCON寄存器的相应位中。例如,如果计算得到\(M = 0x5c\),\(P = 0x02\),\(S = 0x0\),则需要将MPLLCON寄存器设置为\(0x5c020000\)(假设其他位为默认值)。

UPLL设置

1.明确功能需求

UPLL主要用于为USB设备提供时钟。需要根据USB设备的工作要求,确定UPLL的输出频率。一般USB设备需要的时钟频率为48MHz或其倍数等。

2.计算UPLL参数

UPLL的计算公式与MPLL类似,\[f_{UPLL}= \frac{U \times f_{in}}{V \times 2^{W}}\],其中\(f_{UPLL}\)是UPLL输出频率,\(f_{in}\)是输入时钟频率,\(U\)是倍增因子,\(V\)是分频因子,\(W\)是电源管理模式下的分频因子。根据USB设备所需的时钟频率和输入时钟频率,计算出合适的\(U\)、\(V\)、\(W\)值。

3.配置UPLLCON寄存器

配置UPLLCON寄存器来设置UPLL。该寄存器的位[19:12]用于设置\(U\)值,位[9:4]用于设置\(V\)值,位[1:0]用于设置\(W\)值。将计算得到的\(U\)、\(V\)、\(W\)值写入到UPLLCON寄存器的相应位中。例如,若计算出\(U = 0x48\),\(V = 0x02\),\(W = 0x0\),则需将UPLLCON寄存器设置为\(0x48020000\)(假设其他位为默认值)。

4.其他相关设置

除了设置MPLLCON和UPLLCON寄存器外,还可能需要对其他相关寄存器进行配置,如CLKDIVN寄存器,用于设置时钟分频比,以确定各个模块的工作时钟频率。通过合理设置这些寄存器,确保整个系统的时钟分配满足各个模块的需求。

在进行系统时钟设置时,一定要仔细查阅S3C24x0的数据手册,了解各个寄存器的详细功能和设置要求,以确保设置的正确性和系统的稳定性。