一篇文章,彻底搞懂单片机时钟架构! 大家是不是常常会遇到这种情况:咦,这个外设的输出频率是多少呢?这个IIC通信的通信频率,我怎么选择呢?系统时钟是多少呢?我怎么才能精确延时1ms呢? 如果这些问题时不时的困扰你,那么推荐看看这篇文章,有助于理解系统时钟架构! 注:这篇文章,基于DSP的TMS320F28377D单片机,但是,其相关原理,具有通用性。可以说,搞明白学习方法,不同的单片机只是平台不同而已!授人以鱼不如授人以渔! 1.时钟的基本概念 什么是时钟? 时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。 时钟分为内部时钟和外部时钟! 什么是时钟周期? 时钟周期也称为振荡周期,定义为时钟脉冲的倒数。 时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us. 相关的还有:机器周期,指令周期等,注意要查漏补缺! 2. 如何学习系统时钟 第一步:打开芯片的数据手册,查看基本的信息。 例如:(基于TMS320F28377D) 我们可以看到这些信息:芯片所提供的时钟频率内存大小系统外设等等
黄色标记的是芯片直接提供的时钟频率,其他圈出来的是外设的一些信息, 数据手册可以提供给大家一些所想要知道的信息,希望能仔细阅读 此部分,留有印象即可,以后遇到详细的知识点可回头翻阅! 第二步:对时钟架构图作详细了解 除了数据手册,当然还有用户指南! 在用户指南中,找到时钟架构图,例如:
时钟架构图,可以明确的表示一些外设、内存等所提供的时钟信息,相关寄存器信息等等。然后配置相关的寄存器,即可进行倍频,分频操作! 以TMS320F28337D为例,作以下分析:分析时钟源(时钟图最左侧部分)
INTOSC1:备用内部振荡器,内部有看门口定时器和丢失时钟检测电路,用于检测时钟丢失后,第一时间切换至该时钟源INTOSC2:初级内部振荡器,上电后,该振荡器提供10MHz的频率,主要用于Boot ROM和系统时钟。X1(XTAL):X1,X2可以外接外部时钟,能够用于主时钟和辅助时钟源AUXCLKIN:一个额外的时钟源,主要用于CAN,USB等通信,通过数据手册,可以查到相关信息。 系统时钟分析
如上面,所描述的,振荡器为10MHz,CPU怎么提供200MHz的主频呢? 当然是经过倍频,分频啦!CLKSRCCTL 用来选择使用哪一个时钟源作为OSCCLK(主参考时钟)的时钟信号生成的时钟信号,一路通过PLL锁相环,生成PLLRAWCLK(系统PLL输出时钟)经过SYSPLLCTL,选择哪一个作为后续的时钟输出在经过SYSCLK Dvider进行分频,得到提供给CPU的时钟主频。 外设时钟分析
蓝色圈出来的,是相关的寄存器,用来配置时钟的分频红色圈出来的,是该频率配置后,用于哪些外设。 额外时钟源分析
AUXCLKIN:一个额外的时钟源,主要用于CAN,USB等通信,通过数据手册,可以查到相关信息。CLKSRCCTL2:对输入的时钟源(AUXCLKIN、INTOSC2、XTAL)作出选择,得到AUXOSCCLK时钟(辅助参考时钟)通过Auxiliary PLL 辅助锁相环,得到输出的时钟信号AUXPLLRAWCLK,再而进行分频,用于其他外设时钟 划重点!划重点!划重点! 学习单片机,必不可缺的就是数据手册和用户指南。 数据手册,可以快速提供单片机所支持的外设,内存的数据信息,方便我们快速查阅 用户手册,对数据手册进行详细的解释,哪一部分如何使用,对原理进行详细解释! 学习系统时钟先去数据手册,确定单片机所支持的系统时钟频率再到用户手册,寻找该单片机的时钟架构图对架构图的时钟源作详细分析对架构图的时钟输出作详细分析对应不同的外设,对不同的寄存器进行相关配置即可! 好啦,以上就是我的学习该部分的方法 如果你还是对时钟有所困惑,评论区里我们可以详细讨论呦! 感觉写的不错,别忘记 点赞+喜欢 呦! 文章同步更新于公从号 移步IT之巅公从号主要用来分享一些新资源、总结一些新知识快去看看吧,如果喜欢,可以一下呦!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/83321.html