调试时钟定时问题的思路

发布者:CyberJolt最新更新时间:2016-01-07 来源: eefocus关键字:调试时钟  定时问题 手机看文章 扫描二维码
随时随地手机看文章
系统发生时钟定时问题的原因很多,由于时钟信号对系统性能影响很大,所以定位并纠正这些定时问题非常重要。本文分析了产生时钟定时问题的主要原因,包括EMI、噪声、地弹,并给出了找出这些问题根源的主要思路和关键步骤。

如今数字系统的稳定性和性能都是建立在其内部时钟系统之上。

由于时钟信号对系统性能影响很大,所以定位并纠正这些信号出现的问题非常重要。

工程师必须像一名优秀侦探员那样找出正确的测试问题并准确确定故障原因以及影响。

修正那些故障影响并非是一种最优的解决方法,它将导致遗漏故障原因,而在以后导致更严重的时序错误。

例如,在出现问题(大抖动、畸形波形或者没有达到设计参数要求)的时候发现一个正在冒烟的旁路滤波器,那么可以肯定地证明这是问题的原因,而不是其它潜在原因的证据。

可能的原因是电容在阻止某个频率上噪声的影响,但是却没有能够保护时钟器件不受噪声的影响。

一个正确设计的终端电路由于采用了不合适的源驱动器件阻抗而变得不正确,是另外一个很好的例子。

通常,50Ω的终端阻抗和50Ω的传输线阻抗对于最高级别的信号完整性是正确的,但并不总是如此。

最直接的方法是调整电路的终端,但这会改变连接驱动和终端的传输线的阻抗。实际上,最明显的原因经常和真正的原因相差很远。

最好的解决方法是通过选用合适的驱动器从问题的根本原因上解决问题,而不是浪费大量时序来调试终端以求得一个能够运行但并非最优的结果。通过纠正根本原因,你还可纠正其它一些不会引起时序冲突但能够破坏时序边界的小问题。

我们必须注意到时钟系统的故障不会由一个可很容易发现的单个原因引起的。一般这种故障是由好几个稍微不常见的原因引起,这些原因会导致时序边界越过限制。

例如,由非良好接地、不正确的旁路器件值以及不理想的走线拓扑导致的综合效应将产生足够噪声,从而引发系统故障。使事情更加糟糕的是时钟器件和设计的其他电路共享电源和地线平面。这样,时钟器件将受到它们所控制的系统环境的噪声影响。毫无疑问,找到这些问题的根源是非常困难的。

时域的方法

出现问题的时候首先要察看时域信息。时序位置的不正确表现为波形偏斜和延迟,使时序与期望值出现有规律性或无规律性的不同。这主要有两个根本原因:确定性抖动和随机抖动噪声。

确定性的抖动肯定可以找到根本原因。时序位置的偏移是规律性地出现,并且可以查找出来。通过读出多模型分布测量(图1)中峰值时间的偏移,通常可以非常迅速地确定干扰信号的频率。找到频率以后,距离找到真正的原因就仅有几步之遥了。

 

随机抖动的问题稍微有点麻烦,它可能来自于器件本身或者是从其他器件传过来的。

频域的方法

另一个寻找时钟问题的角度是在频域中寻找。在频域中,我们同时观察频率及其周围的能量分布。时钟系统需要很快的上升时间以减少负载的转换时间。这给时钟信号的频谱带来许多奇次谐波。(一个具有无限快上升时间的纯矩形波的频谱是频率基频和所有奇次谐波之和)。

在频域,我们正在寻找其它时钟信号和所需时钟频率混合在一起的结果。

当时钟互相调制在一起的时候会带来四个混合部分:相加值,相减值以及两个原始频率。通常,干扰信号的频率和所需信号的频率离得很近,相加后的信号与相减后的信号也会如此。


关键字:调试时钟  定时问题 引用地址:调试时钟定时问题的思路

上一篇:I2C总线C语言源程序
下一篇:超声波HM55B测距(STC10F08单片机C程序)

推荐阅读最新更新时间:2024-03-16 14:42

STM32定时器的小问题总结
stm32的定时器用的时候是根据原子开发版的程序直接应用的,用的时候也没有具体的考量,但是在用的时候出现了一个问题,就是定时器的中断在设置之后,并没有打开定时器但是程序执行到这里就会进入中断,如果中断中有其他一些硬件功能,例如在定时器中发送一些数据,而这个时候串口并没有初始化时,就是出现程序死在这里的问题。通过网上查找资料发现是定时器中断标志未清除的问题,调用TIM_ClearFlag函数之后就不会发生以上问题了。看来在硬件配置时一定要注意这个问题,不管是其他外围设备的初始化都需要注意。之前看到SPI、USART等初始化的时候会经常加上XXX_DeInit()函数,看来也并非多余,对于硬件初始化是很有必要的,纪尽管在手册上看到
[单片机]
关于STM32的定时问题集锦
1、定时器外部计数功能 问:STM32处理器的定时器可以配置为对外部脉冲计数方式,其中一种方式是通过TIM的ETR引脚(外部触发引脚),另外一种方式是通过TIM的CH1或者CH2引脚来输入。现在我不明白这两种方式有什么区别,两种方式都能对外部脉冲计数,那么设置外部触发方式的目的指什么? 答:根据设计电路来使用不同的方法,他们最大的区别就是引脚不同,但是实现的功能是一样的。 2、TIM2用于捕获,如何调整TIM2的时钟? 问:TIM2用于捕获,如何调整TIM2的时钟?想调低TIM2的时钟频率,以减小计数器的值,避免溢出。 答:可在中断函数里修改配置。不过我想知道你的具体目的是什么 答:因被捕获脉冲频率很宽,有
[单片机]
STM32之系统时基定时器中如何完成按键防抖动问题
在按键演示防抖动部分的主要思路是:利用系统定时器溢出间隔中断来延时防抖。这样做可以提高代码的执行效率。我们怎么去很好的利用这个系统定时器来延时呢?如果只是简单在系统定时器中断中置位延时标志位,没有任何意义,我们需要有一个标志位来允许置延时标志。第一次扫描到有按键按下时,延时标志肯定为空,那么在此置位一个标志位,来允许系统定时器中置位延时标志,就解决了这个问题。 软件的逻辑结构是:如果没有延时,则置位允许延时标志置位标志。首先是置位标志位,如果置位了,在系统定时器溢出中断中,就可以置位延时标志位。如果已经置位,处理按键值。 下面给出一个在按键处理中的对延时标志判断的处理。 if(key_bit & 0x02) //如果按键没有被处理
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved