找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6641|回復: 4
收起左側

100Hz~200kHz波形發(fā)生器設計 MCU控制

[復制鏈接]
ID:610090 發(fā)表于 2019-9-10 16:53 | 顯示全部樓層 |閱讀模式

1.1基本要求
 。1)具有產生正弦波、方波、三角波三種周期性波形的功能。
  (2)用鍵盤輸入編輯生成上述三種波形(同周期)的線性組合波形,以及由基波及其諧波(5次以下)線性組合的波形。
 。3)具有波形存儲功能。
 。4)輸出波形的頻率范圍為100Hz~20kHz(非正弦波頻率按10次諧波計算);重復頻率可調,頻率步進間隔≤100Hz。
 。5)輸出波形幅度范圍0~5V(峰-峰值),可按步進0.1V(峰-峰值)調整。
 。6)具有顯示輸出波形的類型、重復頻率和幅度的功能。

1.2發(fā)揮部分
 。1)輸出波形頻率范圍擴展至100Hz~200kHz。
 。2)用鍵盤或其他輸入裝置產生任意波形。
  (3)增加穩(wěn)幅輸出功能,當負載變化時,輸出電壓幅度變化不大于±3%(負載電阻變化范圍:100Ω~∞)。
 。4)具有掉電存儲功能,可存儲掉電前編輯的波形和設置。
 。5)可產生單次或多次(1000次以下)特定波形(如產生1個半周期三角波輸出)。
  (6)其它(如增加頻譜分析、頻率擴展>200kHz、失真度分析、掃頻輸出等功能)。


2.設計方案

方案一:模數(shù)結合實現(xiàn),一般是在模擬電路上產生函數(shù)信號波形,而用數(shù)字方式改變信號的頻率和幅度。如采用D/A裝換器與壓控電路改變信號頻率,用數(shù)控放大器或數(shù)控衰減器改變信號幅度等。

方案二:模擬電路實現(xiàn),全采用模擬電路,可用正弦波發(fā)生器產生正弦波信號,然后過零比較產生方波,再經積分電路產生三角波。這種方法電路簡單,并具有良好的正弦波和方波信號。但要通過積分器電路產生同步的三角波信號,存在較大難度。原因是積分電路的積分時間常數(shù)通常不變,而隨著方波頻率改變,積分器輸出的三角波幅度將同時改變。若要保持三角波幅度,就得同時改變積分時間長度的大小,要實現(xiàn)這點會很難。

方案三:數(shù)字電路實現(xiàn),采用DDS方法,任何頻率的波形都可看做由一系列的取樣點所組成,可事先將各波形的數(shù)據(jù)點存儲在ROM中,再通過時鐘的控制順序從ROM中讀出,再經D/A轉化器進行逐點恢復。這種方案的波形精度主要取決于函數(shù)信號波形的存儲點數(shù)、D/A轉換器的轉換速度、以及整個電路的時序處理等。

其信號頻率的高低,是通過改變D/A轉換器輸入數(shù)字量的速率或是取點數(shù)量來實現(xiàn)的。這種方案在信號頻率較低時,具有較好的波形質量。隨著信號頻率提高,需要提高輸入數(shù)字量的速率,或減少波形點數(shù)。波形點數(shù)的減少,將直接影響函數(shù)型號波形的質量,而數(shù)字量的輸入速率的提高也是有限。

方案選擇:經上各方案比較,為切合本次課題,故采用方案三。

數(shù)字電路實現(xiàn),采用DDS方法,任何頻率的波形都可看做由一系列的取樣點所組成,可事先將各波形的數(shù)據(jù)點存儲在ROM中,再通過時鐘的控制順序從ROM中讀出,再經D/A轉化器進行逐點恢復。這種方案的波形精度主要取決于函數(shù)信號波形的存儲點數(shù)、D/A轉換器的轉換速度、以及整個電路的時序處理等?傮w方案設計框圖如下:


3.設計實現(xiàn)
3.1實驗器材

STM32F407ZGT6單片機、2.8寸TFTLCD顯示屏,配置有Keil uVision5工程環(huán)境的PC機一臺、外部硬件放大電路和負載電路。

3.2設計框圖

本設計由四個模塊組成:MCU控制模塊、按鍵模塊、信號輸出模塊和LCD顯示模塊。

3.2系統(tǒng)框圖
3.2.1 MCU控制模塊

    系統(tǒng)的MCU采用STM32F407ZGT6作為控制模塊,主要完成按鍵掃描、信號輸出、LCD顯示等。STM32系列單片機具有內置DAC轉換器和DMA控制器,并有最高72MHz的主頻,可完成較高頻率信號的穩(wěn)定輸出。

3.2.2 按鍵控制模塊

     系統(tǒng)采用一個鍵盤來控制輸出波形的特征!癏z”按鍵調節(jié)頻率且單位為Hz,“kHZ” 按鍵調節(jié)頻率且單位為kHz,“10mv”按鍵調節(jié)幅度且單位為10mv,“duty”按鍵調節(jié)占空比,“ChangeWave”按鍵調節(jié)輸出波形,數(shù)字“0-9”調節(jié)頻率、幅度、占空比的數(shù)值,“X”清除當前已輸入的數(shù)字串,“-”清除數(shù)字串最后輸入的一個數(shù)字符。

3.2.3 信號輸出模塊

單片機的DAC外設、DMA控制器和定時器共同協(xié)作完成信號波形的輸出。信號輸出采用定時器觸發(fā)DMA傳輸數(shù)據(jù)到DAC寄存器的方式,可大大降低信號輸出對CPU的占用率并提高波形的精準性。

3.2.4 LCD顯示模塊

本設計通過TFTLCD顯示屏顯示波形信息,MCU與TFTLCD顯示屏顯示屏通過串行方式傳輸數(shù)據(jù),當波形發(fā)生變化時立即更新LCD顯示信息,實現(xiàn)了人機界面的交互。

3.3程序流程圖

程序流程圖主要完成的任務有:按鍵掃描、LCD顯示和D/A轉換。在主程序中對各個模塊進行初始化。

3.2程序流程圖框圖


3.3.1 外部中斷流程圖和定時器中斷流程圖
            
3.3.1 外部中斷流程圖                        3.3.1 定時器中斷流程圖


3.3.2 D/A轉換流程圖
                  
                        3.3.2 D/A轉換流程圖

4.硬件電路
4.1設計方案

方案一:使用晶體三極管多級放大電路設計

將stm32f4開發(fā)板DAC輸出端接入放大電路第一級——射極輸出器(共集電極電路)。射極輸出器作為第一級使得多級放大電路的輸入電阻增加,減少電路對輸入信號的影響。

三極管多級放大電路第二級采用基極分壓式共射極放大電路。主要為放大輸入信號,優(yōu)點為通過電阻Re的反饋使得靜態(tài)工作點穩(wěn)定。

三極管多級放大電路第三極再次采用射極輸出器,使得輸出電阻變小,增加電路的帶負載能力,輸出電壓受負載改變變化小,以達到題目要求。

該方案優(yōu)點:電路每個部分可控,調試清晰明了,元件易替換;

該方案缺點:電路很復雜。

方案:使用LM324運算放大器搭建放大電路

LM324內部中集成四個運算放大器,使用一個LM324即可設計出與方案一功能相同的多級放大電路。運放多級放大電路第一級采用電壓跟隨器,增大輸入電阻;第二級采用反相比例放大電路,對輸入信號進行放大;第三極再次采用電壓跟隨器,減少輸出電阻,增加帶負載能力。

該方案優(yōu)點:電路設計簡單,且相比方案一更穩(wěn)定。

該方案缺點:只能通過外接元器件調試電路,芯片內部出現(xiàn)問題不易診斷及調試。

方案確定:經過對內商討,出于電路穩(wěn)定性及簡潔性,采用方案二設計硬件放大電路。在電路輸出到地間接入串聯(lián)的開關和10kΩ負載,當開關斷開時即負載無窮大。

4.2Multisim仿真圖
4.2 Multisim仿真圖
4.3PCB原理圖
4.3 PCB原理圖
4.4PCB板布線圖
4.4 PCB板布線圖
4.5電路調試
4.5.1 問題一:

在放大電路沒通電的情況下,DAC輸出信號一接入放大電路輸入端口,測試電路輸入端口信號,信號衰減了一半。通上電后,電路輸入端信號基本衰減消失。

原因:查看電路后發(fā)現(xiàn),輸入信號直接接入運放的反相比例放大電路時已存在串聯(lián)負反饋,使得輸入信號被抑制,在放大電路通上電壓工作后,這種負反饋更大,使得輸入信號完全被抑制。

調試解決:在信號輸入反相比例放大電路之前先經過電壓跟隨器,增加電路輸入電阻,使得輸入信號在輸入端受負反饋影響小。

4.5.2 問題二:

電路調整完后,輸出信號達到要求,但依然存在交越失真,且在頻率增大時交越失真更嚴重。

原因:LM324芯片本身存在的問題。

調試解決:在第一級電壓跟隨器和第二級放大電路的各輸出引腳到地(采用單電源供電,即接到11引腳)接入1kΩ負載,交越失真完全消失。

5.設計驗證
在Keil uVision5工程環(huán)境編寫程序,連接好電腦、STM32開發(fā)板、仿真器、示波器還有硬件電路。代碼編譯無誤后下載到開發(fā)板,用示波器觀察D/A輸出波形。通過相關的鍵盤操作,改變波形的各項參數(shù),并觀察示波器對應的波形參數(shù)是否與操作一致。
5.1測試數(shù)據(jù)及波形截圖
5.1.1 默認參數(shù)(500Hz、2.00V、50%)正弦波、三角波、鋸齒波、方波
圖1 500Hz、2.00V 正弦波
圖2  500Hz、2.00V  三角波
圖3  500Hz、2.00V  鋸齒波
圖4  500Hz、2.00V、50%  方波
5.1.2 輸出波形頻率范圍100Hz-20kHz,重復頻率可調,頻率步進間隔≤100Hz
(1)100Hz
圖1  100Hz、2.00V  正弦波
圖2  100Hz、2.00V  三角波
圖3  100Hz、2.00V  鋸齒波
圖4  100Hz、2.00V、50%  方波
(2)5kHz
圖1  5kHz、2.00V  正弦波
圖2  5kHz、2.00V  三角波
圖3  5kHz、2.00V  鋸齒波
圖4  5kHz、2.00V  方波
(3)20kHz
圖1  20kHz、2.00V  正弦波
圖2  20kHz、2.00V  三角波
圖3  20kHz、2.00V  鋸齒波
圖4  20kHz、2.00V、50%  方波
(4)頻率步進≤100Hz
圖1  500HZ到550Hz,步進50HZ
圖2  550Hz到560Hz,步進10Hz
圖3  560Hz到565Hz,步進5Hz
5.1.3 輸出波形幅度范圍0-5V(峰峰值),可按步進0.1V(峰峰值)調整
圖1  1kHz、3.10V  正弦波
圖2  1kHz、4.20V  正弦波
圖3  1kHz、5.00V  正弦波
5.1.4 具有顯示輸出波形的類型、重復頻率和幅度的功能
5.1.5 用鍵盤調節(jié)方波占空比
5.2結果分析
通過調節(jié)各功能按鍵,選擇波形,可在示波器上觀察相應的波形輸出,也可以改變輸出波形的幅值及頻率和方波的占空比,波形輸出與設置的參數(shù)基本保持一致。由于開發(fā)板最大輸出電壓為3.3V,必須外接一個放大電路保證輸出電壓能夠達到5V,接入放大電路后,經過測試達到了項目的要求。輸出頻率范圍能夠擴展至200kHz,但由于開發(fā)板硬件配置的限制,導致輸出波形有失真。穩(wěn)幅輸出功能,當負載變化時,輸出電壓幅度變化在誤差范圍內。
6.總結
波形發(fā)生器的設計圓滿結束,意味著我們最后一個實訓的結束。在經歷了前面兩次的CDIO實訓之后,我們的綜合技能,不僅僅只是局限于課本上的內容。這一次的實訓任務是要求我們自己設計一個波形發(fā)生器,在經過組內的討論之后我們選擇用STM32開發(fā)板來完成,這樣,在上次實訓中所學到的關于STM32的知識就派上了用場。
采用DDS的方法實現(xiàn)波形發(fā)生器,充分考驗了我們的軟件編程能力以及對于開發(fā)板、波形發(fā)生器原理的熟悉程度。這其中會遇到許多問題,關于按鍵的布控、波形的產生、信號的輸出以及如何達到所要求的輸出幅度等等。通過組員的分工合作,網上查找資料,最后取得進展,實現(xiàn)了鍵盤各個模塊的功能,并通過外部放大電路達到了題目要求的輸出幅度。通過這一次實訓,我們深有體會,即便以后從事和本專業(yè)不同的職業(yè),我們這次實訓所收獲的解決問題的能力、思考問題的方法、以及遇到困難不放棄的精神都會使我們受益終身。

以上內容Word格式文檔51黑下載地址:
CDIO三級培訓——波形發(fā)生器報告.docx (13.52 MB, 下載次數(shù): 51)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:501228 發(fā)表于 2019-11-10 14:27 | 顯示全部樓層
有程序包嗎
回復

使用道具 舉報

ID:421805 發(fā)表于 2019-11-13 05:58 來自觸屏版 | 顯示全部樓層
很有用,謝謝分享
回復

使用道具 舉報

ID:598535 發(fā)表于 2020-8-31 14:38 | 顯示全部樓層
用STM32103的話可以做出來嗎
回復

使用道具 舉報

ID:598535 發(fā)表于 2020-8-31 14:38 | 顯示全部樓層
用STM32F103的話,能做嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表