Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » U856 (Z80 SIO) wer kennt sich aus? » Themenansicht

Autor Thread - Seiten: -1-
000
27.10.2015, 16:37 Uhr
KK

Avatar von KK

Ich bin gerade dabei, die SIO in mein LC-80 Projekt...

http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=11373?

...zu integrieren. Da ich am Z80 noch nie mit SIO gearbeitet habe, ergeben sich ein paar Verständnisprobleme. Im Web findet sich leider recht wenig zur Thematik, daher frage ich die Auskenner:

1. Ist es richtig, daß der U856 den Baudratentakt NICHT aus dem Systemclock ableiten kann, sondern daß dieser extern über RxC/TxC eingespeist werden muß, z.B. unter Zuhilfenahme der CTC?


2. Welche Mindestbeschaltung ist für asynchrone Datenübertragung außerdem notwendig, etwa um per RS232 mit einem PC zu kommunizieren? Genügt es, TxD/RxD über einen MAX232 nach außen zu führen oder müssen noch andere Steuerleitungen (CTS,RTS, DTR usw.) verdrahtet werden?

3. Spielt W/RDY eine Rolle, wenn kein DMA-Controller verwendet wird?

4. Muß sonst noch was beachtet werden?

Die Verdrahtung von Daten- und Steuerbus sowie Interruptlogik ist mir soweit klar. Aus Platzgründen werde ich auch nur einen Kanal (wahrscheinlich B) realisieren können. Sollte aber genügen, um halbwegs komfortabel Daten hin- herzuschaufeln.
Für eure Hilfe schon mal vielen Dank im Voraus!

Nachtrag:
ich habe mich im Thread-Titel vertippt, richtig muß es natürlich U856 heißen. Vielleicht kann das ein Mod korrigieren? Danke ;-)

Dieser Beitrag wurde am 27.10.2015 um 19:10 Uhr von Ronny_aus_Halle editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
27.10.2015, 17:16 Uhr
Early8Bitz

Avatar von Early8Bitz

Hallo KK,

Kleiner Lapsus in der Überschrift - SIO ist U856.
Im Text stehts richtig.

zu 1) Wo der Takt an der SIO herkommt, ist der SIO egal. Kannst auch eine Batterie
Flip-Flops nehmen und den Systemtakt runterteilen entsprechend Deiner
gewünschten Baud Rate. Mit CTC kannst Du halt einen großen Bereich von
Baud Rates durch Programmierung abdecken.
Richtig ist jedenfalls: RxC und TxC kommen von extern.

zu 2) Hängt davon ab, ob Deine serielle Gegenstelle Hardware Handshake braucht
oder nicht. Wenn nicht, kannst Du die Steuersignal-Ausgänge ins Leere gehen lassen.
Die Steuersignale Eingänge sollte man auf jeden Fall nicht unbeschaltet lassen, also
einen Pullup-R nach +5V. Ob die Eingänge (bes. /CTS) steuernde Wirkung haben, ist
programmierbar (Auto Enable WR3 Bit5).

zu 3) Ebenfalls programmierbar (WR1 Bit 7).
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?

Dieser Beitrag wurde am 27.10.2015 um 17:23 Uhr von Early8Bitz editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
27.10.2015, 17:41 Uhr
KK

Avatar von KK

@Early8Bitz
Danke für die Infos. Den Vertipper hatte ich dann auch bemerkt, wenn ein Mod mitliest, bitte ändern.

Noch zwei Nach-Fragen:

Im Kieser-Meder steht beschrieben, daß RxC und TxC parallel geschaltet sind und der Multiplikator auch identisch zu programmieren ist. Sie sind aber als eigene Pins am IC vorhanden. Kann ich sie einfach brücken und zusammen an einen CTC-Kanal hängen?

Was bedeutet "Ebenfalls programmierbar (WR1 Bit 7)"? Muß ich den Pin verdrahten oder nicht? Wenn ja, wohin?

Danke für die Geduld ;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
27.10.2015, 17:44 Uhr
sas



Hallo,

ich kann für das Projekt Taschenrechnertastaturen besorgen.

Ca 10 * MR 410 und 10 * MR 610

Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
27.10.2015, 17:55 Uhr
KK

Avatar von KK


Zitat:
sas schrieb
Hallo,

ich kann für das Projekt Taschenrechnertastaturen besorgen.

Ca 10 * MR 410 und 10 * MR 610

Jörg



OK, danke. Die müßten aber umgebaut werden. Maße und Steckerbelegung habe ich im o.g. Thread veröffentlicht. Wegen der Übersichtlickeit bitte auch dort posten, was zum Projekt gehört, danke.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
27.10.2015, 20:51 Uhr
KK

Avatar von KK


Zitat:
KK schrieb
Im Kieser-Meder steht beschrieben, daß RxC und TxC parallel geschaltet sind



Eben nochmal die Datenblätter gewälzt. Was ich nicht wußte, es gibt verschiedene Versionen der originalen Z80 SIO mit abweichenden Pinouts. Der U856 entspricht der Version "/0" und dort liegen RxCB und TxCB auf einem gemeinsamen Pin. Mein Makro basiert jedoch auf der Version "/2", wo sie getrennte Pins haben. Diese Frage ist also geklärt.
Bleibt noch W/RDYB. Das muß wohl an den WAIT-Pin der CPU?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
27.10.2015, 21:21 Uhr
Early8Bitz

Avatar von Early8Bitz


Zitat:
KK schrieb
Im Kieser-Meder steht beschrieben, daß RxC und TxC parallel geschaltet sind und der Multiplikator auch identisch zu programmieren ist. Sie sind aber als eigene Pins am IC vorhanden. Kann ich sie einfach brücken und zusammen an einen CTC-Kanal hängen?

Was bedeutet "Ebenfalls programmierbar (WR1 Bit 7)"? Muß ich den Pin verdrahten oder nicht? Wenn ja, wohin?



W/RDY ist ein Ausgang, den brauchst Du im Normfall nicht beschalten. Er ist
zum Steuern einer DMA (Ready), falls Du eine solche Betriebsart benutzt.
Oder zur Wait Generierung für spezielle Fälle (CPU Block Transfer). Lass den Anschluß offen.

TxC und RxC werden im asynchronen Fall im Allg. zusammengeschaltet, da mit
der gleichen Baudrate gesendet wie empfangen wird.
Sie können also auch am SIO zusammen auf ein gemeinsames Pin gebondet sein.
Bei Synchroner Übertragung ist der Sendetakt TxC fest, kommt also z. B. von einem CTC.
Der Empfangstakt wird aber aus dem seriellen Empfangsstrom generiert (z.B. mit einer PLL-Schaltung)
und dann auf RxC gelegt. Dazu braucht man natürlich getrennte Pins.

Da für alle Kombinationen der Betriebsarten (Kanal A und B, Asynchron und Synchron)
die 40 Pins des Gehäuses nicht ausreichen, gibt es die unterschiedlichen
Bondvarianten (SIO/0, SIO/1, SIO/2, SIO/9).
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?

Dieser Beitrag wurde am 27.10.2015 um 21:26 Uhr von Early8Bitz editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
27.10.2015, 21:37 Uhr
KK

Avatar von KK

Vielen Dank, mit diesen Informationen komme ich weiter.
DMA und synchrone Betriebsarten sind nicht vorgesehen, somit kann ich Verdrahtung einsparen. Wegen des beschränkten Platzes ein großer Vorteil.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
27.10.2015, 22:35 Uhr
Mario Blunk

Avatar von Mario Blunk

zu 3. :

Ich würde eine Verbindung zu CPU WAIT per jumper vorsehen. Als ich Blocktransfer brauchte (X-modem protokoll siehe http://www.train-z.de/train-z/doc/xymodem.pdf), ist mir diese Nachlässigkeit sehr auf die Füße gefallen. Im Schaltplan auf Seite 1 unten Mitte sieht man die Verbindungsstelle:
https://github.com/Blunk-electronic/TRAIN-Z/blob/master/hardware/computer/pdf/MAIN_V093r4_sch.pdf

Die Programmierung ist schwierig, wenn man sich das alles aus den Fingern saugen muß. Ich hab dazu mal was verfaßt (leider englisch):
http://www.train-z.de/train-z/doc/howto_program_the_Z80_periphery.pdf

Freue mich über jede Form von Kritik.
--
Mein Chef ist ein jüdischer Zimmermann.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
28.10.2015, 08:58 Uhr
KK

Avatar von KK


Zitat:
Mario Blunk schrieb
Ich würde eine Verbindung zu CPU WAIT per jumper vorsehen.



Wenn der Platz ausreicht, mach ich das. Wäre eine dauerhafte Verbindung zu CPU WAIT auch möglich oder könnte es Probleme geben? Ich werde sowieso nur einen Kanal der SIO verdrahten, sodaß eine Umschaltung nicht notwendig ist.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
28.10.2015, 10:31 Uhr
Early8Bitz

Avatar von Early8Bitz


Zitat:
KK schrieb
Wenn der Platz ausreicht, mach ich das. Wäre eine dauerhafte Verbindung zu CPU WAIT auch möglich oder könnte es Probleme geben? Ich werde sowieso nur einen Kanal der SIO verdrahten, sodaß eine Umschaltung nicht notwendig ist.



Dann verbinde W/RDYA und /WRDYB und lege beide auf den /WAIT Eingang der CPU.
(Oder auf die WAIT-Sammelleitung, falls es in Deinem Rechner schon andere "WAIT-Requester" gibt.)
Achtung, es sind Open-Drain Ausgänge, also einen Pull-Up nach +5V schalten.
Ob Du diese Pins benutzt, legst Du durch Programmierung fest.
In Schreibregister 1 (WR1) Bit7 stellst Du ein, ob das Pin überhaupt aktiv ist (D7=1),
ansonsten ist die Leitung hochohmig (D7=0). Ebenso nach Reset.
Bit 5 und 6 von WR1 steuen dann das genaue Verhalten, falls über D7 aktiviert
(schreibe ich aber jetzt nicht im einzelnen aus dem SIO User Manual ab :-)

Da eine programmmäßige Aktivierung/Deaktivierung von W/RDY pro Kanal möglich ist,
kannst Du auf Brücken oder Jumper verzichten.
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?

Dieser Beitrag wurde am 28.10.2015 um 10:41 Uhr von Early8Bitz editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
28.10.2015, 11:38 Uhr
KK

Avatar von KK

Dann nochmals herzlichen Dank für die Unterstützung! Ich denke, damit komme ich jetzt klar.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

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