TM4的系统时钟频率

TM4的系统时钟频率

首先上一张时钟树的图:
主时钟树

虽然时钟树乍看上去很复杂,不过慢慢学,明白了就会发现它其实很简单,都是顺着脉络走。
先来看操作函数:
void SysCtlClockSet(uint32_t ui32Config);
该函数即是设置整个单片机的工作频率。

关于该函数的参数详细说明

1、所有参数见sysctl.h该文件

该处拿出部分参数:

//*****************************************************************************
//
// The following are values that can be passed to the SysCtlClockSet() API as
// the ui32Config parameter.
//
//*****************************************************************************
#define SYSCTL_SYSDIV_1         0x07800000  // Processor clock is osc/pll /1
#define SYSCTL_SYSDIV_2         0x00C00000  // Processor clock is osc/pll /2k is pll / 2.5z
#define SYSCTL_CFG_VCO_320      0xF0000000  // VCO is 320 MHz
#define SYSCTL_USE_PLL          0x00000000  // System clock is the PLL clock
#define SYSCTL_USE_OSC          0x00003800  // System clock is the osc clock
#define SYSCTL_XTAL_1MHZ        0x00000000  // External crystal is 1MHz
#define SYSCTL_XTAL_16MHZ       0x00000540  // External crystal is 16 MHz
#define SYSCTL_OSC_MAIN         0x00000000  // Osc source is main osc
#define SYSCTL_OSC_INT          0x00000010  // Osc source is int. osc
#define SYSCTL_OSC_INT4         0x00000020  // Osc source is int. osc /4
#define SYSCTL_OSC_INT30        0x00000030  // Osc source is int. 30 KHz
#define SYSCTL_OSC_EXT32        0x80000038  // Osc source is ext. 32 KHz
#define SYSCTL_INT_OSC_DIS      0x00000002  // Disable internal oscillator
#define SYSCTL_MAIN_OSC_DIS     0x00000001  // Disable main oscillator

2、配置实例

SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |  SYSCTL_XTAL_16MHZ);

SYSCTL_SYSDIV_5 表示分频值,为5分频。
SYSCTL_USE_PLL 表示系统时钟使用锁相环达到400Mhz(PLL介绍)。
SYSCTL_XTAL_16MHZ 表示外部晶振是16MHz。
SYSCTL_OSC_MAIN 表示时钟使用主振荡器。

综合起来:时钟频率等于400/2/5 = 40MHz

在时钟树上即:
系统时钟确定
是不是很清晰易懂?

3、注意事项:

我们在使用TM4这款单片机的时候需要注意如果用了锁相环,则分频系数至少为2.5,因为400/2/2.5=80,TM4最高时钟频率是80MHz。

猜你喜欢

转载自blog.csdn.net/D_XingGuang/article/details/89354100
tm