Zusammenbau eines 8-Bit-Computers: So reduzieren Sie die Anzahl der Chips auf sechs


Die Kombination des alten Tricks mit NTSC-Farbcodierung und modernem Eisen ermöglicht die Montage einer überraschend effizienten Maschine

. 8-Bit-Systeme haben etwas dauerhaft Attraktives: Sie können ein autonomes System aufbauen, das leistungsfähig genug ist, um eine angemessene Benutzerinteraktion zu unterstützen, aber einfach genug ist montieren und programmieren Sie es selbst. Die meisten modernen 8-Bit-Maschinen, die von Amateuren entwickelt wurden, sind an klassische Prozessoren gebunden, die im goldenen Zeitalter der Heimcomputer der 1980er Jahrelebten, als Millionen von Fernsehgeräten als Displays verwendet wurden. Ursprünglich war die Idee, mein Auto auf dem Motorola 6809-Prozessor zu bauenaus der gleichen Zeit. Ich habe versucht, so wenig Chips wie möglich zu verwenden, aber trotz meiner Bemühungen benötigte ich immer noch 13 zusätzliche Chips, um mit RAM und serieller Datenübertragung zu arbeiten. Dann dachte ich: Was ist, wenn ich einen moderneren 8-Bit-Prozessor verwende? Wie viel kann ich die Anzahl der benötigten Chips reduzieren?


Als Ergebnis habe ich ein Auto darauf zusammengebaut, das Amethyst hieß . Wie jeder Heimcomputer verfügt er über eine integrierte Tastatur und kann Audio und Video ausgeben. Es hat auch eine integrierte Programmiersprache auf hoher Ebene, so dass Benutzer ihre eigenen Programme darauf schreiben können. Ich habe es geschafft, die Anzahl der Mikroschaltungen auf sechs zu reduzieren: ATMEGA1284P- CPU, USB-Schnittstelle und vier einfache integrierte Schaltungen.

Der 2008 ATMEGA1284P (oder 1284P) verfügt über 128 Kilobyte Flash-Speicher und 16 Kilobyte RAM. Es kann mit einer Frequenz von bis zu 20 Megahertz betrieben werden. Es verfügt über integrierte integrierte serielle Controller und 32 digitale Ein- / Ausgänge.



Dank des eingebauten Speichers und der seriellen Schnittstellen entfiel der Bedarf an vielen Zusatzchips. Ich könnte direkt Audio erzeugen, ein Signal mit verschiedenen Frequenzen unterbrechen und an den Eingang / Ausgang anlegen. So lernte ich, einen Ton auszugeben, der jedoch die charakteristische Schärfe einer Rechteckwelle besaß. Aber was ist mit der Erzeugung eines analogen Videosignals? Benötigt dies wirklich spezielle Ausrüstung?

Standardtrick


Ende 2018 sah ich einen Trick, mit dem Steve Wozniak in den 1970er Jahren die Unterstützung von Farbgrafiken in Apple II implementierte. In den USA wurde dieser Trick bereits in den 1950er Jahren für die Farbübertragung im NTSC-System verwendet.

Anfänglich war das amerikanische Fernsehen nur schwarzweiß und verwendete den ziemlich einfachen NTSC-Standard (entwickelt vom Nationalen Komitee für Fernsehsysteme). Um ein Bild auf dem Bildschirm zu erzeugen, zeichnet ein Elektronenstrahl Reihe für Reihe Punkte auf seiner Oberfläche. Die Amplitude des empfangenen Videosignals bestimmte die Helligkeit des Strahls an einer bestimmten Stelle entlang der Reihe. 1953 wurde NTSC aktualisiert , um Farbfernsehen zu unterstützen und gleichzeitig die Kompatibilität mit vorhandenen Schwarzweißfernsehern zu gewährleisten.

Die Ingenieure beschlossen, Farbinformationen in Form eines hochfrequenten sinusförmigen Signals darzustellen. Zu diesem Zweck wurde der Unterträger in zwei Komponenten mit einer Phasenverschiebung von 90 ° unterteilt, von denen jede moduliert wurde. Das Ergebnis war ein Signal, das sowohl in der Amplitude als auch in der Phase moduliert war. Die Amplitude des Signals bestimmte, wie gesättigt die Farbe sein sollte. Dieses hochfrequente Chroma-Signal wurde dann zu dem niederfrequenten Luminanzsignal hinzugefügt, um das sogenannte zusammengesetzte Videosignal zu erzeugen. Diese Methode wird immer noch für viele Fernseher und billigere Displays verwendet.



« »: , [ ], - , [ ]. . [ ] , : . [ ], .


Ein Schwarzweißfernseher nimmt ein Farbsignal als Rauschen wahr und ignoriert es. Ein Farbfernseher kann jedoch das Farbsignal mithilfe von Filterschleifen vom Luminanzsignal trennen.

In den 1970er Jahren erkannten die Ingenieure, dass dieses Filterschema für Heimcomputer sehr nützlich sein könnte, da es einem digitalen Rechtecksignal ermöglicht, den größten Teil des zusammengesetzten analogen Signals zu simulieren. Der vom Computer an das Fernsehgerät gesendete Nullstrom wird als konstante niederfrequente analoge Spannung, dh schwarz, wahrgenommen. Der Fluss der Einheiten wird als konstante Hochfrequenzspannung betrachtet, dh als weiß. Bei einer ausreichend hohen Bitrate entstehen jedoch komplexere binäre Strukturen, die die Hochpassfilterschemata als Farbsignale erkennen. Mit diesem Trick konnte Apple II bis zu 16 Farben anzeigen.

Zuerst dachte ich, ich müsste den Eingangs- / Ausgangspin sehr schnell umschalten, um direkt ein Videosignal zu erzeugen. Ich stellte jedoch schnell fest, dass mein 1284P mit 14,318 MHz nicht schnell genug umschalten konnte, um mehr als vier Farben anzuzeigen. Tatsache ist, dass die eingebauten seriellen Schnittstellen zwei Taktzyklen benötigen würden, um ein Bit zu senden, was meine Taktfrequenz auf 7,159 MHz begrenzen würde. Apple II verwendete einen schnellen direkten Speicherzugriff, um seinen externen Chip mit dem Videoausgang zu verbinden, während seine CPU mit der internen Verarbeitung beschäftigt war. Da jedoch der RAM meines Computers in den Chip integriert ist, konnte ich diesen Ansatz nicht verwenden.

Also schaute ich in meine Kisten und zog vier Mikroschaltungen der Serie 7400 heraus - zwei Multiplexer und zwei parallel-serielle Schieberegister. Ich konnte acht 1284P-Pins parallel installieren und Daten von ihnen gleichzeitig an die Multiplexer und Schieberegister senden, die sie in einen seriellen Hochgeschwindigkeitsbitstrom umwandeln. So habe ich gelernt, wie man Bits schnell genug erzeugt, um ungefähr 215 verschiedene Farben auf dem Bildschirm anzuzeigen. Ich musste jedoch mit meiner Rechenleistung dafür bezahlen: Die Videoverarbeitung verbraucht ständig 75% der Ressourcen des Prozessors.



Kompakter Computer


Amethyst ist ein Einplatinencomputer. Es besteht aus nur sechs integrierten Schaltkreisen - einem Prozessor, einer USB-Schnittstelle und vier Schaltkreisen der Serie 7400, mit denen ein 215-Farben-Bild erstellt wird. Die Tastaturschalter sind direkt auf die Platine gelötet, die auch Audio- und vier serielle E / A-Verbindungen für Peripheriegeräte wie Gamecontroller und Speichergeräte unterstützt. Dank der integrierten virtuellen Maschine Forth können Sie Programme schreiben und ausführen.

Ich brauchte eine leichtgewichtige Programmierumgebung für Benutzer, weshalb ich mich für Forth anstelle des traditionellen Basic entschied. Forth ist eine alte Programmiersprache für eingebettete Systeme, unterstützt Interaktivität und kann Code effizient kompilieren. Mit der minimalen Menge an Ressourcen können Sie ziemlich viel tun. Da der 1284P nicht zulässt, dass kompilierter Maschinencode direkt aus seinem RAM ausgeführt wird, wird Benutzercode stattdessen in Zwischenbytecode kompiliert. Dieser Bytecode wird dann als Eingabe in eine virtuelle Maschine eingespeist, die über einen 1284P-Flash-Speicher ausgeführt wird. Der Code der virtuellen Maschine wurde in Assembler geschrieben und manuell optimiert, um ihn so schnell wie möglich zu machen.

Als Ingenieur, der für ein Unternehmen arbeitet, das 3D-Laserdrucker herstellt, habe ich Zugang zu fortschrittlichen Laserschneidmaschinen. So habe ich leicht eine Holzkiste entworfen und hergestellt (ich habe die Holzoberfläche des Atari 2600 ausspioniert ). Die mechanischen Tastaturschalter wurden direkt auf eine einzelne Amethyst-Leiterplatte gelötet. Diese Tastatur hat eine merkwürdige Eigenschaft - das Fehlen der üblichen großen Lücke. Stattdessen nur eine Schaltfläche, die sich bescheiden über der Eingabetaste befindet.

Der vollständige Schaltplan, die Leiterplattendateien für die Leiterplatte und der Quellcode sind in meinem GitHub-Repository verfügbar . So können Sie Ihren eigenen Amethyst erstellen oder sogar mein Projekt verbessern. Was ist, wenn Sie herausfinden können, wie Sie ein paar weitere Chips sparen können?


All Articles