DSP28335学习笔记(3):InitSysCtrl

描述

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校准的。

本节内容讲述了芯片时钟系统和其初始化过程,那么后续还需继续初始化其他模块,我们下期再见。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分