CCS Note 01: How to calculate the frequency of ePWM Module
教學
如何計算F2837xD ePWM模組之時脈(clock & frequency)
環境
本文使用
OS: Windows x64
Code Composer Studio Version: 11.1
開發板: LAUNCHXL-F28379D Development kit
v210 Example
教學文章列表
參考資料
TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual
LAUNCHXL-F28379D Overview User’s Guide (Rev. C)
Section 1. 原理
Section 1.1 ePWM Clock
根據 Technical Reference Manual 給出的圖3-5 Clocking Source 與圖15-5 Time-Base Submodule Signals and Registers,可以大致上了解Clock的傳遞方式。我們要計算時脈,就需要知道源頭是多少頻率,經過了幾次的除頻與倍頻,才能精準算出Clock頻率。
Section 1.2 ePWM frequency
有了TBCLK時脈後,再經由PWM模組的上下數原理即可求出PWM之頻率,簡單來說就是利用TBCLK觸發計數器來做計時功能,計數出對應的目標值,再進行重置歸零,即可得到對應的週期PWM波形。圖15-6 展示出各種計數模式下周期與計數器對應關係式,只要計算出頻率對應的值來設定TBPRD,即可使ePWM模組輸出要頻率之PWM。
Section 2. 統整結果
Section 2.1 TBCLK之計算
將Section 1提到的圖做了一個統整,並標示出關鍵的參數,如下圖所示
手冊中建議TBCLK不超過100MHz
手冊中建議TBCLK不超過100MHz
手冊中建議TBCLK不超過100MHz
計算方式如下
這邊的TBCLK單位是Hz
Section 2.2 TBPRD之計算
根據手冊給出之運算公式如下,上數及下數模式須加1的原因是因計數器從0開始數,故會多1。
這裡的 T_TBCLK單位是秒,即TBCLK倒數。
TBPRD單位是次,為計數器目標值。
移項整理可得出下列公式
這邊的TBCLK單位是Hz,方便結合Section 2.1之運算結果
Section 3. TBPRD速算法
推導過程待補。
預設(即不做設定)為HSPCLKDIV = 2與CLKDIV = 1。
If #define _LAUNCHXL_F28379D in F28937xD_SysCtrl.c
以下為HSPCLKDIV = 1與CLKDIV = 1之情況。
If #define _LAUNCHXL_F28379D in F28937xD_SysCtrl.c