当您需要一些模拟输出并且您的系统中有FPGA时,您可能选择使用PWM模块和简单的低通滤波器,如图1所示 。FPGA的输出通常是具有固定频率,可变占空比的波形,由计数器和数字比较器生成(清单1 )。
图1 一个简单的低通滤波器将FPGA的PWM数字输出更改为模拟电压电平。最大纹波出现在占空比为50%的情况下。
假设Enable为高电平,则计数器在每个时钟周期递增计数,PWM输出的频率为时钟频率除以2个计数位。您可以使用启用将其连接到预分频器来降低输出频率。由于输出频率是固定的,因此滤波器易于计算,因为您知道最坏情况的纹波发生在占空比为50%的情况下。所需的最大纹波和建立时间的组合决定了滤波器的类型和RC(电阻/电容)值。
只需对清单1中 的代码进行少量更改,就可以改善PWM电路的性能。在原始系统中,最大纹波电流出现在占空比为50%的情况下,最小纹波电流出现在最小占空比的情况下,改进后的版本显示出的最大纹波等于标准版本的最小值。技巧是产生尽可能高的频率,但保持平均占空比恒定。输出上脉冲的频率越高,滤波器的工作效果就越好。
清单1 的修改 包括重新布线二进制比较器,所有位从左到右交换。MSB(最高有效位)成为LSB(最低有效位),LSB成为MSB,依此类推(清单2 )。您只需要进行重新布线,不需要额外的寄存器或逻辑。
清单3 显示了4位PWM发射的脉冲序列。在清单3中 ,您看到占空比为50%(值= 8,第二列)时,该频率是最大的,等于时钟频率除以2。在出现一些纹波的第一点(值= 1,第二列),存在与常规PWM系统完全相同的纹波-也就是说,脉冲序列是相同的。
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !