Sie sind auf Seite 1von 33

Termin 6.

5 - MCT-2
WiSe21/22

Stephan Schulze

09. November 2021

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 1 / 33
Gliederung

1 Timer Grundlagen
Allgemein
Grundfunktionen
Register
Übungsaufgaben

2 Erweiterte Timerfunktionen
Compare-Modus
Input Capture
Weitere Register

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 2 / 33
Abschnitt 1

Timer Grundlagen

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 3 / 33
Unterabschnitt 1

Allgemein

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 4 / 33
Timer Grundlagen
Clocksystem

Motivation: Warum unterschiedliche Clocksysteme?

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 5 / 33
Timer Grundlagen
Clocksystem

Abbildung 1: Clocksystem [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 6 / 33
Unterabschnitt 2

Grundfunktionen

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 7 / 33
Timer Grundlagen
Grundfunktionen

Eine Timer/Counter-Einheit zählt Taktimpulse im Register


TIMx CNT hoch oder runter. Erreicht der Zähler einen vorgegebenen
Wert TIMx ARR (→ Periode), so wird er beim nächsten Zähltakt auf
0 zurückgesetzt und ein ”Update-Interrupt” ausgelöst.

Abbildung 2: Update Event [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 8 / 33
Timer Grundlagen
Übersicht Timer STM32F303RET6

Abbildung 3: Timerübersicht [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 9 / 33
Timer Grundlagen
Formel

Gewünschte Periodendauer: T
Takt für Timer: fCLK

(TIMx PSC + 1) · (TIMx ARR + 1)


fCLK =
T

Beispiel: Gewünscht sei T = 0,5s, bei fCLK = 8MHz


→ Eine mögliche Lösung: TIMx PSC = 7999, TIMx ARR = 499.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 10 / 33
Unterabschnitt 3

Register

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 11 / 33
Timer Grundlagen
APB1 peripheral clock enable (RCC APB1ENR)

Address offset: 0x1C


Reset value: 0x0000 0000

Abbildung 4: RCC APB1ENR [2]

USARTxEN USARTx clock enable


TIMxEN TIMx timer clock enable

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 12 / 33
Timer Grundlagen
TIMx control register 1 (TIMx CR1)

Address offset: 0x00


Reset value: 0x0000

Abbildung 5: TIMx CR1 [2]

CEN Counter enable


DIR Direction*
ARPE Auto-reload preload enable

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 13 / 33
Timer Grundlagen
TIMx DMA/Interrupt enable register (TIMx DIER)

Address offset: 0x0C


Reset value: 0x0000

Abbildung 6: TIMx DIER [2]

CCyIE Capture/Compare y interrupt enable


UIE Update interrupt enable

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 14 / 33
Timer Grundlagen
TIMx status register (TIMx SR)

Address offset: 0x10


Reset value: 0x0000

Abbildung 7: TIMx SR [2]

CCyIF Capture/Compare y interrupt flag


UIF Update interrupt flag
This bit is set by hardware on an update event and
is cleared by software.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 15 / 33
Unterabschnitt 4

Übungsaufgaben

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 16 / 33
Timer Grundlagen
Übungsaufgaben I

Aufgabe: Erklären und vervollständigen Sie das folgende Programm

i n t main ( v o i d )
{
RCC→AHBENR |= RCC AHBENR GPIOAEN ;
RCC→APB1ENR |= RCC APB1ENR TIM2EN ;

GPIOA→MODER |= 0 b01 << 1 0 ;

TIM2→DIER = TIM DIER UIE ;


TIM2→PSC = 7 9 9 9 ;
TIM2→ARR = 4 9 9 ;
TIM2→CR1 = TIM CR1 CEN ;

NVIC EnableIRQ ( TIM2 IRQn ) ;

for ( ; ; )
WFI ( ) ;
}

v o i d TIM2 IRQHandler ( v o i d )
{
?
}

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 17 / 33
Timer Grundlagen
Übungsaufgaben II

1 Gib eine möglichst genaue Lösung für TIMx PSC und TIMx ARR für
T = 1/7s an (fCLK = 8MHz).
2 Welches ist die längste Zeit, die man mit TIMx PSC und TIMx ARR
bei fCLK = 8MHz einstellen kann?
3 Schreibe unter der Annahme von fCLK = 8MHz jeweils eine
Funktion delay(unsigned int x), die
1 blockierend x Millisekunden verzögert. Verzichten Sie auf Timer.
Welche Probleme treten hierbei auf?
2 blockierend x Millisekunden verzögert. Gestalten Sie die Funktion
möglichst Energiesparsam und ermöglichen Sie mit Hilfe eines Timers
die funktion zu ”reaktivieren”.
3 nicht blockierend x Millisekunden verzögert.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 18 / 33
Abschnitt 2

Erweiterte Timerfunktionen

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 19 / 33
Unterabschnitt 1

Compare-Modus

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 20 / 33
Erweiterte Timerfunktionen
Compare-Modus

Erreicht der Timer den Wert TIMx CCRy, so wird ein Pin gesetzt,
erreicht der Timer TIMx ARR, so wird er gelöscht.
Anwendungsbeispiel:
Erzeugung eines PWM-Signals
Erzeugung eines Trigger-Signals

Abbildung 8: Compare-Modus [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 21 / 33
Erweiterte Timerfunktionen
TIMx capture/compare mode register 1 compare mode (TIMx CCMR1)

Address offset: 0x18


Reset value: 0x0000 0000

Abbildung 9: TIMx CCMR1 [2]

OCyM [3:0] Output compare 1 mode (Beispiel):


0110: PWM mode 1 - In upcounting, channel 1 is active as
long as TIMx CNT < TIMx CCRy else inactive.
CCyS [1:0] Capture/Compare y selection:
00: CCy channel is configured as output.
01: CCy channel is configured as input.
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 22 / 33
Erweiterte Timerfunktionen
TIMx capture/compare mode register 2 compare mode (TIMx CCMR2)

Address offset: 0x1C


Reset value: 0x0000 0000

Abbildung 10: TIMx CCMR1 [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 23 / 33
Unterabschnitt 2

Input Capture

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 24 / 33
Erweiterte Timerfunktionen
Input Capture

Wie OC, nur umgekehrt:


1 Die konfigurierte Flanke kommt an
2 Der Counter-Wert wird entsprechend in das Register CCRy geladen
3 optional: Interrupt

→ Die zu benutzenden Register sind die gleichen, wie bei OC.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 25 / 33
Erweiterte Timerfunktionen
Input Capture

Bei einer steigenden oder fallenden (einstellbar) Flanke an einem


Port-Pin wird der Timer nach TIMx CCRy ”abfotografiert”
(”capture”) und ein Interrupt ausgelöst.

Abbildung 11: Capture Modus [2]

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 26 / 33
Erweiterte Timerfunktionen
TIMx capture/compare mode register 1 capture mode (TIMx CCMR1)

Address offset: 0x18


Reset value: 0x0000 0000

Abbildung 12: TIMx CCMR1 (IC) [2]

CCyS [1:0] Capture/Compare y selection:


00: CCy channel is configured as output.
01: CCy channel is configured as input.

→ Analog zu CCMR2.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 27 / 33
Unterabschnitt 3

Weitere Register

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 28 / 33
Erweiterte Timerfunktionen
TIMx capture/compare enable register (TIMx CCER)

Address offset: 0x20


Reset value: 0x0000

Abbildung 13: TIMx CCER [2]

CCyNP/CCyP Capture/Compare:
00: rising edge / active high.
01: falling edge / active low
10: reserved / reserved
11: both edges / reserved
CCyE Capture/Compare y enable:
0: off
1: on
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 29 / 33
Erweiterte Timerfunktionen
Weitere Register

CCRy
PSC
ARR
CNT
RCR
BDTR1

1 Nur für Advanced Timer.

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 30 / 33
Abschnitt 3

Anhang

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 31 / 33
Unterabschnitt 1

Quellen

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 32 / 33
Quellen I

Homepage von Herrn Prof. Dr. Gober


Linksammlung
https://prof.beuth-hochschule.de/gober/lehre/dokumentation-
mikrocontroller-stm32/
Unterlagen von Herrn Prof. Dr. Gober

Stephan Schulze (BHT Berlin / IAV GmbH) Termin 6.5 - MCT-2 09. November 2021 33 / 33

Das könnte Ihnen auch gefallen