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校准的。
本节内容讲述了芯片时钟系统和其初始化过程,那么后续还需继续初始化其他模块,我们下期再见。
阿里、腾讯争相布局智能医疗领域,平台战火烧向生态方面延伸
Arduino101/ Genuino101平台的特点介绍
德国E+H集团工业压力传感器去年营收做到2.3亿元
如何提高物联网安全性?
国产大飞机C919有望获得适航证
DSP28335学习笔记(3):InitSysCtrl
机器换人加速推动产业高质量发展和助推现代化发展进程
江波龙SSD产品S800和P800系列分析
荣耀8手机热卖半年多却没降过价,你知道是为什么吗?
抖音再回应起诉腾讯
友达将展出全系列采用MiniLED背光技术的显示面板
pcb板制作流程
强大的产品力和成熟的制造体系 正在逐步向新能源汽车市场迈进
“物联中国,智慧未来”ELEXCON 2019将于深圳盛大召开
宜宾锂宝在三元材料方面三大致胜“武器”是什么
牙膏踩爆!Intel 5nm工艺曝光:直逼IBM 2nm
中国联通发布了2020年第一季度主要财务与运营数据
平面变压器的选型原则_平面变压器的应用
人工智能面临哪一些风险
H3C AC无线接入点FAT与FIT模式切换方法