paradoxfx

【原创】TI C2833x介绍---系统的初始化(1)

0
阅读(4419)

 

一个C2833x系统的初始化,主要包括这样几个方面:

(1)     基于OSC(晶振)或者PLL的系统的时钟模块

(2)     看门狗定时器的初始化

(3)     通用数字I/O,即通常简称的GPIO的初始化

(4)     外部中断的配置初始化

(5)     各种功耗模式的初始化,比如是不是配置为低功耗模式

(6)     寄存器的保护,主要使用一些EALLOW相关的指令

OSC/PLL时钟模块的功能是为C28x DSP片内以及片上的外设提供各种必须的基准时钟信号。其输入信号有可以是两种:一种是无源的石英晶体,价格比较便宜,但是体积比较大,相对来说在板子上会占据很大的面积;另一种是有源的晶振,比较典型的是30MHz的(其它频率的也有一些,但是30M的这种用的最多,可替代性好)。PLL由一个PLLCR寄存器的4位来配置,将CPU的时钟分为不同的速率,即

SysCtrlRegs.PLLCR.bit.DIV

CLKIN

0 0 0 0

OSCCLK / n

0 0 0 1

OSCCLK x 1 / n

0 0 1 0

OSCCLK x 2 / n

0 0 1 1

OSCCLK x 3 / n

0 1 0 0

OSCCLK x 4 / n

0 1 0 1

OSCCLK x 5 / n

0 1 1 0

OSCCLK x 6 / n

0 1 1 1

OSCCLK x 7 / n

1 0 0 0

OSCCLK x 8 / n

1 0 0 1

OSCCLK x 9 / n

1 0 1 0

OSCCLK x 10 / n

其中,PLL模块还有一个输入时钟失败的检测电路,即在PLL锁定之后,如果输入时钟丢失,则会进入”limp mode”,此时PLL的输出为1-4MHz,同时还会产生一个内部的复位信号。所以以前在论坛里面常看到自己做板子的朋友会碰到这个郁闷的”limp mode”而无法解决时,首先建议他们要做的就是仔细检查外部的晶振或者晶体输出的信号频率是否正确、信号是否稳定。