智慧型車基礎學習FTM模組

2021-09-17 05:44:23 字數 2385 閱讀 6324

ftm模組是乙個多功能定時器模組,同時也是在智慧型車製作中最常用到的模組,他的偉大之處在於他能輸出pwm,能輸出比較,輸入捕捉,定時中斷,進行脈衝加減計數等。

1、ftm暫存器

在k60中,ftm只有三個模組,ftm0、ftm1、ftm2。

ftmx_cnt(計數器暫存器),負責計數

ftmx_sc(狀態和控制暫存器),用於控制計數器暫存器的計數頻率,包括時鐘源的選擇和分頻係數,同時負責計數溢位和中斷使能等。

ftmx_mod(模數暫存器)

ftmx_cntin(計數器初始值暫存器)

ftmx_cnv(通道值暫存器),n代表ftmx中該暫存器的個數,對於ftm0來說一共有八個,這八個暫存器負責pwm的脈寬,每個暫存器存入乙個數字,當計數器暫存器寄到對應數字時,他們就會讓pwm的輸出產生乙個上公升沿或者下降沿。

其中的x代表不同的ftm模組的標號。

2、pwm工作原理(pwm在kinetis的ftm中的工作機理)

pwm中很重要的引數是頻率(週期的倒數)和占空比

週期=(mod-cntin+1)×計數器週期

占空比=(cnv-cntin)÷pwm的週期

pwm輸出週期:首先公式中的計數器週期是由ftmx_sc暫存器決定的, ftmx_sc暫存器決定了ftm模組採用哪個頻率為輸入頻率,這些頻率候選有系統時鐘、固定頻率時鐘以及外部時鐘,同時ftmx_sc暫存器還負責這些輸入頻率的分頻係數,總之ftmx_sc暫存器決定了計數器週期,也就是ftmx_cnt暫存器計數的快慢。然後ftmx_cnt暫存器從ftmx_cntin暫存器中得到計數的初始值,於是就按照ftmx_sc暫存器決定的快慢一直計數到ftmx_mod存入資料的大小,這就構成了乙個pwm週期。pwm輸出脈寬:首先假定ftmx_cnt在計第乙個數時,pwm通道輸出高電平,當cnt計到ftmx_cnv暫存器含有的數的時候,pwm輸出通道就會變為低電平,直到ftmx_cnt繼續計數到等於ftmx_mod的值候乙個pwm週期結束,當重新開始從ftmx_cntin的值進行計數時,pwm的輸出通道又變為了高電平,這樣持續下去,就產生了pwm波形。關於ftm模組的pwm輸出路數:乙個ftmx模組並不是只能輸出一路pwm,其實ftmx_cnv根據x的不同,有n個通道可以輸出pwm,如果是x=0,那麼ftm0就有8個ftmx_cnv,c0v到c7v這8個通道值暫存器,因此ftm0可以輸出8路不同占空比的pwm,但是由於負責計數的ftmx_cnt以及其他暫存器在ftm0中僅僅各有乙個,因此ftm0只能輸出一種頻率的pwm。

3、ftm模組輸入捕獲功能

輸入捕獲(input capture),即輸入捕獲。首先ftm能夠生成pwm,同時還具備其他功能,這都是因為ftm含有的暫存器,之前介紹的暫存器不僅能生成pwm,還能利用自身功能,實現輸入捕獲功能。輸入捕獲就像pwm的逆變一樣,通過檢測輸入pwm方波,捕獲上公升沿或者下降沿,來計算出pwm的頻率或者占空比。

實現輸入捕獲功能的原理:首先ftmx_cnv暫存器不再負責記住乙個特定的資料,而是隨時待命,隨時準備記錄下ftmx_cnt暫存器計數的數值。當ftm的輸入通道產生乙個上公升沿或者下降沿的時候,就會產生乙個中斷,這時ftmx_cnv暫存器就會立刻記錄下ftmx_cnt暫存器此刻的數字,我們只要知道兩次中斷之間ftmx_cnv暫存器記錄的計數的差,就可以間接計算出中斷間隔時間了,從而可以計算出pwm方波的頻率。當然ftmx_cnt暫存器計數的頻率還是由ftmx_sc暫存器決定的。假設我們知道ftmx_cnt計數的頻率為fcnt, ftmx_cnv暫存器自從上次中斷後記錄的計數差為cv,配置捕獲上公升沿時產生中斷,那麼兩次中斷的時間差的倒數就是pwm方波的頻率: 輸入pwm頻率=fcnt/cv

乙個ftm模組只能提供一路輸入捕獲。

4、正交解碼原理

首先要清楚正交解碼是幹嘛用的,編碼器是常用的電機測速感測器,他不僅可以測速,還可以知道電機的正轉還是反轉,靠的就是他能輸出兩路正交訊號,我們可以通過正交訊號的相位差來識別出當前電機的轉動方向。因此有了ftm模組,我們就可以將這兩路正交訊號pha和phb輸入到ftm的正交輸入通道,通過正交解碼功能,直接讀取脈衝的計數值,這個計數值是有符號的,正數代表正轉,負數則代表反轉。

5、ftm其他功能

1)pwm死區

pwm死區是在是pwm輸出時,為了使h橋或半h橋的上下管不會因為器件本身的開關速度問題導致同時導通而設定的乙個保護時段。這個時間在kinetis的ftm模組也是可以設定的,在庫函式使用時只要在配置pwm輸出時,配置ftm_pwmdeadtimecfg和ftm_pwmdeadtimediv就可以了。

2)溢位中斷

除了輸入捕獲能產生中斷外,ftm內部也會產生溢位中斷,這是在使用輸入捕獲或者正交解碼時可能遇到的問題,那麼什麼是溢位中斷呢,它是當cnt計數器計數到上限時產生的一種中斷。你可以在初始化ftm時配置是否使能該中斷,利用成員變數ftm_toienable。

智慧型車基礎學習JTAG介面

從智慧型車的製作中知道中斷的概念,但一直一知半解,最終下定決心好好打基礎。在一開始主要接觸的是k60,所以這些基礎知識也結合k60切入,之後可能會接觸k66的有關內容,估計大同小異吧。jatg介面 即聯合測試實現工作組,最初是用來對晶元進行測試的,如今jtag介面還常用於實現isp in syste...

智慧型車學習歷程

單工,半雙工和全雙工 回顯at命令 數據機 線性ccd com口 閾值二值化 影象資料 上位機和下位機 攝像頭除錯助手 線性 ccd 除錯助手 虛擬示波器 舵機 電機放置在裡面 時鐘定義列表 pdb彈性定時器 flextimer,ftm 指標結構體 gpio 通用輸入輸出 通用非同步接收器 傳送器 ...

智慧型車小白學習日記

前言 一 gpio是什麼?二 使用步驟 總結隨著智慧型計算機行業的不斷發展,眾多領域都離不開 智慧型 兩個字,對於在校大學生來說,智慧型車競賽是含金量較高的比賽之一,其吸引眾多愛好者投身其中,在十五屆智慧型車比賽中盲目掙扎數月,卡在攝像頭問題上,不覺十六屆核心板霸主地位已然易主,從恩智浦轉向沁恒,從...