很多應用場合需要檢測系統(tǒng)時鐘是否在正常范圍內,以保證MCU能正常工作,CLASS B功能安全實現系統(tǒng)時鐘自檢的方法是采用兩個獨立時鐘源交叉檢查來進行測量,可使其中一個作為定時器的時鐘源,另一個作為定時器的輸入。SPIN0280含有微控制器時鐘輸出(MCO)功能,允許時鐘輸出到外部 MCO 引腳上,可以很便捷的輸出HSI內部時鐘信號到引腳上,配置外部時鐘HSE為MCU的系統(tǒng)時鐘,使用Timer3對引腳上的HSI信號進行捕獲,以實現內部HSI和外部HSE交叉檢測的功能。
微控制器時鐘輸出(MCO)
微控制器時鐘輸出(MCO)允許時鐘輸出到外部 MCO引腳上。相應 GPIO端口的配置寄存器必須被配置為復用輸出功能。可以選擇以下五個時鐘信號中的一個作為 MCO輸出時鐘:
MCO 與時鐘源對應關系
微控制器時鐘輸出(MCO)配置為在PA8引腳上輸出,此時PA8引腳需配置為AF0復用模式。
TIM3 通用定時器
由一個16位可實時編程預分頻器和一個16位計數方向可調的自動裝載計數器組成,可以為用戶提供便捷的計數定時功能,計數器時鐘由預分頻器分頻得到。
TIM3具有多種用途:輸入功能(測量輸入信號的脈沖寬度、頻率,PWM輸入等),輸出功能(PWM輸出、單脈沖模式輸出等)。
本次主要使用TIM3的輸入捕獲功能,輸入捕獲部分包括數字濾波器、多路復用、預分頻器等,結構如下:
輸入捕獲模式下,當檢測到信號ICx上的有效邊沿后,計數器的當前值被鎖存到對應的影子寄存器上,再復制到對應的捕獲比較寄存器中。當開啟了中斷或DMA使能,發(fā)生捕獲事件時,將產生相應的中斷或DMA請求。發(fā)生捕獲事件時,會將狀態(tài)寄存器(TIM3_SR)中的捕獲標志位 CCxIF 置 1,通過配置 CCxIF=0或讀取TIM3_CCRx中的數據,清除CCxIF標志位。當CCxIF未被清零時,發(fā)生輸入捕獲事件,重復捕獲標志位CCxOF將會被置1,通過配置CCxOF=0,可以清除CCxOF標志位。
SPIN0280的通用定時器TIM3有4路輸入捕獲通道,本文采用TIM3_CH2對HSI進行捕獲。
SPIN0280 Timer3捕獲內部HSI時鐘具體步驟
1.使用外部HSE時鐘(8M)并倍頻到96M作為系統(tǒng)時鐘
2.TIM3_CH2的引腳配置,配置為PA7的AF1復用功能
3. TIM3掛載在APB1上,使能TIM3時鐘
4.配置TIM3,計數器清空,由低向高計數,上升沿觸發(fā),時鐘不分頻
5. 配置MCO輸出在PA8引腳上,配置PA8為AF0復用功能,HSI信號128分頻輸出
6. 開啟TIM3的時鐘中斷,并配置NVIC和編寫中斷函數
7. 開啟Timer3外設
示例代碼如下:
示例輸出結果:
與實際硬件測試的結果相符。
審核編輯:劉清
-
微控制器
+關注
關注
48文章
7649瀏覽量
152107 -
寄存器
+關注
關注
31文章
5363瀏覽量
121158 -
數字濾波器
+關注
關注
4文章
270瀏覽量
47093 -
定時器
+關注
關注
23文章
3255瀏覽量
115369 -
預分頻器
+關注
關注
0文章
18瀏覽量
8188
原文標題:靈動微課堂 (第270講)|CLASS B內部時鐘檢測在MM32SPIN0280上的實現
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
MM32SPIN0280相關資料下載
淺談靈動微MM32SPIN0280系列MCU產品
靈動微全新MM32SPIN0280系列32位MCU
![靈動微全新<b class='flag-5'>MM32SPIN0280</b>系列32位MCU](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
靈動微電子MM32SPIN0280為主控的滑板車參考方案
AN6203 MM32SPIN0280 Motor Liberal指導手冊(中文版)
![AN6203 <b class='flag-5'>MM32SPIN0280</b> Motor Liberal指導手冊(中文版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN6407_基于MM32SPIN0280無感方波BLDC電動工具驅動篇應用筆記(中文版)
![AN6407_基于<b class='flag-5'>MM32SPIN0280</b>無感方波BLDC電動工具驅動篇應用筆記(中文版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN6413 基于MM32SPIN0280的PMSM雙電阻采樣矢量控制方案(中文版)
![AN6413 基于<b class='flag-5'>MM32SPIN0280</b>的PMSM雙電阻采樣矢量控制方案(中文版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN6415_基于MM32SPIN0280的PMSM單電阻采樣矢量控制方案(中文版)
![AN6415_基于<b class='flag-5'>MM32SPIN0280</b>的PMSM單電阻采樣矢量控制方案(中文版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN0071 從MM32SPIN2x移植到MM32SPIN0280(中文版)
![AN0071 從<b class='flag-5'>MM32SPIN</b>2x移植到<b class='flag-5'>MM32SPIN0280</b>(中文版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論