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