DIY製作示波器的超詳細教程:(二)電路纔是“硬”道理——硬件電路簡述

通過我的“蠱惑”,想必大家都想自制一臺示波器玩玩,那就繼續跟着我走吧!所有的電子設備都離不開硬件,首先讓我來對它的硬件結構進行一下簡述:

總體電路如系統框圖所示(圖 1),前面已講過,爲了提高性能本電路採用“雙核”結構,兩片 AVR 單片機協同工作,MCU1 用於控制和頻率測量,MCU2 用於數據處理和顯示 控制,兩片單片機採用 SPI 總線通信。

信號從探頭輸入,進入程控放大(衰減)電路進行放大(衰減),再對被放大(衰減)的信號進行電平調整後送入高速 AD 轉換器對信號進行採樣,採樣所得的數據存入 FIFO存儲器中,當 FIFO 存滿後通知 MCU2MCU2 FIFO 存儲器中讀出數據進行處理,將波形顯示在 LCD 模塊上。時鐘電路爲高速AD 轉換器和 FIFO 存儲器提供從 600Hz~60MHz 8 種不同的頻率信號作爲不同水平掃速時的採樣時鐘頻率。從程控放大器輸出的信號一路送AD 轉換器,另一路送入整形電路對輸入信號進行整形,作爲測頻率的待測信號送入MCU1 16 位計數器外部觸發引腳 T1PD5),進行頻率測量,程控放大器的放大(衰減)倍數和時鐘電路的輸出頻率均由 MCU1 控制。MCU1 將被測信號的頻率、程控放大器的放大倍數和時鐘電路的輸出頻率等數據通過 SPI 總線發送給 MCU2MCU2 以這些數據作爲頻率、水平掃速、靈敏度和峯峯值計算、顯示的依據。

下面就各個模塊電路做以簡單介紹。

1.程控放大電路和電源電路:

將程控放大電路與電源電路放在一塊講,是因爲他們不僅有着密切的聯繫,而且還是做在一塊電路板上的。

程控放大器的作用是對輸入信號進行衰減或放大調整,使輸出信號電壓在 AD 轉換器輸入電壓要求範圍內,達到最好的測量與觀察效果,所以程控放大器電路在規定帶寬內的增益 一定要平坦,故對運算放大器的要求比較高,在本電路中我選用的是 NSC 公司生產的高速運算放大器 LM6172 雙運放,帶寬爲 100MHz,轉換速率 3000v/μs,每通道消耗電流 2.3mA輸出電流可達 50mA,完全滿足本電路的要求,選擇該芯片的另一個原因是價格,郵購價格8 元一片,相比 ADI,MAX 等公司幾十元一片的高速運放芯片來說算是很廉價了,電源採用正負雙電源供電,由於整個電路總的電源輸入爲單 8v,所以專門用一片 dc/dc 電路MC34063 爲其構成了負壓轉換器再經穩壓得到-5v 電壓,+5v 通過對輸入電壓穩壓得到。

程控放大器電路如圖 1 所示,被測信號從 BNC 插孔輸入,S0 繼電器決定輸入耦合方式,S0 吸合爲直流偶和方式,S0 斷開爲交流耦合方式。信號通過交直流耦合選擇開關後被送入R3~R5 C2~C4 組成的 X0.5/ X0.05 的衰減電路,衰減倍數由 S1 控制,當 S1 未吸合時接在“0”端,對應的衰減被數爲 ,當 S1 吸合時接在“1”端,對應的衰減被數爲

C2C3 對高頻信號進行補償。經過衰減的信號進入由高速運算放大器 U1A 組成的緩衝器緩衝,然後被送入由 U1B 組成的 X-0.8/ X-2/ X-4 的反相放大電路,放大倍數由 S2 S3 控制,當 S2、S3 均未吸合時對應的放大倍數爲S2 吸合 S3 未吸合對應的放大倍數爲S3 吸合則不用考慮 S2 的情況,但爲降低功耗使 S2 斷開,此時對應的放大倍數爲輸出信號又通過 S4 選擇是否經U2A 組成的同相放大器放大,當 S4 未吸合,則不經過同相放大,當 S4 吸合,則信號被放大倍,最後信號被送入由 U2B 組成的放大倍數爲-1 倍的反相放大器來消掉由第一級反相放大器所帶來的負號,與此同時 U3A 送來的反相基線電壓由 U2B 反相後作爲 AD 轉換器的輸入中點電壓被疊加在被測信號上被送入 AD 轉換器,因爲 ADS830E 的模擬輸入電壓範圍是 1.5V~3.5V,輸入中點電壓爲 2.5V,所以基線電壓應爲 2.5V。調節可變電位器 Rw1 將調整基線電壓的值,從而調整基線的位置。程控放大電路的放大倍數以及垂直,電壓靈敏度與 S1~S4 的關係見表 1

L”代表繼電器未吸合,“H”代表繼電器吸合,確定繼電器的常閉觸點和常開觸點很重要,因爲繼電器的吸合需要消耗一定電流,我選用的繼電器型號爲 TO2-5V,吸合電流爲15mA。在常用的 3 個靈敏度上(0.5V/div0.2V/div0.1V/div)最多隻有一個繼電器吸合,繼電器的驅動由 ULN2003 擔任。這種由運算放大器構成組合程控放大器的思想也可用於別的放大電路,平時多總結積累電路模型對提高電路設計能力非常有幫助,這個電路你記下了嗎?

電源電路爲整個示波器提供能源,作用非常重要!電路見圖 2 所示。

該示波器電路中供電分爲數字和模擬兩部分。爲避免相互干擾,所以將數字部分的供電與模擬部分的供電分開,分別用獨立的穩壓電路,並用電感與電容做成的濾波器隔離。數字部分需要單+5V 電源,由一片 LM7805 對 8V 電源電壓穩壓得到。模擬部分主要是程控放大器電路和 AD 轉換器的模擬輸入電路,程控放大器電路需要 ± 5V 雙電源,AD 轉換電路的模擬部分需要+5V 的單電源,+5V 電壓由 LM317T 對 8V 電源電壓穩壓得到,而-5V 電壓專門用一片 DC/DC 芯片 MC34063 將+8V 轉換成約-8.3V,DC/DC 輸出電壓由 R30 和 R31 決定,

輸出的負電壓由負壓穩壓芯片 LM337 穩壓得到-5V,爲避免 DC/DC 電路對其他電路產生干擾,在其輸入和輸出端分別串聯 L4 和 L5 進行隔離,在選擇元件時蓄能電感 L3 選擇磁罐封裝帶屏蔽的電感,使干擾降到最低。

2. 高速 AD 轉換與 FIFO 存儲電路

數字示波器中最重要的電路是 AD 轉換電路,它的作用是將被測信號採樣並轉換成數字信號存入存儲器,說它是數字示波器的咽喉一點也不爲過,因爲它直接決定着數字示波器所能測量的最高頻率,根據乃奎斯特定理,採樣頻率至少是被測信號最高頻率的 2 倍才能復現出被測信號。而在數字示波器中採樣頻率至少應該是被測信號頻率的 5~8 倍纔行,否則根本觀察不到信號的波形。在本電路中我選用的 AD 轉換芯片爲 BB 公司的 8 位高速 AD 轉換器ADS830E,官方資料給出的採樣頻率爲 10kSa/s~60MSa/s, 通過實驗發現轉換速率在 1K 以下工作也很正常,所以本示波器的最低採樣頻率爲 600Sa/s,要說明的一點是高速 AD 轉換器一般都有高低端轉換速率的限制,比如 TLC55408 AD 轉換器,轉換速率爲5MSa/s~40MSa/s,我試過當轉換頻率降到 2M 以下時就不能正常工作,所以選擇 AD 轉換芯片時不僅要注意最高轉換速率還要關注最低轉換速率,否則可能導致電路無法正常工作。有朋友也許會問 8 位轉換精度會不會有點太低?其實 8 位轉換器對於示波器來說是夠用的,就拿這個電路來說,我選用的 LCD 顯示模塊的分辨率爲 320*240,垂直分辨率爲 240 格,而 8爲轉換精度的分辨率爲 256 格,比顯示器的分辨率還高,所以絕對夠用。還有就是價格及電路的設計,在最高採樣率相同的情況下 10 AD 轉換芯片的價格是 8 AD 轉換芯片的幾倍,而且位數的增加也使電路的複雜程度大大增加,將直接影響處理速度,導致屏幕刷新過慢,反而影響性能。所以本着夠用的原則本示波器選用 60M 8 AD 轉換芯片 ADS830E。

引腳排列見圖 6

AD 轉換與 FIFO 存儲電路見原理圖 3,由程控放大電路調整後的信號分成兩路,一路進入 AD 轉換電路進行採樣,採樣所得的數據由 74LVC574 鎖存緩衝後送入 FIFO 存儲器。FIFO 存儲器是一種雙口的 SRAM,(FIFOfrist in frist out,即先進先出存儲器)這種存儲器沒有地址線,隨着寫入或讀取信號對數據地址指針進行遞加或遞減,來實現尋址。在 AD轉換器與 MCU2 之間加入 FIFO 的作用是起到高速數據緩衝的作用,因爲 AD 轉換器的最高工作頻率爲 60MHz 遠高於 MCU2 的工作頻率,所以讓FIFO AD 轉換器同步工作存儲 AD轉換器的轉換輸出數據。FIFO 存儲器有 3 個標誌位引腳,分別爲 FF(滿標誌):當存儲器存滿後置位該標誌,此時存儲器忽略一切寫數據操作。HF(半滿標誌):當存儲器存滿一半後置位該標誌。EF(空標誌):當存儲器被讀空時置位該標誌,此時存儲器忽略一切讀數據操作。FIFO 存儲器結構圖見圖 4。本電路中只用了該芯片的 FF 標誌與 MCU2 PB3 相接,FIFO 存儲器存滿後 FF 引腳被拉高,通知 MCU2 進行數據讀取,這時 MCU2 禁止 AD 換器與 FIFO 存儲器的時鐘,FIFO 的控制權交給 MCU2,(其實 MCU2 只是禁止了 FIFO 儲器的寫時鐘,見圖 3,時鐘信號通過 U8C 組成的緩衝器後直接加給了 ADS830E,所以MCU2 不能禁止 AD 轉換時鐘,只能通過由與門 U8A 組成的時鐘控制開關禁止或使能 FIFO存儲器的時鐘信號。因爲實驗中發現 AD 轉換在啓動後的幾個時鐘週期內的採樣不可靠,所以就讓 AD 轉換器一直工作,通過控制 FIFO 存儲器來控制 AD 採樣。在 AD 轉換電路與 FIFO存儲器中加入 74LVC574 的目的是所存數據提高數據通道的穩定性。)當 MCU2 讀完數據並完成軟件觸發後使能 AD 轉換器與 FIFO 存儲器時鐘,繼續讀取新的數據,同時 MCU2 對讀取的數據進行處理、顯示。

這兒再將高速數模轉換器ADS830E的工作簡單介紹一下,ADS830E的時序如圖5 所示,由圖可知每個時鐘週期進行一次數模轉換,所以採樣速率就是時鐘頻率,故可以很方便的通 過控制採樣時鐘來控制採樣頻率,當前輸出的採樣數據是 4 個時鐘週期以前採樣電壓的值,也就是說從採樣到輸出有 4 個時鐘週期的延遲,這對我們所要做的電路並不重要,所以我們可以簡單的理解爲輸入一個時鐘脈衝轉換一次,時鐘的脈衝的下降沿輸出數據就行,應用非常方便。還有一點就是 ADS830E 的輸入電壓幅度是可以編程控制的,11 腳(RSEL)爲控制引腳,當 11 腳置高電平時,ADS830E 的輸入電壓範圍是 1.5V~3.5V,即 2Vpp。當 11 置低電平時,輸入電壓範圍是 2V~3V,即 1Vpp。進行程控放大器設計時要考慮這個問題,本電路選用 2Vpp 的輸入電壓範圍。

3. 時鐘產生電路

時鐘產生電路爲 AD 轉換器提供一系列的採樣時鐘信號,分別爲 600Hz6kHz60kHz、600kHz3MHz6MHz30MHz 60MHz,共 8 種,分別對應着不同的水平水平掃速,由 MCU1 控制,控制關係見表 2

時鐘產生電路見圖 7,基準時鐘信號由一塊 60MHz 的溫度補償型有源晶體模塊提供,輸出的 60MHz 信號一路直接作爲 60MHz 採樣時鐘送入多路選擇器 74F151,另一路被送入由 74F74 觸發器組成的 2 分頻器分頻,得到 30MHz 的信號分爲兩路,一路送入多路選擇器 74F151,另一路送入由 2-5-10 分頻器 74LS390 組成的 5 分頻器進行分頻,得到 6MHz 信號,再分爲兩路,一路繼續分頻,另一路送入多路選擇器 74F151,後面幾級分頻與以上相同。對60MHz 信號進行第一次二分頻沒有用 74LS390 中的 2 分頻器,而單獨使用了一片 74F74是因爲 74LS390 中的二分頻器的最高輸入頻率爲 40MHz,所以在其前面用了一級獨立的二分頻器。8 種時鐘信號都被送入多路選擇器,MUC1 通過對 74F151 S0S1S2 三根選通信號線進行控制來選擇所需的採樣頻率。

 

4. MCU2 單片機顯示處理電路

MCU2 選用 ATMEL 公司的 AVR 單片機 Mega32-16AI,與 51 單片機相比 AVR 單片機具有更高的工作頻率與更高效率的硬件結構,51 單片機的指令週期是將晶體振盪器的振盪頻率進行 12 分頻後得到的,又有累加器 Acc 在高速執行指令時的瓶頸因素,而 AVR 單片機則不同,它的指令週期就是晶體振盪器的振盪週期,有 32 個類似與累加器 Acc 的寄存器直接和運算器相連,取址週期短,又可預取指令實現流水作業,故可高速執行指令。Mega32-16AI ROM 容量爲 32KBRAM 2KB32 個輸入輸出口,官方給出的最高速度爲 16MHz,但在實際使用中工作在 18~20MHz 也很穩定,所以用該單片機做顯示處理非常合適。在本電路中爲了提高 LCD 顯示器的屏幕刷新速率所以使其工作在 18MHz,實際使用中電路工作十分正常。

MCU2 電路見圖 8 所示。PD0~PD7 LCD 顯示器 8 位並行數據端相連,PC1~PC5 與LCD 顯示器的控制端相連用於驅動 LCD 顯示器(LCD 顯示器資料見光盤),PC0 用於控制LCD 背光,PC0=0 有背光,PC0=1 無背光。PB4PB5 PB7 作爲 SPI 通信端口與 MCU1相連進行兩個單片機之間的通信。PA0~PA7 FIFO 存儲器的數據輸出端 Q1~Q8 相連接,PB0~PB3 分別與 FIFO 存儲器的使能(FIFO_EN)控制端、復位(FIFO_RES)控制端、讀數據(FIFO_R)控制端和滿標誌(FIFO_FF)位相接。上電時,MCU2 通過 FIFO_RES 口對 FIFO 存儲器進行復位,復位後存儲器的讀寫指針都指向 0,允許寫數據,MCU2 通過FIFO_EN 端使能 FIFO 存儲器,開始將 AD 轉換器輸出的數據寫入存儲器,當 FIFO 存儲器寫滿數據後 FIFO_FF 位被拉高通知 MCU2 讀取採樣數據,MCU2 禁止 FIFO 存儲器寫入數據,然後從 FIFO 存儲器中讀數據,當數據讀完並完成軟件觸發後使能 FIFO 存儲器繼續存儲採樣數據,然後從讀取的數據中測出波形的峯峯值後將數據轉換成波型與參數顯示在LCD 顯示器上,峯峯值的測量是通過對一屏顯示數據進行比較取出最大值與最小值與當前垂直電壓靈敏度作爲係數計算出來的。SPI 通信通過中斷的方式實現,MCU1 每次給 MCU2發送頻率、水平掃速、垂直電壓靈敏度等數據一共爲 9 個字節,每發送一個字節 MCU2 斷一次將接收到的數據存到一個數組中,直到 9 個字節全部發送完畢 MCU2 纔對接收到的數據進行處理顯示。這樣可以使 MCU2 在平時都工作在數據的處理和顯示上,提高了數據的處理速度。

 

5. MCU1 單片機控制與信號整形電路

MCU1 MCU2 一樣也選用 AVR 單片機,型號爲 Mega8-16,工作頻率爲 16MHz,在電路中負責控制程控放大器和時鐘發生電路並負責測量被測信號頻率,將各種參數通過 SPI總線發送給 MCU2

 

MCU1 電路見圖 9 PC2~PC5 4 IO 口接 4 個輕觸開關 S1~S4S1S2 是兩個複用鍵,用於控制水平掃速與垂直電壓靈敏度,功能通過 S4 切換,當前功能狀態顯示在顯示器上,如果當前的控制功能爲控制水平掃速則在顯示器的右下邊反顯示“T, 如果當前的控制功能爲控制垂直電壓靈敏度則在顯示器的右下邊反顯示“V”,見照片。S3 是觸發控制,當前狀態顯示在控制狀態左邊,箭頭上升則自動觸發,箭頭向下則不觸發。長按 S3 選擇交直流偶和方式。該示波器現在只能實現基本功能,其他更多功能有待於廣大愛好者共同努力。S0S1S2S3S4 5 個端口分別連接 PB4PB0PB1PC0PC1 用於垂直電壓靈敏度控制,控制數據見“程控放大電路”中的表 1PB2PB3PB5 作爲 SPI 總線接口與 MCU2通信,爲了防止下載程序時兩芯片 SPI 口衝突所以在兩單片機之間的 SPI 總線上串聯 3 1K 的電阻,實驗證明此法非常有效,電路工作穩定。PD0~PD2 3 IO 口用於時鐘控制,控制數據見“時鐘產生電路”中的表 2。頻率的測量使用了 16 位計數器,外部下降沿出發。程控放大器輸出的信號送給由場效應管 Q1 和高頻三級管 Q2 組成的高輸入阻抗整形電路整形後再由 U17 觸發器 74F74 進行 4 分頻然後送入 MCU1 T1PD5)腳進行計數測頻,在低水平掃速時(5ms/div 50ms/div)爲了保證測頻精度側頻週期爲 1s,在高水平掃速時(小5ms/div)測頻週期爲 0.25s。測頻的原理是通過記錄 1s 0.25s 內計數器記錄的脈衝數來換算頻率,測頻定時由中斷完成,每測完一次頻率就向 MCU2 通過 SPI 總線發送一次數據,所以在高水平掃速時每秒向 MCU2 發送 4 次數據,而在低水平掃速時每秒向 MCU2 發送1次數據,能較好的保證參數顯示的實時性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章