Przegląd możliwości timerów w STM32F
Synchronizacja timerów w STM32
W zestawieniu prezentowanym w tabeli 2 widoczne są dwie nieoczywiste kolumny: tryb master i tryb slave. Dotyczą one jedynie niektórych typów timerów, które są przystosowane do pracy w konfiguracji wielopoziomowej, niektóre z nich jako źródła sygnałów taktujących dla kolejnych timerów (master), niektóre jako timery taktowane (slave), timery general purpose oraz advanced mogą pracować w obydwu trybach.
Rys. 1. Schemat blokowy systemu multipleksera sygnałów wyzwalających
Rys. 2. Budowa timerów TIM1/TIM8 i zintegrowanego w nich multipleksera timer system link
Konfiguracją sygnałów wejściowych i wyjściowych wyzwalających zliczanie programista może zarządzać dzięki specjalnemu multiplekserowi timer system link (występuje w każdym timerze obsługującym tryby master/slave), którego schemat blokowy pokazano na rysunku 1, a na rysunku 2 pokazano jego zastosowanie w timerze TIM1/TIM8 (advanced). Przykładowy sposób kaskadowego połączenia timerów w trybie master/slave pokazano na rysunku 3.
Rys. 3. Przykładowa konfiguracja kaskadowa timerów w STM32
Maksymalne częstotliwości taktowania
Taktowanie timerów w mikrokontrolerach STM32F2 i STM32F4 zostało podzielone na dwie niezależne grupy:
- taktowanych z preskalera APB1, są to: TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14,
- taktowanych z preskalera APB2, są to: TIM1, TIM8, TIM9, TIM10, TIM11.
Cechy konstrukcyjne mikrokontrolerów STM32F2/F4 powodują, że maksymalna częstotliwość wewnętrznego taktowania timerów wynosi (tabela 3):
- w przypadku STM32F2: z grupy APB1 30 MHz, a z grupy APB2 – 60 MHz, które w obydwu przypadkach są powielane x2 dając wynikowo 60 lub 120 MHz.
- w przypadku STM32F4: z grupy APB1 42 MHz, a z grupy APB2 – 84 MHz, które w obydwu przypadkach są powielane x2 dając wynikowo 84 lub 168 MHz.
Tab. 3. Maksymalne częstotliwości taktowania timerów w mikrokontrolerach STM32F2/F4
Mikrokontrolery | Timery | fTIMmax [MHz] |
STM32F2 | TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14 | 60 |
TIM1, TIM8, TIM9, TIM10, TIM11 | 120 | |
STM32F4 | TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14 | 86 |
TIM1, TIM8, TIM9, TIM10, TIM11 | 168 |
Żeby było łatwiej: narzędzia i pomoc dla programistów
Konfiguracja toru taktującego timery nie jest zadaniem bardzo trudnym, ale może sprawiać problemy początkującym programistom. Żeby zminimalizować ryzyko pomyłki firma STMicroelectronics udostępniła bezpłatnie proste w obsłudze konfiguratory (w postaci interaktywnych arkuszy XLS), które umożliwiają łatwe i – co ważne – pod kontrolą, ustawienie odpowiednich współczynników podziału i powielania w PLL, do tego potrafią wygenerować kod w C służący do konfiguracji bloku RCC. Okno konfiguratora z przykładowymi nastawami pokazano na rysunku 4.
Rys. 4. Wygląd okna arkusza XLS wspomagającego konfigurację systemu taktującego w mikrokontrolerach STM32
Równie praktyczną pomocą dla programistów są przykładowe programy dostarczane m.in. z zestawami DISCOVERY (np. STM32F4DISCOVERY), dostępne na stronie internetowej producenta. Są wśród nich m.in. przykłady różnych konfiguracji poszczególnych timerów, które bez wątpienia są najbardziej poglądowe dla praktyków.