1. Digitale Elektronik
1.1 Grundlagen der Digitaltechnik
Noch nicht verfügbar.
1.1.5 Finite State Master (FSM)
Eine Finite State Machine (FSM) beschreibt ein System, das sich in einem von endlich (finite) vielen Zuständen befindet. Ein FSM kann sich in einem Zustand befinden, in dem es auf Eingaben wartet, oder in einem Zustand, in dem es eine Aktion ausführt. Der Zustandsübergang wird durch die Eingabe gesteuert. Ein FSM kann in folgende Komponenten unterteilt werden:
- Zustände (States) - Die verschiedenen Zustände, in denen sich das System befinden kann
- Eingaben (Inputs) - Signale oder Daten, die das System empfängt
- Ausgaben (Outputs) - Die Ausgaben, die das System generieren kann
- Übergänge (Transitions) - Regeln, die festlegen, wie von einem Zustand zum nächsten gewechselt wird
Ein FSM kann in zwei Kategorien unterteilt werden:
- Moore-Maschine - Die Ausgabe hängt ausschließlich vom aktuellen Zustand ab.
- Mealy-Maschine - Die Ausgabe wird sowohl durch den aktuellen Zustand als auch durch die Eingaben bestimmt.
Ein einfaches Beispiel für ein FSM ist eine Ampelsteuerung. Die Ampel kann sich in den Zuständen "Rot", "Gelb" und "Grün" befinden. Die Eingaben sind die Schaltbefehle (z.B. Knopfdruck) und die Ausgaben sind die Lichtsignale der Ampel. Die Übergänge zwischen den Zuständen werden durch die Ampelsteuerung geregelt.
Ein FSM kann in der digitalen Schaltungstechnik verwendet werden, um komplexe Steuerungen zu entwerfen, die auf bestimmten Zuständen und Eingaben basieren. FSMs sind auch in der Softwareentwicklung weit verbreitet, z.B. in der Implementierung von Zustandsautomaten.
Beispiel fsm reaction_timer
Folgende fsm eines einfachen Reaktionszeitmessers soll in C implementiert werden:

Der Code zum Beispiel findet sich hier:
1.2 Aufbau von Digitalrechnern
1.2.1 Begriffe und Abkürzungen
| Abkürzung | Bedeutung |
|---|---|
| CPU | Central Processing Unit |
| ADC | Analog Digital Converter |
| I/O | In/Out |
| RAM | Random Access Memory |
| ROM | Read Only Memory |
| RISC | Reduced Instruction Set Computer |
Datenbus
Ein Datenbus besteht aus einer oder mehreren Daten-Leitungen, über welche Informationen zwischen verschiedenen Komponenten übertragen werden. Ein Datenbus hat eine bestimmte Breite (z.B. 8bit, 16bit, ...). Beim AVR ist der Datenbus 8bit breit.
Adressbus
Der Adressbus besteht aus einer oder mehreren Adress-Leitungen, über welche einzelne Speicheradressen (= Speicherort von Daten und/oder Befehlen) angesprochen werden können. Somit sind 2^n verschiedene Speicheradressen möglich wobei n die Anzahl der Adress-Leitungen ist. Zum Beispiel können mit einem 16bit-Datenbus 65536 verschiedene Adressen angesprochen werden. Hinter einer Adresse können sich wiederum Daten in unterschiedlicher Breite befinden (8bit, 64bit, ...).
Speicher
Speicher wird zum Speichern von Daten und Programmcode verwendet. Grundsätzlich wird unterschieden zwischen flüchtigen (engl. volatile) und nicht-flüchtigen (eng. non-volatile) Speicher. Flüchtige Speicher verlieren ihren Speicherinhalt, sobald die Versorgungsspannung entfernt wird (Beispiel Hauptspeicher im Computer). Nicht-flüchtiger Speicher behält hingegen die Daten auch wenn keine Versorgungsspannung anliegt (Beispiel Festplatte im Computer).
1.2.2 Grundarchitekturen
Es wird hauptsächlich zwischen zwei Grundarchitekturen unterschieden:
Van-Neumann Architektur
Diese Architektur, benannt nach dem Mathematiker John von Neumann, hat einen einzigen Speicher, der sowohl Daten als auch Programmcode speichert. Der Prozessor (CPU) lädt Befehle und Daten aus demselben Speicher. Dies führt zu einer vereinfachten Implementierug, jedoch auch zu einem Flaschenhals: Befehle und Daten müssen den gleichen Bus benutzen um zur CPU zu gelangen.

Harvard-Architektur
Diese Architektur trennt den Speicher in zwei getrennte Bereich, einen für Daten und einen für Befehle. Dadurch können Daten und Befehle gleichzeitig abgerufen werden - somit erhöht sich die Verarbeitungsgeschwindigkeit. Varianten dieser Architektur finden sich häufig in modernen Mikrocontrollern und digitalen Signalprozessoren, so z.B. auch beim AVR.

1.2.3 Aufbau der CPU
Die CPU als "Gehirn" besteht im Wesentlichen aus zwei Teilen:
Steuerwerk (Control Unit, CU)
Die Control Unit steuert die Abläufe in der CPU. Sie liest Befehle aus dem Speicher, dekodiert diese und steuert die Ausführung der Befehle. Die CU ist somit für die Koordination der einzelnen Komponenten der CPU verantwortlich.
Rechenwerk (Arithmetik Logic Unit, ALU)
Die ALU führt die eigentlichen Rechenoperationen durch, z.B. mathematische Operationen wie Addition, Multiplikation, etc. sowie logische Operationen wie AND, OR, NOT, etc.
1.3 Aufbau von Mikrocontrollern
Ein Mikrocontroller ist ein integrierter Schaltkreis, der einen Prozessor (CPU), Speicher und Peripherie auf einem Chip vereint. Mikrocontroller sind speziell für eingebettete (engl. embedded) Anwendungen konzipiert und werden in vielen Bereichen eingesetzt, z.B. in Haushaltsgeräten, Fahrzeugen, Industrieanlagen, Medizintechnik, etc.
1.3.1 Aufbau von AVR Mikrocontrollern (ATmega16)
Der ATmega16 ist ein 8-bit Mikrocontroller der Firma Microchip (ehemals Atmel). Er verfügt über folgende Komponenten:
- CPU - 8-bit RISC Architektur, 16MHz Taktfrequenz
- Speicher - 16KB Flash, 1KB EEPROM, 1KB SRAM
- Peripherie - 32 I/O Pins, 8-Kanal 10-bit ADC, 3 Timer, 1 Watchdog Timer, SPI, I2C, USART, etc.

1.4 Taktung eines Mikrocontrollers
1.4.1 Quarzoszillator
1.4.2 Interner RC-Oszillator
1.4.3 Externer Taktgeber
1.4.4 Taktteiler (Prescaler)
1.5 PLL / DDS
PLLs (Phasenregelkreise) und DDS (Direct Digital Synthesis) zählen zu den wichtigsten Verfahren zur Frequenzsynthese in der digitalen Signalverarbeitung und Kommunikationstechnik. Beide Technologien nutzen eine Referenzfrequenz – meist einen Quarz – um daraus präzise einstellbare Ausgangsfrequenzen zu erzeugen. Dabei unterscheiden sie sich jedoch grundlegend in Aufbau, Funktionsweise und typischen Einsatzbereichen.
1.5.1 Phasenregelung (PLL - Phase Locked Loop)
1.5.2 Direkte Digital-Analog-Wandlung (DDS - Direct Digital Synthesis)
Siehe oben (1.5.1).
1.5.3 Vergleich PLL und DDS
| Merkmal | PLL (Phasenregelkreis) | DDS (Digitale Synthese) |
|---|---|---|
| Wie funktioniert es? | Vergleicht Phasen und regelt nach | Zählt digital, Umwandlung in Signal |
| Taktquelle | Nutzt Quarz als Referenz | Nutzt Quarz als Taktgeber |
| Frequenzwahl | Vielfache oder Teilungen möglich | Sehr feine Einstellung möglich |
| Reaktionszeit | Langsamer bei Änderung | Sehr schnell umschaltbar |
| Signalqualität | Sehr stabil und wenig Störungen | Etwas mehr Störungen (Jitter) |
| Typische Anwendung | Takt für Mikrocontroller (z.B. STM32) | Sinusgenerator, Funktionsgenerator |