在之前写的文章[1] https://blog.csdn.net/NoDistanceY/article/details/103858833 中,我提及了我将NUCLEO-H743ZI2评估板进行修改,将通信芯片上25MHz的晶振换到MCU的HLE的晶振接口上。发现的现象是晶振频率变成了8M。但这里要说的是,如果出现这种现象,请直接换晶振,否则将画大量时间在时间异常的处理上。

如果知道出现这种异常的原理,请解释一下。

使用到的代码

uint32_t TIM_get_TIM2_CNT(void){return (TIM2_Handler.Instance->CNT)&(0x7fffffffffffffff);}void TIM_set_TIM2_CNT(uint32_t cnt){HAL_TIM_Base_Stop(&TIM2_Handler);TIM2_Handler.Instance->CNT = cnt & (0x7fffffffffffffff);HAL_TIM_Base_Start(&TIM2_Handler);//TIM2_Init(1000-1,2000-1);}

异常分析

虽然这里可以看出频率大概是8M,但正常的25M晶振测量的震荡频率就是25M,并且是正弦波波形,由于当初没记录,请遇到类似情况的人自行用示波器检测。另外,因为是大概估计,并不能准确的获取震荡频率的误差值。

黄线时GPS芯片的PPS信号,这个信号每1s中会得到一个误差为微妙级的持续时间为100ms的秒冲,它将作为晶振频率评估的参考对象。设置一个每10ms产生一次的定时器,有定时器控制一个GPIO翻转,GPIO信号也接到示波器,即为上图的蓝线。当收到PPS信号时,用TIM_set_TIM2_CNT(0)重置定时器,于是在下一个1s到达时,假设测得的是99个完成10ms数据段和一段不足10ms的时间段(如上图所示),利用游标卡尺的思想,可知时间1s种慢了2.5ms,即可根据此值计算出晶振的频率实际为8*(1-0.0025)=7.98MHz。

正常晶振的评估

正常晶振的误差较小,不能通过下图来看出误差。

定时器方案不变,但有定时器中寄存器值来评估晶振。这个增量寄存器时每10ms增加1000,并到1000时自动归零。于是,在1PPS中断发生时,读取一下这个增量寄存器的值,并观察每秒钟的区别。

以我测试为例,使用函数TIM_get_TIM2_CNT()获取寄存器值,第1s测得531,第2s测得532,依次规律每秒增加1。也就是说晶振比参考源每秒增加10us,这就是晶振的误差。

当然,更准确的方法是通过更长时间尺度的测量来测得晶振的误差了。

一种贴片晶振异常情况,及晶振频率评估方法相关推荐

  1. 计算机主板上实时时钟晶振频率为,电脑主板里的晶振才是网络时代发展的根源...

    原标题:电脑主板里的晶振才是网络时代发展的根源 文章来源于,转载请注明! 匆匆一年又一年,转眼间我已经度过了20个严寒酷暑,长大是件很有意思的事儿,不经意间就发生了,本来是这样一个人,然后突然间变成另 ...

  2. 计算机主板上实时时钟晶振频率为,电脑主板晶振的识别及测量方法介绍

    一. 单位:赫兹"Hz" 1MHz=1000kHz=1000000Hz 符号: "X.Y" 二. 晶振的分类: 主板上晶振主要分为: 1.时钟晶振: 与时钟芯相 ...

  3. 嵌入式 - 晶振频率的来源和UART波特率的选择

    电路板上经常要用到32.768KHz的晶振,表示晶振经过32768K个周期就是1s,16进制就是0x8000,是2的n次方形式,2^15. 这颗料已经出现了20年,非常普遍,也非常便宜,在各种电路中使 ...

  4. 关于LPC21**系列串口初始化已知晶振频率 求U0DLL和U0DLM 重点注意M P 和分频倍率n

    晶振频率 Fosc 处理器时钟频率 Fcclk 分频后,VPB时钟速率 Fpclk Fcclk = M*Fosc;    //M为倍频器值 Fpclk = n*Fcclk; SEL: 0000000  ...

  5. 晶振频率,时钟频率,时钟周期,时钟节拍,机器周期,指令周期的概念解析

    晶振频率是什么? 晶振,全称为晶体振荡器,能够给单片机(MCU)提供一个工作的信号,也就是所谓的时钟信号,这个信号能够促使单片机(单片机)有条不紊地运行下去. 频率是单位时间(1s)内某件事周期性变化 ...

  6. 电路 晶振频率_都说晶振是电路的心脏,你真的了解它吗?

    之所以说晶振是数字电路的心脏,就是因为所有的数字电路都需要一个稳定的工作时钟信号,最常见的就是用晶振来解决,可以说只要有数字电路的地方就可以见到晶振. 常见种类 我们常说的晶振,包含两种. 一种需要加 ...

  7. ​什么是晶振?晶振是怎么制成的?晶振的内部结构,晶振的工作应用以及影响晶振频率相关的参数介绍

    什么是晶振? 定义:晶振一般指石英晶体振荡器,也叫晶体振荡器. 晶体振荡器是一种使用逆压电效应的电子振荡器电路,即当电场施加在某些材料上时,它会产生机械变形.因此,它利用压电材料的振动晶体的机械共振来 ...

  8. 计算机主板上实时时钟晶振频率为,你知道你的笔记本电脑主板中的晶振好不好吗?...

    晶振是石英晶体振荡器的简称.晶振是一种用于稳定频率和选择频率的电子元器件.晶振是高精度和高稳定的振荡器,广泛应用于各种电路中,为数据处理设备产生时钟信号和为特定系统提供基准信号. 晶振的识别 笔记本电 ...

  9. 单片机机器周期与晶振频率的关系(定时器的初值设定问题)

    本文仅以学生角度总结定时器的学习当中的问题.如何计算定时器应该设定的计数初值. 晶体振荡12次为一个机器周期 一个机器周期 = 12 * 晶体振荡周期(12分频) 即晶体振荡12次为一个机器周期.(一 ...

  10. 通过PPM计算MHz晶振频率偏差和32.768KHz晶振计时公式

    PPM是英文Parts Per Million的缩写,表示百万分之几.换句话说:1PPM则代表百万分之一的误差. 举例:若一颗晶振为12.000000MHz,即:12000000Hz 精度为±30pp ...

最新文章

  1. 在ubuntu上使用gdb-multiarch 跨平台调试
  2. MySQL-索引优化篇(3)_利用索引优化锁
  3. 《浪潮之巅》--百年帝国读后感
  4. 转换string_类型转换详解
  5. python3调用c语言数组,使用Python中的ctypes访问数组
  6. 牛客题霸 [删除有序链表中重复的元素] C++题解/答案
  7. viewpage 去掉左右切换效果_ViewPager实现多页面切换以及动画效果
  8. mysqldump 忽略视图_Mysql备份迁移——Mysqldump(.NET调用Mysqldump.exe方式)——(解决视图嵌视图报错)...
  9. 02241107班编程题 切片逆序大小写等
  10. [VB]在状态栏中显示帮助信息
  11. LeetCode91 Decode Ways
  12. win11更新黑屏无法进入系统怎么办 windows11黑屏更新无法进入系统的解决方法
  13. POJ2115 C Looooops 扩展欧几里德
  14. Python 正则表达式模块详解
  15. 计算机课怎么管纪律,浅谈如何巧妙设置学生机轻松管理机房课堂纪律
  16. 哪个学校计算机考研945,2018年郑州大学945软件工程专业基础综合考研复习资料...
  17. 机器学习实战(五) kaggle练习赛 泰坦尼克获救预测
  18. 云上OneNET智慧大棚
  19. 【自学笔记】前端面试题之CSS(部分HTML)
  20. 微程序控制计算机的工作原理,微程序控制器的基本原理详细图解

热门文章

  1. 获取鼠标图片和鼠标位置的方法
  2. 弘辽科技:刷单越来越不行了吗?
  3. 从祖师级到新生代,48位开发者的「武功秘籍」
  4. 面试乐融集团Python开发工程师助理有感
  5. 电脑网络看不到其它计算机,解决网络和共享中看不到其他计算机的问题
  6. 修改注册表为当前用户和默认用户添加日文输入法
  7. 全网显示 IP 归属地,这背后的技术你知道吗?
  8. IP归属地显示的简单实现代码
  9. 优动漫PAINT小技巧——描边功能的使用
  10. axios和ajax怎么读,axios, ajax和fetch的比较