tag 标签: d触发器

相关博文
  • 热度 7
    2022-2-17 20:05
    2746 次阅读|
    8 个评论
    一个D触发器的问题
    来到新公司一个月了,回到熟悉的电路设计,真是爽。当然敲代码还是有的,不好心情不一样了,敲的代码都是跳跃的。有了电路做支撑,代码也有了用武之处。 当然,刚来公司,对方也不能什么都交给你做,毕竟还是要考察考察。最近测试的同事偶然发现一个现象,很自然这个问题就交到我头上解决,本着新人要好好表现的目的,再就是争取谈薪水的优势,毕竟疫情闹得,我还的降薪工作,必须解决这个问题。 现象很简单,就是开关长按关机,长按开机。看了眼电路,跟控制器没关系,只是反相器组成的延时电路和D触发器组成的双稳态加上MOSFET而已。这个电路以前做过,也没什么的难度,按理说不应该出问题啊。总工说以前调试过,没问题。既然领导都说了,那就只能慢慢找了,先把图放上来,单位不能连接外网,只能随便画个示意图。 查了半天实在是没其他问题,用示波器定位到D触发器问题。第一次按下D触发器能切换状态,第二次按按理说应该切换另一个状态,但是就是没变,左思右想还是没想明白。 加班吃了碗泡面,冷静想想。D触发器前端应该是施密特反相器就好了,但是也没法改了,毕竟都生产了一堆,换也来不及了,硬着头皮来吧。 难道是保持时间不够?决定在D端与GND加一个电容,增加一些延迟,让Q与Q非之间慢点来。 测试了几台,没问题了,后来改进的话增加一个电阻,组成RC延时电路会更好一些。因为不是高速电路,主要是稳定。 一大早去邀功,总工也挺满意。 回头看看,这也算是考验基本功的。还好是别人电路的问题,这要是我自己做的电路出问题了,涨薪是不能了。 最后再说一句,一定要用施密特反相器!
  • 热度 11
    2020-3-14 15:00
    9019 次阅读|
    3 个评论
    小阻值电阻的几个应用2
    先摘录《电子元器件的选择与应用》一书中的一段话:与工作正常的电路相比,失败时的印象较为深刻。当发生故障时,应该立刻想到“怎么办呢,这是以前的XX的情况”。因此与其按照说明书进行设计,倒不如多经历一些失败获得有价值的经历。 该书最后的部分也列举了作者工作中的几个失败案例,看了之后确实印象深刻,都快忘了该书的其他章节讲的什么了。成功的经历,可能每个人都不一样,但是失败的情况,大致都有共性。那由为什么不从失败中吸取教训不再犯错呢?有可能是经验的太少,有可能是无人指导,还有就是人的本性,就像都知道以史为鉴,但都会不断的重复历史。说多了,总之以后的博客,都会写一些失败的案例,算是分享一些经验给刚入行的同仁,大师大家就别看了,浪费时间。 电子技术这行,分类广,技术杂,想要成为一个合格的工程技术人员,得学很多的知识。就说电路这一块,既要学习基础电路,又要了解最新行情。特别是集成电路的发展,使得许多技术都大规模的整合。以前每次给同事培训,开篇头一句都是,我现在所说的都是被淘汰的技术。我也很无奈,发展实在快。原来的数字电路就是被冲击最大的一块,很多都被CPLD——也被淘汰了,FPGA等取代了。以前打开视频采集板,满满的视频矩阵芯片。现在呢,可能还没开关电源起眼。下面说的就是一个小阻值电阻拯救一个数字电路的过程。 最近废话太多,可能是新冠疫情憋的。一次有个产品新增一个需求,要求长按自复按键开关机。皇上说了,就是小改动嘛,一定要快哦。看着已经完成的电路板,程序都下好了,只能在电源部分想办法。做一个单按键双稳态电路,加上延时启动切换MOSFET来控制电源的通断,毕竟上谕要求快哦。也是凑巧,以前给原同事培训的时候做过个数字电路很合适,就用在这吧。就不用类似LT2950和一些国产IC这些专门的芯片了。毕竟Linear——现在归顺ADI,性能好是好,价格也真好。而且Linear的芯片电路很特别,资金允许的话,建议大家购买《模拟电路设计手册——晋级应用指南》这本,哦不,这厚本书,Linear的大师写的巨著(不夸张,价格也是巨大),我也是在发工资之后买的,赶上房贷了(夸张点)。 电路如下图所示,大家一看就知道仿真的软件是Multisim,这里声明,支持正版。U1A,U1B(CD40106为施密特方向器,一定是施密特反相器),R1,C1,D1组成一个延时电路,U2A(CD4013为D触发器)组成双稳态电路,控制后边的MOSFET。 1.当按键S1按下时,U1A的输入端为低电平,U1A的输出端为高电平,给C1充电,充电时间大概为R1xC1,当C1充满电后,U1B输出端为由高变低电平。 2.U1C将低电平变为高电平给U2A的CLK端,上升沿触发U2A(D触发器),Q端输出电平发生变化,控制MOSFET。 3.当按键S1抬起时,U1A输入端为高电平,输出端为低电平,C1放电通过D1而不是R1,加快放电速度(防止按键释放后,C1未放完电,再次按下S1会立刻充电饱和,导致MOSFET切换过快,而变成短按开关机)。 一次操作流程如上所示,开关机流程同理。示波器的电路图如下,改图为长按关机部分。黄色为MOSFET输出部分,接10R电阻带图负载。绿色部分为U2A的CLK部分,蓝色为按键部分,红色为C1充电部分。 从图中可以看到,S1按下,蓝色变为低电平。C1缓慢充电,为红色部分。到一定时间后,U2A的CLK变为成高,上升沿触发U2A,改变Q状态,绿色和红黄色部分。为了仿真方便,R1和C1的值为小点,毕竟电脑速度不行,仿真太长时间就蓝屏了,无奈也没钱换。 仿真完事了,下一步做PCB实验一下。完成几个样机,测试之后调整R和C的值(最好是R大,C小,毕竟C的差异性大,导致延时不一致就麻烦了),还算可以,功能也没问题。但是过段时间同事测试只有发现有几台没法开关机了,拿来一看都是施密特触发器或者D触发器损坏了。一开始以为是芯片问题,毕竟某宝的东西只能听天由命了。问题不解决也不行啊,开会又是一顿催促,效率低的大帽子跟血滴子是的在头上飘。后来发现由于测试要求,供电端口需要不断插拔。这一下就感觉被雷击(雷电流咱们会讨论的)一般,这5V是直接给了两个IC供电的,前端也没有任何稳压和插拔保护的东西(防反接二极管就忽略吧)。为了赶时间,也只好割线(还好PCB画的巧),在两个IC的供电端串进去1个10R的电阻,然后再让同事进行疯狂的供电插拔实验,没问题了。后来做了一批电路板也没有没法关机的问题,总算松口气。 现在回想都一身冷汗,对小公司来说每个产品都是续命的,一个不小心就分崩离析。一个小电阻算是挽回一点我的老脸,毕竟我是傲娇的狮子座单身狗。 现在回看这个问题,也跟画原理图的习惯有关系,毕竟原图不是用IC封装画的,没有电源引脚,自然也就忘了电源接口是直接与IC的VDD端相连,在没有热插拔保护的情况下,是很容易出问题的。 好了,废话太多,下周再见。
  • 热度 16
    2015-7-24 17:56
    1595 次阅读|
    1 个评论
    FPGA是典型的数字系统,所有的动作都是在时钟节拍下运行的。如果说基本得D触发器,上升沿触发,带有一个同步复位端,那么输出端Q就在时钟上升沿到来时输出此时的输入端D的信号。那么如果说,在上升沿到来时,输入端D的信号刚好也在变化,信号翻转了,那么此时的输出Q会是时钟上升沿来之前的D的信号还是时钟上升沿来之后D的信号呢。 下面是为了验证假设所做的时序仿真。 源码: module d(clk,rst,din,q);     input clk;     input  rst;     input din;     output q;          reg q;          always@(posedge clk)       begin         if(!rst)           q=1'b0;         else           q=din;       end        endmodule     Testbench: module d_tb;     reg clk;     reg  rst;     reg din;     wire q;          initial       begin         clk=1'b0;       forever #20 clk=~clk;       end            initial       begin       rst=1'b1;       #10 rst=1'b0;       #20 rst=1'b1;       end          initial       begin         din=1'b0;       forever #20 din=~din;       end            d u1(.clk(clk),.rst(rst),.din(din),.q(q));   endmodule   下图为仿真波形:   从仿真波形中可以看出,如果在上升沿到来时,D端数据发生变化,则Q端将输出上升沿后的数据。   因为在FPGA中,信号或者说内部数据的变化都是在时钟边沿到来时发生的,所以对于本文中所说问题进行仿真是很有必要的。
相关资源