kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu

4.3 Generierung - Wie werden PWM-Signale erzeugt?

Wie werden PWM-Signale erzeugt?

  • Wie leicht einzusehen ist, lassen sich Rechtecksignale sehr einfach mit Hilfe digitaler Bausteine erzeugen.
  • Zu ihrer Generierung werden die Timer des ATmega32 verwendet.
  • Da er drei Timer hat (Timer0, Timer1, Timer2) und einer sogar zwei PWM-Signale erzeugen kann, können maximal gleichzeitig auch vier PWM-Signale auf vier verschiedenen Pins generiert werden:
  • Timer0: OC0, Pin 4 (vergl. Piunbelegung im Datenblatt)
  • Timer1: OC1, Pin 21 (vergl. Piunbelegung im Datenblatt)
  • Timer2: OC2A, Pin 19; OC1B, Pin 18 (vergl. Piunbelegung im Datenblatt)
  • Timer sind in erster Linie Zähler, die völlig unabhängig vom Mikrocontrollerprogramm mit einer bestimmten Taktrate hoch- oder herunterzählen.
  • Diese Fähigkeit kann zu unterschiedlichen Zwecken eingesetzt werden.
  • Im einfachsten Fall kann man den Zähler für Zeitmessungen verwenden, indem man den Zählerstand vor und nach dem zu untersuchenden Vorgang abruft.
  • Wieder erfolgt die Konfigurierung dieser Peripherie über spezielle Register.
  • Grundsätzlich arbeitet die Peripherie unabhängig vom Mikrocontrollerprogramm und wird von diesem nur aktiviert, bzw. benutzt:
BILDBESCHREIBUNG

Bild 4.3-1: Die Peripherie läuft unabhängig vom Programm und wird von diesem lediglich konfiguriert und benutzt.

  • Der Zähler eines Timers wird vom Prinzip her mit Toggle-Flipflops realisiert:
  • In folgendem Beispiel eines T-Flipflops ändert sich der Zustand des des Ausgangs mit jeder fallenden Flanke des T-Eingangs / Takt-Eingangs.
BILDBESCHREIBUNG

Bild 4.3-3: T-Flipflop

  • Damit bildet das T-Flipflop einen Frequenzteiler durch zwei:
  • Eine am T-Eingang anliegende Rechteckschwingung erzeugt am Ausgang eine mit halber Frequenz.
  • Dies wird dazu benutzt einen binären Zähler aufzubauen (s. nächstes Bild).
BILDBESCHREIBUNG

Bild 4.3-3: Zähler mit Hilfe von T-Flipflops aufgebaut.

  • Das gewöhnliche PWM-Signal wird bei den Timern des ATmega32 mit Hilfe einer Einstellung realisiert, bei der der Zähler ständig herauf und herunter zählt.
  • Eine logische Vergleichsschaltung gibt dann an den PWM-Ausgang eine 1, wenn der Zählerstand x größer als der Schwellwert g ist.
  • Mit dem Prameter g läßt sich somit die Pulsbreite einstellen.
  • Dieser Parameter g kann bei Timer0 beispielsweise über das Register OCR0 und für Timer2 mit OCR2 eingestellt.
BILDBESCHREIBUNG

Bild 4.3-4: Generierung eines PWM-Signals über die Hardware der Timer-Peripherie.

  • Wie leicht einzusehen ist, verschiebt sich bei Veränderung des Parameters g die Phase des Signals:
BILDBESCHREIBUNG

Bild 4.3-5: Veränderte Phase (Signalflanke verschoben) bei Änderung von g.