Ansteuerschaltung für das Pollin-TFT-Modul
Achtung: In Kürze wird es eine verbesserte Version geben!
Dies ist der Schaltplan für eine RGB-Videosignalerzeugung mit einer Auflösung von bis zu 512x256 bei 256 Farben.
Sie ist speziell gedacht für das 4-Zoll TFT-Display, was es vor einiger Zeit bei
Pollin-Electronic gab. Es gibt sicherlich einfachere Möglichkeiten, für die
Ausgabe von einfachen Texten ein passendes Signal zu erzeugen, z.B. die diversen OSD- und Video-ICs, die in vielen Fernsehern
Dienst tun. Allerdings bewegt sich hier die erreichbare Auflösung und Farbtiefe in engen Grenzen. Daher meine Schaltung, denn mit den
damit möglichen 256-Farben-Bildern sieht das Display recht beeindruckend aus.
Ursprünglich gedacht ist sie für den Anschluß an ein Z80-System, was auch einen Teil der Adressdekodierung erledigen
muß. Die insgesamt 128k Bildspeicher sind in Seiten zu je 8k unterteilt; ein Schreibzugriff wird durch /MEMWR signalisiert.
Weiterhin sind 12 Adressen im I/O-Bereich notwendig, die wie folgt belegt sind:
- 0..3h: RAMDAC
- 4h : Konfigurationsregister (gespiegelt auf 5..7)
- 8..9h: CRTC 6845 (gespiegelt auf A..B)
Das Konfigurationsregister (IC12)
- Bit 0..3: Oberer Rest der Speicheradresse, wählt eine der insges. 16 8k-Seiten aus.
- Bit 4: Ermöglicht einen Reset (aktiv Low) des CRTC
- Bit 5: nicht belegt
- Bit 6: Legt fest, ob die CPU (High) oder die Videoausgabe (Low) Zugriff auf den Bildspeicher hat.
- Bit 7: Hochauflösender Modus (Low) oder niedrigauflösender Modus (High)
Erläuterungen dazu:
Es ist nicht möglich, daß die CPU gleichzeitig in den Bildspeicher schreibt und die Videologik Daten ausliest. Der Einfachheit
halber muß die CPU Bit 6 auf 1 setzen, um Daten ins RAM schreiben zu können. Vorher sollte sie aber das Signal BLANKING auswerten, ist
dieses high, dann werden gerade keine Videodaten ausgegeben, ein kurzfristiges Umschalten führt dann nicht zu Bildstörungen.
Die Schaltung unterstützt eine Art automatische Zeilenverdopplung, d.h. jede Bildzeile wird zweimal ausgegeben. Hierzu ist Bit 7 auf High zu setzen.
Ein Hardware-Cursor ist auch vorgesehen, er ist allerdings maximal 8x8 Pixel groß und hat stets Farbe $FF (bestimmt durch das Widerstandsnetzwerk R12).
Bei mir läuft das Ganze mit einem 4MHz-Quarzoszi, der CRTC ist auf Non-Interlaced geschaltet (Bild is dann stabiler, der Geier weiß wieso). Ich benutze eine
Ausgabeauflösung von 184x256, mehr ist vom Display her sowieso nicht drin, dessen maximale Auflösung beträgt 160x234 Pixel. Hierbei passen zwei Bildseiten in die 128k RAM.
Da das Display einen eigenartigen
Interpolationsalgorithmus benutzt, der abwechselnd jede 6. und 8. Bildzeile wegläßt, um volles PAL-Format auf die 234 Zeilen zu bekommen, und dies bei
digitalen Liniengrafiken sehr unruhig aussieht (mal dicke mal dünne horizontale Linien), verwende ich in den Ausgaberoutinen eine Tabelle, so daß mir tatsächlich
184x220 Pixel zur Verfügung stehen, da macht bei einer Zeichenbox von 8x16 + eine Zwischenzeile insgesamt 23x13 Zeichen, größenmäßig noch gut lesbar auf dem Display.
Die Bildspeicherorganisation ist etwas merkwürdig, erst die 0. 8. 16. etc. Zeile, dann die 1. 9. 17. usw., aber wer einen Schneider CPC hatte, dem wirds bekannt vorkommen.
Bei Fragen: Mail an mich.
Links zum Thema
Letzte Aktualisierung am 30.7.1999