Ich habe heute noch einmal gründlich über die Verwendung von CPLDs bei diesem Projekt nachgedacht. Eigentlich brauche ich den CPLD hauptsächlich nur wegen der seriellen Schnittstelle. Dadurch, dass der Z8S180 seine Taktfrequenz nur durch einige wenige fest vorgegebene Teiler dividieren kann, kommen nur sehr wenige Taktfrequenzen in Frage, mit denen überhaupt der sinnvolle Betrieb einer seriellen Schnittstelle vorstellbar ist.
Der Z8S180 kann seine Taktfrequenz - in Abhängigkeit von der Programmierung - durch 10 oder durch 30 teilen. Anschließend kann man, ebenfalls programmierbar, den Takt durch 1, 2, 4, 8, 16, 32, oder 64 dividieren. Womit man dann auch schon beim 16-fachen der Baudrate wäre, welche zum Betrieb erforderlich ist.
Um Beispielsweise mit 38.400 Baud zu übertragen, müsste man eine Taktfrequenz von 6,144 MHz wählen, und einen Vorteiler durch 10. Womit man schon bei 614,4 kHz ist, dem 16-fachen der gewünschten Baudrate.
Diese krummen Taktfrequenzen beißen sich nicht nur mit den gewünschten 33 MHz (mal ganz davon ab, dass man so eine Taktfrequenz nicht nur ausrechnen, sondern den Quarz auch kaufen können muss), sondern erst bei etwa 24 MHz kommt man auf korrekte Baudraten.
Das war der Grund, weshalb ich einen externen UART nehmen wollte. Aber wie immer gilt auch hier: Wer lesen kann, ist deutlich im Vorteil. Der Z8S180 kann nämlich auch einen externen Takt verwenden. Nu guck.
Man nehme also einen 2,4576 MHz Takt (wie praktisch - den passenden Oszillator gibt es bei Reichelt für unter einem Euro), dividiere diesen durch 4 und erhält oben erwähnte 614,4 kHz. Diesen führe man dem Z8S180 zu, programmiere seine Register derart, dass er den externen Takt wählt, und braucht nun keinen CPLD mehr.
Eine weitere Änderung habe ich hinsichtlich des ATMega vorgenommen. Es ist nun kein ATMega64 mehr, sondern ein ATMega128. Nicht, dass ich sonderlich Wert darauf legte, dass ich nun doppelt so viel Flash-Speicher habe, sondern wichtig sind die 15 weiteren Port-Pins. Nun kann ich erstens auf den 74LS244 verzichten, den ich als Port-Expander brauchte und zum anderen habe ich den ATMega128 in einem TQFP-64 Gehäuse, also einem kleinen quadratischen SMD Bauteil. Es schrumpft weiter.
Nach vorne, auf die Stirnseite der Platine kommt dann der ISP-Anschluss für den ATMega, die serielle Schnittstelle des Z8S180, die SD-Karte mit dem CP/M+ Betriebssystem und einige LEDs für die Systemdiagnose.
Keine Kommentare:
Kommentar veröffentlichen