引言
STM32G474 所含的高精度定時(shí)器(HRTIMER)其實(shí)包含了多個(gè)定時(shí)器,多個(gè)定時(shí)器之間可以單獨(dú)工作,也可以進(jìn)行同步,且高精度定時(shí)器還能與片上的其他定時(shí)器以及其他芯片進(jìn)行同步,本文將對(duì)高精度定時(shí)器的同步功能進(jìn)行介紹。
定時(shí)器同步結(jié)構(gòu)
HRTIME 的整體架構(gòu)如下圖所示,內(nèi)含由 7 個(gè)定時(shí)器,主定時(shí)器 Master timer 與子定時(shí)器Timer A~F,為 1 主 6 從結(jié)構(gòu),同步功能主要分為兩部分:
- 內(nèi)部同步:各定時(shí)器通過(guò)內(nèi)部的 Cross-timer counter reset bus 互連,見(jiàn)圖中紅框標(biāo)識(shí)部分;
- 外部同步:主定時(shí)器通過(guò) External Synchronization input/output 單元與片上其他定時(shí)器以及片外其他 MCU 的定時(shí)器進(jìn)行同步,如圖中綠框標(biāo)識(shí)部分。
整個(gè)同步功能的主體是主定時(shí)器,其主要作用就是用來(lái)給所有子定時(shí)器提供統(tǒng)一的同步事件,以及將同步事件提供給外部或是接收外部輸入的同步事件。另外子定時(shí)器也可將自身的某些事件作為同步事件發(fā)送到 Cross-timer counter reset bus 上。
在同步功能中,將提供同步信號(hào)的定時(shí)器稱(chēng)為主,接收同步信號(hào)的稱(chēng)為從。在接收到同步信號(hào)后,從定時(shí)器將自身的計(jì)數(shù)器復(fù)位到 0 或是啟動(dòng)計(jì)數(shù),從而與主定時(shí)器實(shí)現(xiàn)同步或形成一定的移相。
高精度定時(shí)器內(nèi)部同步
通過(guò)內(nèi)部的互聯(lián)總線 Cross-timer counter reset bus,除主定時(shí)器 Master Timer 外,每個(gè)定時(shí)器都可以接收總線上其他定時(shí)器發(fā)出的同步信號(hào),同時(shí)所有定時(shí)器都可將自身的某些事件作為同步信號(hào)發(fā)送到總線上。
高精度定時(shí)器外部同步
HRTIME 通過(guò)其 Master Timer 的 External Synchronization input/output 單元與片上其他定時(shí)器以及片外其他 MCU 的定時(shí)器進(jìn)行同步。
當(dāng) HRTIME 做為主時(shí),其輸出的同步事件可由其內(nèi)部的以下事情產(chǎn)生:
- Master Timer start event
- Master Timer CMP1 event
- Timer A start event
- Timer A CMP1 event
該同步事件可以在管腳 HRTIM_SCOUT 上輸出一個(gè)高或是低的脈沖,寬度為 16 個(gè) fhrtim 周期,同時(shí)也可以映射到內(nèi)部的 ITR10,ITR10 可以直接作為片上其他定時(shí)器的同步事件。
小結(jié)
對(duì)高精度定時(shí)器 HRTIME 的同步功能進(jìn)行了介紹,基于 STM32G474 和 CubeMx 工具說(shuō)明如何快速的實(shí)現(xiàn) HRTIME 的各種同步功能。