Przegląd możliwości timerów w STM32F

W artykule przedstawiamy ekspresowy przegląd cech i możliwości timerów-liczników zastosowanych w mikrokontrolerach STM32F2/F4 i pozostałych STM32, z uwzględnieniem ich podstawowych obszarów aplikacyjnych.

Pomimo swojej krótkiej rynkowej historii mikrokontrolery STM32F nieustannie ewoluują, co szczególnie jest widoczne na przykładzie wbudowanych w nie bloków peryferyjnych, w tym także timerach. Znaczenie sprzętowych timerów we współczesnych aplikacjach rośnie, rosną także wymagania im stawiane, na co producenci mikrokontrolerów starają się możliwie szybko zareagować. Jedne z najnowszych timerów firma STMicroelectronics zastosowała w mikrokontrolerach STM32F2 i STM32F4, których wyposażenie – poza rdzeniami CPU – jest bliźniacze.

Timery w STM32: jakie i do czego

W zależności od przynależności do rodziny, mikrokontrolery STM32 są wyposażane w różne rodzaje mikrokontrolerów, co w przejrzysty sposób pokazano w tabeli 1. W mikrokontrolerach STM32F2 i STM32F4 zastosowano łącznie 14 timerów, w tym dwa 32-bitowe (TIM2 i TIM5).

 

Tab. 1. Zestawienie wyposażenia w timery poszczególnych rodzin mikrokontrolerów STM32

Typ timera STM32F101…107 STM32F100 STM32L1 STM32F2/F4
Advanced TIM1 TIM1 TIM1
TIM8 TIM8
General Purpose TIM2 TIM2 TIM2
TIM3 TIM3 TIM3 TIM3
TIM4 TIM4 TIM4 TIM4
TIM5 TIM5
General Purpose 32-b TIM2
TIM5
Basic TIM6 TIM6 TIM6 TIM6
TIM7 TIM7 TIM7 TIM7
1-channel TIM10 TIM10 TIM10
TIM11 TIM11 TIM11
TIM13 TIM13 TIM13
TIM14 TIM14 TIM14
2-channel TIM9 TIM9 TIM9
TIM12 TIM12 TIM12
1-channel z wyjściami komplementarnymi TIM15
2-channel z wyjściami komplementarnymi TIM16
TIM17

 

Timery w STM32 dzielą się na pięć zasadniczych grup:

  • advanced – timery najbardziej rozbudowane funkcjonalnie o największych możliwościach konfiguracyjnych z wbudowanymi komparatorami, przystosowane do pracy w systemach wielofazowego sterowania silnikami (m.in. możliwość zadania czasu martwego pomiędzy fazami, możliwość sprzętowego zatrzymania sterowanego silnika),
  • general purpose – uniwersalne timery o dużych możliwościach funkcjonalnych, pozbawione komparatorów, przystosowane do pomiaru czasu i okresu przebiegów, zliczania impulsów i odstępów między nimi, zliczania impulsów z czujników i enkoderów itp.
  • basic – timery pozbawione wejść i wyjść zewnętrznych, przeznaczone do pracy w generatorach podstawy czasu (np. do wyzwalania przetworników C/A).
  • 1-/2-channel z wyjściami komplementarnymi – timery o nieco mniejszych możliwościach niż dotychczas wymienione, zliczające wyłącznie w górę, wyposażone w komparator, a także – wyłącznie w wersji 2-kanałowej – także w generator czasu martwego.

Wszystkie wymienione dotychczas timery mają dostęp do DMA, dzięki czemu ich obsługa pochłania minimalne zasoby CPU. Ostatni rodzaj timerów stosowanych w obecnie dostępnych wersjach mikrokontrolerów STM32 to:

  • 1-/2-channel – timery nie mające dostępu do DMA, pozbawione komparatora i generatora czasu martwego.

 

Tab. 2. Skrócone charakterystyki funkcjonalne poszczególnych grup timerów stosowanych w mikrokontrolerach STM32

Typ timera Rozdziel-czość Zlicza-nie Dostęp do DMA Liczba kana-łów Liczba kom-para-torów IC/OC/ PWM/OP Tryb master Tryb slave
Advanced 16 up, down, center aligned + 4 3 +/+/+/+ + +
General purpose 16/32 (wyłącznie w STM32F2/F4) up, down, center aligned + 4 0 +/+/+/+ + +
Basic 16 up + 0 0 -/-/-/- +
1-channel 16 up 1 0 +/+/+/+ +
2-channel 16 up 2 0 +/+/+/+ + +
1-channel z wyjściami komple-mentar-nymi 16 up + 1 1 +/+/+/+ +
2-channel z wyjściami komple-mentar-nymi 16 up + 2 1 +/+/+/+ +

 

Najważniejsze cechy poszczególnych grup timerów zestawiono w tabeli 2. Warto zwrócić uwagę, że za wyjątkiem TIM2 i TIM5, które w mikrokontrolerach STM32F2 i STM32F4 są 32-bitowe a w innych rodzinach 16-bitowe, wszystkie pozostałe timery o takich samych nazwach charakteryzują się podobną budową i cechami użytkowymi.

O autorze