|
Startseite | Impressum | Warenzeichen |
Der z-meic ist ein kleiner Einplatinencomputer (SBC ,Single Board Computer) mit einem Z80 Prozessor auf dem das Betriebssystem CP/M 2.2 läuft.
Für die Ein- und Ausgabeoperationen unterstützt ein Mikrokontroller ATMEGA 32A das System.
Der z-meic kann im einfachsten Fall über einen USB-Serial-Adapter mit einem PC verbunden werden. Ein spezielles Terminal-Programm CONSOLE64.EXE übernimmt dann die Kommunikation zwischen z-meic und PC.
Die Besonderheiten des z-meic kommen aber erst mit der Nutzung von ITP3-Modulen zur Geltung. An den z-meic können 3 bis 5 ITP3-Module angeschlossen werden (die Anzahl ist davon abhängig, ob die serielle Schnittstelle zusätzlich genutzt weden soll oder nicht).
Die ITP3-Module werden für die Ausgaben (Monitor), die Eingaben (Tastatur), die Laufwerke (A: bis F:) oder den Drucker genutzt.
ITP3-Module können beliebig angesteckt und entfernt werden. Nach dem RESET erkennt der ATMEGA 32A die angeschlossenen Geräte und zeigt diese nach dem Start an. Laufwerke werden nacheinander (Laufwerksbuchstaben von A: bis F:) zugewiesen und ebenfalls angezeigt. Die - vom ATMEGA 32A - ermittelte Konfiguration wird nach dem Start vom Betriebbsystem CP/M 2.2 übernommen und genutzt.
Der besondere Vorteil dieser Arbeisweise (mit der speziellen seriellen Schnittstelle und/oder den ITP3- Modulen) ist, dass das CP/M 2.2 Betriebssystem alle notwendigen Treiber bereits zur Verfügung hat. Die konkrete Umsetzung der Aufgaben (Ausgabe, Eingabe und Laufwerke) erfolgt weitgehendst innerhalb der ITP3-Module.
Diese Aufgaben können dann mit beliebiger Hard- und Software umgesetzt werden (z.B. ATMEGA, Arduino, Raspberry PI, PICO usw.). Da das ITP3-Protokoll in keiner Weise zeitlich determiniert ist (kein fester Takt vorhanden und erforderlich) sind die Anforderungen an die ITP3-Module sehr gering. Sie müssen nur das ITP3-Protokoll bedienen.
Auf die Platine des z-meic wurden zusätzlich die beiden Flash-Schaltkreise 24LC512 und W25Q64 installiert, die ein lokales CP/M-Laufwerk bereitstellen. Dieses kann (muss aber nicht) genutzt werden (die Bestückung der beiden FLASH-Schaltkreise kann auch komplett - ohne Änderung der Software - entfallen).
Anhand des Blockschaltbildes soll die Arbeitsweise (im Betrieb) des z-meic erläutert werden.
Das Blockschaltbild ist an die klassische Betrachtung eines Mikrorechersystems mit CPU, Speicher und Ein- und Ausgabeeinheit angelehnt.
Die in der Z80-Mikroprozessor Familie üblichen Baugruppen PIO und SIO wurden hier dirch einen Mikrokontroller ATMEGA32A ersetzt. Diese Ersetzung wird mittlerweile bei vielen Einplatinencomputer mit Z80 genutzt, da die ATMEGA-Mikrocontroller deutlich leistungsfähiger sind als die Peripheriebausteine der Z80-Familie.
Die beiden Baugruppen "Z80 CPU" und "SRAM Speicher" arbeiten wie in klassischen Mikrorechnersystemen zusammen.
Die CPU lädt ihre Befehle aus dem Speicher, arbeitet sie ab, und führt eventuell Speicherveränderungen durch (Laden von Speicherzellen aus dem SRAM oder Speichern von Speicherzellen in den SRAM). Dabei ist der Adressbus (A0..A15) gerichtet von der CPU zum Speicher. Auch der Steuerbus mit den Leitungen "/CS", **"/OE"**und "/WE" wird im normalen Betrieb nur von der CPU bedient.
Die Ein- und Ausgabeeinheit über den Mikrocontroller ATMEGA32A ist - wie es der Name schon sagt - für die Ein- und Ausgabeoperationen zuständig. Der ATMEGA32A bietet mit seiner eigenen Hardware und den 32MB Programmspeicher viel Platz für eine sehr komfortable EA-Baugruppe.
Bei der Entwicklung wurde Wert darauf gelegt, die im CP/M üblichen BIOS-Schnittstellen:
nur in geringem Umfang in Z80 Assembler geschrieben wurden. Die Aufgaben der BIOS-Schnittstellen wurden vorrangig in den Microcontroller ATMEGA32A verlegt. Das macht die Programmierung einfacher, da im ATMEGA32A mit PASCAL gearbeitet werden kann und reduziert den Speicherbedarf des CP/M-BIOS.
Der vom Z80-Prozessor adressierbare Arbeitsspeicher von 64KB wird somit nur mit 1KB CP/M-BIOS (ab F000H) belegt, da die Verarbeitung der CP/M-BIOS-Aufrufe an den ATMEGA32 weitergereicht werden.
Auf dem z-meic befindet sich zusätzlich ein CP/M-Laufwerk. Dafür werden die Schaltkreise 24LC512 (I2C) und W25Q64 (SPI) als lokales Flash-Laufwerk genutzt. Ist der Schaltkreis 24LC512 nicht bestückt wird das lokale CP/M-Laufwerk nicht benutzt.
Alle genutzten CP/M-Laufwerke (auch das über die serielle Schnittstelle und die ITP3-Module) haben ein einheitliches Format von 8MB.
Diese Vereinheitlichung ermöglicht ein einfaches Verwalten der internen und externen Laufwerke.
Der z-meic (ohne angeschlossene Module) benötigt eine Stromversorgung mit einer Spannung von 5V und etwa 100mA.
Die Toleranz der Versorgungsspannung des z-meic entspricht theorethisch der Toleranz der Versorgungsspannung von Standard-TTL-Schaltkreisen mit 5%.
Die genauen Grenzen wurden nicht ausgetestet und sind auch sicher von den verwendeten Schaltkreisen abhängig.
Nach meinen Erfahrungen ist das System recht tolerant gegenüber niedrigeren Spannungen als 5V. Bei Überspannungen sollte man vorsichtig sein. Notfalls eine (oder mehrere) Dioden in die Spannungsversorgungsleitung legen.
Auf keinen Fall darf die Polarität der Spannung vertauscht werden!!!
Dies kann nach wenigen Sekunden zur Zerstörung vieler Bauelemente führen.
Nach eigenen Erfahrungen wird der ATMEGA sehr heiß und ist nach wenigen Sekunden nur noch Elektronikschrott.
Aber auch die anderen Schaltkreise sowie die ELKOs vertragen keine falsche Poolung!
Im den folgenden Abschnitten werden mehrere Varianten beschrieben, wie der z-meic mit Strom versorgt werden kann.
Trotz der vielen möglichen Varianten, darf immer nur ein Anschluss für die Stromversorgung genutzt werden. Werden mehrere Stromversorgungsanschlüsse glechzeitig betrieben, kann es bei den elektronisch stabilisierten Spannungsquellen zu sehr hohen Ausgleichsströmen kommen.
Dadurch kann die Elektronik des Netzteils oder des USB-Anschlusses zerstört werden.
Dabei kann es auch zu Bränden kommen.
Der einfachste Weg den z-meic mit Strom zu versorgen ist über den 5V-Anschluss des USB-Serial-Adapter.
Fast alle meine Adapter (es sind inzwischen etwa 10 Stück) haben den abgebildeten 4-pooligen Buchsenstecker für den Anschluss an das Board des z-meic.
Die Anschlussbelegung des 4-pooligen Buchsensteckers entspricht der Anschlussbelegung für die serielle Schnittstelle (Jumper J5) auf der Platine des z-meic.
Es sollte unbedingt beachtet werden, dass sich die RX und TX-Leitungen einer seriellen Schnittstelle immer kreuzen müssen.
Dass heißt, dass der RXD-Anschluss vom z-meic an den TX-Anschluss auf dem USB-Serial-Adapter gehen muss. Und der TXD-Anschluss auf dem z-meic Board muss an den TX-Anschluss auf dem USB-Serial-Adapter gehen.
Unbedingt die Poolung des 4-pooligen Buchsensteckers beim Anschluss an den z-meic beachten.
Damit es nicht zur Verpoolung beim Anschluss des 4-pooligen Buchsensteckers kommt, habe ich den 4-pooligen Buchsenstecker mit etwas Pflaster (oder Isolierband) umwickelt und mit einem roten und einem schwarzen Filzstift die Anschlüsse von GND und +5V markiert (siehe Bild 2.2.1.1a Stromversorgung über USB-Serial-Adapter).
Oft nutze ich die Stronversorgung über den USB-Serial-Adapter auch, wenn ich die serielle Schnittstelle gar nicht nutze.
Die Stromversorgung über den USB-Serial-Adapter funktioniert ebenfalls, wenn die beiden Jumper J9 und J10 auf DS3 und DS4 umgestellt sind und die serielle Schnittstelle damit außer Betrieb genommen wurde.
Die GND und die +5V-Leitungen werden 1:1 auch auf den ITP3-Adapter geleitet.
Daher ist es kein Problem, die Stromversorgung auch über ein ITP3-Modul zu gewährleisten.
Trotz der vielen möglichen Varianten, darf immer nur ein Anschluss für die Stromversorgung genutzt werden (siehe oben).
Im Prinzip könnte man den z-meic mit einer Tastatur und einem LC-Display auf der Leiterplatte ausstatten und so einen vollständigen Einplatinencomputer entwerfen. Das Konzept des z-meic ist aber deutlich flexibler, wenn die Tastatur und der Monitor (oder ein LC-Display) über Schnittstellen angeschlossen werden.
Der Nachteil dieses Konzeptes ist, dass der z-meic immer über eine Schnittstelle betrieben werden muss. Genau genommen ist er dann kein Einplatinenrechner mehr (was aber die Arduinos, und alle Raspberry PIs ebenfalls genau genommen nicht sind).
Was passiert, wenn keine Schnittstelle angeschlossen wird?
Wird der z-meic nur mit der Stromversorgung und nicht mit einer Schnittstelle in Betrieb genommen, wird dies durch die Software während der Initialisierungsphase erkannt. Da der Anschluss eines CONOUT-Moduls zwingend erforderlich ist, läuft die Software in eine Fehlermeldungsschleife und die 5 frei ansteuerbaren LEDs auf der Platine blinken in einer Endlosschleife (etwa im Sekundentakt).
Als Schnittstellen werden auf dem z-meic derzeit genutzt:
Die Schnittstellen können sowohl einzeln, als auch zusammen genutzt werden. Nach dem Start des ATMEGA32A werden die angeschlossenen Schnittstellen automatisch erkannt. Währen des Kaltstarts des CP/M-BIOS wird die erkannte Konfiguration dann auf den Monitor (CONOUT) ausgegeben.
Im folgenden Abschnitt soll die Nutzung der Schnittstellen auf dem z-meic kurz beschrieben werden.
In der einfachen Variante benötigt der z-meic nur einen einfachen USB-Serial-Wandler und einen PC.
Bild 2.3.1a: Anschluss an einen PC |
Genutzt wird dabei die serielle Schnittstelle auf dem ATMEGA 32A um die Tastatur (CONIN) und den Monitor (CONOUT) des CP/M Computers z-meic zu bedienen. Zusätzlich wird auch das CP/M-Laufwerk des PCs über die serielle Schnittstelle angesprochen.
Bild 2.3.1b: Anzeige über CONSOLE64 V4 |
Dies erfordert spezielle serielle Komandos, die derzeit nur vom PC-Programm CONSOLE64.EXE bedient werden.
Das Besondere am z-meic sind die vielen ITP3-Module. Eine Übersicht und ausführliche Beschreibungen der Module befindet sich unter dem folgenden Link:
Bestückungsanleitung (Internetseite)
Bestückungsanleitung (PDF-Datei)
Die beiden Brücken (Jumper) J9 und J10 müssen immer gleichzeitig gesetzt werden. Durch sie werden die beiden Port-PINs des ATMEGA32A PD0 (PIN 14) und PD1 (PIN 15) entweder an die serielle Schnittstelle RXD und TXD oder an die beiden ITP3-Ports DS3 und DS4 weitergeleitet.
Die Grundeinstellung (siehe Bild) leitet den PIN 14 (PD0) an RXD und den PIN 15 (PD1) an TXD der seriellen Schnittstelle weiter.
Die Anschlüsse der beiden ITP3-Ports DS3 und DS4 sind in dieser Variante nicht beschaltet.
Wird die serielle Schnittstelle nicht benötigt, so können durch Umstecken der Brücken (Jumper) die beiden ITP3-Schnittstellen DS3 und DS4 zusätzlich genutzt werden.
Die ITP3-Schnittstellen DS0 bis DS2 sind in beiden Steckvarianten der Brücken nutzbar.
Die Software des z-meic testet die angeschlossenen Schnittstellen automatisch ab und aktiviert (je nach Steckvariante der Brücken) entweder die serielle Schnittstelle oder die beiden ITP3-Schnittstellen DS3 und DS4.
In der Entwicklungsphase war es sehr hilfreich, Labels mit der Beschaltung der ICs auf die Schaltkreise zu kleben. Auch für spätere Messungen kann dies sehr hilfreich sein. Daher habe ich hier die von mir verwendeten Label mit angegeben.
IC-Beschriftung für z-meic im INKSCAPE-SVG-Format: IC_Beschriftungen_z-meic_V2.zip |
|
IC-Beschriftung für z-meic im PDF-Format: IC_Beschriftungen_z-meic_V2.pdf |
Nutzung von Trägerplatten aus Sperrholz
Schaltplan z-meic als SVG: z-meic_Schaltplan.svg |
|
Schaltplan z-meic als PDF: z-meic_Schaltplan.pdf |
Der Schatplan des z-meic zeigt auf der linken größeren Hälfte den U2 ATMEGA 32A mit allen Steckern und Buchsen, die von ihm angesteuert werden. Die 5 Buchsen für die ITP3-Anschlüsse sind etwas verteilt angeordnet.
Der U2 ATMEGA 32A wird über den Quarz Y1 und die beiden Kondensatoren C1 und C12 (22pF) mit einem Taktgenerator verschaltet. Darunter sind 10 Stützkondensatore (zu je 1uF) für alle relevanten ICs und Schnittstellen angeordnet.
Im unteren Teil sind die beiden Flash-Schaltkreise U3 24LC64 (bestückt mit 24LC512) und U4 W25Q64 mit ihrer Peripherie dargestellt.
In der rechten kleineren Hälfte befinden sich die ICs U7 Z80CPU und U5 628128 (128K SRAM). Die Adressleitungen der Z80CPU (A0..A15) verbinden nur diese beiden Schaltkreise. Der U7 Z80CPU erhält die meisten Steuersignale vom U2 ATMEGA32A (inklusive des Taktsignals an PIN6).
Unterhalb der Z80CPU ist der IS U8 74HC244 zur Manipulation der /RD und /WR-Signale der Z80CPU angeordnet. Damit wird der SRAM je nach Bedarf mit Daten beschrieben.
Hier sind alle notwendigen KiCAD-Dateien inklusive der projektspezifischen (meist eigene) Symbole und Footprints.
KiCAD-Dateien z-meic: KiCAD.zip |
Für die Entwicklung wurde KiCAD Version 5.1.12 genutzt.
Die hier angegebenen Gerberdateien sind die Originaldateien, mit denen der Prototyp angefertigt wurde.
Gerberdatei z-meic: gerber_z-meic_V4.zip |
Die Gerberdateien können direkt an einen Leiterplattenfertiger weitergeleitet werden.
Für die Anfertigung meiner Prototypen habe ich jlcpcb.com genutzt (sehr günstig, sehr gute Qualität und schnelle Lieferung (meist um die 10 Tagen nach Bestellung)).
RONPAS-Compiler vom 07.09.2022 (für RONPAS-Compiler): RONPAS.ZIP |
Download des RONPAS-Compilers (RONPAS.zip) und entpacken in ein Verzeichnis auf dem PC.
Quelltext z-meic vom 06.05.2023 (für RONPAS-Compiler): RONPAS_z-meic.zip |
Download der Quelltexte des z-meic (RONPAS_z-meic.zip) und entpacken in das Verzeichnis des RONPAS-Compilers (RONPAS\z-meic).
Installation der Firmware (Internetseite)
Assemblieren und Compilieren der Firmware
Beschreibung der Arbeitsweise der Firmware (inklusive CP/M)
ITP3-Schnittstelle und ITP3-Protokoll
Diese(s)
Werk bzw. Inhalt von Ronald Daleske steht unter einer
Creative Commons Namensnennung-Nicht-kommerziell 3.0
Deutschland Lizenz.
keine Mängelgewähr
DIESE SOFTWARE WIRD VOM URHEBERRECHTSINHABER "OHNE MÄNGELGEWÄHR" BEREITGESTELLT. ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH DER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK (JEDOCH NICHT DARAUF BESCHRÄNKT), WERDEN AUSGESCHLOSSEN. DER URHEBERRECHTSINHABER IST IN KEINEM FALL UND NACH KEINER HAFTUNGSTHEORIE (SEI ES AUF VERTRAGSBASIS, AUF DER BASIS STRENGER HAFTUNG ODER UNERLAUBTER HANDLUNGEN, EINSCHLIESSLICH FAHRLÄSSIGKEIT) FÜR BELIEBIGE VERURSACHTE DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE SCHÄDEN ODER FOLGESCHÄDEN (EINSCHLIESSLICH, JEDOCH NICHT BESCHRÄNKT AUF BESCHAFFUNG VON ERSATZPRODUKTEN ODER -LEISTUNGEN, NUTZUNGSAUSFALL, DATEN- UND GEWINNVERLUST ODER GESCHÄFTSAUSFALL) HAFTBAR, DIE AUFGRUND DER VERWENDUNG DIESER SOFTWARE ENTSTEHEN KÖNNEN. DIES GILT AUCH, WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Die vorgestellten Projekte entstanden im Rahmen mehrerer eigener Test- und Forschungsprojekte. Es handelt sich um die Veröffentlichung meines privaten Archivs bzw. Teilen daraus. Die Arbeiten daran wurden von mir inzwischen abgeschossen und ich beschäftige mich nun andern Themen.
Ich wünsche ausdrücklich keine Rückmeldung und keine Kontaktaufnahme. Auch solche E-Mails wie: "Ich habe gelesen, dass du keine Fragen beantwortest, aber ich möchte dir trotzdem mal mein Problem schildern ..." werde ich nicht beantworten.
Nur in einmem Fall würde ich eine Ausnahme machen: Wenn sich eine kleine oder größere Gruppe (z.B. ein Makerspace) mit diesem Projekt beschäftigen möchte, es eventuell weiterentwickeln wird und für Fragen anderer Nutzer zu diesem Projekt zur Verfügung stehen würde, oder wenn jemand einen Beitrag oder ein Buch zu diesem Thema schreiben möchte.
In diesem speziellen Fall bitte Kontaktaufnahme über: Kontaktaufnahme
Startseite | Impressum | Warenzeichen |