学嵌入式学一个理念,彻底搞懂单片机时钟架构
学嵌入式学一个理念,彻底搞懂单片机时钟架构
\\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我(禾厶-亻言-手戈)免費的。最近比较闲,带做毕设,带学生参加省级以上比赛///
大家是不是常常会遇到这种情况:
·咦,这个外设的输出频率是多少呢?
·这个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之巅
公从号主要用来分享一些新资源、总结一些新知识
快去
绿色图标【‟で】liutianwang123