The Electronics Project
Elektronikkonzepte neu betrachtet und versucht, einen Prozessor zu bauen. Ein Studien-Repository. Ziel ist es, PCB-Design und digitale Schaltungen zu lernen. Verilog, Arduino, ESP32 und Raspberry Pi.
Das Elektronik-Projekt
Ein Studien-Repository. Ziel ist es, PCB-Design und digitale Schaltungen zu erlernen. Verilog, Arduino, ESP32 und Raspberry PI. Ich werde hier meinen Fortschritt dokumentieren, während ich weitermache.
Das Endziel ist es, eine echte Schaltung oder Leiterplatte zu drucken.
Um dorthin zu gelangen, arbeite ich mich zunächst durch die Grundlagen. Die Arduino-Skizzen dienen dazu, sich mit physischen Komponenten vertraut zu machen: Taster, LEDs, Signale lesen – diese Art von Dingen. Die Verilog-Seite dient dazu, digitale Logik tiefer zu verstehen – wie grundlegende Bausteine wie Register, Zähler und Speicher tatsächlich zusammenarbeiten.
Der Prozessor wird gebaut, damit ich auf die schmerzhafteste Art und Weise lernen kann, wie Elektronik auf der untersten Ebene funktioniert.
Denn anscheinend tut Leiden gut.
SAP-1 — Simple as Possible Computer (Referenz): https://karenok.github.io/SAP-1-Computer/
Struktur
arduino/ Physikalische Hardware-Experimente auf Arduino
processor/ Verilog-Module — Experimente mit digitaler Logik
Prozessor (Verilog)
Erstellt und simuliert mit Digital. Der vollständige Schaltplan befindet sich in main.dig.
| Modul | Datei | Beschreibung |
|---|---|---|
| 8-Bit-Addierer | adder_8bit.v |
Addiert zwei 8-Bit-Werte mit Übertrag-Eingang/Ausgang |
| 8-Bit-Register | register_8bit.v |
Getaktetes Register mit Schreibfreigabe und synchronem Reset |
| Programmzähler | program_counter.v |
Erhöht sich bei jedem Takt, unterstützt Stopp und Reset |
| Speicher | memory_256x8.v |
256-Byte-synchroner RAM |
| 8-zu-1-Multiplexer | mux_8_to_1.v |
Wählt eine von 8 Datenleitungen aus |
| 8-Bit-Zähler | counter_8bit.v |
Zählt bei jedem Takt hoch, mit Laden und Reset |
| Einmal-Ausführung | do_once.v |
Monostabile Kippstufe – lässt ein Signal genau einmal durch |
Arduino-Skizzen
1. Das Ein-Aus-Gerät (völlig nutzlos)
Beschreibung:
Ein einfaches Umschaltgerät mit einem physischen Taster und zwei LEDs (rot und blau).
Verhalten:
- Beim Einschalten leuchtet die rote LED.
- Drücken des Tasters schaltet die rote LED aus und die blaue LED ein.
- Loslassen des Tasters kehrt den Zustand um.
Schaltung: Taster an Pin 9 (INPUT_PULLUP), blaue LED an Pin 2, rote LED an Pin 7.
Meine Vorfahren haben auf den Moment gewartet, als dieses Gerät erfunden wurde. Und hier sind wir endlich.
2. Taster-Test
Setzt einen Pin auf HIGH. Das war's.
3. Lese-Test
Liest einen Pin aus und gibt den Wert über die serielle Schnittstelle aus. Grundlegende Einführungssache.
4. Verkehrssteuerung
Beschreibung:
Ein 3-stufiges automatisches Verkehrssignal. Wechselt grün → gelb → rot zeitgesteuert. Ein Taster unterbricht und erzwingt sofort rot (Fußgängerüberweg).
Verhalten:
- Grün (Zustand 0): grüne LED leuchtet für 5s, durchläuft 2 Zyklen (insgesamt 10s), dann Wechsel zu gelb.
- Gelb (Zustand 1): rote + grüne LED leuchten (mischen sich zu gelb), Summer piept für 2s, dann Wechsel zu rot.
- Rot (Zustand 2): rote LED leuchtet für 5s, durchläuft 2 Zyklen (insgesamt 10s), dann Schleife zurück zu grün.
- Tastendruck jederzeit: springt direkt zu rot mit 500ms Entprellung.
- Tastendrücke werden während der Verzögerung überprüft (
responsiveDelay), sodass das Signal immer unterbrechbar ist.
Schaltung: Taster an Pin 9 (INPUT_PULLUP), rote LED an Pin 2, grüne LED an Pin 3, blaue LED an Pin 4, Summer an Pin 7.
