NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: CTC-SIO-PIO
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 08:11 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin in die Runde,

ich beabsichtige für den NKC eine Platine mit zwei CTC, SIO und PIO fertigen zu lassen.

(Schaltplan gelöscht, aktuell s.u.)
Grüße, Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 11. September 2017 10:12 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Steffen,

als erste Bemerkung: Hevorragende Idee! Ich hatte auch schon seit Monaten den Plan, eine oder modulare I/O Platinen mit den echten Z80 Komponenten zu erstellen, die ich im Originalkonzept leider vermißt habe. Ich möchte ENDLICH auch die leistungsfähigen Z80-Komponenten benutzen können, die das ausgefeilte Interruptkonzept überhaupt erst möglich machen.

Leider würde das bei mir bestimmt noch viele Monate auf sich warten lassen. Deshalb freue ich mich über Deinen Vorstoß! Du weißt ja: Es eilt nicht! Lieber eine ausgereifte Lösung, die nachher keine Krücken braucht.

Mehr kann ich im Moment erstmal nicht beitragen ;)

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 11:20 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Rene,

danke für Deine Aufmunterung! :)
Ich beginne gerade die Leiterplatte zu entwerfen, die ich dann gerne über Dich fertigen und an Interessenten abgeben lassen würde. Sobald ich einen brauchbaren Leiterplattenentwurf habe, werde ich den hier ebenfalls erst einmal vorstellen. Man übersieht ja auch gern mal etwas :rolleyes:.

Grüße, Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 11. September 2017 12:04 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Steffen,

das klingt gut! Wichtig dabei aber neben dem Hardwareentwurf: Eine erste Teststrategie und -software. Da diese HW ja noch nicht unterstützt wird, bleibt nur eine eigene Testsoftware, die z.B. über eine Verbindung aller PIO-Leitungen wechselweise die Ein-/Ausgaben überprüft, ebenso die seriellen Interfaces und die CTC Funktion mit Interrupterzeugung, Zählfunktion usw.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. September 2017 12:40 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Steffen,

vom Prinzip her bin ich sehr angetan von deiner Schaltung, denn gerade Timer fehlen bis jetzt ja (ausser auf der GDPHS-FPGA).
Die Frage wäre nur, ob man die Schaltung auch dahingehen ändern kann, dass sie auch mit anderen Prozessoren (68k) läuft.

Denn der NKC ist ja kein Z80 System, sondern unter anderem auch ein Z80 System.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. September 2017 12:56 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Noch zwei Kleinigkeiten:

- Der SIO würde ich gleich ein MAX232 spendieren. Zumindest auf einem Kanal.

- Die IEI und IEO Signale werden, eines Wissen, bisher von keiner einzigen NKC-Karte benutzt/unterstützt. Von daher könnte es z.B. mit der FLO Probleme geben, da die beim Z80 ja auch den Interrupt braucht.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 14:09 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat:
dass sie auch mit anderen Prozessoren (68k) läuft.

Ich kenne allerdings nur den Z80. Ich weis nicht, ob der 68k mit der Interruptroutine des Z80 "/IORQ + /M1 = wer ruft?" klarkommt. Oder ob es nur weitere Adressbits sind die selektiert werden müssten.

Zitat:
Der SIO würde ich gleich ein MAX232 spendieren. Zumindest auf einem Kanal.

Ja...muss ich sehen, in wieweit der Platz ausreicht. Wenn dann zum abschalten und aber auf beiden Kanälen, damit man die SIO mit sich selbst unterhalten lassen kann (Test).

Zitat:
Die IEI und IEO Signale werden, eines Wissen, bisher von keiner einzigen NKC-Karte benutzt/unterstützt. Von daher könnte es z.B. mit der FLO Probleme geben, da die beim Z80 ja auch den Interrupt braucht.

Die FLO dürfte also nicht im IM-Mode 2 arbeiten...vermute ich. IEI und IEO sind dabei kein Problem, die erlauben nur der SIO o.ä. einen Interrupt auszulösen oder nicht = EnableInterrupt. Ist nur eine Wertigkeits-Kette. Wer darf trotzdem und wer nicht. Dann wäre beim Einsatz der FLO wahrscheinlich der IM2 tabu. Man muss in der Software schauen, ob in der Interruptroutine des FLO sofort andere Interrupts verboten werden. Dann geht halt die Uhr nach, wenn von Diskette gelesen wird... ;).

Mir fällt eben auf, der IEI vom BUS kommend, muss "nach innen" über einen Jumper wahlweise auf Hi gelegt werden können, wenn die Platine die erste oder einzige mit Interrupts ist.

Zum Thema Testprogramme:
Da werde ich sicher etwas machen, aber nicht forciert. Jedoch so, wie ich die Bausteine selbst benötige. So z.B. fehlt mir der CTC-Interrupt um DCF77 zu decodieren. Auch möchte ich, dass sich meine zwei NKC über die SIO's unterhalten können. Dafür stehen sehr komfortable Modi zur Verfügung.

Gruß, Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. September 2017 14:46 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Steffen,

der Z80 läuft mit dem FLOMON im Interrupt Mode 1 (IM 1), die FLO kann nichts anderes.

Das M1-Signal gibt es, soweit ich weiss, ausschließlich beim Z80.
Von daher bliebe mit 68k-Systemen nur die Möglichkeit nach einem Interrupt, alle Peripheriebausteine abzufragen.
Nur dazu muss auch gegeben sein, das die Bausteine auch ohne M1 laufen.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 15:06 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ja...auf Adresse 1C36h steht
DB CO IN A,(0C0h)
ED 56 IM 1
FB....EI

Das heißt das Programm springt bei einem Interrupt immer auf die Adresse 38h. Dort muss das auslösende "Gerät" gefragt werden wer es war bzw. was getan werden soll. (falls es mehr als eines gibt)
Dann kann man eben die Interrupts von CTC, SIO & Co. nicht zusammen mit FLOMON verwenden!?
FLOMON würde sofern man es nicht umprogrammiert, immer die FLOMON-Interruptroutine starten, auch wenn es nur der Zeitimpuls der CTC war.
..... :eek:...doof...aber nicht die Schuld von CTC, SIO & Co.
Man kann ja aber den Interrupt-Mode softwaremäßig ändern, wenn die FLO nicht gebraucht wird und grad ein "IM2-Programm" läuft.

Gruß, Steffen

Zitat:
Von daher bliebe mit 68k-Systemen nur die Möglichkeit nach einem Interrupt, alle Peripheriebausteine abzufragen.


IM0 = per ext. Hardware wird auf den Datenbus ein Befehl gelegt
IM1 = per Software wird der INT-Auslöser ermittelt und entspr. verzweigt
IM2 = Z80 macht /IORQ + /M1 und der Auslöser meldet sich mit einem Interruptvektor ...dieser + Interruptregister I = Verzweigungsadresse.

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. September 2017 15:20 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Tja,
nur wenn ein IM2 Programm läuft, muss man sicherstellen, das die FLO sich nicht einmischt, sonst ergibt es Müll ;)
Gleiches gilt natürlich für Interrupts von CTC und Co, im IM1 Betrieb.

Wie gesagt, für die 68k bliebe sowieso nur ein Polling wie im IM1, falls die Bausteine auch ohne M1 laufen.

PS: die Z80 Interruptmodes sind mir geläufig ;)

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 15:39 (#11)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat:
bliebe sowieso nur ein Polling wie im IM1


Phuuuu....
...man könnte die IEO Ausgänge der IC's auswerten und auf einen IN-Port legen.
Den könnte man dann abfragen, wer es war. Dann bräuchte man ein 5./CE oder eine CTC bleibt weg!?
...ooooder statt der 2.CTC Huckepack IN-Port (nur 1 IC nötig!) zur IM1 Auswertung.
Alle nötigen Signale liegen ja an der CTC an (bis auf zwei IEO = Drahtbrücken/Jumper).
Grüße, Steffen

PS.: nix für ungut Jens, ich kannte vor 2 Stunden nur den IM2 :)

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. September 2017 16:07 (#12)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat:
PS.: nix für ungut Jens, ich kannte vor 2 Stunden nur den IM2 :)



Kann ich gut nachvollziehen, ist ja auch der leistungsfähigste Modus. Bei den 68k gibt es auch so ein Modus, nur auch der wird beim NKC nicht unterstützt.

Der NKC ist halt ein System, das für alles mögliche offen sein soll. Da bleiben natürlich Speziallitäten der einzelnen Systemfamilien auf der Strecke.

Hmm, die Idee mit den IEO Leitungen auf einen Port gefällt mir. Der müsste dann über die Int-Leitung getriggert werden. Wie wäre es, wenn man dafür einen Port der PIO "missbraucht"?

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 16:30 (#13)  |  Zitat Zitat   PN PN   E-Mail E-Mail
stelle ich mir so vor:

...wenn ich kein Fehler auf die Schnelle gemacht habe.
Die IOE's liegen immer an und werden halt über eine beliebige Adresse der 2.CTC abgefragt, oder nicht.
Weis allerdings nicht wie lange die anliegen, müsste aber bis zum RETI sein, da ja der Zweck ist, dass kein "niederer" Baustein INT anmelden kann so lange ein höherwertiger INT abgearbeitet wird. Also was will man mehr!?

Ein PIO-Port ist dafür zu wertvoll :D

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 11. September 2017 17:11 (#14)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Evtl. muss dafür ein anderer IC her oder.....(Tristate)
Es dürfen ja keine Signale auf die IEO-Ausgänge ausgegeben werden!
Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 11. September 2017 20:06 (#15)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Wenn es nur um eine Timerfunktion geht: Wenn man bei der UHR3 die Interruptleitung verbindet, hätte man einen Timer.

Es gab irgendeinen Trick, wie man Z80 Komponenten am 68k betreiben kann, um ihnen ein RETI zu zeigen. Ich meine die serielle Karte vom mc 68000 Computer benutzte das. Es wäre auch denkbar, dass beliebige CPU Karten den Vektorinterruptzyklus ausführen, um den Interruptgrund zu erfahren. Die Frage ist: Tut das not? Wieviele Interruptquellen hat der NKC?

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: gespeichert
tom16
Ganz neu hier
*
ID # 179


  Erstellt am 12. September 2017 08:36 (#16)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Schoen, dass sich jemand einer PCB diese Art annimmt!
Die /INT-Ausgänge der Z80-I/Os sind low aktive OpenDrain Ausgänge. Diese werden parallel geschaltet und muessen im System irgendwo einen pullup-R haben. Damit ist die Zusammenschaltung mit 74LS32 zu einem "Karten-/INT" hinfaellig und auch am BUS schädlich, falls weitere /INT-PCB dazukommen sollten.

Für die Pins des PIO schlage ich zwei Pfosten Steckverbinder 2x6 am PCB-Rand vor (jeweils Port A und Port B). Z.B. die Pins RDY und /STB z.b. auf den Pins 1 und 2 sowie auf den Pins 11 5P und auf 12 GND. Auf den Pins 3 bis 10 dann A0 bis A7 bzw. B0 bis B7.

Beiträge: 4 | Mitglied seit: April 2017 | IP-Adresse: gespeichert
tom16
Ganz neu hier
*
ID # 179


  Erstellt am 12. September 2017 09:17 (#17)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Sollten mehr als vier Z80-Peripherie-ICs (also ab zwei o.a. PCBs) eingesetzte werden, wäre eine erweitere Umgehungslogik für die Interruptsprioritaetenkette zu empfehlen. D.h. ein 74LS08 und ein 74LS20.

Dann müsste aber noch die /IEI-/IEO-Kette auf dem BUS verdrahtet werden. Wie im Schaltungsvorschlag PI / PO.

Fuer CTC1 IEI einen pullup-R vorsehen, falls dieser CTC die höchste Priorität haben soll.

Beiträge: 4 | Mitglied seit: April 2017 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 12. September 2017 09:56 (#18)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Tom,
danke für Deine Anregungen! Hab nicht daran gedacht, dass die /INT Ausgänge "open Collector" sind. Da wirds einfacher.

An den IEI-pull-up für die erste CTC habe ich schon gedacht. Der kann allerdings auch rückseitig auf den Bus. Je wie man es mag.
Deinen Einwand bezüglich einer zweiten CSP (Counter-Seriell-Paralell ;)), verstehe ich nicht ganz. Ich würde bei der internen Priorität pro Karte bleiben. Die Zweite ist dann eben die Zweite. :confused:
Deinen Vorschlag mit der/den PIO Port-Buchsen nehme ich gerne so auf. Da hatte ich noch keine Präferenzen.
Grüße, Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert
tom16
Ganz neu hier
*
ID # 179


  Erstellt am 12. September 2017 10:45 (#19)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat von Steffen.111:
Hallo Tom,
Deinen Einwand bezüglich einer zweiten CSP (Counter-Seriell-Paralell ;)), verstehe ich nicht ganz. Ich würde bei der internen Priorität pro Karte bleiben. Die Zweite ist dann eben die Zweite.


Hallo Steffen,
wenn mehr als vier Z80-Peripherie-ICs in der INT-daisy-chain sind (z.B. eine zweite CSP) kann es zu Zeitproblemen im Interruptanerkennungszyklus bei den niedriger priorisierten ICs kommen. Darum die o.a. Umgehungslogik. Wenn zwei oder mehr CSP im Sytem sein sollen - also nuetzlich.

(Lit): z.B. Kieser/Meder 2. Auflage Kap. 4.2.3.1 S. 172 Prioritaet

Die interne daisy chain auf der CSP ist in der Prioisierung CTC->CTC->SiO->PIO voll ok.

Gruesse, Tom

Beiträge: 4 | Mitglied seit: April 2017 | IP-Adresse: gespeichert
Steffen.111
Kennt sich schon aus
**
ID # 184


  Erstellt am 12. September 2017 12:45 (#20)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ja Tom, da hst Du natürlich Recht!
Werde ich berücksichtigen.
Danke
Grüße, Steffen

Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert



| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,059255 Sekunden erstellt
19 Dateien verarbeitet
gzip Komprimierung eingeschaltet
833,41 KiB Speichernutzung