首页-达尔闻    全部    项目分享|经典永流传!NE555+CD4017+FPGA点灯

项目分享|经典永流传!NE555+CD4017+FPGA点灯

工程师动手实验第一课——点灯,今天分享的是入门级的点灯:NE555+CD4017、FPGA+CD4017。
收藏
  • 工程师动手实验第一课——点灯,今天分享的是入门级的点灯:NE555+CD4017、FPGA+CD4017。

    观看视频:https://www.bilibili.com/video/BV11D4y1y7mE/

    提到流水灯,大家可能想到的应该是数字电路的入门学习。那么,有没有想过为什么数字电路的入门项目就是点亮流水灯呢?

    首先,通过点亮流水灯可以直观的看到IO的电平变化;其次,一个小小的流水灯,引出了时钟、电平、计数器、触发器、位移等数字电路的基础概念。

    这次使用到的主要芯片之一是CD4017,是一种十进制计数器,一共有16个引脚,由电源引脚、时钟输入端、禁止端、清除端、进位脉冲输出端以及Y0-Y9计数脉冲输出端组成。在Datesheet中可以查看的CD4017的时序图和真值表等芯片特性。

    其次就是非常经典的NE555芯片,自出生以来,多少同期芯片都已经消失在历史的长河中,而它至今都可以在各类电子产品中持续发光发热,可见性能非常优异。通过简单的外部电路,即可实现定时器、触发器、振荡器等功能,定时精度高,驱动能力强,在Datesheet中详细的介绍了NE555的特性参数以及一些典型应用电路。

    点灯的电路原理比较简单,使用NE555产生定时脉冲后送入CD4017的时钟输入端,Q0——Q9连接到LED,禁止端和清除端置为低电平,上电以后,初始状态Q0=1,每当定时脉冲到达上升沿时,输出端向高位移一位,位移十次以后,产生一次进位信号。

    实物通电正常之后,就是对电路中的关键信号进行观察。

    首先是对NE555的关键信号做测试,示波器通道一连接到NE555的信号输出引脚3脚,通道二连接到NE555的RC充放电电路,通过观察,可以看到NE555的信号输出引脚为矩形波,RC充放电电路波形为锯齿波,当RC充放电电路电压高于(2/3)VCC时,输出为低电平。当电压低于(1/3)VCC时,输出为高电平。

    接下来就是对CD4017的输出进行测试,这里使用虚拟逻辑分析仪,通过杜邦线与CD4017的输出端连接,虚拟逻辑分析仪通道0至通道9连接到CD4017的Y0——Y9输出端,通道10连接到进位端,通道11连接到时钟输入端,设置好采样深度与采样率,点击开始采样即可,采样完成后,选择其中一组完整的时序进行分析,实际的工作时序与数据手册描述一致。

    上面这个测试电路中,CD4017产生的进位信号,我们并没有使用,那这个进位信号该怎样使用呢?接下来我们就来看一看这个进位信号该怎样使用,这里首先使用电路仿真软件进行仿真设计,这个电路中,在之前单个CD4017的基础上增加了一片CD4017,第二片CD4017的时钟信号来自于第一片CD4017的进位信号。仿真中还是使用NE555为第一片CD4017 提供时钟脉冲,每当第一片CD4017完成10位计数后,产生一次进位信号,第二片CD4017位移一位,通过原理分析,级联一片CD4017后,计数器有原来的0—9计数增加至0-99,,如果在级联一片CD4017,则计数器可以增加至0—999,以此类推。接下来,我们队仿真电路进行实际功能验证。

    为了更好的理解CD4017的工作时序,这里我们使用FPGA来完成CD4017的功能,这里使用Verilog硬件描述语言进行硬件功能描述,具体的描述过程在打包的项目资料里可以找到,功能描述完成以后,进行编译与仿真,通过仿真时序波形,可以看到功能与CD4017一致,最后,将程序固化至FPGA的外部存储器中,就可以与真实的CD4017进行级联了。

    由于FPGA与CD4017及NE555之间的电平问题,我们设置FPGA模拟的CD4017为第一级,真实的CD4017为第二级,并拆除原电路中的NE555,第一级的时钟由信号发生器提供,第二级CD4017的时钟由FPGA模拟的CD4017的进位信号经过电平转换后提供。这里我们使用到了一块基础外硬件测试板,测试板主要包括一些常用电源及LED基础测试硬件,FPGA模拟的CD4017的Y0—Y9分别连接至测试板的LED0—LED9,真实CD4017的进位信号连接到LED15。通过观察,我们可以看到第一级计数10次,第二级计数一次,第二级计数十次,LED15电平翻转一次。通过调节信号发生器频率,流水灯的流动速度也在变化。

    虽然NE555+CD4017流水灯功能实现比较简单,但是,里面涉及到的干货还是很多的,从硬件设计、功能仿真、逻辑设计再到测试仪器的使用等等。

Control Render Error!ControlType:productSlideBind,StyleName:Style1,ColorName:Item0,Message:InitError, ControlType:productSlideBind Error:未将对象引用设置到对象的实例。