历史上的今天
今天是:2025年01月29日(星期三)
2018年01月29日 | 如何重置LMC555定时器延迟硬件来收集调试数据
2018-01-29 来源:互联网
大多数微处理器有一些形式的硬件监测器,当硬件在没有注意的情况下停止执行代码时,监测器可将微处理器及其周围的硬件重置到一个已知的状态。但在重置硬件之前,它可能有利于记录固定存储器(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中以便将来查看。当监测定时器停止一秒钟时,它会绕过中断服务程序,最终重置硬件。
史海拾趣
|
本人升大三了, 现在参加了电子设计大赛, 发现我模拟电路方面真的很薄弱(我在我们组中负责写程序的), 什么运放,桥式电路的都不明白,我以后能从事单片机这方面的工作吗 , 令外想问做Linus嵌入式的也要会模拟电路吗 ,本人偏软的, 我的分数不够没有给分 ...… 查看全部问答> |
|
我把一个windows应用程序(VC)移植到EVC上面,编译出现下面问题: fatal error C1083: Cannot open include file: \'Nb30.h\': No such file or directory 在windows下编译正常,哪位高手能给我解答啊,万分感谢… 查看全部问答> |
|
惭愧,我是新手,请问各位高手,485和232串口在物理接口上有什么区别...工控机一般有RS485串口吗?是通过什么实现的...是加了一个转换器吗?串口通信编程时有什么不同...不胜感激… 查看全部问答> |
|
推荐一款低功耗段式液晶屏 看论坛正在做低功耗时钟,我刚好手头有个东西也需要低功耗显示,向大家推荐北京青云的LCM061A段式模块,主要是3.3V下可以工作,典型工作电流看厂家资料说是50ua(无背光),省电模式下《1ua。因为最近正在调试别的部 ...… 查看全部问答> |
|
【MSP430 编译器使用经验】能量的极致驾驭之MSP430 MSP430被业内称为省电王,对此殊荣当之无愧。通过自己以往用MSP430来设计产品设计的经验,还有看MSP430的芯片手册,以及对MSP430的认识理解,明显的感觉TI将电源管理系统做到极致。极大的砍掉了不同模式、功能下多余的硬件耗能模块,极大地砍掉了不 ...… 查看全部问答> |




