Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Z1013 & Busplatiene » Themenansicht

Autor Thread - Seiten: -1-
000
19.11.2018, 12:39 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo,

ich hab mir gerade mal den Schaltplan (sax.de) von der Buserweiterung angeschaut und dabei ist mir aufgefallen das dort der Pin X1:27A (/BUSAK) nicht verwendet wird.

<EDIT>
Wenn ich das richtig verstehe ist ohne /BUSAK währe eine DMA anbindung gar nicht möglich.
</EDIT>

Ist das nur wegen den Z9001/KC87

Was mich auch etwas verwirrt ist die V2D was macht die?

Gibt es für den EFS-Steckverbinder 2x29 eine Lib für den Eagle?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 19.11.2018 um 16:29 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
19.11.2018, 20:04 Uhr
MS05



BUSACK: Vermutlich ist das so, damit die Module verwendbar sind. Beim KC87 ist das ja BAI/BAO. Der z1013 selbst führt ja die DMA-Steuerung im Prinzip ja ordendlich an die Leiste, aber ein reines BUSACK ist da im Vergleich ein bisschen exotisch. Siehe https://hc-ddr.hucki.net/wiki/doku.php/homecomputer/k1520

V2D: Auf den ersten Blick sieht das aus, als diente die Diode zum Vorwärmen der Mehrfachdiode

Auf den zweiten Blick arbeitet die Diode als Z-Diode und zieht das Potential aller Anoden der Mehrfachdiode auf +0,7V. Damit werden die anderen V2x leitend, sobald deren Kathoden 0V oder negativer werden. Also Schutz der vier Steuersignale /BUSREQ, /NMI, /INT, /WAIT.

Dieser Beitrag wurde am 19.11.2018 um 23:32 Uhr von MS05 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
20.11.2018, 09:08 Uhr
PIC18F2550

Avatar von PIC18F2550

Nee ohne /BUSAK übernimmt eine DMA von einer Erweiterungskarte nicht den BUS.

Entweder mann muss auf eine Unterstützungskarte mit DMA verzichten oder Die Karte muss zwischen Z1013 und Busplatiene.

Zur Ableitung von negativen Spannungen kann Die Schaltung nicht sein.

z.B.: /NMI= -12V und 1mA

V2E ist leitend und V2D sperrend wohin soll der Stom fließen um die Spannung ab zu leiten?

An stelle von C1.6 müsste eine Diode Antiparallel zur V2D.

Besser währe die SAM durch Shottky Dioden zu ersetzen die mit Masse verbunden sind.

Da stellt sich aber immer noch die Frage warum nur die 4 Signale und nicht die Anderen auch?
Da währen durchaus Einsparungsmöglichkeiten.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
20.11.2018, 09:58 Uhr
PIC18F2550

Avatar von PIC18F2550

Ich sehe gerade das die ICs D7, D9 und D10 DS8286 verwendet wurden obwohl deren DIR garnicht verwendet wird.
Das würde ein DMA garnicht möglich machen.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
20.11.2018, 11:55 Uhr
MS05




Zitat:
PIC18F2550 schrieb
Nee ohne /BUSAK übernimmt eine DMA von einer Erweiterungskarte nicht den BUS.


Ich habe auch nicht behauptet, dass dann DMA noch funktionieren würde. Aber du kannst KC87-Module verwenden, solange du ohne DMA leben kannst. Ohne diese Unterbrechung würde eventuell BUSACK vom z1013 gegen BAO des nächsten Modules kämpfen. Auf jeden Fall muss man sich unter diesen Umständen auch nicht mehr um die Richtungssteuerung der Treiber sorgen.

Zitat:
PIC18F2550 schrieb
V2E ist leitend und V2D sperrend wohin soll der Stom fließen um die Spannung ab zu leiten?
An stelle von C1.6 müsste eine Diode Antiparallel zur V2D.

Besser währe die SAM durch Shottky Dioden zu ersetzen die mit Masse verbunden sind.

Da stellt sich aber immer noch die Frage warum nur die 4 Signale und nicht die Anderen auch?
Da währen durchaus Einsparungsmöglichkeiten.


Ja, da hast du völlig Recht. So schützt das nur vor negativen Unterschwingern auf den genannten Signalen, die aber durchaus über C1.6 abgeleitet werden. Wenn man eine ideale Stromversorgung voraussetzt, liegen für hohe Frequenzen C1.6 und R2 parallel nach Masse.
Deine antiparallele Diode anstatt C1.6 wäre im Ruhezustand statisch um 0,7V im Sperrbereich, und würde damit erst mal garnichts ableiten. Zusätzlich zum C wäre Deine Diode natürlich eine Hilfe bei statischen Pegeln unter -1,4V an den genannten Signalen, wenn sich die Störspannungsquelle vom Innenwiderstand her gegen R2/V2D durchsetzen kann. Zumindest beim U880 ist das dann aber wieder für den Allerwertesten, denn der Grenzwert nach Datenblatt ist minimal -0,5V an den Eingängen.
Schottky - kann man machen. Für dynamische Unterschwingungen würde das den Schutz von 0V auf -0,3...-0,4V verschlechtern. Wäre aber bei kleinen Strömen gerade noch ausreichend.

Frag mich nicht, was da damals die genaue Motivation war, das genau SO zu machen.

Dieser Beitrag wurde am 20.11.2018 um 12:25 Uhr von MS05 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
21.11.2018, 21:33 Uhr
PIC18F2550

Avatar von PIC18F2550

In Holms Halde gefunden TGL 37271/01 Seite 6/10.

Hier wird der Zusammenhang von /BUSACK , /BAI und /BAO erklärt.

Wenn ich das richtig verstehe Müsste

Pin X1:27A (/BUSAK) an Pin X2:27B (/BAI)

Pin X2:27A (/BAO) an Pin X3:27B (/BAI)
....

verbunden werden.
warum es nicht gemacht wird ist mir erst ein mal unklar.

Auf Karten die keine DMA Unterstützung haben müssen die Pinns X:27A und X:27B verbunden sein.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
21.11.2018, 22:58 Uhr
MS05




Zitat:
PIC18F2550 schrieb
In Holms Halde gefunden TGL 37271/01 Seite 6/10.

Hier wird der Zusammenhang von /BUSACK , /BAI und /BAO erklärt.

Wenn ich das richtig verstehe Müsste

Pin X1:27A (/BUSAK) an Pin X2:27B (/BAI)

Pin X2:27A (/BAO) an Pin X3:27B (/BAI)
....

verbunden werden.
warum es nicht gemacht wird ist mir erst ein mal unklar.

Auf Karten die keine DMA Unterstützung haben müssen die Pinns X:27A und X:27B verbunden sein.



Ja. Weiter unten in der TGL siehst du auch die Schaltung der "Beuschleunigerkette" am Beispiel der Interruptkette. Deine Zusammenschaltung stimmt. Auf einer reinen CPU-Karte gibt es nur das gesendete BUSAK.

Naja. Nicht implementiert eben. Ich habe damals viele Projekte gesehen, die DMA insgesamt ausgeklammert haben. Wurde nicht verstanden, wurde nicht gebraucht.

27A-27B Brücke: Klar. Eine Karte, die keine aktiven Buszugriffe durchführt, reicht das Signal kritiklos weiter. Eine DMA-Karte reicht es ebenfalls durch, es sei denn, sie war die Karte, die den Busrequest gestellt hat. Dann würde sie die Kette unterbrechen, und den Bus übernehmen. In dieser Kette hat die Karte, die der CPU am nächsten sitzt die höchste DMA-Priorität.

Hübsches Beispiel:
http://www.ac1-info.de/ac1_2010/backplane/rueckverdrahtung_sch.pdf
Da siehst du mal sehr anschaulich so eine Kette für die Iterrupts mal nicht auf den Steckkarten, sondern auf der Backplane implementiert. Sonst sieht man ja nur Pinbezeichnungen auf den Bussteckern, und nicht dan kompletten Zusammenhang.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
21.11.2018, 23:45 Uhr
PIC18F2550

Avatar von PIC18F2550

Ein Problem hat das aber wenn während eines DMA Prozess eine Höhere DMA den Bus übernimmt so kann der niedere unter Umständen nicht beendet werden.

Das kann durchaus ein grund gewesen sein auf DMA zu verzichten.

Heute würde ich die Signale auf einen GAL leiten der mit einer 1 aus n Prioritätsschaltung besitzt.

Also die 1. DMA die was will wird bedient die anderen müssen warten bis Bus frei ist.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
22.11.2018, 07:41 Uhr
MS05




Zitat:
PIC18F2550 schrieb
Ein Problem hat das aber wenn während eines DMA Prozess eine Höhere DMA den Bus übernimmt so kann der niedere unter Umständen nicht beendet werden.

Das kann durchaus ein grund gewesen sein auf DMA zu verzichten.

Heute würde ich die Signale auf einen GAL leiten der mit einer 1 aus n Prioritätsschaltung besitzt.

Also die 1. DMA die was will wird bedient die anderen müssen warten bis Bus frei ist.


Andere DMAs wissen, wenn ein von der CPU genehmigter Request läuft, und müssen sich zurückhalten, bis der erste beendet ist. Die Priorisierung durch die Position in der BAI/BAO-Kette wirkt also nur bei Vorliegen mehrerer gleichzeitiger Requests.
Siehe 2.2.3. in der TGL oder Z80-DMA Doku.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
22.11.2018, 10:06 Uhr
PIC18F2550

Avatar von PIC18F2550

Da mit dürfte meine Vermutung in Ablage C wandern.

Weist Du zufällig ob ein in der DMA angeforderter BUSRQ bei bestehenden BUSACK bis zum Ende von BUSACK zurückgehalten wird?

Das würde bei 3 DMA einheiten (was relativ selten der Fall ist) bedeuten wenn 1 beendet und 2&3 beide anfordern Könnten.

Da die meisten systeme aus einem Takt gespeißt werden währen die Anforderungen 2&3 nicht zu unterscheiden.

Wie verhält sich eine DMA wenn ihr im Zugesagten DMA die zusage (BUSACK) entzogen wird?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
22.11.2018, 10:38 Uhr
holm

Avatar von holm

..konform der Prioritätskette wie bei Interrupt auch, alles Andere hätte keinen Sinn.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
22.11.2018, 11:20 Uhr
PIC18F2550

Avatar von PIC18F2550

OK danke.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
22.11.2018, 19:56 Uhr
MS05




Zitat:
PIC18F2550 schrieb
Weist Du zufällig ob ein in der DMA angeforderter BUSRQ bei bestehenden BUSACK bis zum Ende von BUSACK zurückgehalten wird?

Das würde bei 3 DMA einheiten (was relativ selten der Fall ist) bedeuten wenn 1 beendet und 2&3 beide anfordern Könnten.

Da die meisten systeme aus einem Takt gespeißt werden währen die Anforderungen 2&3 nicht zu unterscheiden.

Wie verhält sich eine DMA wenn ihr im Zugesagten DMA die zusage (BUSACK) entzogen wird?


Eine neuer BUSRQ darf ja erst kommen, wenn der Laufende beendet ist.
Und dann dürfen alle Busteilnehmer, und seien es sieben, gleichzeitig einen neuen Request senden. Der Gewinner ist immer der, der in der BAI-BAO-Kette der CPU am nächsten sitzt. Da gibt es also nichts weiter zu unterscheiden. Wenn es doof kommt, ist Karte sieben am Ende der Kette ewiger Verlierer. Dann ist der Bus eben offensichtlich überlastet.

Bei laufender Busbelegung kann die CPU den Bus nicht zurückfordern. Bei einem fehlerhaften DMA ist das System also tot, reif für einen harten Reset.
Es liegt z.B. in der Verantwortung des Programmierers der DMA-Routine, dass die CPU innerhalb der nächsten 2 ms den Bus so zurück bekommt, dass die nächsten 127 M1-Zyklen für den eventuell notwendigen kompletten DRAM-Refresh stattfinden können. Es sei den, die hardware der DMA-Karte kümmert sich selbst rum den Refresh.

Dieser Beitrag wurde am 22.11.2018 um 23:20 Uhr von MS05 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
23.11.2018, 20:09 Uhr
MS05




Zitat:
PIC18F2550 schrieb
Heute würde ich die Signale auf einen GAL leiten der mit einer 1 aus n Prioritätsschaltung besitzt.


übrigens... Ich wüsste wirklich nicht, was dagegen spräche...
Die CPU selbst kennt ja keine Prioritäten. Die kann ja nur den BUSRQ beachten und BUSAK senden. Da könnte man sicher einen tollen IRGENDWAS dazwischen basteln, der die hereinkommenden BUSRQ nur nach Regeln (z.B: round robin) zur CPU durchlässt, ind natürlich auch BUSAK entsprenchend generiert.
Ich fand die K2526 immer ganz witzig. Auf der CPU-Karte wird ja eine zweite CPU als "intelligenterer DMA-Chip" verwendet.
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