82S100

Aus
Wechseln zu: Navigation, Suche
PLA Adapter
PLA Adapter


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 C116
  • im Plus 4
  • im Diskettenlaufwerk 1551
  • 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 ])


Mein CBM 8296 läuft seit Jahren tadellos mit einer PLA Ersatzschaltung auf Basis eines EPROM für UE5 und UE6.

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.

Projekt im Forum des VzEkC e.V. (Verein zum Erhalt klassischer Computer e.V.)




GAL Lösung für UE5

Für das UE5 existiert eine PLA Ersatz Schaltung von Nicolas Welte auf Basis eines einzelnen GAL 20v10. Die GAL 22v10 sind einfacher zu bekommen, deswegen habe ich das PLD File neu übersetzt in ein JEDEC File für das ATF 22v10. Im Download Bereich befinden sich die Gerber Datei für die Adapter Platine sowie die PLD Datei und das JEDEC.


GAL Lösung für UE6

Inspiriert durch die GAL Lösung von Daniël Mantione (PLA20V8) habe ich eine Platine für zwei GAL 22v10 entwickelt. Wie bei der Platine von Daniël Mantione ist jedes GAL verantwortlich für je vier Ausgänge. Aber der Rest ist anders gelöst, auf beide GAL Bausteine sind alle 16 Eingänge geführt, jeweils immer an dieselben PIN der GAL. Dadurch kann man diese Platine prinzipiell als Ersatzschaltung einsetzen für jeden beliebige PLA 82S100. Man muss nur ein JEDEC erstellen für jede neue PLA die man mit dieser Platine ersetzen möchte.

Im Download Bereich befinden sich die Gerber Datei für die Adapter Platine sowie die PLD und JEDEC Dateien.


CPLD Lösung für UE6

Als Variante für die PLA Ersatzschaltung mit 2 GAL Bausteinen habe ich eine Adapter Platine entwickelt mit einem CPLD ATF-1504AS. Auf der Platine ist ein optionaler Wannenstecker (JTAG), über den man den CPLD programmieren kann (JTAG Adapter notwendig - ATDH1150USB). Der Wannenstecker muss nicht bestückt werden, wenn man den CPLD anders programmiert. Auf der Unterseite der Platine kann man zwei SMD Kondensatoren auflöten (2 mal 100nF 0805), als Stütze für den CPLD. Es funktioniert aber auch ohne die Kondensatoren, denn die Ausgänge sind nicht auf hohe 'Slew Rate' gesetzt.

Die CPLD Lösung ist eine universelle Lösung für alle PLA der 82S10x Serie. Der CPLD kann alle Arten von PLA exakt nachbilden, auch die speziellen Typen mit Open Collector, Flip Flop und Rückführungen. Mit einem passenden JEDEC kann man diese Platine als Ersatz für alle PLA Problemfälle nutzen.

Im Download Bereich befinden sich die Gerber Datei für die Adapter Platine sowie die PLD und JEDEC Datei für den UE6 PLA.


EPROM / PLA Adapter

Diese Platine kann auf zwei Arten verwendet werden:

  • als PLA Ersatzschaltung auf EPROM Basis (Löt Trennstelle geschlossen)
  • als PLA Adapter für den TL-866 (Löt Trennstelle offen)


Wenn man die Platine als PLA Ersatzschaltung verwendet, dann muss die Trennstelle auf der Unterseite der Platine geschlossen werden. Ein passender EPROM 27C512 dient dann als Ersatz für die gängigen Commodore PLA (siehe EPROM Ersatzschaltung von Jogi).


Wenn man die Platine als PLA Adapter verwendet, dann muss die Trennstelle auf der Unterseite der Platine offen sein. Der Adapter wirkt dann (nach 'unten') wie ein EPROM, so kann man den Adapter in praktisch jedem EPROM Programmiergerät einsetzen. Auf dem Adapter (nach 'oben') kann man ein PLA 82S100 einsetzen, so kann man das PLA auslesen mit einem EPROM Programmiergerät (zB. einem TL-866).

Der Adapter dient zum auslesen eines unbekannten PLA in einem EPROM Programmiergerät. Aber natürlich kann man statt eines PLA auch eine PLA Ersatzschaltung einsetzen und auslesen. Damit ist es möglich, jede PLA Ersatzschaltung direkt zu testen, indem man die Ersatzschaltung ausliest und die binär Dateien vergleicht. Alternativ kann man das vergleichen der Dateien auch direkt mit dem EPROM Programmiergerät machen (Funktion VERIFY).


News

  • 21.12.2021 -- Release der PLA Ersatz Schaltungen


Downloads


Links