在  「信号转换的解题思路」[1] 中,提到为了能够使得输出信号的占空比不随着输入信号的频率改变而改变,使用了一种 「信号转换| 如何使用模拟电路完成对方波信号倍频 PWM 转换?」 博文中的方式,但是该方式在调试过程中的结果出现了些不太如意的地方。

 

  • 生成的锯齿波的幅值变化范围之后工作电源(+5V)的一半,这也限制了对输入信号频率允许的范围;输出的锯齿波由于诱导肖特基二极管整流的影响,使得顶部出现了平滑,限制 PWM 的变化范围;电路过于复杂;输出信号由于受到 LMV358 的带宽影响,上下沿变化比较缓慢。

 

本文在前面的基础上,对工作电路进行了改变,特别是采用模拟门来对积分电路电容进行放电,完成锯齿波的转换。

 

01 电路设计

实验电路的原理图如下图所示。

 

▲ 实验电路的原理图

 

「设计错误:」

在最初设计的过程中,原理图中遗漏了 RWF1,RWF2 两个对于积分电路放电的电阻。需要在后期的调试电路板上进行跳线焊接。

 

▲ 实验电路 PCB

 

02 电路板的调试

1. 电路静态参数

 

  1. 工作电路 9mA 内部参考电压(+1V):0.834V

 

板内参考电压实际是由,组成分压电阻,所得到的参考电压为:

 

2. 动态调试

「(1)信号源:」

 

由信号源引入 1000Hz 的方波信号进入 In 端口。

 

▲ 信号源提供的 1000Hz 的调试方波信号

 

「(2)修正电路中存在的错误」

 

检查运放输出没有波形,发现 「设计错误:」在原理图中的 WAV1, WAV2 被表示成了 WAVE1,WAVE2。所以没有实际引线。

 

「修正错误:」 手工将 WAV1,2 连接上。

 

「(3)测量电路中的波形」

 

两个积分器的输出信号与输入方波信号的之间的关系为如下。

 

▲ 输入方波信号与积分器的输出

 

此时输入信号的频率:,半个周期的时间为:。

 

积分器的输入电压,就是班内的参考电压:。积分器的输入电阻:,积分电容:。那么在半个周期内的锯齿波的电压峰值为:

 

实际测量锯齿波的峰值为 1.06V,与上面理论计算值相符合。

 

「(4)测量输出合成的锯齿波:」

 

电路中 SAWOUT 的锯齿波的波形如下:

 

▲ SAWOUT 输出锯齿波信号

 

将模拟门合成的锯齿波分压一半送到 LMV324 OPAM 进行比较,对应的波形如下。

 

▲ SAW(Cyan), SAWOUT(Green)电压波形

 

「(5)输出参考电压」

 

输出的参考电压是由 SAWOUT 低通滤波之后的数值。

 

  • 测量值为:1.38VVref = 0.823V

 

幅值为 1.38-0.823=0.557V。这个幅度基本上等于锯齿波的峰值电压的一半。这正是三角锯齿波的平均值与峰值之间的关系。

 

「(6)输出 PWM 波形:」

 

使用一个 330k 欧姆的电位器,连接在 PIO 的 3,4,5 之间,这为最后一级的比较器(运放工作在比较器状态)提供一个参考电压。它的幅值在 Vref 到 SAWOUT 的低通滤波器输出的参考电压之间。

 

下面是最后一级运放输出电压(Cyan)以及它驱动电路中模拟门的 Z 通道输出的波形(Green)。

 

▲ 输出 PWM 波形

 

03 性能测试

下面对该电路的波形变化的性能进行测试。

 

1. 输出 PWM 的范围

改变外部设定 PWM 的电位器,可以控制输出波形的 PWM 占空比。改变占空比的范围在 0~100%之间。

 

▲ 输出 PWM 波形占空比的范围

 

2. 输出占空比与输入信号频率之间的关系

调节输入信号的频率,观察到输出信号的的占空比变化的情况。

 

▲ 改变输入信号的频率与输出信号的占空比之间的关系

 

随着输入信号的频率改变,输出信号的的高电平和低电平在同时改变。在一定范围内,占空比保持恒定值。但是随着输入频率更大,输出信号的占空比还是发生了一定的改变。

 

影响输出占空比的原因有两个:

 

如果频率过高,那么内部产生的锯齿波的幅值就过小,那么由最后一级运放比较器的偏执电压,参考电压分压电路的误差等原因,就会造成输出脉冲的占空比的误差增加。

 

如果输入信号的频率过低,使得内部锯齿波出现了饱和,这样也会使得输出波形的占空比出现恨大的误差。

 

下面显示了输入信号的频率从 50Hz~250Hz 变化过程中,内部的锯齿波以及输出 PWM 波形变化的情况。

 

▲ 频率变化与内部锯齿波波形变化情况

 

3. 测量输入频率变化对输出占空比的影响

通过测量输出 PWM 的平均电压,可以测定输出的占空比。

 

输入频率范围 100~1000Hz。

 

第一个测量是在 100Hz 的时候设置 PWM 占空比大约为 50%左右,下图显示了随着频率增加,输出 PWM 的平均电压的变化。

▲ 输入频率与输出 PWM 平均电压之间的关系

 

下面是对应的输入、输出信号的变化的情况。

▲ 改变输入信号的频率,测量输出 PWM 的占空比

▲ 输入信号的频率对输出 PWM 平均电压的影响

▲ 输入信号频率变化对输出 PWM 波形的影响

▲ 输入信号的频率对输出 PWM 的平均电压的影响

▲ 输入信号的频率对于输出 PWM 波形的影响

 

将前面三个测量的 PWM 输出电压随着输入信号频率变化绘制在一张图中进行对比,可以看到输入信号的频率对于 PWM 的占空比的影响在不同的占空比下的情况还是有区别的。但在输入信号频率在 100~1000Hz 变化内,PWM 信号占空比变化幅度都在 5%之内。

▲ 三种不同 PWM 占空比的情况下,输入信号的频率对于输出 PWM 的平均电压的影响

 

测量不同频率下的输出 PWM 信号平均电压的数据如下:

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:\temp\1.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 结论

本文验证了如下两部分的内容:

 

  1. 使用模拟门电路可以有效的从输入方波中产生锯齿波信号。其中应用到了模拟门对积分电容进行放电的过程;使用了锯齿波的平均值电压作为占空比控制的参考电压,它可以随着输入信号的频率的变化而变化,进而保证了输出 PWM 的占空比不随着输入信号频率的变化而改变。在输入信号频率从 100Hz 改变到 1000Hz 的过程中,输入 PWM 占空比的变化不超过 5%。

 

电路的性能还依赖于所使用的器件的性能。本实验中使用了 LMV324,主要是看中了在单电源(+5V)工作的简便性。如果想进一步提高电路的性能,可以采用带宽和精度更高的运放完成电路的设计。

 

Reference

[1]「信号转换的解题思路」: https://zhuoqing.blog.csdn.net/article/details/106293296