CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ] [ Datenschutzerklärung ]

CP/M-Forum » CPUs, Bauteile und Peripherie » Fragen zu Z8S180 Interrupts und ASCI » Threadansicht

Autor Thread - Seiten: -1-
000
08.04.2014, 16:34 Uhr
M.Stocker



Da ich mal wieder (genauer gesagt dringend) einen Ersatz für eine ECB-Karte (CPU V von Janich&Klass) stricken muss, beschäftige ich mich (mal wieder) mit den Z80180-Prozessoren, speziell mit Z8S180 und Z8L180. Da hätte ich zwei Fragen:

1.) Die Interrupts INT1 und INT2 werden im Datenblatt als flankengetriggert beschrieben. Aus der Darstellung der Signalfolge geht aber nicht hervor, ob das /INTx-Signal dauernd anliegen darf oder nicht darf oder sogar während der Interrupt-Bearbeitung aktiv sein muss. Bei Z80-kompatibler Interruptbearbeitung gibts ja einen Acknowledge-Cycle (M1 + IORQ low), der der geneigten Z80-Peripherie signalisiert, dass sie gemeint ist, wenn gleichzeitig deren IEI high ist, sodass dann das übliche Vektor-auf-den-Bus des Bausteins folgt. Bei den INT1 und INT2 der Z8X180-MPUs gibt es aber keinen speziellen Zyklus, der sowetwas wie einen Interrupt-Acknowledge nach außen anzeigt. Gibt das Ärger, wenn die INT1/2-Leitung erst am Ende einer Interrupt-Serviceroutine wieder freigegeben wird? Hintergrund meiner Frage ist die Entwicklung eines Primitiv-PS2-Tastaturcontrollers, der einen dieser 'übrigen' Interrupts verwenden soll, und der der Z180 MPU die Ankunft eines Zeichens per Interrupt signalisieren soll.

2.) ASCI-Kanäle + DMA. Da Zilog in ihrer unerforschlichen Weisheit die Seriellschnittstellen ganz ans untere Ende der Interrupt-Priorität gestellt haben, fürchte ich bei ausgedehnteren Ausflügen der ISR von INT0, die ja den ECB-Bus bedient, öfters einen Buffer-Overrun. Der DMA-Kanal könnte helfen (I/O to Memory), wenn es denn eine Möglichkeit gäbe, das Byte-Counter-Register des verwendeten DMA-Kanals auszulesen, und daraus irgendwie die Zahl der neu angekommenen Zeichen herauszudestillieren. Das User Manual sagt dazu nichts (v.a. wenn der Puffer > 256 Bytes ist und dann die Möglichkeit besteht, dass zwischen dem Auslesen von Hi- und Lo-Byte ein Zeichen übertragen wurde (-> sporadischer Fehlgriff auf die falsche 256er-Page..). Hat jemand damit schon mal Erfahrung gesammelt?

Ich versuche gerade die möglichen Fallen und Einschränkungen ausnahmsweise VOR der Entwicklung der Hardware zu vermeiden..
--
GrusZ Martin

.Z80 ; man goennt sich ja sonst nichts!
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CPUs, Bauteile und Peripherie ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek