你的位置:首頁 > 電路保護 > 正文

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?

發(fā)布時間:2020-05-27 責(zé)任編輯:lina

【導(dǎo)讀】在 「信號轉(zhuǎn)換的解題思路」[1] 中,提到為了能夠使得輸出信號的占空比不隨著輸入信號的頻率改變而改變,使用了一種 「信號轉(zhuǎn)換| 如何使用模擬電路完成對方波信號倍頻PWM轉(zhuǎn)換?」 博文中的方式,但是該方式在調(diào)試過程中的結(jié)果出現(xiàn)了些不太如意的地方。
 
在 「信號轉(zhuǎn)換的解題思路」[1] 中,提到為了能夠使得輸出信號的占空比不隨著輸入信號的頻率改變而改變,使用了一種 「信號轉(zhuǎn)換| 如何使用模擬電路完成對方波信號倍頻PWM轉(zhuǎn)換?」 博文中的方式,但是該方式在調(diào)試過程中的結(jié)果出現(xiàn)了些不太如意的地方。

生成的鋸齒波的幅值變化范圍之后工作電源(+5V)的一半,這也限制了對輸入信號頻率允許的范圍;
輸出的鋸齒波由于誘導(dǎo)肖特基二極管整流的影響,使得頂部出現(xiàn)了平滑,限制 PWM的變化范圍;
電路過于復(fù)雜;
輸出信號由于受到LMV358的帶寬影響,上下沿變化比較緩慢。
本文在前面的基礎(chǔ)上,對工作電路進行了改變,特別是采用模擬門來對積分電路電容進行放電,完成鋸齒波的轉(zhuǎn)換。

01電路設(shè)計

實驗電路的原理圖如下圖所示。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 實驗電路的原理圖

「設(shè)計錯誤:」

在最初設(shè)計的過程中,原理圖中遺漏了RWF1,RWF2兩個對于積分電路放電的電阻。需要在后期的調(diào)試電路板上進行跳線焊接。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 實驗電路PCB

02電路板的調(diào)試

1.電路靜態(tài)參數(shù)

工作電路 9mA
內(nèi)部參考電壓(+1V):0.834V
板內(nèi)參考電壓實際是成分壓電阻,所得到的參考電壓為:

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?

2.動態(tài)調(diào)試

「(1)信號源:」

由信號源引入1000Hz的方波信號進入In端口。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 信號源提供的1000Hz的調(diào)試方波信號

「(2)修正電路中存在的錯誤」

檢查運放輸出沒有波形,發(fā)現(xiàn) 「設(shè)計錯誤:」在原理圖中的WAV1, WAV2被表示成了WAVE1,WAVE2。所以沒有實際引線。

「修正錯誤:」 手工將WAV1,2連接上。

「(3)測量電路中的波形」

兩個積分器的輸出信號與輸入方波信號的之間的關(guān)系為如下。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 輸入方波信號與積分器的輸出

此時輸入信號的頻率半個周期的時間

積分器的輸入電壓,就是班內(nèi)的參考電壓。積分器的輸入電阻積分電容那么在半個周期內(nèi)的鋸齒波的電壓峰值為:

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?

實際測量鋸齒波的峰值為1.06V,與上面理論計算值相符合。

「(4)測量輸出合成的鋸齒波:」

電路中SAWOUT的鋸齒波的波形如下:

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ SAWOUT輸出鋸齒波信號

將模擬門合成的鋸齒波分壓一半送到LMV324 OPAM進行比較,對應(yīng)的波形如下。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ SAW(Cyan), SAWOUT(Green)電壓波形

「(5)輸出參考電壓」

輸出的參考電壓是由SAWOUT低通濾波之后的數(shù)值。

測量值為:1.38V
Vref = 0.823V
幅值為 1.38-0.823=0.557V。這個幅度基本上等于鋸齒波的峰值電壓的一半。這正是三角鋸齒波的平均值與峰值之間的關(guān)系。

「(6)輸出PWM波形:」

使用一個330k歐姆的電位器,連接在PIO的3,4,5之間,這為最后一級的比較器(運放工作在比較器狀態(tài))提供一個參考電壓。它的幅值在Vref到SAWOUT的低通濾波器輸出的參考電壓之間。

下面是最后一級運放輸出電壓(Cyan)以及它驅(qū)動電路中模擬門的Z通道輸出的波形(Green)。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 輸出PWM波形

03性能測試

下面對該電路的波形變化的性能進行測試。

1.輸出PWM的范圍

改變外部設(shè)定PWM的電位器,可以控制輸出波形的PWM占空比。改變占空比的范圍在0~100%之間。

2-9.gif
▲ 輸出PWM波形占空比的范圍

2.輸出占空比與輸入信號頻率之間的關(guān)系

調(diào)節(jié)輸入信號的頻率,觀察到輸出信號的的占空比變化的情況。

2-9.jpg
▲ 改變輸入信號的頻率與輸出信號的占空比之間的關(guān)系

隨著輸入信號的頻率改變,輸出信號的的高電平和低電平在同時改變。在一定范圍內(nèi),占空比保持恒定值。但是隨著輸入頻率更大,輸出信號的占空比還是發(fā)生了一定的改變。

影響輸出占空比的原因有兩個:

如果頻率過高,那么內(nèi)部產(chǎn)生的鋸齒波的幅值就過小,那么由最后一級運放比較器的偏執(zhí)電壓,參考電壓分壓電路的誤差等原因,就會造成輸出脈沖的占空比的誤差增加。

如果輸入信號的頻率過低,使得內(nèi)部鋸齒波出現(xiàn)了飽和,這樣也會使得輸出波形的占空比出現(xiàn)恨大的誤差。

下面顯示了輸入信號的頻率從50Hz~250Hz變化過程中,內(nèi)部的鋸齒波以及輸出PWM波形變化的情況。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 頻率變化與內(nèi)部鋸齒波波形變化情況

3. 測量輸入頻率變化對輸出占空比的影響

通過測量輸出PWM的平均電壓,可以測定輸出的占空比。

輸入頻率范圍100~1000Hz。

第一個測量是在100Hz的時候設(shè)置PWM占空比大約為50%左右,下圖顯示了隨著頻率增加,輸出PWM的平均電壓的變化。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 輸入頻率與輸出PWM平均電壓之間的關(guān)系

下面是對應(yīng)的輸入、輸出信號的變化的情況。

2-13.gif
▲ 改變輸入信號的頻率,測量輸出PWM的占空比
如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 輸入信號的頻率對輸出PWM平均電壓的影響
2-15.gif
▲ 輸入信號頻率變化對輸出PWM波形的影響
如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 輸入信號的頻率對輸出PWM的平均電壓的影響
2-17.gif
▲ 輸入信號的頻率對于輸出PWM波形的影響

將前面三個測量的PWM輸出電壓隨著輸入信號頻率變化繪制在一張圖中進行對比,可以看到輸入信號的頻率對于PWM的占空比的影響在不同的占空比下的情況還是有區(qū)別的。但在輸入信號頻率在100~1000Hz變化內(nèi),PWM信號占空比變化幅度都在5%之內(nèi)。

如何將輸入方波轉(zhuǎn)換成倍頻PWM波形?
▲ 三種不同PWM占空比的情況下,輸入信號的頻率對于輸出PWM的平均電壓的影響

測量不同頻率下的輸出PWM信號平均電壓的數(shù)據(jù)如下:

f=[100.00,118.00,136.00,155.00,173.00,191.00,210.00,228.00,246.00,265.00,283.00,302.00,320.00,338.00,357.00,375.00,393.00,412.00,430.00,448.00,467.00,485.00,504.00,522.00,540.00,559.00,577.00,595.00,614.00,632.00,651.00,669.00,687.00,706.00,724.00,742.00,761.00,779.00,797.00,816.00,834.00,853.00,871.00,889.00,908.00,926.00,944.00,963.00,981.00,1000.00]
d=[2.48,2.50,2.53,2.54,2.56,2.57,2.58,2.59,2.60,2.61,2.61,2.62,2.63,2.64,2.65,2.65,2.66,2.66,2.67,2.68,2.68,2.69,2.70,2.70,2.71,2.72,2.74,2.73,2.74,2.74,2.75,2.75,2.76,2.77,2.77,2.78,2.79,2.79,2.80,2.80,2.81,2.81,2.82,2.82,2.82,2.82,2.83,2.84,2.85,2.85]

f=[100.00,118.00,136.00,155.00,173.00,191.00,210.00,228.00,246.00,265.00,283.00,302.00,320.00,338.00,357.00,375.00,393.00,412.00,430.00,448.00,467.00,485.00,504.00,522.00,540.00,559.00,577.00,595.00,614.00,632.00,651.00,669.00,687.00,706.00,724.00,742.00,761.00,779.00,797.00,816.00,834.00,853.00,871.00,889.00,908.00,926.00,944.00,963.00,981.00,1000.00]
d=[4.28,4.26,4.23,4.22,4.21,4.21,4.21,4.20,4.21,4.21,4.21,4.21,4.21,4.22,4.22,4.22,4.23,4.23,4.24,4.24,4.24,4.25,4.25,4.26,4.26,4.26,4.27,4.27,4.27,4.28,4.28,4.28,4.29,4.30,4.30,4.30,4.28,4.31,4.32,4.32,4.32,4.33,4.33,4.34,4.34,4.34,4.34,4.36,4.36,4.36]

f=[100.00,118.00,136.00,155.00,173.00,191.00,210.00,228.00,246.00,265.00,283.00,302.00,320.00,338.00,357.00,375.00,393.00,412.00,430.00,448.00,467.00,485.00,504.00,522.00,540.00,559.00,577.00,595.00,614.00,632.00,651.00,669.00,687.00,706.00,724.00,742.00,761.00,779.00,797.00,816.00,834.00,853.00,871.00,889.00,908.00,926.00,944.00,963.00,981.00,1000.00]
d=[0.83,0.85,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.89,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.93,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93]

實驗所使用的Python程序如下:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#******************************
# TEST11.PY                    -- by Dr. ZhuoQing 2020-05-23
#
# Note:
#******************************

from headm import *
from tsmodule.tsvisa        import *
from tsmodule.tshardware    import *
from tsmodule.tsstm32       import *
from tsmodule.tsdraw        import *

#------------------------------------------------------------
ds6104open()

#------------------------------------------------------------
pltgif = PlotGIF()

setf = linspace(100, 1000, 50)

fdim = []
dutydim = []

for f in setf:
    zbcmd(bytes(''ad9833setfrequency %d''%int(f), ''utf-8''))
    time.sleep(1)
    meter = meterval()

    printf(meter)
    fdim.append(int(f))
    dutydim.append(meter[0])

    x,y1,y2,y3 = ds6104readcal(1,2,3)

    plt.clf()
    plt.plot(x, y1, label=''Input'')
    plt.plot(x, y2, label=''PWM'')
    plt.plot(x, y3, label=''Saw Wave'')
    plt.xlabel(''Time(s)'')
    plt.ylabel(''Wave'')
    plt.grid(True)
    plt.legend(loc=''upper right'')
    plt.draw()
    plt.pause(.1)

    pltgif.append(plt)

pltgif.save(r''d:temp1.gif'')
printf("a")
tspsavenew(''data'', f=fdim, d=dutydim)
plt.clf()
plt.plot(fdim, dutydim)
plt.xlabel(''Frequency(Hz)'')
plt.ylabel(''Voltage(V)'')
plt.grid(True)
plt.show()

#------------------------------------------------------------
#        END OF FILE : TEST11.PY
#******************************

04結(jié)論

本文驗證了如下兩部分的內(nèi)容:

使用模擬門電路可以有效的從輸入方波中產(chǎn)生鋸齒波信號。其中應(yīng)用到了模擬門對積分電容進行放電的過程;
使用了鋸齒波的平均值電壓作為占空比控制的參考電壓,它可以隨著輸入信號的頻率的變化而變化,進而保證了輸出PWM的占空比不隨著輸入信號頻率的變化而改變。在輸入信號頻率從100Hz改變到1000Hz的過程中,輸入PWM占空比的變化不超過5%。
電路的性能還依賴于所使用的器件的性能。本實驗中使用了LMV324,主要是看中了在單電源(+5V)工作的簡便性。如果想進一步提高電路的性能,可以采用帶寬和精度更高的運放完成電路的設(shè)計。

Reference
[1]「信號轉(zhuǎn)換的解題思路」:
https://zhuoqing.blog.csdn.net/article/details/106293296
(來源:TsinghuaJoking ,作者:卓晴)
 
 
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
 
 
推薦閱讀:
萊迪思Nexus技術(shù)平臺:重新定義低功耗、小尺寸FPGA
貿(mào)澤電子一站式采購平臺推出在線計算器 助力電子設(shè)計提速
解析半導(dǎo)體激光器產(chǎn)業(yè)現(xiàn)狀與技術(shù)流派前景
2020中國(廣州)國際物流裝備與技術(shù)展覽會
AI加速器生態(tài)系統(tǒng)
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉