DSP28377s系统时钟配置注意事项

问题一脸嫣然的向我们走来。。。

近日,一个兄弟在配置基于28377s芯片的主控系统时钟时,遇到点困难。

具体是这样的,原来的主控板使用的是20MHz外部晶振,为取200MHz系统时钟,倍频设为20,分频设为2,这样sysclock = 20MHz * 20 / 2,正好200MHz。具体调用TI公司的库函数,实现代码是这样的:

InitSysPll(XTAL_OSC,IMULT_20,FMULT_0,PLLCLK_BY_2);

但新的控制板上面使用了30MHz外部晶振,为配置200MHz系统时钟,此兄弟将倍频设为40,分频设为6,代码如下:

InitSysPll(XTAL_OSC,IMULT_40,FMULT_0,PLLCLK_BY_6);

计算下来,系统时钟也应该是200MHz,不过,按此配置后,程序运行就卡死在定时器1、2溢出while循环里了。
为什么呢?

这个算术应该是很简单的,30MHz x 40 / 6 不就是200MHz吗?为什么芯片会执行不正常呢?

我们来看看,28系列dsp的系统时钟产生模式:

内外部时钟,可通过CLKSRCCTL1来选择哪个作为时钟源,之后所选的时钟源可由SYSPLLCTL1选择是否经PLL倍频后使用,一般为了DSP能够高速运算,我们都会选择使用PLL的。那么经过PLL之后,我们会得到PLLRAWCLK,然后再通过SYSCLKDIVSEL进行分频,最终就会得到我们想要的系统时钟了。

结合上面的代码,倍频过程就是通过IMULT_xx,FMULT_x两个参数实现的,前者代表整数,后者代表小数,具体就不赘述了;分频就是由PLLCLK_BY_x这个参数实现的。

好,说了这么多,还没有说到正题呢,倍频又分频,搞这么多事,问题到底出在哪儿呢?

原来,我们的PLLRAWCLK并不是super man,你跑多快它都能接住,它是有一个acceptable range ,那这个可接受范围是多少呢?

请君移步来看TI公司的28377s的规格文档,在里面表5-12有清晰的说明,如下:

原来PLLRAWCLK最大只能到400MHz,那么反过来看我们前面的配置,30MHz的晶振经过40倍频,已经达到了1200MHz,远远超出了允许范围,DSP很抱歉的说,它玩不转了。
华丽丽的解决方案

原因搞清楚后的感觉真是让人很畅快的,既然搞清楚了原因,那么怎么解决这个问题会比较好呢?当然可以简单的降低倍频,比如30MHz做10倍频,然后2分频,得到150MHz的系统时钟。不过28377s的最大系统时钟可以到200MHz,这样解决貌似还是牺牲了点芯片性能呢。

让我搜肠刮肚的想想,400除以30得13.3333。。。。抱歉,它可以无限循环下去,那么比它小的可以配置的最大数是多少?13.25(小数只能有0,0.25,0.5,0.75四个选择),没错,就是它!这样可以得到397.5MHz的倍频输出,再作2分频,系统时钟198.75MHz,应该是最大限度的利用了。

按照上面的配置,代码如下:

InitSysPll(XTAL_OSC,IMULT_13,FMULT_0pt25,PLLCLK_BY_2);

作者: 大风当歌

出处: https://www.cnblogs.com/arron-zx/>

关于作者:专注于电力电子控制算法及产品设计,新能源及电动汽车等领域

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(150509134@qq.com)咨询.

DSP28377s系统时钟配置注意事项相关推荐

  1. STM32开发---F103系统时钟配置

    本篇,用自问自答,记录STM32系统时钟配置一些关节点. 因为已重写了系统时钟配置的代码,不再细研配置的过程.步骤,忘了就翻代码就好,且网上不缺絮絮叨叨的各种教程. 一句话总结:  过程高深, 使用简 ...

  2. STM32F103学习之系统时钟配置

    STM32F103学习之系统时钟配置 文章目录 一.根据时钟源配置系统时钟(SYSCLK) 二.系统时钟配置步骤 1.代码 一.根据时钟源配置系统时钟(SYSCLK) 1.开发板选择的8M的外部高速时 ...

  3. Cubemx与HAL库系列教程|系统时钟配置详解及源码分析

    STM32时钟系统简介 STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统 1.时钟种类介绍: 先来看一看时钟树图,包含了整个系统 ...

  4. STM32F103 时钟树以及系统时钟配置

    1.时钟树 STM32的时钟树大致可分为3部分: 陶瓷晶振输入,进入预分频器 预分频器输出信号给到PLL倍频器 最终AHB桥总线速度,以及各总线的速度 晶振信号输入到芯片后有两条支路可以走,第一条是直 ...

  5. STM32系统时钟配置及时钟树

    参考资料:< STM32F4xx 中文参考手册> RCC 章节. STM32时钟可大致分为系统时钟和其它时钟两大类,总共包含5个时钟源 HSI(High Speed Internal Cl ...

  6. STM32F103系统时钟配置

    文章目录 一.系统时钟原理图 二.系统时钟配置方法 1.通过汇编进入系统初始化函数(startup_stm32f10x_hd.s) 2.在系统初始化函数SystemInit中调用系统时钟设置函数Set ...

  7. stm32查看系统时钟配置

    文章目录 前言 一.固件库已有定义好的时钟结构体 二.查看步骤 1.定义时钟结构体变量 2.调用函数 致谢 前言 开发板:野火指南者stm32f103vet6 开发工具:keil5 目的:通过keil ...

  8. STM32CubxMX时钟配置注意事项

    1.RCC时钟的选择 这里有两个选项,选择时一定要根据硬件设计来选择 BYPASS Clock Source 是选择有源晶振 Crystal/Ceramic Resonator 是选择无源晶振 1) ...

  9. LPC2148的系统时钟配置II

    使用官方LPCXpresso IDE ,可以参考的资料实在太少了, 调试串口通信,两天了不成功,没想到IDE自动生成的启动文件cr_startup_lpc21.s 有BUG,在这里做个记录吧,避免以后 ...

最新文章

  1. 漫谈流式计算的一致性
  2. 分享一个centos不错的镜像库
  3. python字符串类型str_python数据类型之字符串类型str
  4. pugixml解析Word
  5. 数据:以太坊2.0合约余额新增1.28万ETH
  6. [HTML5_资源]给网页设计师的30个HTML5学习资源
  7. 如何实现一个Servlet中的多个功能
  8. 英特尔中国研究院院长宋继强:摩尔定律的经济效益仍在继续
  9. 《51单片机应用开发从入门到精通》——2.10 变频报警实例
  10. PostgreSQL客户端验证
  11. 核心路由器十项性能指标(转)
  12. synchronized和Lock的异同
  13. 免费教程《Excel VBA:办公自动化》
  14. 苹果公布Apple Watch手表新专利,可穿戴设备少不了Find My技术
  15. 比周杰伦更受欢迎:黄圣依人气假得过分吹捧得更过分
  16. Zxing扫码库优化思路
  17. 面试侃集合 | ArrayBlockingQueue篇
  18. 石英晶振的特点及主要参数
  19. java习题4_6水仙花数是指其个位、十位和百位三个数字的立方和等于这个三位数本身,求出所有的水仙花数。
  20. 矿产行业商业供应链协同系统解决方案:构建数智化供应链平台,保障矿产资源安全供应

热门文章

  1. python中比较运算符
  2. 招聘:JAVA软件开发工程师
  3. BERYL和COMPIZ FUSION的安装与使用
  4. 弘辽科技:拼多多商品转化率多少正常?怎么提高?
  5. uniApp 生命周期【应用生命周期 和 页面生命周期】
  6. 程序员必备注释模板——“佛祖保佑 永无bug“
  7. 〔王鹰教程五〕和弦的分类记忆法
  8. seo和sem有什么关系
  9. 上 k8s 生产环境的一些准备!
  10. CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面18--内网的讯时FXO网关SIP对接到内网的FreeSWITCH