定時器67事——捕獲比較通道


1、最后老師說的PWM,上升沿比較、下降沿比較時,都是輸入一個固定的值(?)

上升沿比較時,小於n,則為高電平;下降沿比較時,大於n,則為高電平,追求某種統一。

2、有4個不同的通道,比如說第一個通道可以設置為上升沿技術,第二個通道可以設置為上升沿和下降沿都計數,這樣就可以通過第一個通道的值知道周期,通過第二個通道的值知道脈寬。

3、我們調節ARR可以改變PWM的周期,改變比較的值可以改變PWM的脈寬。{那什么與相位有關系呢?}

4、捕獲、比較在大的電路中處於什么樣的位置?捕獲和比較為何不能同時啟用,這個存在的意義是什么?

5、上節課上0416的PPT中包含捕獲/比較寄存器的部分:(有助於理解比較/捕獲寄存器在整個定時器上的功能和用法)

  • 在用結構體來確定寄存器位置的階段,有兩個比較/捕獲模式寄存器CCMR1,CCMR2
  • 在用結構體來確定寄存器位置的階段,有四個比較/捕獲寄存器CCR1,CCR2,CCR3,CCR4
  • 在狀態寄存器SR中,有捕獲/比較1234中斷的標志位:TIM_SR_bCC1IF到TIM_SR_bCC4IF
  • 在狀態寄存器SR中,有捕獲/比較1234過捕獲的標志位:TIM_SR_bCC1OF到TIM_SR_bCC4OF
  • 在控制寄存器CR2中,有TIM_CR2_bCCDS來進行選擇{什么選擇}    TIM_CR2_bMMS來進行主模式選擇{什么叫做主模式選擇?} 
  • 在事件發生寄存器EGR中,可設置更新事件、觸發事件、和進行捕獲通道的選擇{更新、觸發是我們上節課中了解到的更新事件和觸發事件嗎} 
  • 捕獲/比較使能寄存器CCER,可在其中選擇輸出使能和輸出極性

另一個老師的掃盲PPT上的知識點

1、輸入捕獲模式的作用:可以用來測量脈沖寬度或者測量頻率,對應了上面的第2點。

2、比較輸出模式的作用:控制一個輸出波形,或者指示一段給定的時間已經到了。

3、

4、

 

PPT和筆記上的內容:

1、每個捕獲/比較通道由一下部分組成:

  • 一個捕獲/比較寄存器(預裝載和影子寄存器){這個寄存器是用來放什么值的?}
  • 一個用於捕獲的輸入段(帶有數字濾波器、多路復用和預分頻){這個在圖里是如何表示的}
  • 一個輸出段(帶有比較器和輸出控制)

{這張圖是一個用於捕獲的輸入段的電路圖嗎?}

可以通過改變上面顯示的一些寄存器的值,設置濾波器和捕獲預分頻。

先濾波,再通過代極性選擇的邊沿檢測器,再預分頻,最后存入捕獲寄存器ICxPS。

2、捕獲/比較通道的主電路{這個電路和上面電路的區別和聯系?}

{自己的理解:最左邊是一個信號選擇電路,選擇合適的信號后輸入給捕獲通道。

最右邊的一堆電路是一個比較輸出的模式控制電路。

最中間的是最核心的部分:分為讀和寫兩路

  • 讀的一路是從經過捕獲電路后進入影子寄存器再存入預裝載寄存器,最后經過外設接口,傳到系統總線上。
  • 寫的一路是從總線上傳到預裝載寄存器,再到影子寄存器,最后經過比較器輸出{總線傳來的是什么東西?比較器為何只在大於和等於兩類情況下有輸出?compare_transfer里面傳入的到底是個什么東西?}

}

 捕獲/比較模塊由一個預裝載寄存器和一個影子寄存器構成,讀寫總是訪問預裝載寄存器。

  • 在捕獲模式下,捕獲實際是在影子寄存器上進行,其內容復制到預裝載寄存器;
  • 在比較模式下,預裝載寄存器的內容復制到影子寄存器,它用於與計數器比較。

設置TIMx_EGR寄存器中相應的CCxG位,可以通過軟件產生出入捕獲中斷和/或DMA請求。

3、輸入捕獲模式

  • 在輸出捕獲模式 下,在相應的ICx信號檢測到跳變之后,捕獲/比較寄存器CCRx用來鎖存計數器的值(這也就是為何這四個通道要和計數器連在一起的原因)
  • 當捕獲發生的時候,相應的CCxIF標志(在SR寄存器里面)置位
  • 如果還設置了使能的話,還可以發送中斷和DMA請求
  • 當我們讀取保存在CCRx中的值的話,CCxIF就會被清楚,或者直接用軟件寫0清除
  • 如果在發生一個捕獲時,CCxIF標志位已經為高了,此時就會講SR中的另外一個標志位CCxOF置高。
  • 所以,正常使用時要及時讀取到CCRx里面的數值。

4、捕獲/比較模式寄存器CCMR1:2

2個16位寄存器,低八位是CC1{CCMR1}和CC3的設置;高八位是CC2{CCMR1}和CC4的設置。

{這里的輸出比較快速使能是個什么?輸出比較模式是個什么?比較清零使能是個什么?}

{這個13是什么鬼?}

5、捕獲\比較使能寄存器CCER

{N是反向了嗎?}   同樣有兩個16位的寄存器,第一個寄存器是關於CC1(低八位),CC2(高八位)的設置;第二個寄存器是關於CC3和CC4的設置。

6、DMA/中斷使能寄存器DIER

這些個到底是干啥用的?

 7、關於輸入捕獲模式的步驟及其他一些說明

  • CCMR1里的輸入選擇和濾波器的設置:

eg當TI1上升時將計數器的值捕獲到CCR1

  • CCR1必須連接到TI1輸入,為此CCMR1寄存器中CC1S位組寫為01(當CC1S不為00,通道就設置為輸入了,CCR1寄存器就變為只讀的{意思是:當CC1S為00時,CCR1可寫嗎?CCR1里面是些什么東西}
  • 寫入CCMRx寄存器中ICxF位,表示濾波器持續時間{我不寫這個值的話會咋樣,默認值是個啥}
  • 對於這里的濾波器的理解:有一個采樣頻率,在N次連續采樣都為高電平時,才確認是捕獲到了一個高電平。如采樣頻率是18MHz,N=6,所以頻率大於3MHz的信號就會被濾除。
  • 由於我們在捕獲的時候是對輸入信號進行離散取樣,如果信號不穩定,取到的5個點中有0有1,我們必須編程使得濾波器持續時間長於這5個時鍾周期(應該也就是是說要大於5的意思),可以在檢測新的電平時,用最快的采樣頻率fDTS,如果8次連續都是高電平的話,就可以確認跳變。{到底是要放寬選擇線還是增大啊?}

 

  •  在CCER寄存器的CC1P位寫入0來選擇TI1通道上的有效跳變沿。
  • 如果希望對每個有效跳變進行捕獲,可以禁用預分頻器,就是在CCMR1寄存器中的IC1PS位組寫入00。
  • 通過設置CCER寄存器中的CC1E位,可以打開對計數器進行捕獲的使能。
  • 如果需要的話,可以設置中斷使能寄存器中的CC1IE位,使能相應的中斷請求;可以設置中斷使能寄存器中的CC1DE位,使能DMA請求。
  • 當輸入捕獲發生時,CCR1寄存器得到有效跳變發生時計數器的值,這時就置為CC1F標志,如果出現至少兩次相繼的捕獲而標志為清除時,則置位CC1OF標志。
  • 按照CC1IE位產生中斷,CC1DE位產生DMA請求。
  • 為了處理過捕獲,推薦在讀取過捕獲標志之前讀取數據。

8、PWM input mode脈寬調制輸入模式

是利用微處理器的數字輸出對模擬電路進行控制的一種非常有效的技術,簡單來說就是對脈沖款對和頻率的控制。

這個模式是輸入捕獲模式的特例,和其他模式的區別為以下幾個部分

  • 兩個ICx信號映射到相同的TIx輸入{意思是同一個信號接到兩個不同的channel上面嗎?}
  • 這兩個ICx信號由相反極性的邊沿激活
  • 兩個TIxFP信號之一選作觸發器輸入,從模式控制器配置為復位模式。{???}

例題:測量施加在TI1上的PWM周期(在CCR1寄存器)和脈寬(在CCR2寄存器)

  • 為CCR1選擇激活輸入——在CCMR1寄存器中CC1S位組寫入01(選擇TI1){這個是怎么進行選擇的}
  • 為TI1FP1選擇激活極性(用於CCR1捕獲和計數器清除)——CCER寄存器中的CC1P位寫入0(上升沿激活)
  • 為CCR2選擇激活輸入——在CCMR1寄存器中CC2S位組寫入10(選擇TI1)
  • 為TI1FP2選擇激活極性(用於CCR2捕獲和計數器清除)——CCER寄存器中的CC2P位寫入1(下降沿激活)
  • 選擇有效觸發器輸入——SMCR寄存器TS位組寫入101(選擇TI1FP1){TI1FP2為啥不用選}
  • 配置從模式控制器為復位模式——SMCR寄存器中的SMS位組寫入100{什么東西}
  • 使能捕獲——CCER寄存器中的CC1E和 CC2E寫入1

 9、輸出比較模式    

用於控制輸出波形或指示時間周期已經終結,當發現捕獲/比較寄存器與計數器之間出現匹配時沒執行輸出比較功能。

  • 將相應的輸出引腳賦值為可編程的值{也就是根據自己的需要選擇對於的模式}——這個值有輸出比較模式CCMR寄存器中的OCxM位組和輸出極性CCER寄存器中的CCxP位指定
  • 匹配時引腳可以——保持其電平OCxM=000;置為活動=001;不活動OCxM=010;翻轉OCxM=011  {這里的活動、非活動是什么意思}    
  • 在狀態寄存器中置位標志(SR寄存器中CCxIF位) {這置位說明已經計數了嗎?}        
  • 如果某些中斷的使能打開了的話,就產生了該種中斷。(對於DMA也同理)
  • CCMRx寄存器中的OCxPE位,可以置為0或者1,表面CCRx寄存器不用還是用預裝載寄存器(預裝載寄存器只有在更新事件發生時才會進入影子寄存器)

 

10、脈寬調制方式

  ARR確定周期,CCRx確定脈寬*任務周期*

  

CCMRx寄存器中OCxM位組寫入110(PWM模式1)或111(PWM模式2),每個通道可以獨立選擇PWM方式
每個OCx輸出一個PWM
必須使能相應的預裝載寄存器和預裝載自動重裝載寄存器
OCx的極性是軟件可編程的,用CCER寄存器的CCxP位,可編程為高有效或低有效。OCx輸出由CCER寄存器的CCxE位使能
由於預裝載寄存器只有在發生更新事件時才傳送到影子寄存器,啟動定時器之前,必須在EGR寄存器中置位UG位來初始化所有寄存器

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM