幾周前北京林業(yè)大學(xué)的張老師跟我電話,提出一個(gè)要求,說(shuō)想讓我們通過(guò)直播的方式帶著他們剛學(xué)完數(shù)字電路/FPGA的大二同學(xué)們利用暑期時(shí)間,做一些實(shí)戰(zhàn)性的項(xiàng)目,尤其想讓同學(xué)們子在小腳丫FPGA平臺(tái)上實(shí)現(xiàn)DDS信號(hào)發(fā)生器。

但目前的挑戰(zhàn)是 - 同學(xué)們都在家,除了電腦之外沒有任何實(shí)驗(yàn)儀器,產(chǎn)生了信號(hào)如何驗(yàn)證?
這難不倒我們,板子上正好有一塊128*32分辨率的OLED顯示屏和轉(zhuǎn)換率為300Ksps的串行ADC,本來(lái)這塊屏幕是用來(lái)顯示一些狀態(tài)信息以及板子上溫度傳感器的數(shù)據(jù)的,我們可以利用這個(gè)屏幕來(lái)顯示采集到的波形,300Ksps的ADC采集20KHz以內(nèi)的音頻信號(hào)應(yīng)該也是夠了的(每個(gè)周期內(nèi)可以有至少15個(gè)點(diǎn)了),這樣就可以構(gòu)成一個(gè)簡(jiǎn)單的“示波器”。
是否可行呢?這一切對(duì)于我們的王老師都不在話下,上一段視頻:
這就是通過(guò)DDS產(chǎn)生的幾種常用的波形,并通過(guò)板上的串行ADC采集回來(lái)在OLED顯示屏上顯示出來(lái)的,更詳細(xì)的視頻正在剪輯中,明后天就在公眾號(hào)里放出來(lái),敬請(qǐng)觀看。
整個(gè)的調(diào)試流程如下:
先搞定顯示部分 - 通過(guò)FPGA的SPI接口邏輯在128*32分辨率的OLED屏上能夠正常顯示,并進(jìn)而可以顯示自建的波形 - 三角波、正弦波
調(diào)試ADC的功能(300Ksps采樣率、8位分辨率),也是SPI接口,編程FPGA邏輯能采集電位器分壓產(chǎn)生的不同電壓值,在OLED上顯示出來(lái)(也可以通過(guò)小腳丫FPGA上的8個(gè)LED來(lái)指示) - 先采集0V和3.3V的直流電壓,對(duì)應(yīng)于數(shù)字量0和255,調(diào)節(jié)電壓值,電壓值的變化和量化后的數(shù)字應(yīng)該是單調(diào)對(duì)應(yīng),快速旋轉(zhuǎn)電位計(jì)調(diào)節(jié)電壓的變化,應(yīng)該能看到OLED屏上波形的變化,這樣我們就擁有了一個(gè)簡(jiǎn)單的“示波器”,并可以根據(jù)屏幕上顯示的周期數(shù)以及用到的采樣頻率來(lái)計(jì)算被采集信號(hào)的周期或頻率;
如果你手頭有信號(hào)源(我曾教大家自制DDS信號(hào)發(fā)生器),接上外部的信號(hào)源,正弦波、方波、三角波、改變信號(hào)的幅度、改變信號(hào)的頻率。。。。;
有了“示波器”,就可以做DDS信號(hào)發(fā)生器了,并將產(chǎn)生的信號(hào)輸出連接到ADC的輸入端,通過(guò)OLED的波形顯示來(lái)判斷DDS信號(hào)發(fā)生器的工作狀況;
當(dāng)然,ADC采集到的信號(hào)也可以通過(guò)UART傳遞到電腦上,通過(guò)Labview等在電腦上顯示,用電腦屏幕做成示波器的顯示,顯示的波形及參數(shù)信息更多、更全,也是一種方法。
沒有條件就要?jiǎng)?chuàng)造條件、沒有辦法就要想辦法是工程師必須具備的一個(gè)技能,很多看似不可能做到的事情,只要你想想辦法、做個(gè)變通,就能夠做成。
如果你對(duì)我們下周即將開始的直播實(shí)戰(zhàn)課程感興趣,你可以掃一下下面的二維碼或點(diǎn)擊“閱讀原文”跳轉(zhuǎn)到相應(yīng)的頁(yè)面。

----
我們的另外一個(gè)項(xiàng)目 - 基于LPC824的簡(jiǎn)易示波器的制作,周一晚上剛做完直播介紹,今天上午就有深圳的朋友將采集到的外部音頻信號(hào)的波形顯示在OLED的屏幕上,也以一段小視頻展示一下: