0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

复位消抖电路具体长什么样子呢?

冬至子 来源:芯时代青年 作者:尼德兰的喵 2023-12-04 14:53 次阅读

复位信号在使用前一般需要进行消抖处理,也称为复位滤毛刺。复位的抖动可能会导致芯片产生多次复位动作,给系统带来不确定性和误差。消抖的目的是为了确保复位信号的稳定性和可靠性,从而保证系统能够正常工作。

通过消抖,可以消除复位信号的抖动干扰,保证复位信号的可靠性和稳定性,避免系统故障和数据丢失等问题。

举个例子,如果要消除30ns以下的复位抖动,那么30ns以下的复位信号rst_n拉低操作就会被消抖电路消除,不会对电路产生任何的影响,只有30ns以上的复位拉低操作才能作用于内部电路。

所以复位消抖电路具体长什么样子呢?目前我了解的有三种方式,不过因为没有实际参与过CRG模块的设计与流片,所以以下内容只做参考。我们假定滤毛刺时钟为100M,需要滤除的复位抖动为30ns以下的信号。

第一种方式通过滤毛刺时钟+D触发器来完成 ,如要滤过30ns的抖动电路图如下:

图片

D触发器的数量关系是如何得到的呢?先假设我只有一个延时D触发器,那么复位信号必须维持L电平在一个clk时钟周期以上或门才能在时钟沿处打出一个L信号出来(即时钟上升沿时rst_n || rst_n_ff1 == 1'b0),如下面的波形图所示:

图片

同样的,如果有两个延时D触发器,那么复位信号必须维持L电平在两个clk时钟周期以上,或门才能在时钟沿处打出一个L信号出来:

图片

如果有三个延时D触发器,那么复位信号必须维持L电平在三个clk时钟周期以上,或门才能在时钟沿处打出一个L信号出来:

图片

因此,在或们前放置了N个延时D触发器,就可以滤除N*T(T为消抖时钟的周期)时长以下的复位毛刺信号。这种方式存在一个巨大隐患,消抖时钟信号是不受复位控制的,一旦消抖时钟信号出了什么问题,复位信号将永远无法从消抖电路传递出去。

第二种方式通过累加器来完成, 简单来说就是数一下rst_n连续出现了多少拍,假如需要通过100M消抖时钟来滤除100ns以下的复位抖动,那么rst_n要连续出现10拍低电平才达到100ns的复位标准。将rst_n打两拍rst_n_ff1/rst_n_ff2消除亚稳态,当rst_n_ff2持续达到10拍对外输出复位信号,对应的波形示意如下:

图片

简单的代码示意如下:

reg rst_n_ff1, rst_n_ff2;
reg [3:0]vcnt_100m;

always @(posedge clk_100m) begin
    rst_n_ff1 <= rst_n;
    rst_n_ff2 <= rst_n_ff1;
end

wire vcnt_100m_clr = (rst_n_ff1 != rst_n_ff2);

always@(posedge clk_100m) begin
   if(vcnt_100m_clr)
       vcnt_100m <= 4'h0;
   else if(!rst_n_ff2)
       vcnt_100m <= vcnt_100m + 1'b1;
end

always@(posedge clk_100m) begin
    rst_100m_n <= (!rst_n_ff2 & vcnt_100m >=4'd9) ? 1'b0 : 1'b1;
end

这个消抖方案呢同样存在上面的问题,消抖时钟信号是不受复位控制的,所以在芯片内的模块级别可能会被采用,但是在外部复位消抖时是一般不会使用的。

第三种方式是通过延时器件来实现 ,要滤去100ns以下毛刺,那么就引入100ns延时器件,组成如下电路:

图片

对应的波形也很简单:

图片

通过波形可以看出,如果复位时长不够100ns,prst_n根本不会被触发。这个电路的隐患在于如何保证延时器件在不同温度等外部环境干扰下的延时准确性。

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

    关注

    3

    文章

    164

    浏览量

    47861
  • 延时器
    +关注

    关注

    1

    文章

    36

    浏览量

    15085
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17125
  • 累加器
    +关注

    关注

    0

    文章

    50

    浏览量

    9440
  • 消抖电路
    +关注

    关注

    0

    文章

    6

    浏览量

    8581
收藏 人收藏

    评论

    相关推荐

    单片机的按键与几种按键电路

    按键电路 一、 硬件 : 按键防电路控制电路 所示利用RC 积分
    的头像 发表于 12-17 07:45 10.6w次阅读
    单片机的按键<b class='flag-5'>消</b><b class='flag-5'>抖</b>与几种按键<b class='flag-5'>电路</b>

    异步复位同步撤离是什么意思?如何做到异步复位同步撤离

    复位之后的下一件事,[异步复位]()同步撤离。这句话什么意思
    的头像 发表于 12-04 13:57 4682次阅读
    异步<b class='flag-5'>复位</b>同步撤离是什么意思?如何做到异步<b class='flag-5'>复位</b>同步撤离<b class='flag-5'>呢</b>?

    按键

    请问大家的按键是用什么方法解决的,如普通的按键如何。按键和数码管接的端口是相同的,如何解决按键
    发表于 09-26 22:17

    技术分享:明德扬按键的原理和基于fpga的设计

    本帖最后由 明德扬吴老师 于 2017-8-2 11:45 编辑 按键1功能概述按键开关是各种电子设备不可或缺的人机接口,如电脑的键盘等。实际应用中,按键开关通常为机械式弹性开关。当机械点
    发表于 08-02 10:38

    电路的传输特性会变成什么样子

    记得是从刚刚学模电的时候开始,每次看到一个运放电路,就会想,如果把这个电路的同相输入端和反向输入端换一下,那么电路的传输特性会变成什么样子
    发表于 02-26 08:39

    请问怎样去设计一种按键电路

    按键电路结构与电路模型按键电路数学模型按键
    发表于 04-29 06:13

    软件电路中存在的不足是什么?

    什么是电路?软件电路中存在的不足是什么?按键
    发表于 05-06 07:50

    51单片机_独立按键延时

    51单片机_独立按键延时_独立按键定时器_矩阵键盘定时器1.独立按键_延时
    发表于 07-16 13:56

    MCU按键问题

    按键问题机械按键是必须的,1、延时//按键处理函数//返回按键值//mode:0,不
    发表于 11-04 06:37

    有什么方法去实现按键的

    怎样用软件即程序来实现按键的?有什么方法去实现按键的
    发表于 12-15 07:25

    MCU对按键长按的检测是否要

    MCU对按键长按的检测,是否要
    发表于 10-13 08:14

    按键都有哪些处理方式?

    按键都有哪些处理方式除了硬件电路用软件怎么实现
    发表于 11-01 07:06

    基于FPGA的按键电路设计

    采用了VHDL语言编程的设计方法,通过FPGA来实现按键的硬件电路。论述了基于计数器、RS触发器和状态机3种方法来实现按键
    发表于 12-05 14:13 224次下载

    VHDL—按键

    达到去抖动的目的。本例中用状态机实现了电路:端口描述:clk 输入检测时钟;reset 复位信号;din 原始按键信号输入; dout 去抖动输出信号。
    发表于 11-11 17:17 2次下载

    键盘电路VHDL程序

    键盘电路VHDL程序,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-11 15:51 1次下载