奢侈品+网站建设方案,厦门外贸网站,app备案查询平台官网,好搜网惠州seo一、时钟源
系统时钟源有5种#xff1a;
外部主晶振8M-24M。(main osc)
外部副晶振32.768KHz。 #xff08;sub osc#xff09;
内部高速晶振8M。(high speed int osc)
内部低速晶振240KHz。(low speed int osc)
PLL倍频器。
Note 1. 外部副晶振只有 144 pin and 17…一、时钟源
系统时钟源有5种
外部主晶振8M-24M。(main osc)
外部副晶振32.768KHz。 sub osc
内部高速晶振8M。(high speed int osc)
内部低速晶振240KHz。(low speed int osc)
PLL倍频器。
Note 1. 外部副晶振只有 144 pin and 176 pin产品有。
时钟源如下图 隔离时钟域ISO Clock domains是可以关闭的时钟系统。常开时钟域IAWO Clock domains是不能关闭的时钟系统。
每个外设都有时钟选择寄存器选择需要的时钟。外设时钟这里不讨论。 二、时钟源相关的寄存器说明 技术规格书列出的时钟源寄存器 主晶振寄存器
2.1 MOSCE主晶振使能寄存器MainOSC Enable Register MOSCE主晶振使能寄存器可以32bit读写。地址FFF8 1100H复位值0000 0000H。 Bit position Bit Name Function 31 - 2 保留 1 MOSCDISTRG 0:无影响1禁止主晶振 0 MOSCENTRG 0:无影响1使能主晶振
MOSCDISTRG: MOSC Disable Trigger
MOSCENTRG MOSC Enable Trigger
使用外部晶振必须使能。MOSCENTRG 1。 2.2 MOSCS主晶振状态寄存器MainOSC Status Register MOSCE主晶振状态寄存器只能32bit读。地址FFF8 1104H复位值0000 0000H。 Bit position Bit Name Function 31 - 3 保留 2 MOSCCLKACT 0:主晶振没有工作1主晶振工作正常 1、0 保留 MOSCCLKACT MOSC Clock Acative
这个bit判断主晶振是否正常工作。 2.3 MOSCC主晶振控制寄存器MainOSC Control Register MOSCC主晶振控制寄存器可以32bit读写。地址FFF8 1108H复位值0000 0004H。 Bit position Bit Name Function 31 - 2 保留 1、0 MOSC AMPSEL[1:0] 主时钟频率选择 00: 20Mfx24M 01: 16Mfx20M 10: 8Mfx16M 11: 8M AMPSEL[1:0]选择主晶振频率。按外接晶振频率设置即可。 2.4 MOSCST主晶振稳定延时寄存器MainOSC Stabilization Time Register MOSCST主晶振稳定延时寄存器可以32bit读写。地址FFF8 110CH复位值0000 44C0H。 Bit position Bit Name Function 31 - 17 保留 16 - 0 MOSC CLKST[16:0] 主时钟稳定时间寄存器这个时间是上电到主时钟稳定的时间设置。只有主时钟稳定了才能切换到外部主时钟。 如果内部高速晶振使能了稳定时间是MOSCCLKST/frh。如果内部高速晶振不使能稳定时间是MOSCCLKST/frl。
2.5 MOSCSTPM主晶振停止屏蔽寄存器MainOSC Stop Mask Register MOSCSTPM主晶振停止屏蔽寄存器可以32bit读写。地址FFF8 1118H复位值0000 0002H。 Bit position Bit Name Function 31 - 1 保留 0 MOSCSTPMSK 0待机模式主晶振停止 1待机模式主晶振工作
副晶振寄存器
2.6 SOSCE 副晶振使能寄存器— SubOSC Enable Register
功能同主晶振使能寄存器
2.7 SOSCS副晶振状态寄存器— SubOSC Status Register
功能同主晶振状态寄存器
2.8 SOSCST副晶振稳定延时寄存器 — SubOSC Stabilization Time Register
功能同主晶振稳定延时寄存器 内置振荡器寄存器
2.9 ROSCE内置振荡器使能寄存器— HS IntOSC Enable Register
功能同主晶振使能寄存器只有禁止功能没有使能功能。
2.10 ROSCS 内置振荡器状态寄存器— HS IntOSC Status Register
功能同主晶振状态寄存器
2.11 ROSCSTPM内置振荡器停止屏蔽寄存器 — HS IntOSC Stop Mask Register
功能同主晶振停止屏蔽寄存器 PLL倍频器寄存器
2.12 PLLE PLL使能寄存器 — PLL Enable Register
功能同主晶振使能寄存器
2.13 PLLS PLL状态寄存器— PLL Status Register
功能同主晶振状态寄存器 2.14 PLLC PLL控制寄存器— PLL Control Register Bit position Bit Name Function 31 - 17 保留 16 OUTBSEL fCPLLCLK选择 0和fPPLLCLK相同 1fVCOOUT / 5 15 - 13 保留 12,11 M[1:0] M1 M0 Mr-Value MainOSC frequency fX 0 0 1 8 MHz ≤ fX ≤ 24 MHz 0 1 2 16 MHz ≤ fX ≤ 24 MHz 1 0 3 fX 24 MHz 1 1 禁止设置 10 - 8 PA[2:0] PA[2:0] Par-Value PLL output frequency range 000 禁止设置 / 001 禁止设置 / 010 4 60 MHz to 80 MHz 011 6 40 MHz to 80 MHz 100 8 30 MHz to 60 MHz 101 16 25 MHz to 30 MHz 110 禁止设置 / 111 禁止设置 / 7,6 保留 5-0 N[5:0] 设置分流比Nr For N[5:0] example settings, see Table 10.16, PLL Output Table. PLL以上几个参数的配置技术规格书给出了表格只要查询就可以得到。以下是主晶振16MHz的表格其他表格对应查找即可。 Table 10.16, PLL Output Table 采用16M外部晶振PLL输出主频80M。所以配置PLL控制寄存器配置为
OUTBSEL 0Mr 2;Par4N5-N0 100111 0x27。
Mr2所以配置M1 M0 01。
Par 4所以配置PA[2:0] 010。
所以PLLC 0000 1010 0010 0111b 0A27H。 配置例程
/*写保护寄存器*/
void protected_write(unsigned int pro_ reg, unsigned int pro_status, unsigned int reg, unsigned int value)
{
Do
{ pro_ reg 0xa5; reg value; reg ~value; reg value;
} while(pro_status 1u) } void Init_Clocks(void)
{
/*配置主晶振 16M*/
if((MOSCS0x04u) ! 0x4u) /* 检测MainOsc 有没有启动 */ {
MOSCC0x06; /* 10B(8MHz MOSC frequency 16MHz) */ MOSCST0x8000; /* 设置稳定延时时间(8,19 ms) */
protected_write(PROTCMD0,PROTS0,MOSCE,0x01u); /* MOSCE0x01,使能主晶振*/
while ((MOSCS0x04u) ! 0x04u); /* 等待MainOSC正常工作 */
}
/*配置PLL 80M*/
if((PLLS0x04u) ! 0x04u) /* 检测PLL有没有启动 */
{
PLLC0x00000a27u; /* 配置PLL控制寄存器主晶振 16MCPLLOUT,PPLLOUT输出80M数据来源见前面分析*/
protected_write(PROTCMD1,PROTS1,PLLE,0x01u); /*使能 PLL */
while((PLLS0x04u) ! 0x04u) /*等待 PLL正常工作 */
}
/*配置CPU时钟80M*/
protected_write(PROTCMD1,PROTS1,CKSC_CPUCLKD_CTL,0x01u); /*CPU时钟不分频80M */ while(CKSC_CPUCLKD_ACT!0x01u);
protected_write(PROTCMD1,PROTS1,CKSC_CPUCLKS_CTL,0x03u); /*CPU时钟源选择,BIT1-0, 3-PLL输出CPLLCLK*/
while(CKSC_CPUCLKS_ACT!0x03u); /*等待 CPU时钟正常工作 */
} 程序经实测CPU工作频率80M。