Google

Copyright © 2008 Dennis email: moueintw@hotmail.com

2007年12月28日 星期五

調換位元以提高 FPGA-PWM 計數器的性能






調換位元以提高 FPGA-PWM 計數器的性能
( 12 月 1 日 2007 年)
Stefaan Vanheesbeke, Ledegem, Belgium
當你需要一些類比輸出,並且系統中有一片 FPGA 時,你可能選擇採用一個 PWM 模組和一個簡單的低通濾波器,如圖 1 所示。FPGA 的輸出通常是一種固定頻率、可變佔空比(variable-duty cycle)的波形,而此一波形則是由一個計數器和一個數位比較器所產生(表 1)。
假設使能端為高,計數器對每個時鐘週期增量計數,而 PWM 輸出的頻率等於時鐘頻率除以 2 個計數位元。你可以將使能接到一個預定標器(prescaler)來降低輸出頻率。由於輸出頻率是固定的,濾波器也容易計算,因為我們知道最差的漣波出現在佔空比為50% 的時候。所需最大漣波和穩定時間相互的結合,就決定了濾波器的種類和電阻/電容(resistance/capacitance,RC)值。
少許修改表 1 中的代碼,就可以改善 PWM 電路的性能。在原系統中,最大漣波電流出現在佔空比為50%之處,而最小漣波電流則出現在最小佔空比之處,改進的版本則使最大漣波等於標準版的最小漣波。巧妙之處在於產生盡可能高的頻率,但保持恆定的平均佔空比。輸出上的脈衝頻率越高,濾波器完成的工作也越好。
對表 1 的修改包括重新撰寫二進位制的比較器,將所有位元從左至右進行交換。最高有效位元(most significant bit ,MSB)成為最低有效位元(least significant bit ,LSB),LSB 成為 MSB等等(表 2)。你只要重新佈線,不需要額外的暫存器或邏輯電路。
表 3 給出了一個 4位元 PWM 發出的脈衝串。在表 3 中,你看到在 50% 的佔空比時(Value = 8,第二行),頻率為最大,等於時鐘頻率除以 2。在一些漣波出現的第一點(Value=1,第二行),漣波與普通 PWM 系統完全相同,即脈衝串是相同的。
圖 1 用一個簡單的低通濾波器將 FPGA 的 PWM 數位輸出轉化成一個類比電壓。最大漣波出現在佔空比為50%之處。

沒有留言: