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

https://www.ti.com/lit/ug/spruhm8h/spruhm8h.pdf

LAUNCHXL-F28379D Overview User’s Guide (Rev. C)

https://www.ti.com/lit/pdf/sprui77

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。

Table 15–22. TBCTL Register Field Descriptions (continued) HSPCLKDIV 與 CLKDIV 設定值

If #define _LAUNCHXL_F28379D in F28937xD_SysCtrl.c

以下為HSPCLKDIV = 1與CLKDIV = 1之情況。

If #define _LAUNCHXL_F28379D in F28937xD_SysCtrl.c

--

--