如何重置LMC555定时器延迟硬件来收集调试数据

通用测试仪器

200人已加入

描述

大多数微处理器有一些形式的硬件监测器,当硬件在没有注意的情况下停止执行代码时,监测器可将微处理器及其周围的硬件重置到一个已知的状态。但在重置硬件之前,它可能有利于记录固定存储器(NVM)中的监测器溢出事件用于调试。

图1中的电路采用了两个LMC555定时器,为了保存有用的系统数据,它们延迟了硬件的重置。该电路中有微处理器专用的监测器溢出引脚——WDOVF,以及一个I/O引脚。

LMC555定时器设置成他们的单稳态或者最快捷的模式,在这种模式中,在触发脉冲输入引脚感应到一个负脉冲之前,定时器的输出都为低值。触发后,输出引脚在时间TH内变为高值,TH由一个单电阻和电容确定如下:

为了进行恰当的定时操作,在输出高值时期结束之间,触发输入必须再次变为高值。经过TH以后,输出端变为低值,且在另一个负脉冲出现在触发引脚以前都保持低值。定时器也有一个活动的低重置引脚,切断后,不管触发引脚的输入水平,该引脚都保持输出低值。它也为下一个时间周期重置了定时器的内部触发器。

第一个LMC555探测到来自微控制器的监测器溢出触发,提供一个延迟,这允许固件在重置之前记录各种系统参数。第二个LMC555允许固件阻止紧急硬件重置。它是通过使WDOVF_CLEAR信号在最少时间段保持低值来实现的,这一时间的长短是由第一个定时器集成电路用到的内部RC元件决定的。

图2表示的是两个独立的监测器溢出事件发生的时间。第一个事件表明重置脉冲被延迟,没有重置硬件,第二个事件表明在预定的时间延迟过后发出重置脉冲。图示时间是用来自图1的RC元件值和来自Atmel微控制器的监测器溢出脉冲计算的TH,第一个定时器的TH为:

同样,第二个定时器的TH为:

系列电容器C3,上升电阻器R3及二极管D1保证了第二个定时器的触发TRG_2在定时器的输出端OUT_1处发生高-低转变之时都将保持高值。上升电阻器在OUT_1进行高-低转变之后给系列电容器充电,直到达到电源电压。与上升电阻和系列电容相关的RC时间常数要小于第二定时器的输出高值的周期。二极管使得第二定时器的触发引脚的输入电压升为电源电压。

在该例子中,当发生监测器溢出事件时,设定微控制器发出一个相关的短的低活跃度的脉冲输入专门的引脚,产生一个内部中断。一旦发生该事件,代码跳至中断服务程序,运行代码中几个特定的行。这些包括清除中断标记,通过保持WDOVF_CLEAR I/O引脚来阻止紧急硬件重置,将调试数据保存到NVM,防止中断,以及重置监测器溢出定时器。

在这种情况下,硬件监测事件,连同其他由事件决定的信息,都存储在NVM中以便将来查看。当监测定时器停止一秒钟时,它会绕过中断服务程序,最终重置硬件。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分