LPC1549时钟配置寄存器版

2019-03-25 20:18发布

我用寄存器配置时钟,PLL一直锁定不了,求大虾指点#include "LPC15xx.h"                    // Device header
typedef unsigned int u16;
typedef unsigned char u8;

void SystemInit(void )
{
;
}
void delay(void)
{
        u16 i = 10000;
        while(i--);
}

void SystemCon(void )
{
        u16 j = 0;
        LPC_SYSCON_Type SYSCON;
        SYSCON.SYSOSCCTRL  = 0x00;
        SYSCON.RTCOSCCTRL  = 0x01;
        SYSCON.MAINCLKSELA = 0x03;
        SYSCON.MAINCLKSELB = 0x02;
        SYSCON.SYSPLLCLKSEL = 0x01;
        SYSCON.SYSPLLCTRL |= 0x05;
        SYSCON.SYSAHBCLKDIV = 0x01;
        delay();
        do
        {
                j = ~SYSCON.SYSPLLSTAT;
        }
        while(j);
}

int main(void )
{
        u8 a = 0;
        SystemCon();
        while(1)
        {
                a = a + 1;
                if(a>200)
                {
                        a = 0;
                }
        }


        ;
}

clock.zip (148.65 KB, 下载次数: 4) 2014-9-13 09:37 上传 点击文件名下载附件
小弟还有一事不明
clock.png
上图中的 system oscillator       、、Oscillator 、、、、 XTAL、、、、 external clock source、、、、 crystal oscillator.是什么关系,好乱不知从何理解。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
xiaotianwang78
1楼-- · 2019-03-26 00:58
_NXP LPC1000_ 根据个人使用经验,提供几个建议参考,希望有所帮助:
1、开始工程之前,参考一下例程,然后根据习惯提取自己需要的进行配置
2、看手册,有个系统时钟的原理框图,LPC15xx系列的时钟源可选择的很多,根据框图以及自己原理需要进行硬件设计及软件配置。
3、PLL配置部分,可参考----LPC1500体验+@5系统PLL配置【系列教程】,这位大神的大作,上电有顺序,每个模块的上电还有等待锁存的标志。
4、时钟源及软件预定义的时钟涵义,根据框图配合例程可一步步反跟踪回去,就可以理解其关系和配置。

freebsder
2楼-- · 2019-03-26 01:17
system oscillator:系统震荡器
Oscillator:震荡器
XTAL:外部石英晶体
external clock source:外部时钟源
crystal oscillator:晶体震荡器

>>上图中的 system oscillator       、、Oscillator 、、、、 XTAL、、、、 external clock source、、、、 crystal oscillator.是什么关系,好乱不知从何理解。
简单的说晶体振荡器由晶体和震荡电路组成,单独一个晶体是不能起震的。crystal oscillator是说的用石英晶体器件组成的震荡器,晶体crystal就是常见的那些大头头,震荡器oscillator需要配合振荡电路,匹配电容等一起。单片机里面有振荡电路也就是system oscillator,需要配合外部晶体crystal一起,就组成了crystal oscillator(system是告诉你这部分的振荡电路是单片机自己的)。

外部时钟源是说已经起振的频率发生器,比如有源晶振(器件已经带了晶体和震荡器),或者一些器件能输出稳定频率的(比如freescale的frdm,时钟就是给一个外部模块,模块起振,然后一路进到USB器件,一路输出到单片机作为时钟源)

BYPASS简单说就是外面已经有振荡电路或者稳定时钟源了,单片机自己的就不要用了,bypass掉。



freebsder
3楼-- · 2019-03-26 06:25
补充一个,内部的IRC也可以作为时钟源,资料上说也有12M。用外部晶振的原因是外部晶振精度很高,一般50ppm以下(百万分之50),而单片机自己的IRC精度大概在百分之几。所以在时钟精度没有要求的情况下,可以就用IRC。

一周热门 更多>