82S100
Inhaltsverzeichnis
Das PLA 82S100
Das PLA 82S100 (Programmable Logic Array) ist ein integrierter Schaltkreis (IC), der viele Logik TTL ersetzen kann. Der Einsatz einer PLA hat viele Vorteile:
- Reduktion der Anzahl an IC in einer Schaltung
- Reduktion der notwendigen Fläche auf der Platine
- das Platinen Layout ist einfacher
- Reduktion des Stromverbrauch
- deutlich höhere Flexibilität bei Design Änderungen
Das alles führt zu deutlich verringerte Produktionskosten. Die Firma Commodore hat den 82S100 deshalb in praktisch allen neueren Designs ihrer Produkte eingesetzt:
- im C64
- im Diskettenlaufwerk 1551
- im Business Computer 8032
- im Business Computer 8296 (UE5 und UE6)
- alle neueren Computer Systeme verwenden eine oder mehrere PLA
Leider haben diese PLA nicht nur Vorteile. Aus Erfahrung weiß man, dass die PLA in einem Commodore Computer sehr oft defekt sind. Speziell die beiden Systeme 8032 und 8296 haben fast immer defekte PLA, wenn sie nicht mehr richtig starten.
PLA, GAL, CPLD und FPGA
Ein PLA ist quasi der 'Urvater' der programmierbaren Logik Bausteine. Die PLA 82S100 hat 16 Eingänge und 8 Ausgänge. Die Verknüpfung zwischen Ein- und Ausgänge ist flexibel (programmierbar). Die Logik in dem PLA ist wie eine Software, aber es wird nicht sequentiell ausgeführt, sondern zeitgleich. Man muss sich diese Logik wie ein Schaltbild vorstellen. Der Entwurf dieser Logik erfolgt in einer eigenen Sprache (Syntax). Wie bei jeder Software ist es zuerst ein Textfile, das von einem Compiler übersetzt wird.
Ein PLA kann einmal programmiert werden, und folgt fortan dieser Logik. Die Pins an dem Baustein haben eine fix zugeordnete Verwendung (Eingang, Ausgang). Der PLA an sich hat einen relativ begrenzten Funktionsumfang. Bausteine wie der 82S100 haben TTL Ausgänge und können logische Verknüpfungen ausführen. Beim 82S101 sind alle Ausgänge in Open Collector Bauweise. Es gibt weitere PLA wie den 82S105 die Flip Flop Elemente zur Verfügung stellen.
Die nächste Generation an programmierbaren Logik Bausteine waren die GAL. Im Unterschied zu den PLA können GAL gelöscht und neu programmiert werden (ähnlich wie ein EPROM). GAL Bausteine ersetzen meist eine Vielzahl unterschiedlicher PLA Bausteine. Es können Gatter Schaltungen und Flip Flop definiert werden. Einige Pins der GAL Bausteine haben fixe Verwendung (Ein- oder Ausgang), andere können als ein- oder Ausgang verwendet werden. Die Funktion kann sogar im Betrieb geändert werden, abhängig von einem Ergebnis einer internen Logik. Ausgänge können auch hochohmig geschaltet werden, das ermöglicht den Betrieb an einem Computer Bus.
Nach den GAL kamen die CPLD (Complex Programmable Logic Device) Bausteine. Ein CPLD erhöht die Flexibilität noch weiter: alle Pins können wahlfrei verwendet werden (Ein- oder Ausgang). Aber es gibt auch Pins mit speziellenr Funktion (Trigger, OE, Clk ...). Die Anzahl an interne Gatter wurde drastisch erhöht, was die mögliche Komplexität deutlich erhöht. Bei CPLD spricht man von Makrozellen, die Anzahl an Makrozellen ist ein Maß dafür, wie komplex die Logik sein kann, die man in den Baustein programmieren möchte. Neben einer großen Anzahl programmierbarer Gatter bieten CPLD auch viele verschiedene Arten von Flip Flops und anderer komplexer Elemente. Über sogenannte 'Fuses' kann man Eigenschaften des CPLD steuern, wie zB. das Reset Verhalten und die 'Slew Rate' der Augänge.
Mit einem CPLD kann man bereits sehr komplexe Schaltungen abbilden. Zum Beispiel kann man eine sogenannte 'State Machine' entwickeln, was einfache Ablaufsteuerungen ermöglicht. Es gibt interessante CPLD Projekt, zum Beispiel hat jemand aus zwei CPLD eine sehr einfache CPU erstellt. Diese CPU ist funktionsfähig und kann einfache Programme abarbeiten.
Der Nachfolger der CPLD ist ein FPGA (Field Programmable Gate Array). Es gibt sehr einfache FPGA bis hin zu richtigen Logik Monster. Ein FPGA benötigt nur noch sehr wenig an Außenbeschaltung. Man kann mit einem FPGA ganze Computer System abbilden. Abgesehen von der unvorstellbar großen Komplexität arbeitet ein modernes FPGA mit einer extrem hohen Geschwindigkeit. Allerdings tendieren FPGA Bausteine zu einer immer kleineren Versorgungsspannung. Es gibt kaum FPGA die mit höheren Spannungen als 3,3V arbeiten können. Das erschwert den Einsatz für Retro Systeme, die meist mit 5V laufen. Aber mit Pegelkonverter kann man auch FPFA an einem Retro Computer System einsetzen, was zu eindrucksvollen Produkten geführt hat wie zum Beispiel das Turbo_Chameleon_64.
PLA im Commodore 8296
Im CBM 8296 gibt es zwei PLA Bausteine: UE5 und UE6
Der 8296 und der 8296D waren die letzten der CBM Business Maschinen, bevor die CBM-II Computer auf den Markt kamen. Diese Geräte haben 128K SRAM und ein raffiniertes Banking, damit die 64K Grenze der 6502 CPU umgangen werden kann. Die beiden PLA Bausteine sind zuständig für die komplexe Adress-Dekodierung und damit für die Ansteuerung alles Komponenten am CPU Bus (RAM, ROM, IO, Bildschirmspeicher, erweiterter Speicher, Banking).
Der CBM 8032 ist wohl die am meisten verbreitete Business Computer von Commodore. Der 8032 hat nur 32K RAM (kein erweiterter Speicher) benötigt nur eine PLA. Für den 8032 gibt es eine 64K Speichererweiterung. Der CBM 8096 ist ein 8032 mit dieser 64K Speichererweiterung und hat daher 96K RAM.
Der CBM 8296 hat von Haus aus 128K RAM (zwei RAM Bänke zu 64K). Die zweite PLA (UE5) ist für den Betrieb des Computers nicht unbedingt notwendig. Wenn man den PLA UE5 entfernt und 5 Brücken setzt (JR1 bis JR5), dann läuft der 8296 als ganz normaler 8032.
PLA im Commodore 64
Im C64 gibt es auch eine PLA 82S100. Diese PLA ist zuständig für das Speicher Management und erzeugt einige wichtige Signale im C64. Am Modul Port des C64 liegen auch Signale der PLA und die PLA bekommt Signale vom Modul Port (/EXROM und /GAME).
Neuere Modelle des C64 (250269 Board) haben einen Multifunktions-Chip anstatt der PLA.
Wie auch in anderen Commodore Computer ist die PLA im C64 ebenfalls relativ anfällig.
Deswegen gibt es auch einige PLA Ersatz Lösungen:
- die SuperPLA von Jens Schönfeld
- die realPLA von Skoe
- das PLAnkton von e5frog
- die PLAdvanced+
- die PLA20V8 von Daniël Mantione
PLA Ersatz Lösungen
Die PLA Chips in den Commodore Computer sind relativ anfällig und fallen häufig aus. Die originalen PLA Chip 82S100 sind schwer zu bekommen und daher auch ziemlich teuer. Mal davon abgesehen besteht die Gefahr, dass ein Ersatzteil auf Basis des 82S100 wieder auf kurz oder lang ausfallen wird.
EPROM Ersatz Schaltung
Der 82S100 hat exakt 16 Eingänge und 8 Ausgänge. Die einfache Architektur erlaubt keine Signal Rückführung. Die Logikschaltung im PLA verknüpft einfach 16 Eingangssignale und erzeugt daraus bis zu 8 Ausgangssignale. Einfach gesagt entstehen 8 Signale aus einem Bitmuster von 16 Signalen.
Nun ja, genau das macht im Grunde auch ein Speicherbaustein. Ein EPROM hat 8 Ausgangssignale (Daten-Pins D0 bis D7) und die können jeden beliebigen Wert annehmen aufgrund eines Eingangsmuster (Adress-Pins). Ein EPROM mit 16 Adressleitungen hat 64KB, also zum Beispiel ein 27C512.
Ein EPROM ist zwar eine völlig andere Technik als eine PLA, aber in diesem Fall läuft es genau auf das selbe hinaus. Und die Kombination 16 Eingänge und 8 Ausgänge entspricht exakt einem EPROM 27C512. Nur die PIN Belegung ist bei einem EPROM etwas anders als bei dem PLA Baustein. Aber die PIN Belegung lässt sich sehr einfach durch einen Adapter anpassen. Diese Technik ist sehr gut beschrieben auf der Seit von Jogi:
EPROM Ersatz Schaltung (Seite von Jogi)
Auf der Seite von Jogi ist beschrieben, wie man einen EPROM-PLA Adapter herstellen kann. Man benötigt dazu nur einen EPROM 27C512, zwei Sockel und etwas Draht. Die etwas komfortablere Lösung ist eine Adapter Platine, die Gerber Daten für diese Platine gibt es hier im Download Bereich.
Zudem sind da die EPROM Daten für mehrere gängige Commodore PLA:
- PLA 324745-01 Daten (CBM 8296 - UE5)
- PLA 324744-01 Daten (CBM 8296 - UE6)
- PLA 906114-01 Daten (C64 PLA)
- PLA 251641-02 Daten (Plus-4)
- PLA 251641-03 Daten (1551)
Die PLA Ersatz Schaltung auf Basis eines EPROM besticht durch die Einfachheit. Man kann es sehr einfach selbst nachbauen. Leider funktioniert diese Lösung nicht in allen Fällen völlig problemlos. Der C64 ist ziemlich pingelig im Timing und es funktionieren bestimmte Dinge (Software und Hardware Erweiterungen) nicht oder nicht immer. Aber für weniger sensible Geräte wie zB. dem CBM 8296 funktioniert die EPROM Lösung tadellos.
GAL Ersatz Schaltung
Ein GAL ist preisgünstig, einfach zu bekommen und läuft mit 5V. Die Programmierung der Logik kann mit einigen EPROM Programmiergeräten (zB. der verbreitete TL-866) durchgeführt werden. Die GAL Lösungen laufen sehr robust und sicher, auch an sensiblen Geräten wie einem C64.
Um ein PLA zu ersetzen benötigt man ein oder zwei GAL Bausteine. Es funktionieren GAL von Lattice (GAL22v10) und Atmel (ATF22v10), möglicherweise auch viele andere GAL.
CPLD Ersatz Schaltung
Ein CPLD ist etwas 'oversized' als PLA Ersatz. Aber dafür benötigt man nur ein einziges CPLD statt zweier GAL Bausteine. Ein weiterer Vorteil ist, dass man nur eine Platinen Version benötigt, um beliebige PLA 82S100 zu ersetzen. Nur das JEDEC File für den CPLD ist unterschiedlich, die Platine und der CPLD ist immer derselbe.
Die CPLD Ersatz Schaltung ist simpel. Viele CPLD laufen jedoch nur mit 3,3V, was zusätzliche Pegel Wandler erforderlich machen würde. Aber es gibt auch einen CPLD von Atmel der mit 5V läuft (ATF-1504AS) bzw. einen 3,3V CPLD (ATF-1504ASV) der an den IO Pins 5V tolerant ist.
Von den Kosten ist ein CPLD nicht teurer als zwei GAL Bausteine. Insofern ist die CPLD Ersatzschaltung eine sehr gute Lösung. Allerdings ist der CPLD schwerer zu löten und die Programmierung erfolgt über JTAG, daher ist der Nachbau etwas schwieriger.
FPGA Ersatz Schaltung
Ein CPLD ist etwas 'oversized', ein FPGA ist daher absolut 'oversized'. Der FPGA könnte das ganze Retro Computer System ersetzen, nicht nur das PLA ... Zudem gibt es praktisch keine FPGA die mit 5V laufen. Es braucht also eine mehr oder weniger komplexe Außenbeschaltung.
Im Vergleich zu einem CPLD sind FPGA noch schwieriger zu löten, für einen Amateur ist das kaum zu schaffen. Die Programmierung erfolgt ebenfalls über JTAG.
Der FPGA hat aber einen Vorteil, der sehr angenehm ist: der FPGA ist in der Lage gleich mehrere PLA zu ersetzen, oft sind daher mehrere Logik Schaltungen implementiert die man per Jumper auswählen kann. Man kauft also eine FPGA Ersatzlösung, die dann in vielen Geräten laufen kann.
PLA im CBM 8296
Im Commodore 8296 sind zwei PLA Chips (UE5 und UE6). Nach meiner Erfahrung sind diese beiden PLA mit Abstand die häufigste Fehlerursache. Ein 8296 der nicht startet kann sehr oft durch Austausch der PLA repariert werden.
Für das UE5 existiert eine PLA Ersatz Schaltung von Nicolas Welte auf Basis eines einzelnen GAL 20v10. Die Datei ist erhältlich auf (zimmers.net): How to replace the PLA UE5 in a CBM8296 with a GAL 20V8 written in 2005 by Nicolas Welte (http://x1541.de)
Inspiriert durch die GAL Lösung von Daniël Mantione (PLA20V8) wollte ich diese PLA Ersatzschaltung anpassen für das PLA UE6 in meinem CBM 8296. Nun sind es 4 Platinen geworden. Die Gerber Dateien und die JEDEC Dateien sind hier erhältlich im Download Bereich.
GAL Lösung für UE5
GAL Lösung für UE6
CPLD Lösung für UE6
EPROM / PLA Adapter
News
- 21.12.2021 -- Release der PLA Ersatz Schaltungen
Downloads