玩转STM32(10)CPU的脉搏

前面学习了怎么样下载程序到开发板, 并且可以运行起来,看到LED灯轮回地亮灭。你也许很好奇为什么LED会轮流地亮灭,像拥有生命一样,具有周期性地工作。要解决这个问题,我们得学习CPU的脉搏,那么什么是CPU的脉搏呢?其实CPU就是一堆泥沙和一些金属组成的,本身是不具备这种生命的特性,那么它周期性地工作的秘密又是什么呢?其实CPU之所以有这种特性,是因为它靠一个振荡电路来实现,这个振荡电路就是CPU的心脏,如果没有它是不可能产生任何的跳动。

 

在这个振荡电路里,你也许听过石英晶振这个名称,为什么要使用它呢?物理学家在研究物质的属性时,发现石英有一个特性,当把石英放在一个电场里,石英会变长,当电场去掉后,又可以恢复原来的长度。在这个过程里,可以把电能转换为机械能,恢复过程时把机械能转换为电能。如果外面定时地给这个石英一个电场,那么这个石英就会以这个频率来变长,过一段时间又撤掉这个电场,石英又产生一个反方向的电场。如果添加这个电场与石英产生的电场一致,那么就会导致电场最高,如果相反,就是最低。通过电路产生的电场频率与石英本身频率一致时,就会产生最高的振幅,这样就达到压电谐振。因此,通过切换不同的石英就可以达到不同的频率。

 

当然,也有别的电路来产生振荡的频率,比如使用RC电路或LC电路,但是为什么要采用石英晶振呢?原因是由它的物理特性来决定的,因为它对温度的变化而导致频率的变化是最小的。在CPU内部,现在很多芯片都内置一个RC振荡器,比如在对频率要求不严格的场合,就可以使用这个晶振,例如在玩具应用时,检测快与慢就是不严格的,可以使用这样的晶振。大多数情况下,我们还是使用严格要求的晶振,比如在高铁里或者实时性要求很严格的产品。如果对时间有严格要求,比如一天86400秒里,要求万分之一的精度,就要使用好的晶振了,否则时间就会偏差很大,因此常常在电路里还会有一个32.768K的晶振,这个晶振为什么又是32.768K呢?是因为时间频率为1Hz,要产生这个频率,必须是一个计算机二进制能整数表示的频率。因为2的15次方,就是等于32768。于是CPU里的电路把这个频率进行分频,经过15次分频之后,就变成1Hz了,这样每一个跳动就是一秒钟。

 

CPU有了上面介绍的晶振电路,就可以有脉搏跳动的来源,就可以周期地执行任务了。如果电路里晶振振荡不起来,CPU就是死的,什么也不会输出,所以在焊接CPU之后,往往第一步检查的就是CPU是否有振荡信号。如果振荡频率有偏差也会导致失速或超速。如果频率不准,当采用这个频率来通讯时,就会导致出错。因为两个通讯端频率对应不上,理解就会出现偏差。

 

在我的开发板里采用下面的原理图表示晶振输入:

这里采用了25MHz频率的晶振。

https://blog.csdn.net/caimouse/article/details/51749579

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值