Microcontroller Flashcards
Wie sieht die Basisstruktur eines Mikrokontrollers aus?
Komponenten:
- Prozessor
- SPeicher
- Digital In-/out
- Other on board peripherals
(siehe Abbildung)
Wie sieht die komplexe Standard Struktur eines Mikrokontrollers aus?
- Processor core
- Volantile memory (SRAM)
- Non-volatile memory (EEPROM, Flash)
- Counter, Timer
- Clock
- Watchdog
- Digital I/O (parallel)
- Serial interface
- Interrupt interface
- Interrupt controller
- A/D converters
- D/A converters, PWM output
- Bus controller –> external bus
(siehe Abbildung)
Sind PINs von Mikrocontrollern in der Regel bidirectional doer unidirectional?
bidirectional
Welche drei Register gibt es bei der Nuzung von Mikrokontrollern (im AT-Mega)?
- Data Direction Regsiter (DDR)
- Port Register (PORT)
- PORT Input Regsiter (PIN)
Was ist ein DDR Register?
DDR-Register:
- Legt fest, ob ein Mikrocontroller-Pin als Eingang oder Ausgang fungiert.
- read/write
Funktionen:
- DDR = 1: Pin als Ausgang konfiguriert.
- PORT-Register steuert den Zustand (HIGH/LOW) des Pins.
- DDR = 0: Pin als Eingang konfiguriert.
- Pin kann externes Signal lesen.
- PORT-Register kann internen Pull-up-Widerstand aktivieren.
Wichtige Verwendung:
- Bestimmt die Richtung der Datenübertragung am Pin.
- Essentiell für die Steuerung von I/O-Operationen.
Was ist ein PORT Register?
PORT-Definition:
- Ein Register, das eine Gruppe von I/O-Pins (typischerweise 8 Pins) steuert.
- read/write
Funktionen:
- Ausgangssteuerung: Setzt den Zustand der Pins (HIGH/LOW) bei als Ausgang konfigurierten Pins.
- Pull-up-Widerstand: Aktiviert den internen Pull-up-Widerstand bei als Eingang konfigurierten Pins (wenn PORT = 1).
- Lesen von Eingängen: Indirekt beteiligt beim Lesen des Pin-Zustands, wenn der Pin als Eingang konfiguriert ist.
Wichtige Verwendung:
- Steuert die Daten, die an den Pins des Mikrocontrollers ausgegeben oder von ihnen gelesen werden.
Was ist ein PIN Register?
PIN-Definition:
- Physischer Anschluss am Mikrocontroller, der als Ein- oder Ausgang verwendet werden kann.
- read only (writing has no effect or unintuitive semantics)
Funktionen:
-Eingang: Liest externe Signale (z.B. HIGH/LOW).
- Ausgang: Gibt Signale an externe Geräte aus (z.B. HIGH/LOW).
Steuerung:
-Die Funktion des Pins wird durch das DDR-Register festgelegt (Eingang/Ausgang).
- Der Zustand des Pins kann über das PORT-Register (bei Ausgang) oder das PIN-Register (bei Eingang) gelesen/gesetzt werden.
Wichtige Verwendung:
- Verbindungspunkt zwischen Mikrocontroller und externen Schaltungen oder Geräten.
Was ist ein worst-case-delay?
- bezieht sich auf die längste mögliche Verzögerung, die in einem System auftreten kann, bevor eine bestimmte Operation abgeschlossen ist.
- Diese Verzögerung tritt unter den ungünstigsten Umständen auf, die innerhalb des Systems auftreten können.
Was ist ein missed impulse?
- bezieht sich auf ein Ereignis in einem System, bei dem ein Impuls oder Signal, das erwartet wurde, nicht erfasst oder verarbeitet wird.
- Dies kann in verschiedenen technischen Kontexten auftreten, insbesondere in der Signalverarbeitung, Steuerungstechnik und Echtzeitsystemen.
Was ist ein Schmitt Trigger?
- eine elektronische Schaltung, die als eine Art Digital-Analog-Wandler fungiert, um ein analoges Eingangssignal in ein digitales Ausgangssignal umzuwandeln
- weist zwei unterschiedliche Schwellenwerte für das Umschalten zwischen den Zuständen hat: einen für das Schalten von niedrig zu hoch (Rising Threshold) und einen anderen für das Schalten von hoch zu niedrig (Falling Threshold)
Funktion:
- Wenn das Eingangssignal den Rising Threshold überschreitet, schaltet der Ausgang auf HIGH.
- Wenn das Eingangssignal dann wieder unter den Falling Threshold fällt, schaltet der Ausgang auf LOW.
- Zwischen diesen beiden Schwellenwerten bleibt der Ausgangszustand unverändert, was zu einer robusteren und stabileren Signalverarbeitung führt.
Was ist Bouncing?
Definition: Bouncing bezieht sich auf das Phänomen, das auftritt, wenn mechanische Schalter oder Tasten betätigt werden. Beim Schließen oder Öffnen eines Schalters kann der Kontakt mehrmals schnell hintereinander ein- und ausfedern, bevor er sich stabilisiert.
Auswirkung: In digitalen Schaltungen kann Bouncing dazu führen, dass eine einzelne Schaltaktion als mehrere Schaltvorgänge wahrgenommen wird. Dies kann in Anwendungen wie Tastenabfragen zu unerwünschtem Verhalten führen, wie z.B. dem mehrfachen Registrieren eines einzelnen Tastendrucks.
Was ist Noise?
Definition: Noise bezieht sich auf unerwünschte elektrische Störungen oder Signalverzerrungen, die sich über das eigentliche Signal legen und dessen Integrität beeinträchtigen können.
Auswirkungen: Rauschen kann dazu führen, dass ein analoges Signal fluktuiert und ungenaue Daten liefert. In digitalen Systemen kann es dazu führen, dass ein stabiles HIGH- oder LOW-Signal instabil wird, was zu Fehlfunktionen, Fehlinterpretationen oder Signalverlusten führen kann.
Wie können Bouncing und Noise im Signal hardwaretechnisch vermieden werden?
low-passfilter (Tiefpassfilter): Elektronische Bauteil
- durchlässt tiefe Freuquenzen (langsame Schwingungen)
- blockiert hohe Frequenzen (schnelle Schwingungen)
Widerstand + Kondensator
Wie können Bouncing und Noise im Signal softwaretechnisch vermieden werden?
- Das Erwarten mehrer Signale hinterander, bevor dieses akzeptiert wird
Was sind Interrupts?
- Interrupts sind Signale, die den normalen Ablauf eines Programms in einem Mikrocontroller oder Computer unterbrechen, um ein bestimmtes Ereignis sofort zu bearbeiten.
- Wenn ein Interrupt auftritt, springt der Prozessor zu einer speziellen Funktion, der Interrupt Service Routine (ISR), um das Ereignis zu verarbeiten.
- Nach Abschluss der ISR kehrt der Prozessor zur unterbrochenen Programmausführung zurück und setzt den normalen Ablauf fort.
Was ist Polling?
- Polling ist eine Technik, bei der ein Prozessor oder Mikrocontroller regelmäßig den Status von Geräten oder Sensoren abfragt, um festzustellen, ob eine Aktion erforderlich ist.
- Es wird kontinuierlich überprüft, ob ein bestimmtes Ereignis eingetreten ist, im Gegensatz zu Interrupts, bei denen das System aktiv auf ein Ereignis aufmerksam gemacht wird.
Was ist eine Interrupt Vector Tabelle?
- eine spezielle Tabelle im Speicher eines Mikrocontrollers oder Prozessors, die die Adressen von Interrupt Service Routines (ISRs) enthält.
- Wenn ein Interrupt auftritt, sucht der Prozessor in dieser Tabelle nach der entsprechenden Adresse der ISR, um zu wissen, wohin er im Speicher springen muss, um die Unterbrechung zu bearbeiten.
- Jeder Eintrag in dieser Tabelle enthält eine Sprungadresse (Jump Instruction), die den Mikrocontroller zur entsprechenden ISR führt.
Was ist ISR-Calling?
- ISR Calling bezieht sich auf den Prozess, bei dem eine Interrupt Service Routine (ISR) aufgerufen wird, nachdem ein Interrupt auftritt.
- Hierbei wird der normale Programmablauf unterbrochen, und der Prozessor führt die ISR aus, um das Ereignis, das den Interrupt ausgelöst hat, zu bearbeiten.
- Hardware speichert PC (Programm Conter)
- Global Interrupt Enable Bit wird zu 0 gesetzt
- PC wird zur ISR Lookup-Vektor gesetzt
- PC springt zu ISR
- Kontext wird gespeichert
- ISR-code wird ausgeführt
- Kontext wird zurückgeschrieben aus Stack
- Hardware stellt PC zurück in Main Loop
Interrupts vs. Polling
Interrupts sind vorzuziehen, wenn:
- Das Ereignis selten auftritt.
- Lange Zeitintervalle zwischen den Ereignissen liegen.
- Der genaue Zeitpunkt der Zustandsänderung wichtig ist.
- Kurze Impulse auftreten, die beim Polling möglicherweise verpasst werden.
- Im Hauptprogramm nichts zu tun ist, sodass der Mikrocontroller in den Schlafmodus versetzt werden könnte.
Polling ist besser geeignet, wenn:
- Kein präzises Timing erforderlich ist.
- Der Zustand wichtiger ist als der Zeitpunkt des Eintretens.
- Die Impulse lang sind.
- Das Signal verrauscht ist (Interrupts würden sehr oft ausgelöst).
Was ist ein Counter?
- Funktion: Zählt externe Ereignisse oder Impulse.
- Taktquelle: Wird durch externe Signale (z.B. Sensorimpulse) betrieben.
- Verwendung: Verwendet zur Zählung von Ereignissen, wie z.B. das Zählen von Produkten auf einem Fließband, Drehzahlmessungen oder das Zählen von Signalen von einem Geber.
- Beispiel: Ein Counter, der bei jedem Signal eines Sensors einen Schritt hochzählt.
Was ist ein Timer?
- Funktion: Misst die Zeitdauer zwischen Ereignissen oder zählt Zeitintervalle.
- Taktquelle: Wird durch den internen Takt des Mikrocontrollers betrieben.
Verwendung: Häufig verwendet für Zeitsteuerungen, wie z.B. das Erzeugen von Verzögerungen, das Messen von Zeitintervallen oder die Steuerung von Periodenereignissen (z.B. PWM-Signale). - Beispiel: Ein Timer, der alle 1 Millisekunde einen Interrupt auslöst.
Welche drei Register haben Counter/Timer? Was machen die Register?
- Counter Register
- Dieses Register hält den aktuellen Zählerstand des Timers oder Counters.
- Es wird entweder durch den internen Takt (bei Timern) oder durch externe Impulse (bei Countern) erhöht oder verringert.
- Der Wert in diesem Register wird kontinuierlich aktualisiert und kann jederzeit vom Programm ausgelesen oder geschrieben werden.
- Wenn der Wert das Maximum erreicht, wird er entweder zurückgesetzt (überlauf) oder verhält sich je nach Betriebsmodus anders. - Control Register
- Dieses Register konfiguriert den Betriebsmodus des Timers/Counters.
- Es legt fest, ob der Timer im Normalmodus, CTC (Clear Timer on Compare Match) Modus, PWM-Modus oder einem anderen speziellen Modus arbeitet.
- Es steuert die Taktquelle (interner/externer Takt) und den Prescaler-Wert, der bestimmt, wie schnell der Timer/Counter zählt. - Compare Register
- Dieses Register wird verwendet, um einen Vergleichswert zu speichern.
- Wenn der Wert im TCNT-Register den Wert im OCR-Register erreicht, kann eine bestimmte Aktion ausgelöst werden, wie z.B. das Setzen eines Interrupts oder das Umschalten eines Ausgangspins.
- Dies ist besonders nützlich im CTC-Modus, wo der Timer bei einem Vergleich zurückgesetzt wird, oder im PWM-Modus, wo der Wert des Registers die Duty Cycle des PWM-Signals bestimmt.
Was ist ein PWM?
- Pulse Width Modulation
- ist eine Technik, bei der ein digitales Signal verwendet wird, um eine analoge Ausgabe zu erzeugen.
- Dabei wird die Breite der Pulse im Signal variiert, während die Frequenz konstant bleibt.
- PWM ist weit verbreitet in der Steuerung von Motoren, Beleuchtungen, Audio-Signalen und vielen anderen Anwendungen, bei denen analoge Werte durch digitale Signale erzeugt oder gesteuert werden müssen.
Was ist ein Watch-Dog?
- Ein Watchdog-Timer ist ein Zähler, der kontinuierlich läuft und nach einem festgelegten Zeitraum auslöst, wenn er nicht innerhalb einer bestimmten Zeit zurückgesetzt wird.
- Zählt von X nach 0 runter
Auslösung:
- Wenn das System korrekt funktioniert, setzt es den Watchdog-Timer regelmäßig zurück, bevor er abläuft.
- Wenn das System aufgrund eines Fehlers hängen bleibt oder abstürzt und den Timer nicht rechtzeitig zurücksetzt, läuft der Timer ab und löst eine vordefinierte Aktion aus, typischerweise einen System-Reset.
Verwendung:
- Systemüberwachung
- Erhöhung der Zuverlässigkeit