這應該是一個簡單的公式,但我無法弄清楚。PWM的工作頻率
我有一個16mHZ的AVR芯片。
我需要運行一個PWM信號是爲24KHz ..
什麼是決定什麼是最好的預分頻器的公式。
我正在使用16位計時器。
這應該是一個簡單的公式,但我無法弄清楚。PWM的工作頻率
我有一個16mHZ的AVR芯片。
我需要運行一個PWM信號是爲24KHz ..
什麼是決定什麼是最好的預分頻器的公式。
我正在使用16位計時器。
閱讀數據表(這裏例如從ATMEGA328P數據表,16位定時器/計數器)來獲得公式:
爲輸出的PWM頻率可以通過下面的等式
fPWM = fclk_IO/(N * (1 + TOP))
的
N
變量代表分頻因子(1,8,64,256,或1024)來計算。
爲16MHz /爲24KHz,讓你...
(16 * 1024 * 1024)/(24 * 1024)給你...
二萬四千五百七十六分之一千六百七十七萬七千二百十六給你...
682.667
因爲預分頻器只能是一個整數,並且取決於您需要的精度,所以您可以選擇在每第三個tick中更改軟件中的預分頻器值。例如,每前兩個蜱將有683預分頻器與每隔兩個刻度是682
由於我們談論的是CPU時鐘速率,所以整個「2的冪」業務不適用於此(如果這是32k晶振,那可能是另一回事)。時鐘大概是16 * 1000 * 1000赫茲,名義上。這也將682.xyz更改爲,是的,666.666 ... – Dan 2012-02-17 06:43:18
除非另有規定,否則晶振頻率總是***的兩倍。 – 2012-02-20 22:13:49
我只是試圖弄清楚如何從這個公式中得到24KHZ ......我的代數有點生疏是10年失學 – michael 2012-02-16 23:09:10
@michael簡單的數學:使用固定的'N'和計算'(fclk_IO /(N * fPWM )) - 1 = TOP'。將「TOP」值四捨五入到最接近的整數是您正在查找的設置。使用四捨五入的「TOP」整數,您可以使用我答案中的公式來知道準確的PWM頻率。如果你嘗試不同的'N'值,你會發現你使用的預分頻器值越高,頻率越準確。 – ouah 2012-02-16 23:34:45
所以它會是16000000 /(8/2400000) - 1 = TOP爲16MHZ芯片試圖獲得24KHZ頻率? – michael 2012-02-17 00:14:00