几周前北京林业大学的张老师跟我电话,提出一个要求,说想让我们通过直播的方式带着他们刚学完数字电路/FPGA的大二同学们利用暑期时间,做一些实战性的项目,尤其想让同学们子在小脚丫FPGA平台上实现DDS信号发生器。
但目前的挑战是 - 同学们都在家,除了电脑之外没有任何实验仪器,产生了信号如何验证?
这难不倒我们,板子上正好有一块128*32分辨率的OLED显示屏和转换率为300Ksps的串行ADC,本来这块屏幕是用来显示一些状态信息以及板子上温度传感器的数据的,我们可以利用这个屏幕来显示采集到的波形,300Ksps的ADC采集20KHz以内的音频信号应该也是够了的(每个周期内可以有至少15个点了),这样就可以构成一个简单的“示波器”。
是否可行呢?这一切对于我们的王老师都不在话下,上一段视频:
这就是通过DDS产生的几种常用的波形,并通过板上的串行ADC采集回来在OLED显示屏上显示出来的,更详细的视频正在剪辑中,明后天就在公众号里放出来,敬请观看。
整个的调试流程如下:
先搞定显示部分 - 通过FPGA的SPI接口逻辑在128*32分辨率的OLED屏上能够正常显示,并进而可以显示自建的波形 - 三角波、正弦波
调试ADC的功能(300Ksps采样率、8位分辨率),也是SPI接口,编程FPGA逻辑能采集电位器分压产生的不同电压值,在OLED上显示出来(也可以通过小脚丫FPGA上的8个LED来指示) - 先采集0V和3.3V的直流电压,对应于数字量0和255,调节电压值,电压值的变化和量化后的数字应该是单调对应,快速旋转电位计调节电压的变化,应该能看到OLED屏上波形的变化,这样我们就拥有了一个简单的“示波器”,并可以根据屏幕上显示的周期数以及用到的采样频率来计算被采集信号的周期或频率;
如果你手头有信号源(我曾教大家自制DDS信号发生器),接上外部的信号源,正弦波、方波、三角波、改变信号的幅度、改变信号的频率。。。。;
有了“示波器”,就可以做DDS信号发生器了,并将产生的信号输出连接到ADC的输入端,通过OLED的波形显示来判断DDS信号发生器的工作状况;
当然,ADC采集到的信号也可以通过UART传递到电脑上,通过Labview等在电脑上显示,用电脑屏幕做成示波器的显示,显示的波形及参数信息更多、更全,也是一种方法。
没有条件就要创造条件、没有办法就要想办法是工程师必须具备的一个技能,很多看似不可能做到的事情,只要你想想办法、做个变通,就能够做成。
如果你对我们下周即将开始的直播实战课程感兴趣,你可以扫一下下面的二维码或点击“阅读原文”跳转到相应的页面。
----
我们的另外一个项目 - 基于LPC824的简易示波器的制作,周一晚上刚做完直播介绍,今天上午就有深圳的朋友将采集到的外部音频信号的波形显示在OLED的屏幕上,也以一段小视频展示一下: