您的位置 首页 软件

LPC2478时钟体系学习笔记

LPC2478芯片有theMainOscillator,theInternalRCOscillator,andtheRTCoscillator三个独立的时钟系统。下面分别介绍三…

LPC2478芯片有 the Main Oscillator, the Internal RC Oscillator, and the RTC oscillator三个独立的时钟体系。下面别离介绍三者:

上电或任何复位产生时,lpc2478将the Internal RC Oscillator作为时钟源。尔后用户程序(软件)挑选是否选用其它两个时钟源。

关于lpc2478来说,其外部时钟在1MZ-24MZ之间。the Main Oscillator能够作为CPU的时钟源,也能够作为或不作为PLL的时钟源。

The oscillator(晶振) output is called oscclk。在运用the Main Oscillator作为时钟源时,其能够作业在两种形式下:slave mode and oscillation mode.

电容的挑选可参阅数据手册。咱们经过软件操控SCS register来发动the Main Oscillator作为时钟源(OSCRANGE,OSCEN,OSCSTAT位)。OSCRANGE为0,其频率为1MZ-20MZ;为1,其频率为15MZ-24MZ. OSCEN为1使能。OSCSTAT为1阐明the Main Oscillator能够作为时钟源,现已安稳。

The RTC oscillator(Real-Time Clock)首要用于实时时钟看门狗定时器,也能够用于驱动PLL和CPU.

关于运用三种时钟源时应该留意以下两点:

1、the Internal RC Oscillator不能用于USB模块。

2、假如CAN模块的波特率在100K以上时,不能运用the Internal RC Oscillator作为时钟源。

The CLKSRCSEL register的前两位决议运用哪种时钟源作为驱动PLL的时钟源。
00(默许)the Internal RC Oscillator作为驱动PLL的时钟源。

01 theMain Oscillator作为驱动PLL的时钟源。

10 The RTC oscillator作为驱动PLL的时钟源。

11保存。

PLL (Phase Locked Loop)——锁相环。LPC2478的PLL可接受32K-24MZ的驱动时钟源。经过其倍频后供应CPU和USB等模块运用.

LPC2400系列中引导发动与LPC2000系列稍有不同。其间有关PLL的部分有些需求留意。在ISP形式下,引导代码会经过IRC时钟源驱动PLL,然后发动PLL。

这就是说在咱们的用户程序开端碑文之前PLL现已使能,假如咱们挑选其他的时钟源,有必要依照过程次第断开PLL.别的,在ISP形式下,引导代码会改动某些寄存器的值。如the SCS register中的GPIOM位会被置位。用户有必要留意这点,不然或许导致PORT0 and PORT1不能正常运用。

PLL寄存器首要有以下四个。PLLCON,PLLCFG,PLLSTAT,PLLFEED。

PLLCON(可读写)包含使能和衔接位。PLL作为其他模块的时钟源之前有必要发动,使能,锁相到达安稳状况。

PLLCFG(可读写)为装备寄存器。MSEL设置‘M’的值,NSEL设置‘N’的值。下面为核算公式:FCCO = (2 × M × FIN) / N

当输入时钟FIN在MZ等级上变化时,‘M’取值规模6-512,当输入时钟在低频变化时,‘M’取特别的值(参阅数据手册)。 FIN规模是 32 kHz to 50 MHz。 FCCO规模是 275 MHz to 550 MHz。

留意:

1,假如用户程序中用到USB接口,FCCO有必要为48MZ的整数倍(如96等)。

2,在挑选CPU的时钟源,也需求考虑USB的状况,FCCO最好为两者的公倍数。低频时功耗耗费也低。

3,关于驱动PLL时钟源的挑选上述三者均可,但假如用到USB则有必要运用the main oscillator。

4,经过核算公式得到的‘N’,‘M’值有必要减一写入寄存器中。其间‘N’值最好小一点。最好运用数据手册中引荐的值。

举例:用户程序中用到USB,希望的FCCO值为288MZ,CPU作业频率60MZ,外部时钟为4MZ。

由以上公式可导出M = (FCCO × N) / (2 × FIN),假定N=1,
M = 288 × 106 / (2 × 4 × 106) = 36,PLLCFG中位0x23 (N – 1 = 0; M – 1 = 35 = 0x23)。关于CPU,288 × 106 / 60 × 106 = 4.8,取整数5即可,CPU=57.6 MHz。假如要求准确,则FCCO只能去48和60的最小公倍数480MZ,再核算即可。(更多举例请参阅数据手册)

PLLSTAT(只读)状况寄存器。MSEL, NSEL为当时值比实践运用的值小1.PLLE,PLLC为1一共PLL使能衔接。PLOCK为1一共确认相位,它能够监督PLL是否到达安稳状况,能够为下一级运用。PLOCK还衔接到了中止操控器。用户运用软件能够操控。当中止产生,PLL衔接运用,中止失效。

PLLFEED寄存器经过按次第写数据维护PLLCON,PLLCFG寄存器中的值。1. 写 0xAA to PLLFEED.2. 写 0x55 to PLLFEED.假如次第中任何一步不正确,PLLCON,PLLCFG寄存器中的值不会改动。

掉电形式下PLL主动封闭。当芯片从掉电形式下被唤醒时,PLL不会主动的衔接,有必要由软件完结(由相应的中止服务程序)。需求留意的是不能简略的经过向PLLFEED寄存器中顺次喂养发动PLL,假如这样会呈现过错。

PLL的发动设置次第:此序列非常重要不能呈现过错。

1,假如PLL现已衔接,经过喂养序列断开衔接。
2,经过喂养序列断开使能。
3,假如需求加速无锁相时的速度,改动CPU分频器的设置。
4,写The PCLKSRCSEL register以挑选相应的时钟源驱动PLL。
5,写PLLCFG,喂养序列确保收效。此刻PLL是不使能状况。
6,使能PLL, 喂养序列确保收效。
7,在使能PLL的条件下,改动CPU分频器的设置。在衔接PLL之前这一点非常重要。
8,等候PLL安稳。经过监督PLOCK(the PLLSTAT register)是否置位确认。或许经过中止完成,或许等候固定时刻。
9,衔接PLL,喂养序列确保收效。

PLL输出的时钟经过分频用于CPU和USB等模块。当USB接口使时,CPU频率有必要大于18MZ。USB接口频率有必要是48MZ的整数倍。

CPU Clock Configuration register (CCLKCFG ),装备寄存器操控PLL输出给CPU分频的巨细。当PLL无衔接时,CCLKCFG取值为1。CCLKSEL取值为0,1,3,5……255。此值加1为实践分频巨细。

USB Clock Configuration register (USBCLKCFG),装备寄存器操控PLL输出给USB分频的巨细。当PLL无衔接时,CCLKCFG取值为1。USBCLKCFG取值为0,1,2,3,4,5,6,7。此值加1为实践分频巨细。

IRC Trim Register (IRCTRIM) 该寄存器是用来调整片内的4 MHz振荡器。
Peripheral Clock Selection registers 0 and 1 (PCLKSEL0 and PCLKSEL1)该寄存器用来设置外围模块的时钟。(数据手册P58)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/264559.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部