1.前言
在上一节中,我们讲到DSP28335的启动原理,启动后来到main函数执行用户代码。我们现在已经启动完成,那么启动后我们如何对芯片进行配置呢?
依据我们的经验,芯片启动后第一件事是进行初始化,具体对哪些模块或者如何进行初始化,这期我们就来聊聊如何对芯片进行初始化。
2.InitSysCtrl
TI官网给我们提供了InitSysCtrl函数,我们芯片启动后的第一件事,就是调用这个函数来对它进行初始化配置。
该函数在我们的工程的MCU_Library/src路径下,其内容如上图所示。
3.关闭看门狗
一般在器件进行所有初始化配置之前,我们需要关闭看门狗再去配置,防止在配置过程中因没有喂狗而导致看门狗复位,程序始终跑不起来。
禁止看门狗的程序如上图所示,在WDCR寄存器中写入0x0068。
至于为什么写入0x0068,详情请看上图的寄存器描述。
4.锁相环配置
我们首先了解下系统的时钟来源。
如上图所示,系统时钟可以由外部时钟输入,还可以由外部晶振通过内部振荡器产生时钟。
无论是哪种时钟源,我们都可以对其进行分频、倍频。一般我们使用30M外部晶振,经过内部振荡器得到时钟源。而28335推荐最高稳定频率为150Mhz,既然我们花较为高昂的价格使用这款产品,我们就应该尽量释放它的性能。
时钟源在供给到CPU之前,可通过 PLLCR[DIV]、PLLSTS[DIVSEL]对其倍频、分频操作。
上图表格描述了这两个寄存器配置相应的值后得到系统主频的算式,我们可依据此表格进行配置。
当然,这个配置它有一定的限制条件。
这些是一些限制条件,在TI提供给我们的配置函数全部有所体现,我们就不一一描述,我们可以对照程序和文档观察,很容易就能发现它的配置规律。配置流程图如下。
TI提供给我们的例程中的函数就是如上图所示的流程所配置的。
5.外设时钟初始化
初始化系统时钟后,我们对外设时钟进行初始化,外设时钟框图如下图所示。
一般外设时钟有二级分频,首先是高速外设时钟、低速外设时钟对系统时钟的分频,然后是某个外设对高速外设时钟或低速外设时钟的分频。
在某个外设对高速外设时钟或低速外设时钟分频之前,我们需要使能该外设时钟才能进行操作。为了避免后续外设使用过程中因没开时钟导致的一系列错误问题,我们在对系统进行初始化时,将外设时钟使能(打开)。
外设时钟的配置如下图所示。
这里的相关寄存器配置非常清晰,这里不再重复啰嗦。特别的是,中间进行了ADC校准,所以推断芯片默认引导方式是没有进行ADC校准的。
本节内容讲述了芯片时钟系统和其初始化过程,那么后续还需继续初始化其他模块,我们下期再见。
全部0条评论
快来发表一下你的评论吧 !