tag 标签: 复位

相关帖子
相关博文
  • 热度 9
    2015-10-30 09:05
    2694 次阅读|
    0 个评论
    转载【http://bbs.ednchina.com/BLOG_ARTICLE_3031593.HTM#】 依稀记得前不久总结过一篇有关于MCU选型方面的知识,网站链接; http://bbs.ednchina.com/BLOG_ARTICLE_3031226.HTM 有据于此由来,自此来汇总一下在这方面所应用到的一些知识点的汇总,比如RESET复位脚(其中包含当中的时间计算),又如I/O口的驱动电流方面,又如在什么情况之下导致当中的MCU出现复位的现象。     关于复位电路的理解;       上面的这张图片只能说复位的一个概念,需要考虑的因素有两个地方,其中之一就是LDO的复位电压与MCU的复位电压,这两个都需要查询相应的datasheet。比如所用到的LDO芯片7A6150,      当然在这边还有几种不同的复位方式;比如软件复位,上电复位, 外部复位(External Reset) 它是影响时钟模块和所有内部电路,属于同步复位,但外部Reset引脚为逻辑低电平。在引脚变为低电平后,CPU的复位控制逻辑单元确认复位状态直到Reset释放。复位控制逻辑保持复位低电平状态,在额外512个时钟周期内。因为当复位引脚为低电平时与MCU执行复位命令是相互冲突的,因此复位引脚必须保证520时间周期内低电平才能保证外部复位被外部总线辨识出来。 上电复位(Power-on reset) 它是由外部总线产生的一种异步复位。单片机在电源电压VDD小于大约2.5V的时候复位,只要VDD电压不超过这个阈值,单片机就仍然保持复位状态。 电压跌落的时间大概在纳米级(如果一旦出现了,马上会复位)。因此监测上电复位不能单片机内部,因为小于这个电压单片机逻辑功能。 低电压复位(Low-Voltage Reset) 它是部分单片级内部监控器形成的异步复位,单片机电压小于一定触发值时,单片机开始复位。 低电压的复位电平是和供电电压相关的,会有一个波动: 软件复位(Software Reset) 它是由软件看门狗定时器超时引起的一个异步复位。如果要开启软件复位,必须要注意设置软件内部寄存器,使之有效。这个功能主要是用来防止程序跑飞。 双总线故障复位(Double Bus Fault Reset) 它是由双总线错误监视器产生的异步复位,它是总线错误的特殊状态会导致中止异常处理。      时钟丢失复位(Loss of Clock Reset) 它在参考时钟子模块消失的时候产生的同步复位。如果要使该复位有效,需要设置寄存器SYNCR。 关于更详细的外部Reset的资料可以这样描述(51单片机): 为了确保良好的外部复位和上电复位,复位脉冲宽度必须足够宽,我们要考虑以下两个参数来确定复位脉冲宽度:  tosc:振荡器才可达到Vih1或Vil1电压的时间。  tvddrise:电压VDD由10上升至90%的时间。  当这两个参数的条件得到满足时,还必须维持至少一定的机器周期来保证单片机内部的启动。 如果是不正常的复位的话: 如果要具体的计算,关于LDO的Reset可参考前面关于拉普拉斯变换的计算过程。 偷懒的话可以查表:      对于这张图片的红色标准的地方文字还是比较注意的地方,就是与MCU识别的时间搭好了相应的桥梁。    一般而言,我们的复位电路的应用如下所示; 计算公式如下图所示;    接下来需要思考的一个问题就是有哪些情况之下能够引起MCU复位呢?电源掉电,感性噪声,由于ESD相应的状况等等。 由于ESD引起的MCU复位效果; 曾经有一位彪悍的女同事,去了新单位后要确认一下静电电容到底能起多大的作用,能抗多大的静电,她把模块上所有的静电电容全部去掉,然后打一下静电,单片机就重启一下。 前面写过两篇文章是关于静电电容的 ESD电容问题 谈谈模块的的引脚布置和ESD问题 在这两篇以外举几个实例说明一下: 第一个例子是这样的,在打静电的时候测试EMC的性能(国内一般不这么BT的要做合成实验),出现了两个问题,第一个是单片机Reset了,第二个是某个频率段发射限值超标。 经过调查发现了原因是一个输出IC,由于是功率地,因此静电电容并没有直接打在地平面上,而是通过一根很长的PCB连线连接至地,因此阻抗比较高,这就变成了一跟天线,并且耦合至单片机,导致了单片机的Reset. 静电电容布线有三个原则,第一是必须给每个接插件引脚配上静电电容,第二是尽可能使得电容靠近接插件的引脚,第二个是尽可能使电容靠近地平面。 看下面一个例子,这次ESD直接把模块引脚打坏了 上例是在电容接到的是顶层一小块地,通过小的通孔连接后在内层连接地平面,距离过长,阻抗过高。 在某些极端情况下,ESD还会损坏MCU,特别是某些单片机有内部的稳压器,和它相近的IO口如果用来做输出而且没有很好的接静电电容(包括电容地没接好的情况)可能严重损坏单片机的稳压器,这会导致非常严重的结果。 还有一个值得注意的CAN的通讯口,一般高速的CAN不允许接大一些电容,这时候只能通过附加K级的电阻来防止信号耦合后损坏器件了,有钱的话可以选择TVS。 感性噪声引起MCU复位的情况; 曾经看到过一个很好的分析过程,把所有的内容都总结出来了。 在产品实验中,我们发现当部分电机启动的时候,单片机就Reset了。 继电器开关期间产生的噪声耦合到了MCU信号线路上。这种噪声引起了MCU电流注入/出,这种耦合噪音有足够高的转换率才会引起了微控制器的复位时的。 在系统设计的时候,是采用继电器来控制电机的,在出现问题后,我们做了实验,发现在继电器驱动电机过程中有以下的现象: -电动机的电感产生负电压尖峰。 -在继电器的开关期间,继电器触点上产生了一些地弹电压。 由于这些地弹,电池电压(9~16V)和电机产生的电压尖峰综合效应,导致了继电器触点上的电压高达-36V的(在继电器上压敏电阻器加装了之后)。 在产品设计的时候,有继电器未安装,然后在继电器输出线与地线之间存在高阻抗(86千欧)。 在上述条件下,驱动电机的继电器开关时产生的电压变化,电容耦合到未安装的继电器的输出线和反馈线,而他们是通过高阻抗连接到MCU的引脚上的。 这种耦合噪声电流注入/出到MCU,如果耦合噪音摆率足够高,将会导致微控制器的Reset。 两个因素导致此问题: 1)首先是不同PCB层电容耦合通道,有助于提高容性耦合。 2)其次是一些反馈线电容器连接到信号地平面,也有助于增加从功率噪音源的电子地平面的耦合。  经验教训: -良好的分配功率地和信号地,避免耦合噪声。 -避免在干扰源出来的任何线加电容到信号地。 -如果可能存在选择安装的器件,设置0欧姆电阻连接该器件的线到功率地,避免浮线。     对于以上的知识来说,从理论与应用现状详细的描述了MCU一些复位以及当中的应对策略。以上的几篇技术文章源自于玉龙兄的博客。@yulzhu
  • 2015-10-28 23:05
    11677 次阅读|
    9 个评论
    依稀记得前不久总结过一篇有关于MCU选型方面的知识,网站链接; http://bbs.ednchina.com/BLOG_ARTICLE_3031226.HTM 有据于此由来,自此来汇总一下在这方面所应用到的一些知识点的汇总,比如RESET复位脚(其中包含当中的时间计算),又如I/O口的驱动电流方面,又如在什么情况之下导致当中的MCU出现复位的现象。 关于复位电路的理解; 上面的这张图片只能说复位的一个概念,需要考虑的因素有两个地方,其中之一就是LDO的复位电压与MCU的复位电压,这两个都需要查询相应的datasheet。比如所用到的LDO芯片7A6150, 当然在这边还有几种不同的复位方式;比如软件复位,上电复位, 外部复位(External Reset) 它是影响时钟模块和所有内部电路,属于同步复位,但外部Reset引脚为逻辑低电平。在引脚变为低电平后,CPU的复位控制逻辑单元确认复位状态直到Reset释放。复位控制逻辑保持复位低电平状态,在额外512个时钟周期内。因为当复位引脚为低电平时与MCU执行复位命令是相互冲突的,因此复位引脚必须保证520时间周期内低电平才能保证外部复位被外部总线辨识出来。 上电复位(Power-on reset) 它是由外部总线产生的一种异步复位。单片机在电源电压VDD小于大约2.5V的时候复位,只要VDD电压不超过这个阈值,单片机就仍然保持复位状态。 电压跌落的时间大概在纳米级(如果一旦出现了,马上会复位)。因此监测上电复位不能单片机内部,因为小于这个电压单片机逻辑功能。 低电压复位(Low-Voltage Reset) 它是部分单片级内部监控器形成的异步复位,单片机电压小于一定触发值时,单片机开始复位。 低电压的复位电平是和供电电压相关的,会有一个波动: 软件复位(Software Reset) 它是由软件看门狗定时器超时引起的一个异步复位。如果要开启软件复位,必须要注意设置软件内部寄存器,使之有效。这个功能主要是用来防止程序跑飞。 双总线故障复位(Double Bus Fault Reset) 它是由双总线错误监视器产生的异步复位,它是总线错误的特殊状态会导致中止异常处理。 时钟丢失复位(Loss of Clock Reset) 它在参考时钟子模块消失的时候产生的同步复位。如果要使该复位有效,需要设置寄存器SYNCR。 关于更详细的外部Reset的资料可以这样描述(51单片机): 为了确保良好的外部复位和上电复位,复位脉冲宽度必须足够宽,我们要考虑以下两个参数来确定复位脉冲宽度: tosc:振荡器才可达到Vih1或Vil1电压的时间。 tvddrise:电压VDD由10上升至90%的时间。 当这两个参数的条件得到满足时,还必须维持至少一定的机器周期来保证单片机内部的启动。 如果是不正常的复位的话: 如果要具体的计算,关于LDO的Reset可参考前面关于拉普拉斯变换的计算过程。 偷懒的话可以查表: 对于这张图片的红色标准的地方文字还是比较注意的地方,就是与MCU识别的时间搭好了相应的桥梁。 一般而言,我们的复位电路的应用如下所示; 计算公式如下图所示; 接下来需要思考的一个问题就是有哪些情况之下能够引起MCU复位呢?电源掉电,感性噪声,由于ESD相应的状况等等。 由于ESD引起的MCU复位效果; 曾经有一位彪悍的女同事,去了新单位后要确认一下静电电容到底能起多大的作用,能抗多大的静电,她把模块上所有的静电电容全部去掉,然后打一下静电,单片机就重启一下。 前面写过两篇文章是关于静电电容的 ESD电容问题 谈谈模块的的引脚布置和ESD问题 在这两篇以外举几个实例说明一下: 第一个例子是这样的,在打静电的时候测试EMC的性能(国内一般不这么BT的要做合成实验),出现了两个问题,第一个是单片机Reset了,第二个是某个频率段发射限值超标。 经过调查发现了原因是一个输出IC,由于是功率地,因此静电电容并没有直接打在地平面上,而是通过一根很长的PCB连线连接至地,因此阻抗比较高,这就变成了一跟天线,并且耦合至单片机,导致了单片机的Reset. 静电电容布线有三个原则,第一是必须给每个接插件引脚配上静电电容,第二是尽可能使得电容靠近接插件的引脚,第二个是尽可能使电容靠近地平面。 看下面一个例子,这次ESD直接把模块引脚打坏了 上例是在电容接到的是顶层一小块地,通过小的通孔连接后在内层连接地平面,距离过长,阻抗过高。 在某些极端情况下,ESD还会损坏MCU,特别是某些单片机有内部的稳压器,和它相近的IO口如果用来做输出而且没有很好的接静电电容(包括电容地没接好的情况)可能严重损坏单片机的稳压器,这会导致非常严重的结果。 还有一个值得注意的CAN的通讯口,一般高速的CAN不允许接大一些电容,这时候只能通过附加K级的电阻来防止信号耦合后损坏器件了,有钱的话可以选择TVS。 感性噪声引起MCU复位的情况; 曾经看到过一个很好的分析过程,把所有的内容都总结出来了。 在产品实验中,我们发现当部分电机启动的时候,单片机就Reset了。 继电器开关期间产生的噪声耦合到了MCU信号线路上。这种噪声引起了MCU电流注入/出,这种耦合噪音有足够高的转换率才会引起了微控制器的复位时的。 在系统设计的时候,是采用继电器来控制电机的,在出现问题后,我们做了实验,发现在继电器驱动电机过程中有以下的现象: -电动机的电感产生负电压尖峰。 -在继电器的开关期间,继电器触点上产生了一些地弹电压。 由于这些地弹,电池电压(9~16V)和电机产生的电压尖峰综合效应,导致了继电器触点上的电压高达-36V的(在继电器上压敏电阻器加装了之后)。 在产品设计的时候,有继电器未安装,然后在继电器输出线与地线之间存在高阻抗(86千欧)。 在上述条件下,驱动电机的继电器开关时产生的电压变化,电容耦合到未安装的继电器的输出线和反馈线,而他们是通过高阻抗连接到MCU的引脚上的。 这种耦合噪声电流注入/出到MCU,如果耦合噪音摆率足够高,将会导致微控制器的Reset。 两个因素导致此问题: 1)首先是不同PCB层电容耦合通道,有助于提高容性耦合。 2)其次是一些反馈线电容器连接到信号地平面,也有助于增加从功率噪音源的电子地平面的耦合。 经验教训: -良好的分配功率地和信号地,避免耦合噪声。 -避免在干扰源出来的任何线加电容到信号地。 -如果可能存在选择安装的器件,设置0欧姆电阻连接该器件的线到功率地,避免浮线。 对于以上的知识来说,从理论与应用现状详细的描述了MCU一些复位以及当中的应对策略。以上的几篇技术文章源自于玉龙兄的博客。@yulzhu
  • 热度 11
    2015-1-21 14:12
    1483 次阅读|
    0 个评论
    今天,我们来认识一下STM32单片机的内部架构。内部架构也就是这个单片机有哪些东西组成。 众所周知,单片机是由PC机发展而来的。它是把我们PC机所拥有的CPU、RAM、ROM、I/O系统、定时器、串口等功能集成到一个硅片上而构成的一个小而完善的微型计算机系统。由于计算器强大的数据处理能力和控制能力,以及单片机的高可靠性、高抗干扰性、价格便宜等优点而被广泛的应用于工业控制、医疗器械、信息通信等领域。 图1 单片机内部结构图     上图是一个单片机内部所具有的各种部件。接下来我们看一下这些部件都有什么作用。 1、CPU:    CPU又叫中央处理器。它具备数据计算和指令执行的功能。那它都能做哪些运算呢。比如我们常用的加、减、乘、除、微分、积分等等。哪些属于指令的执行呢,比如,要计算加法,那么加法就是一个指令。当然CPU还能执行很多指令,具体的指令要去看这个单片机的指令系统。 2、RAM:        RAM又叫数据存储器、随机存储器。它具有可读可写的特点(这里的可读可写指的是可以在程序的运行过程中对它直接操作),掉电数据丢失。为什么需要RAM呢。因为程序在执行指令或者做运算时会产生一些中间变量,而这些中间变量就需要存储在RAM中。这就像我们人类在计算1+2的时候,首先我们会在纸上写出1+2这个式子,同样对于单片机也是如此,如果它不记下来的话,那么用的时候这些数据就丢失了。    3、ROM:       ROM又叫做程序存储器,只读存储器。它具有只读不能写、掉电数据不丢失的特点(实际上随着电子技术的发展,ROM也有可读可写的,不过写的方法比较特殊)。主要用来存放我们的代码。    4、I/0系统:       I/O系统是单片机和外部电路打交道的直接窗口,它把单片机的0,1代码变成电路中的高低电平。    5、外设:       外设指能独立完成一定功能的一块电路。它的作用就像一个公司的某个部门一样,他们能完成一定的功能,但是要受总经理(CPU)的控制。 CPU要进行指令执行、数据处理、外设控制,首先要做的就是从ROM中取出指令,然后执行指令,如果指令的执行有中间变量,就要在RAM中保存,执行完后要去控制外设来完成特定的功能。从上面我们可以看出,这系列的操作,CPU都要不停的和ROM、RAM、外设、I/O系统通信,他们的通信通过很多根导线传输数据,这就是总线系统(当然这些导线都是集成在单片机内部的,我们是看不到的)。 接下来我们来看一下STM32的内部结构   图中的Cortex-M3就是CPU,Flash就是ROM,SRAM就是RAM,总线矩阵连接着各种总线。图中红色方框中就是STM32单片机的外设。从上图我们可以看出,STM32的外设是比较丰富的,同样也是比较复杂的。 接下来我们来分析一下STM32单片机的最小系统: 一:电源:       任何一个电子产品要想正常工作,首先必不可少的就是电源。 图2.STM32的电源框图   上图是STM32的电源框图:从图中我们可以看出STM32有四组电源系统: 1.VREF+、VREF-:这是STM32内部AD转换器(一种片内外设)所需要的参考电压 2.VDDA、VSSA:这是STM32内部AD转换器所需要的供电电源 3.VSS、VDD:这是STM32内部数字电路所需要的电源(图中有详细的描述)。 4.VBAT:后备电池,通常用纽扣电池。实现在主电源掉电的情况下给后备区域供电。 关于这些电源的电压取值范围,STM32的参考手册上有详细的说明。 二:复位 STM32支持三种复位方式:系统复位、电源复位、备份区域复位 1.系统复位:当发生以下任何一个事件时,产生一个系统复位           1.NRST引脚上的低电平(也就是外部复位)           2.窗口看门狗计数终止           3.独立看门狗计数终止           4.软件复位           5.低功耗管理复位    2.电源复位:当发生以下任何一个事件时,产生一个电源复位           1.上电/掉电复位           2.从待机模式返回    3.备份域复位:           1.软件复位(软件产生一个备份域复位信号)           2.在VDD和VBAT两者都掉电的前提下,VDD或者VBAT上电将引发备份域复位。 以上是STM32的复位系统,需要我们使用者做的就是外部复位电路图的设计,关于这个图的设计请参照STM32课程中的原理图。 三:时钟系统(震荡电路) 由于单片机(包括内核、存储器和外设)是时序逻辑电路,在工作时必须要一个时钟来驱动。 图3.STM32的时钟系统   上图是STM32的时钟系统,红色方框中代表的是时钟的来源: 1. 8MHZ  HSI RC   通过称其为内部高速时钟 2.LSI RC  40KHZ   通常称其为内部低速时钟 3.OSC_INT和OSC_OUT组成了外部高速时钟。时钟范围为4--16MHZ 4.OSC32_IN和OSC32_OUT组成了外部低速时钟。时钟为32.768KHZ 5.SYSCLK  系统时钟,最大72MHZ 从图中我们可以看出,SYSCLK可以有HSI、HSE、PLLCLK来提供,而PLLCLK又来源于HSI/2、HSE、HSE/2、LSE/128。而SYSCLK经过AHB预分频器、APB1预分频器、APB2预分频器后供各个外设使用。 STM32单片机复位后把HSI直接作为SYSCLK使用,那这个时候系统就运行在8MHZ的频率下。由于HSI的精度较差,SYSCLK速度较低等原因,我们需要对STM32的时钟系统进行配置。一般配置的过程如下。 单片机复位后,首先启动HSE,等待HSE时钟稳定后,把HSE作为PLL的输入,PLLMUL把PLL的输入时钟8倍频后做为SYSCLK,那么系统时钟就工作在72MHZ。时钟的来源是外部时钟。这段代码的实现在STM32的库函数 system_stm32f10x.c文件中的SystemInit()函数中。  
  • 热度 31
    2013-3-19 16:17
    5405 次阅读|
    12 个评论
    最近在学习FPGA,遇到一个棘手的问题,就是FPGA的寄存器类型变量如何赋初值问题。   在网上找了些论坛看了下,总结如下:   1、有的FPGA(后期带有内部RAM的)可以直接在定义reg类型时赋初值,如reg  led_out = 4'b1100; 而有的FPGA(早期产品)不支持这种赋初值方法,上电后reg一般会有默认的全1或全0. 2、想要FPGA的寄存器上电即有初值,    对可直接赋初值的FPGA有两种方法,一种是直接在定义reg类型变量时直接赋初值,另一种是利用上电复位信号对FPGA寄存器回归初值。(其实如果此reg类型定义的是状态机的一种状态,还可以让状态机自动回归。)    对不支持直接赋初值的FPGA则只有利用上电复位信号对FPGA回归到初值了。   个人意见,如果想要程序移植性好,就需要适应以上所述的两种FPGA,所以为了保证程序可靠性而应该统一用上电复位信号来将寄存器回归初值。   但是我比较迷惑的是这个上电复位信号怎么产生呢。   这样又有两种情况:   1、FPGA采用被动配置方式时,可以在配置完成后配置其的MCU等再发个rst信号给FPGA来个复位,寄存器回归初始状态。 2、FPGA采用主动配置方式时,上电信号信号怎么给?如果用上电复位芯片有点不可靠,因为复位芯片复位完成后FPGA还不一定配置完成呢。那这种情况下怎么办?   这就是我的问题,麻烦各位大神说说自己平时的做法。
  • 热度 34
    2011-2-17 22:55
    4518 次阅读|
    2 个评论
    3 Asynchronous reset problem In discussing this paper topic with a colleague, the engineer stated first that since all he was working on was FPGAs, they do not have the same reset problems that ASICs have (a misconception). He went on to say that he always had an asynchronous system reset that could override everything, to put the chip into a known state. The engineer was then asked what would happen to the FPGA or ASIC if the release of the reset occurred on or near a clock edge such that the flip-flops went metastable. Too many engineers just apply an asynchronous reset thinking that there are no problems. They test the reset in the controlled simulation environment and everything works fine, but then in the system, the design fails intermittently. The designers do not consider the idea that the release of the reset in the system (non-controlled environment) could cause the chip to go into a metastable unknown state, thus avoiding the reset all together. Attention must be paid to the release of the reset so as to prevent the chip from going into a metastable unknown state when reset is released. When a synchronous reset is being used, then both the leading and trailing edges of the reset must be away from the active edge of the clock. As shown in Figure 5, an asynchronous reset signal will be de-asserted asynchronous to the clock signal. There are two potential problems with this scenario: (1) violation of reset recovery time and, (2) reset removal happening in different clock cycles for different sequential elements.   Figure 5 - Asynchronous reset removal recovery time problem 3.1 Reset recovery time Reset recovery time refers to the time between when reset is de-asserted and the time that the clock signal goes high again. The Verilog-2001 Standard has three built-in commands to model and test recovery time and signal removal timing checks: $recovery, $removal and $recrem (the latter is a combination of recovery and removal timing checks). Recovery time is also referred to as a tsu setup time of the form, “ PRE or CLR inactive setup time before CLK ↑” . Missing a recovery time can cause signal integrity or meta-stability problems with the registered data outputs. 3.2 Reset removal traversing different clock cycles When reset removal is asynchronous to the rising clock edge, slight differences in propagation delays in either or both the reset signal and the clock signal can cause some registers or flip-flops to exit the reset state before others. 4.0 Reset synchronizer Guideline: EVERY ASIC USING AN ASYNCHRONOUS RESET SHOULD INCLUDE A RESET SYNCHRONIZER CIRCUIT!! Without a reset synchronizer, the usefulness of the asynchronous reset in the final system is void even if the reset works during simulation. The reset synchronizer logic of Figure 6 is designed to take advantage of the best of both asynchronous and synchronous reset styles.   Figure 6 - Reset Synchronizer block diagram An external reset signal asynchronously resets a pair of master reset flip-flops, which in turn drive the master reset signal asynchronously through the reset buffer tree to the rest of the flip-flops in the design. The entire design will be asynchronously reset. Reset removal is accomplished by de-asserting the reset signal, which then permits the d-input of the first master reset flip-flop (which is tied high) to be clocked through a reset synchronizer. It typically takes two rising clock edges after reset removal to synchronize removal of the master reset. Two flip-flops are required to synchronize the reset signal to the clock pulse where the second flip-flop is used to remove any meta-stability that might be caused by the reset signal being removed asynchronously and too close to the rising clock edge. As discussed in section before, these synchronization flip-flops must be kept off of the scan chain. Figure 7 - Predictable reset removal to satisfy reset recovery time   A closer examination of the timing now shows that reset distribution timing is the sum of the a clk-to-q propagation delay, total delay through the reset distribution tree and meeting the reset recovery time of the destination registers and flip-flops, as shown in Figure 7. The code for the reset synchronizer circuit is shown in Example 8. module async_resetFFstyle2 (rst_n, clk, asyncrst_n);   output rst_n;   input   clk, asyncrst_n;   reg     rst_n, rff1;   always @(posedge clk or negedge asyncrst_n)     if (!asyncrst_n) {rst_n,rff1} = 2'b0;     else              {rst_n,rff1} = {rff1,1'b1}; endmodule Example 8a - Properly coded reset synchronizer using Verilog 5 Multi-clock reset issues For a multi-clock design, a separate asynchronous reset synchronizer circuit and reset distribution tree should be used for each clock domain. This is done to insure that reset signals can indeed be guaranteed to meet the reset recovery time for each register in each clock domain. As discussed earlier, asynchronous reset assertion is not a problem. The problem is graceful removal of reset and synchronized startup of all logic after reset is removed. Depending on the constraints of the design, there are two techniques that could be employed: (1) non-coordinated reset removal, and (2) sequenced coordination of reset removal.   Figure 12 - Multi-clock reset removal 5.1 Non-coordinated reset removal For many multi-clock designs, exactly when reset is removed within one clock domain compared to when it is removed in another clock domain is not important. Typically in these designs, any control signals crossing clock boundaries are passed through some type of request-acknowledge handshaking sequence and the delayed acknowledge from one clock domain to another is not going to cause invalid execution of the hardware. For this type of design, creating separate asynchronous reset synchronizers as shown in Figure 12 is sufficient, and the fact that arst_n, brst_n and crst_n could be removed in any sequence is not important to the design. 5.2 Sequenced coordination of reset removal For some multi-clock designs, reset removal must be ordered and proper sequence. For this type of design, creating prioritized asynchronous reset synchronizers as shown in Figure 13 might be required to insure that all aclk domain logic is activated after reset is removed before the bclk logic, which must also be activated before the cclk logic becomes active. Figure 13 - Multi-clock ordered reset removal For this type of design, only the highest priority asynchronous reset synchronizer input is tied high. The other asynchronous reset synchronizer inputs are tied to the master resets from higher priority clock domains. This article abstracted from CummingsSNUG2002SJ_Resets , the original author is Clifford E. Cummings and Don Mills.
相关资源
  • 所需E币: 1
    时间: 2023-3-27 09:10
    大小: 165.88KB
    上传者: 张红川
    用休眠复位运行方式提高单片机抗干扰能力.pdf
  • 所需E币: 2
    时间: 2023-3-20 18:55
    大小: 260.56KB
    上传者: 张红川
    单片机应用系统非正常复位的识别及程序设计.pdf
  • 所需E币: 2
    时间: 2023-3-20 18:47
    大小: 394.8KB
    上传者: 张红川
    单片机复位电路的设计与分析.pdf
  • 所需E币: 0
    时间: 2023-2-12 22:15
    大小: 275.06KB
    上传者: ZHUANG
    一种FPGA多DSP系统复位信号的设计方法
  • 所需E币: 1
    时间: 2022-8-6 11:26
    大小: 1.56KB
    上传者: Argent
    步进控制程序(置位复位指令)
  • 所需E币: 1
    时间: 2022-5-2 12:49
    大小: 382.44KB
    上传者: ZHUANG
    基于自适应感知复位算法的移动机器人定位
  • 所需E币: 1
    时间: 2022-4-30 17:04
    大小: 179.64KB
    上传者: ZHUANG
    LW-1型机器人重复位姿精度检测系统
  • 所需E币: 1
    时间: 2022-4-3 11:47
    大小: 15.33KB
    上传者: Argent
    PLC技术在工业控制领域应用广泛,分享一些有关实用的三菱PLC参考程序,希望能够帮助到有需要的网友。
  • 所需E币: 1
    时间: 2022-4-3 09:56
    大小: 9.69KB
    上传者: Argent
    PLC技术在工业控制领域应用广泛,分享一些有关实用的三菱PLC参考程序,希望能够帮助到有需要的网友。
  • 所需E币: 1
    时间: 2022-4-2 22:42
    大小: 9.63KB
    上传者: Argent
    PLC技术在工业控制领域应用广泛,分享一些有关实用的三菱PLC参考程序,希望能够帮助到有需要的网友。
  • 所需E币: 1
    时间: 2022-4-2 21:59
    大小: 10.16KB
    上传者: Argent
    PLC技术在工业控制领域应用广泛,分享一些有关实用的三菱PLC参考程序,希望能够帮助到有需要的网友。
  • 所需E币: 1
    时间: 2022-4-2 20:44
    大小: 1.25KB
    上传者: Argent
    PLC技术在工业控制领域应用广泛,分享一些有关实用的三菱PLC参考程序,希望能够帮助到有需要的网友。
  • 所需E币: 4
    时间: 2022-3-1 22:52
    大小: 2.31MB
    上传者: ZHUANG
    基于STM32的骨折复位机器人控制手柄设计
  • 所需E币: 5
    时间: 2022-3-1 22:52
    大小: 2.36MB
    上传者: ZHUANG
    基于STM32的骨折复位机器人控制手柄设计
  • 所需E币: 2
    时间: 2022-1-3 22:46
    大小: 1.09MB
    上传者: czd886
    基于国产FPGA的千兆以太网交换机复位系统设计
  • 所需E币: 0
    时间: 2021-12-23 10:15
    大小: 560.53KB
    上传者: crh18824662436
    VKD233DS/HS概述:VKD233DS/HSDFN6是单按键触摸检测芯片,此触摸检测芯片内建稳压电路,提供稳定的电压给触摸感应电路使用,稳定的触摸检测效果可以广泛的满足不同应用的需求,此触摸检测芯片是专为取代传统按键而设计,触摸检测PAD的大小可依不同的灵敏度设计在合理的范围内,低功耗与宽工作电压,是此触摸芯片在DC或AC应用上的特性。特点:★ 工作电压2.4V~5.5V★ 内建稳压电路提供稳定的电压给触摸检电路使用★ 内建低压重置(LVR)功能★ 工作电流@VDD=3V﹐无负载快速模式下典型值4uA、最大值8uA★ 输出响应时间大约为快速模式下46mS@VDD=3V★ 可以由外部电容(1~50pF)调整灵敏度★ 稳定的人体触摸检测可取代传统的按键开关★ 提供快速模式★ 提供输出模式选择(TOGpin)可选择直接输出或锁存(toggle)输出★ 提供最长输出时间约16秒(±35%@VDD=3.0V)★ Qpin为CMOS输出﹐可由(AHLBpin)选择高电平输出有效或低电平输出有效★ 上电后约有0.5秒的稳定时间﹐此期间内不要触摸检测点﹐此时所有功能都被禁止★ 自动校准功能刚上电的8秒内约每1秒刷新一次参考值﹐若在上电后的8秒内有触摸按键或8秒后仍未触摸按键,则重新校准周期切换为4秒————————触摸触控IC系列简介如下:标准触控IC-电池供电系列:VKD223EB---工作电压/电流:2.0V-5.5V/5uA-3V  感应通道数:1    通讯接口 最长响应时间快速模式60mS,低功耗模式220ms    封装:SOT23-6VKD223B---  工作电压/电流:2.0V-5.5V/5uA-3V  感应通道数:1    通讯接口 最长响应时间快速模式60mS,低功耗模式220ms    封装:SOT23-6VKD233DB---工作电压/电流:2.4V-5.5V/2.5uA-3V  1感应按键  封装:SOT23-6  通讯接口:直接输出,锁存(toggle)输出  低功耗模式电流2.5uA-3VVKD233DH---工作电压/电流:2.4V-5.5V/2.5uA-3V  1感应按键  封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出  有效键最长时间检测16SVKD233DS---工作电压/电流:2.4V-5.5V/2.5uA-3V  1感应按键  封装:DFN6(2*2超小封装)通讯接口:直接输出,锁存(toggle)输出  低功耗模式电流2.5uA-3VVKD233DR---工作电压/电流:2.4V-5.5V/1.5uA-3V  1感应按键  封装:DFN6(2*2超小封装)通讯接口:直接输出,锁存(toggle)输出  低功耗模式电流1.5uA-3VVKD233DG---工作电压/电流:2.4V-5.5V/2.5uA-3V  1感应按键  封装:DFN6(2*2超小封装)通讯接口:直接输出,锁存(toggle)输出  低功耗模式电流2.5uA-3V VKD233DQ---工作电压/电流:2.4V-5.5V/5uA-3V  1感应按键  封装:SOT23-6通讯接口:直接输出,锁存(toggle)输出    低功耗模式电流5uA-3V VKD233DM---工作电压/电流:2.4V-5.5V/5uA-3V  1感应按键  封装:SOT23-6(开漏输出)通讯接口:开漏输出,锁存(toggle)输出    低功耗模式电流5uA-3V VKD232C  ---工作电压/电流:2.4V-5.5V/2.5uA-3V  感应通道数:2  封装:SOT23-6  通讯接口:直接输出,低电平有效  固定为多键输出模式,內建稳压电路MTP触摸IC——VK36N系列抗电源辐射及手机干扰:VK3601L  ---工作电压/电流:2.4V-5.5V/4UA-3V3  感应通道数:1  1对1直接输出待机电流小,抗电源及手机干扰,可通过CAP调节灵敏  封装:SOT23-6VK36N1D---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:1  1对1直接输出触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOT23-6VK36N2P---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:2    脉冲输出触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOT23-6VK3602XS---工作电压/电流:2.4V-5.5V/60UA-3V  感应通道数:2  2对2锁存输出低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压  封装:SOP8VK3602K---工作电压/电流:2.4V-5.5V/60UA-3V  感应通道数:2  2对2直接输出低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压  封装:SOP8VK36N2D---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:2  1对1直接输出触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOP8VK36N3BT---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:3  BCD码锁存输出触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏  封装:SOP8VK36N3BD---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:3  BCD码直接输出触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏  封装:SOP8VK36N3BO---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:3  BCD码开漏输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP8/DFN8(超小超薄体积)VK36N3D---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:3  1对1直接输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N4B---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:4    BCD输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N4I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:4    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N5D---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:5  1对1直接输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N5B---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:5    BCD输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N5I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:5    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N6D---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:6  1对1直接输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N6B---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:6    BCD输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N6I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:6    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N7B---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:7    BCD输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N7I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:7    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N8B---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:8    BCD输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N8I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:8    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N9I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:9    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)VK36N10I---工作电压/电流:2.2V-5.5V/7UA-3V3  感应通道数:10    I2C输出触摸积水仍可操作,抗电源及手机干扰  封装:SOP16/DFN16(超小超薄体积)1-8点高灵敏度液体水位检测IC——VK36W系列VK36W1D  ---工作电压/电流:2.2V-5.5V/10UA-3V3  1对1直接输出  水位检测通道:1可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOT23-6备注:1.开漏输出低电平有效  2、适合需要抗干扰性好的产品应用VK36W2D  ---工作电压/电流:2.2V-5.5V/10UA-3V3  1对1直接输出  水位检测通道:2可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP8备注:1.  1对1直接输出  2、输出模式/输出电平可通过IO选择VK36W4D  ---工作电压/电流:2.2V-5.5V/10UA-3V3  1对1直接输出  水位检测通道:4可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16备注:1.  1对1直接输出  2、输出模式/输出电平可通过IO选择VK36W6D  ---工作电压/电流:2.2V-5.5V/10UA-3V3  1对1直接输出  水位检测通道:6可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16备注:1.  1对1直接输出    2、输出模式/输出电平可通过IO选择VK36W8I  ---工作电压/电流:2.2V-5.5V/10UA-3V3  I2C输出    水位检测通道:8可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16备注:1.  IIC+INT输出    2、输出模式/输出电平可通过IO选择*水位检测芯片可用于需要检测水位,缺水,溢出等场合。适合应用于饮水机、净饮机、咖啡机、水壶、洗碗机、制冰机等水相关家用电器和电子产品。测试环境:在一个玻璃容器外壁(玻璃1-5毫米不等),通过双面电子导热硅胶,把水位检测PCB直接贴在玻璃上面检测水位。简介:VK36W水位检测系列是抗干扰能力强,穿透能力高的水位检测专用触摸芯片。拥有1-8点检测点,适合于多种应用段位检测。封装为SOT23-6,SOP8,SOP16上电就能检测水位点是否有水,水从无水到有水,从有水到无水,都可以检测出来。检测时可以不接触到水(隔空)在水箱外面检测到水位,也可以用金属探针接触到水来检测水位。在高干扰或者AC开关电源的应用中也可以正常工作。应用于多种液体水位检测产品,检测缺水,水位,溢水等多种场景例如:1:智能马桶盖,抽水马桶,水蒸锅,净水机,空调扇,洗碗机,加湿器,咖啡机,饮水机,制冰机,鱼    缸加热棒,浮水器,浴缸,洁具 ---- 家用家电系列2:植物盆溢水,香薰机,负离子发生器,水位漏水溢水报警器等智能家居产品。3:水杯,储水器等液位检测杯4:空气净化器,加湿器,雾化器等环境净化设备——————————————————————————LCD/LED液晶控制器及驱动器系列芯片简介如下:RAM映射LCD控制器和驱动器系列:VK1024B  2.4V~5.2V  6seg*4com  6*3  6*2          偏置电压1/21/3  S0P-16VK1056B  2.4V~5.2V  14seg*4com14*3  14*2        偏置电压1/21/3  SOP-24/SSOP-24VK1072B  2.4V~5.2V  18seg*4com18*3  18*2        偏置电压1/21/3  SOP-28VK1072C  2.4V~5.2V  18seg*4com  18*3  18*2        偏置电压1/21/3  SOP-28VK1088B  2.4V~5.2V  22seg*4com  22*3            偏置电压1/21/3  QFN-32L(4MM*4MM)VK0192  2.4V~5.2V  24seg*8com                偏置电压1/4    LQFP-44VK0256  2.4V~5.2V  32seg*8com                偏置电压1/4    QFP-64VK0256B  2.4V~5.2V  32seg*8com                偏置电压1/4    LQFP-64VK0256C  2.4V~5.2V  32seg*8com                偏置电压1/4    LQFP-52VK16212.4V~5.2V  32*432*332*2    偏置电压1/21/3  LQFP44/48/SSOP48/SKY28/DICE裸片VK1622 2.7V~5.5V  32seg*8com      偏置电压1/4    LQFP44/48/52/64/QFP64/DICE裸片VK1623 2.4V~5.2V  48seg*8com      偏置电压1/4    LQFP-100/QFP-100/DICE裸片VK1625   2.4V~5.2V  64seg*8com            偏置电压1/4  LQFP-100/QFP-100/DICE VK1626   2.4V~5.2V  48seg*16com          偏置电压1/5  LQFP-100/QFP-100/DICE(高品质高性价比:液晶显示驱动IC原厂直销工程技术支持!)高抗干扰LCD液晶控制器及驱动系列:VK2C21A  2.4~5.5V  20seg*4com16*8      偏置电压1/31/4  I2C通讯接口  SOP-28VK2C21B  2.4~5.5V  16seg*4com12*8      偏置电压1/31/4  I2C通讯接口  SOP-24VK2C21C  2.4~5.5V  12seg*4com8*8      偏置电压1/31/4  I2C通讯接口  SOP-20VK2C21D  2.4~5.5V  8seg*4com  4*8        偏置电压1/31/4  I2C通讯接口  SOP-16VK2C22A  2.4~5.5V44seg*4com          偏置电压1/21/3  I2C通讯接口  LQFP-52VK2C22B  2.4~5.5V  40seg*4com          偏置电压1/21/3  I2C通讯接口  LQFP-48VK2C23A  2.4~5.5V  56seg*4com52*8      偏置电压1/31/4  I2C通讯接口  LQFP-64VK2C23B  2.4~5.5V  36seg*8com          偏置电压1/31/4  I2C通讯接口  LQFP-48VK2C24  2.4~5.5V  72seg*4com68*860*16    偏置电压1/31/41/5  I2C通讯接口 LQFP-80          超低功耗LCD液晶控制器及驱动系列:VKL060  2.5~5.5V  15seg*4com        偏置电压1/21/3  I2C通讯接口  SSOP-24VKL128  2.5~5.5V  32seg*4com        偏置电压1/21/3  I2C通讯接口  LQFP-44VKL144A  2.5~5.5V  36seg*4com        偏置电压1/21/3  I2C通讯接口  TSSOP-48VKL144B  2.5~5.5V  36seg*4com      偏置电压1/21/3  I2C通讯接口  QFN48L(6MM*6MM)静态显示LCD液晶控制器及驱动系列:VKS118  2.4~5.2V  118seg*2com        偏置电压--    4线通讯接口  LQFP-128VKS232  2.4~5.2V  116seg*2com        偏置电压1/11/2  4线通讯接口  LQFP-128     永嘉微电/VINKA原厂直销,工程服务技术支持,主营LCD/LED驱动IC/触摸IC__________________________________________________________________________________________________内存映射的LED控制器及驱动器:VK1628--- 通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:70/52  共阴驱动:10段7位/13段4位  共阳驱动:7段10位  按键:10x2  封装SOP28VK1629--- 通讯接口:STB/CLK/DIN/DOUT  电源电压:5V(4.5~5.5V)  驱动点阵:128共阴驱动:16段8位  共阳驱动:8段16位  按键:8x4  封装QFP44VK1629A--- 通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:128共阴驱动:16段8位  共阳驱动:8段16位  按键:---  封装SOP32VK1629B--- 通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:112  共阴驱动:14段8位  共阳驱动:8段14位  按键:8x2  封装SOP32VK1629C--- 通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:120  共阴驱动:15段8位  共阳驱动:8段15位  按键:8x1  封装SOP32VK1629D--- 通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:96  共阴驱动:12段8位  共阳驱动:8段12位  按键:8x4  封装SOP32VK1640--- 通讯接口:CLK/DIN  电源电压:5V(4.5~5.5V)  驱动点阵:128共阴驱动:8段16位  共阳驱动:16段8位  按键:---  封装SOP28VK1650--- 通讯接口:SCL/SDA  电源电压:5V(3.0~5.5V)  驱动点阵:8x16共阴驱动:8段4位  共阳驱动:4段8位  按键:7x4  封装SOP16/DIP16VK1668---通讯接口:STB/CLK/DIO  电源电压:5V(4.5~5.5V)  驱动点阵:70/52共阴驱动:10段7位/13段4位  共阳驱动:7段10位  按键:10x2  封装SOP24VK6932--- 通讯接口:STB/CLK/DIN  电源电压:5V(4.5~5.5V)  驱动点阵:128共阴驱动:8段16位17.5/140mA  共阳驱动:16段8位  按键:---  封装SOP32VK16K33--- 通讯接口:SCL/SDA   电源电压:5V(4.5V~5.5V)  驱动点阵:128/96/64  共阴驱动:16段8位/12段8位/8段8位  共阳驱动:8段16位/8段12位/8段8位按键:13x310x38x3  封装SOP20/SOP24/SOP28永嘉微电/VINKA原厂直销,工程服务技术支持,主营LCD/LED驱动IC/触摸IC注:具体参数以最新PDF为准,型号众多未能一一介绍,欢迎索取PDF/样品
  • 所需E币: 1
    时间: 2021-4-23 11:37
    大小: 2.74MB
    上传者: box520
    多核X-DSP芯片复位与启动控制部件的设计与实现
  • 所需E币: 0
    时间: 2021-4-6 20:12
    大小: 8.5KB
    上传者: samewell
    三菱PLC仿真习题参考答案64个-04置位与复位B4
  • 所需E币: 0
    时间: 2021-4-6 20:12
    大小: 8.5KB
    上传者: samewell
    三菱PLC仿真习题参考答案64个-04置位与复位B3
  • 所需E币: 0
    时间: 2021-4-8 20:46
    大小: 11.16KB
    上传者: LGWU1995
    置位SET与复位RST指令学习电机启动与停止.rar