第四讲 DSP外设应用之系统时钟.docx

上传人:b****2 文档编号:2237584 上传时间:2022-10-28 格式:DOCX 页数:9 大小:160.87KB
下载 相关 举报
第四讲 DSP外设应用之系统时钟.docx_第1页
第1页 / 共9页
第四讲 DSP外设应用之系统时钟.docx_第2页
第2页 / 共9页
第四讲 DSP外设应用之系统时钟.docx_第3页
第3页 / 共9页
第四讲 DSP外设应用之系统时钟.docx_第4页
第4页 / 共9页
第四讲 DSP外设应用之系统时钟.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

第四讲 DSP外设应用之系统时钟.docx

《第四讲 DSP外设应用之系统时钟.docx》由会员分享,可在线阅读,更多相关《第四讲 DSP外设应用之系统时钟.docx(9页珍藏版)》请在冰豆网上搜索。

第四讲 DSP外设应用之系统时钟.docx

第四讲DSP外设应用之系统时钟

第四讲DSP外设应用之系统时钟

系统时钟,即为各个模块产生所需要的时钟,如C55xcore、慢速外设(SlowPeripherals),快速外设(FastPeripherals)以及其它外设所需的基准时钟。

系统时钟的设置是任何一个可编程器件必须进行的初始化操作。

在DSP5502中,系统的时钟初始化语句为:

PLL_setFreq(1,0xC,0,1,3,3,0);

该语句为CSL(ChipSupportLibrary)库函数语句,在进行时钟设置时,系统调用该API初始化函数,以完成系统设置,对于C55x5502所涉及的时钟寄存器如下表所示:

系统涉及的函数原型为voidPLL_setFreq(Uint16mode,Uint16mul,Uint16div0,Uint16div1,Uint16div2,Uint16div3,Uint16oscdiv);

Uint16mode//PLLmode

//PLL_PLLCSR_PLLEN_BYPASS_MODE

//PLL_PLLCSR_PLLEN_PLL_MODE

Uint16mul//Multiplyfactor,Validvaluesare(multiplyby)2to15.

Uint16div0//Sysclk0DivideDown,Validvaluesare0,(divideby1)

//to31(divideby32)

Uint16div1//Sysclk1Divider,Validvaluesare0,1,and3corresponding

//todivideby1,2,and4respectively

Uint16div2//Sysclk2Divider,Validvaluesare0,1,and3

//correspondingtodivideby1,2,and4respectively

Uint16div3//Sysclk3Divider,Validvaluesare0,1and3

//correspondingtodivideby1,2and4respectively

Uint16oscdiv//CLKOUT3(DSPcoreclock)divider,Validvaluesare0

//(divideby1)to31(divideby32)

程序中,对于MODE,则5502有两种模式:

PLL旁路模式和PLL使能模式,前者是时钟未经PLL进行倍频,而后者使用PLL功能。

由于目前无源晶振生产工艺限制,其所能产生的频率超过30即会有较大的误差,而5502最高可达到300M时钟,一般需要使能PLL功能。

其它参数均为各除法器的值,查询相应的寄存器即可完成。

表1所涉及的PLL寄存器及其各相关位

PLLCSR

PLLEN,PLLPWRDN,OSCPWRDN,PLLRST,LOCK,STABLE

PLLM

PLLM

PLLDIV0

PLLDIV0,D0EN

PLLDIV1

PLLDIV1,D1EN

PLLDIV2

PLLDIV2,D2EN

PLLDIV3

PLLDIV3,D3EN

OSCDIV1

OSCDIV1,OD1EN

WAKEUP

WKEN0,WKEN1,WKEN2,WKEN3

CLKMD

CLKMD0

CLKOUTSR

CLKOUTDIS,CLKOSEL

图1系统时钟发生器

图2晶振及其时钟产生电路

图3内部时钟频率范围值

附各个寄存器相关位说明

(1)PLLControl/StatusRegister(PLLCSR)(0x1c80)

n

STABLE

6

R

1

Oscillatoroutputstable.ThisbitindicatesiftheOSCOUToutputhasstabilized.

STABLE=0:

Oscillatoroutputisnotyetstable.

Oscillatorcounterisnotdonecounting41,032referenceclockcycles.

STABLE=1:

Oscillatoroutputisstable.Thisistrueifanyoneofthethreecasesistrue:

a)Oscillatorcounterhasfinishedcounting.

b)Oscillatorcounterisdisabled.

c)Testmode.

LOCK

5

R

0

Lockmodeindicator.Thisbitindicateswhethertheclockgeneratorisinitslockmode.

LOCK=0:

ThePLLisintheprocessofgettingaphaselock.

LOCK=1:

Theclockgeneratorisinthelockmode.ThePLLhasaphaselockandtheoutputclockofthePLLhasthefrequencydeterminedbythePLLMregisterandPLLDIV0register.

PLLRST

3

R/W

1

AssertsRESETtoPLL

PLLRST=0:

PLLresetreleased

PLLRST=1:

PLLresetasserted

OSCPWRDN

2

R/W

0

Setsinternaloscillatortopower-downmode

OSCPWRDN=0:

Oscillatoroperational

OSCPWRDN=1:

Oscillatorsettopower-downmodebasedonstateofCLKMD0bitofClockModeControlRegister(CLKMD).

WhenCLKMD0=0,theinternaloscillatorissettopower-downmodewhentheclockgeneratorissettoitsidlemode[CLKISbitoftheIDLEStatusRegister(ISTR)becomes1].

WhenCLKMD0=1,theinternaloscillatorissettopower-downmodeimmediatelyaftertheOSCPWRDNbitissetto1.

PLLPWRDN

1

R/W

0

SelectsPLLpowerdown

PLLPWRDN=0:

PLLoperational

PLLPWRDN=1:

PLLplacedinpower-downstate

PLLEN

0

R/W

0

PLLmodeenable.ThisbitcontrolsthemultiplexerbeforedividersD1,D2,andD3.

PLLEN=0:

Bypassmode.DividerD1andPLLarebypassed.SYSCLK1to3divideddown

directlyfrominputreferenceclock.

PLLEN=1:

PLLmode.DividerD1andPLLarenotbypassed.SYSCLK1to3divideddownfromPLLoutput.

(2)PLLMultiplierControlRegister(PLLM)

15-5

4-0

Reserved

PLLM

PLLM

4:

0

R/W

00000

PLLmultiplier-select

PLLM=00000−00001:

Reserved

PLLM=00010:

Times2

PLLM=00011:

Times3

PLLM=00100:

Times4

PLLM=00101:

Times5

PLLM=00110:

Times6

PLLM=00111:

Times7

PLLM=01000:

Times8

PLLM=01001:

Times9

PLLM=01010:

Times10

PLLM=01011:

Times11

PLLM=01100:

Times12

PLLM=01101:

Times13

PLLM=01110:

Times14

PLLM=01111:

Times15

PLLM=10000−11111:

Reserved

(3)PLLDivider0Register(PLLDIV0)(Prescaler)

15

14-5

4-0

D0EN

Reserved

PLLDIV0

D0EN

15

R/W

1

DividerD0enable

D0EN=0:

Divider0disabled

D0EN=1:

Divider0enabled

PLLDIV0

4:

0

R/W

00000

DividerD0ratio

PLLDIV0=00000:

Divideby1

PLLDIV0=00001:

Divideby2

PLLDIV0=00010:

Divideby3

.

.

.

PLLDIV0=11111:

Divideby32

(4)PLLDivider1Register(PLLDIV1)forSYSCLK1

15

14-5

4-0

D1EN

Reserved

PLLDIV1

D1EN

15

R/W

1

DividerD1enable

D1EN=0:

Divider1disabled

D1EN=1:

Divider1enabled

PLLDIV1

4:

0

R/W

00011

DividerD1ratio(SYSCLK1divider)

PLLDIV1=00000:

Divideby1

PLLDIV1=00001:

Divideby2

PLLDIV1=00010:

Reserved

PLLDIV1=00011:

Divideby4

PLLDIV1=00100−11111:

Reserved

PLLDIV2和PLLDIV3的位定义与PLLDIV1完全一样,在此不再重复写了。

(5)OscillatorDivider1Register(OSCDIV

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1