在 ?「信號轉換的解題思路」[1] 中,提到為了能夠使得輸出信號的占空比不隨著輸入信號的頻率改變而改變,使用了一種 「信號轉換| 如何使用模擬電路完成對方波信號倍頻 PWM 轉換?」 博文中的方式,但是該方式在調(diào)試過程中的結果出現(xiàn)了些不太如意的地方。
- 生成的鋸齒波的幅值變化范圍之后工作電源(+5V)的一半,這也限制了對輸入信號頻率允許的范圍;輸出的鋸齒波由于誘導肖特基二極管整流的影響,使得頂部出現(xiàn)了平滑,限制 PWM 的變化范圍;電路過于復雜;輸出信號由于受到 LMV358 的帶寬影響,上下沿變化比較緩慢。
本文在前面的基礎上,對工作電路進行了改變,特別是采用模擬門來對積分電路電容進行放電,完成鋸齒波的轉換。
01 電路設計
實驗電路的原理圖如下圖所示。
▲ 實驗電路的原理圖
「設計錯誤:」
在最初設計的過程中,原理圖中遺漏了 RWF1,RWF2 兩個對于積分電路放電的電阻。需要在后期的調(diào)試電路板上進行跳線焊接。
▲ 實驗電路 PCB
02 電路板的調(diào)試
1. 電路靜態(tài)參數(shù)
- 工作電路 9mA 內(nèi)部參考電壓(+1V):0.834V
板內(nèi)參考電壓實際是由,組成分壓電阻,所得到的參考電壓為:
2. 動態(tài)調(diào)試
「(1)信號源:」
由信號源引入 1000Hz 的方波信號進入 In 端口。
▲ 信號源提供的 1000Hz 的調(diào)試方波信號
「(2)修正電路中存在的錯誤」
檢查運放輸出沒有波形,發(fā)現(xiàn) 「設計錯誤:
」在原理圖中的 WAV1, WAV2 被表示成了 WAVE1,WAVE2。所以沒有實際引線。
「修正錯誤:」 手工將 WAV1,2 連接上。
「(3)測量電路中的波形」
兩個積分器的輸出信號與輸入方波信號的之間的關系為如下。
▲ 輸入方波信號與積分器的輸出
此時輸入信號的頻率:,半個周期的時間為:。
積分器的輸入電壓,就是班內(nèi)的參考電壓:。積分器的輸入電阻:,積分電容:。那么在半個周期內(nèi)的鋸齒波的電壓峰值為:
實際測量鋸齒波的峰值為 1.06V,與上面理論計算值相符合。
「(4)測量輸出合成的鋸齒波:」
電路中 SAWOUT 的鋸齒波的波形如下:
▲ SAWOUT 輸出鋸齒波信號
?
將模擬門合成的鋸齒波分壓一半送到 LMV324 OPAM 進行比較,對應的波形如下。
▲ SAW(Cyan), SAWOUT(Green)電壓波形
?
「(5)輸出參考電壓」
輸出的參考電壓是由 SAWOUT 低通濾波之后的數(shù)值。
- 測量值為:1.38VVref = 0.823V
幅值為 1.38-0.823=0.557V。這個幅度基本上等于鋸齒波的峰值電壓的一半。這正是三角鋸齒波的平均值與峰值之間的關系。
「(6)輸出 PWM 波形:」
使用一個 330k 歐姆的電位器,連接在 PIO 的 3,4,5 之間,這為最后一級的比較器(運放工作在比較器狀態(tài))提供一個參考電壓。它的幅值在 Vref 到 SAWOUT 的低通濾波器輸出的參考電壓之間。
下面是最后一級運放輸出電壓(Cyan)以及它驅動電路中模擬門的 Z 通道輸出的波形(Green)。
▲ 輸出 PWM 波形
?
03 性能測試
下面對該電路的波形變化的性能進行測試。
1. 輸出 PWM 的范圍
改變外部設定 PWM 的電位器,可以控制輸出波形的 PWM 占空比。改變占空比的范圍在 0~100%之間。
▲ 輸出 PWM 波形占空比的范圍
?
2. 輸出占空比與輸入信號頻率之間的關系
調(diào)節(jié)輸入信號的頻率,觀察到輸出信號的的占空比變化的情況。
▲ 改變輸入信號的頻率與輸出信號的占空比之間的關系
?
隨著輸入信號的頻率改變,輸出信號的的高電平和低電平在同時改變。在一定范圍內(nèi),占空比保持恒定值。但是隨著輸入頻率更大,輸出信號的占空比還是發(fā)生了一定的改變。
影響輸出占空比的原因有兩個:
如果頻率過高,那么內(nèi)部產(chǎn)生的鋸齒波的幅值就過小,那么由最后一級運放比較器的偏執(zhí)電壓,參考電壓分壓電路的誤差等原因,就會造成輸出脈沖的占空比的誤差增加。
如果輸入信號的頻率過低,使得內(nèi)部鋸齒波出現(xiàn)了飽和,這樣也會使得輸出波形的占空比出現(xiàn)恨大的誤差。
下面顯示了輸入信號的頻率從 50Hz~250Hz 變化過程中,內(nèi)部的鋸齒波以及輸出 PWM 波形變化的情況。
▲ 頻率變化與內(nèi)部鋸齒波波形變化情況
?
3. 測量輸入頻率變化對輸出占空比的影響
通過測量輸出 PWM 的平均電壓,可以測定輸出的占空比。
輸入頻率范圍 100~1000Hz。
第一個測量是在 100Hz 的時候設置 PWM 占空比大約為 50%左右,下圖顯示了隨著頻率增加,輸出 PWM 的平均電壓的變化。
▲ 輸入頻率與輸出 PWM 平均電壓之間的關系
?
下面是對應的輸入、輸出信號的變化的情況。
▲ 改變輸入信號的頻率,測量輸出 PWM 的占空比
▲ 輸入信號的頻率對輸出 PWM 平均電壓的影響
▲ 輸入信號頻率變化對輸出 PWM 波形的影響
▲ 輸入信號的頻率對輸出 PWM 的平均電壓的影響
▲ 輸入信號的頻率對于輸出 PWM 波形的影響
?
將前面三個測量的 PWM 輸出電壓隨著輸入信號頻率變化繪制在一張圖中進行對比,可以看到輸入信號的頻率對于 PWM 的占空比的影響在不同的占空比下的情況還是有區(qū)別的。但在輸入信號頻率在 100~1000Hz 變化內(nèi),PWM 信號占空比變化幅度都在 5%之內(nèi)。
▲ 三種不同 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 結論
本文驗證了如下兩部分的內(nèi)容:
- 使用模擬門電路可以有效的從輸入方波中產(chǎn)生鋸齒波信號。其中應用到了模擬門對積分電容進行放電的過程;使用了鋸齒波的平均值電壓作為占空比控制的參考電壓,它可以隨著輸入信號的頻率的變化而變化,進而保證了輸出 PWM 的占空比不隨著輸入信號頻率的變化而改變。在輸入信號頻率從 100Hz 改變到 1000Hz 的過程中,輸入 PWM 占空比的變化不超過 5%。
電路的性能還依賴于所使用的器件的性能。本實驗中使用了 LMV324,主要是看中了在單電源(+5V)工作的簡便性。如果想進一步提高電路的性能,可以采用帶寬和精度更高的運放完成電路的設計。
Reference
[1]「信號轉換的解題思路」: https://zhuoqing.blog.csdn.net/article/details/106293296