Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » KC85 / UB858 » Themenansicht

Autor Thread - Seiten: -1-
000
02.11.2016, 17:52 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo,

gibt es zum Einsatz einer DMA im KC85 irgend welche Erfahrungen?

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
001
02.11.2016, 17:54 Uhr
Enrico
Default Group and Edit


Jein, nur speziell beim NVA-CPM, was
auf den Treffen zu sehen war.

Es sind nur die 2 Steckplätze (gilt auch für den Erweiterungsanschluß hinten)
im KC DMA-fähig, da dort
dran direkt die CPU ohne Treiber sitzt. Ab der 1. D002 ist alles nur undirektional.
--
MFG
Enrico

Dieser Beitrag wurde am 02.11.2016 um 17:58 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
02.11.2016, 18:48 Uhr
PIC18F2550

Avatar von PIC18F2550

OK also geht das nur über eine kleine Adapterplatine CPU & DMA
--
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
03.11.2016, 01:15 Uhr
Enrico
Default Group and Edit


Wieso?
Auf Deinem Propeller-Board kannst Du das doch auch draufbauen.

Oder wird das ganz was anderes?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
05.11.2016, 12:46 Uhr
PIC18F2550

Avatar von PIC18F2550

Stimmt Enrico denn platz ist noch reichlich.

Hatt jemand mal ein Bild wie Cpu und DMA zusammen verschalter werden müssen?

Prioritätsmäßig muss ich vor den Modulschächten rein.
--
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
005
05.11.2016, 13:18 Uhr
Enrico
Default Group and Edit


Nö, Bild nicht.
Hatte auf Holm Doku abgelegt.

Außerdem habe ich ja auch die Pläne fürs NVA-CPM hier.

Die Priorität der Module interessiert da ja gar nicht.

Die DMA brauch nur eine I/O, und die DMA muss in die DMA-Kette
der CPU BUSRQ - BUSACK rein.
Leider hat man die nicht vollständig ausgeführt.
D.h. von Hause funktioniert nur eine DMA richtig, will man mehrere
haben, müsste man das in der Software berücksichtigen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
05.11.2016, 21:02 Uhr
PIC18F2550

Avatar von PIC18F2550

Bus Contention
Using the Direct Memory Access (DMA) as bus master can negatively
effect CPU activity by preventing the CPU from fetching and executing
instructions. This method of bringing the CPU to a halt creates problems,
including:
• No interrupt servicing (including nonmaskable CPU interrupts)
• No refresh of dynamic memory (if performed by the CPU)
• No polling
The CPU’s time-critical functions are affected by which operating mode
the DMA is using. These modes are Byte, Burst, and Continuous.

Das würde erklären wieso es keine DMA Module gibt und das NVA-CPM nur unvollständig ist.

Da der dRAM später durch SRAM ersetzt wird kann ich die DMA komplett verwursten.

Jetzt muss ich nur noch verstehen was ich wie verdrahten muss um auch den Continuous Mode nutzen zu können.
--
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
007
05.11.2016, 21:28 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb

Das würde erklären wieso es keine DMA Module gibt


War nicht notwendig, weil man das Tempo nicht brauchte, hat
Geld gekostet,....


Zitat:

und das NVA-CPM nur unvollständig ist.


Wer behauptet denn sowas?
Die sind wegen der Wende nicht fertig geworden.


Zitat:

Da der dRAM später durch SRAM ersetzt wird kann ich die DMA komplett verwursten.

Jetzt muss ich nur noch verstehen was ich wie verdrahten muss um auch den Continuous Mode nutzen zu können.



In Stücken kannst Du die DMA sowieso nicht verwursten, das geht nur komplett.

Das ist doch Wurscht.
Man muss eben aufpassen, wie das mit dem Refresh bei den einzelnen Modulen bzw.
eingesetzten RAMs ist.
Ausserdem gibts ja Einzelbyteübertragung.
--
MFG
Enrico

Dieser Beitrag wurde am 05.11.2016 um 21:31 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
05.11.2016, 21:43 Uhr
PIC18F2550

Avatar von PIC18F2550

Einzelbyteübertragung bringt eigentlich nur eine Entlastung der CPU und kaum einen Geschwindigkeitsvorteil.

"Leider hat man die nicht vollständig ausgeführt." Hab ich wohl falsch verstanden.

Ich dachte Du meintest das NVA-CPM damit. Mein Fehler.

Mit dem Prop-chip kann ich Datenraten bis 3,5Mb erzeugen das werde ich auf dem KC nicht umsetzen können
Aber wenn schon dann so schnell wie möglich rumschaufeln.
--
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
009
05.11.2016, 22:05 Uhr
Enrico
Default Group and Edit


Nö, das bezog sich auf Signale für DMA-Betrieb im KC.

Doch ist schon schneller.
Die CPU brauch ja 21 Takte pro Byte zum schaufeln, die DMA nur 4-5.
Die CPU muss ja nur NOps in der Zwischenzeit machen, ne kleine Warteschleife,
oder HALT, woraus Du die mit nem Interrupt durch die DMA rausholen kannst.

Wäre es nicht schneller, würde das beim NVA ja nicht klappen.

3,5 MB gehen da nie.
Oder Du gehst mit dem Propeller auf den Bus drauf, und machst alles selber?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
06.11.2016, 05:59 Uhr
PIC18F2550

Avatar von PIC18F2550

Den Taktunterschied habe ich nicht in betracht gezogen.
Direkt auf dem Bus kann ich wegen der wehnigen freien pinns vergessen.

Das Programm müsste dann etwa so aussehen.
Nach dem Start der DMA.

...
call mhalt
... weiter im prog

mhalt:
halt

mint:
reti

Mit der DMA sollte am Transferende ein IM2 Interupt erzeugt werden.
--
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
011
06.11.2016, 09:36 Uhr
ambrosius



Kurze Frage: warum soll die CPU eigentlich in Halt gehen? Soweit ich das verstanden habe, schaltet der DMA nach der Programmierung und Freigabe die CPU mittels BUSRQ inaktiv (nach Abarbeitung ihres letzten Befehls). Nach Beendigung ihrer Arbeit macht die CPU an der alten Stelle weiter. Refresh dürfte sich von selbst ergeben, da ja sehr schnell im RAM gearbeitet wird und damit auch Adressen angesprochen werden.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
06.11.2016, 09:47 Uhr
PIC18F2550

Avatar von PIC18F2550

Bei Speicherzugriffen ist das machbar nur bei port zu port Übertragung sind die Bockgrößen und Widerholrate unbekannt.
Und solange noch der Dram drinn ist muss ich mich um den refresh kümmern.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 06.11.2016 um 09:48 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
06.11.2016, 11:19 Uhr
ralle



Mal ne böse Frage, die D004 hat doch eine 4Mhz-CPU und einen DMA oder?
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
06.11.2016, 11:44 Uhr
PIC18F2550

Avatar von PIC18F2550

ich hab keine D004
--
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
015
06.11.2016, 11:50 Uhr
Enrico
Default Group and Edit



Zitat:
ambrosius schrieb
Kurze Frage: warum soll die CPU eigentlich in Halt gehen? Soweit ich das verstanden habe, schaltet der DMA nach der Programmierung und Freigabe die CPU mittels BUSRQ inaktiv (nach Abarbeitung ihres letzten Befehls). Nach Beendigung ihrer Arbeit macht die CPU an der alten Stelle weiter. Refresh dürfte sich von selbst ergeben, da ja sehr schnell im RAM gearbeitet wird und damit auch Adressen angesprochen werden.



Nicht MUSS, nur kann.
Bevor die DMA den Bus übernimmt, kann man der CPU als letztes den HALT-Befehl
geben. Dann macht die nur noch das, und macht nur noch NOPs.

Refresh geht auch wärend der DMA-Arbeit.
Das ergibt sich durch deren Zugriffe auf den RAM.
Das hängt davon ab was die machen soll.
Probleme sind dann ev. größere RAMs, da bei denen die Refrshzyklen länger sind, die haben mehr Adressen. Da ist dann das Problem wie diese für Refrsh ausdekodiert werden.
Wenn man dort als Teiler /RFSH für die zusätzlichen höheren Adressen nimmt klappt das nicht.
Das wird durch die DMA ja nicht erzeugt.
--
MFG
Enrico

Dieser Beitrag wurde am 06.11.2016 um 11:53 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
06.11.2016, 11:54 Uhr
Enrico
Default Group and Edit



Zitat:
ralle schrieb
Mal ne böse Frage, die D004 hat doch eine 4Mhz-CPU und einen DMA oder?


Da gabs noch nie eine DMA.
Die CPU macht einen DMA-Zugriff aud den Floppycontroller.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
06.11.2016, 11:59 Uhr
edbru



nur ein Gedanke,
Wenn die DMA den BUS bei /BUSRQ übernimmt ist der Z80 tot und macht keinen Refresh, die DMA schreibt aber ständig im dRAM rum.
Warum soll dann der Z80 einen HALT bekommen?
Der sagt doch sowieso - ist mir egal.
--
ich brauch es nicht, so sprach der Rabe.
Es ist nur schön wenn ich es habe.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
06.11.2016, 12:05 Uhr
ambrosius




Zitat:
edbru schrieb
nur ein Gedanke,
Wenn die DMA den BUS bei /BUSRQ übernimmt ist der Z80 tot und macht keinen Refresh, die DMA schreibt aber ständig im dRAM rum.
Warum soll dann der Z80 einen HALT bekommen?
Der sagt doch sowieso - ist mir egal.



Eben, das meinte ich ja auch. Zumal HALT nur durch einen Interrupt/Reset beendet werden kann.

----
edit: bei I/O-Port zu I/O-Port Transfer ist natürlich Refresh notwendig, wenn es über längere Zeiten geht.
--
viele Grüße
Holger

Dieser Beitrag wurde am 06.11.2016 um 12:10 Uhr von ambrosius editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
06.11.2016, 12:32 Uhr
PIC18F2550

Avatar von PIC18F2550

Der Halt hatt ein kleines Probmem JEDER INTERUPT beendet den Halt und kommt nicht wieder in den Halt zurück.

Damit ist die Haltmethode geschichte.
DMA und CPU müssen abwechselnd auf dem Bus.
--
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
020
06.11.2016, 13:01 Uhr
Enrico
Default Group and Edit


Ja, stimmt.
Dann müsstest Du dafür sorgen, dass keine Interrupts auftreten,
außer dem Interrupt Deiner DMA, wenn die mit schaufeln fertig ist.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
06.11.2016, 13:07 Uhr
PIC18F2550

Avatar von PIC18F2550

es gibt auf der hauptplatiene komponenten denen mann nicht den int sperren darf.

z.B. der Tastatur

Daher wäre die DMA an 3. stelle im System
--
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
022
06.11.2016, 13:29 Uhr
kaiOr

Avatar von kaiOr

Nur die neue D008 hat eine DMA.

Zilog hat übrigens beim Wechsel von NMOS auf CMOS wieder Bugs behoben und es ist anzunehmen, dass die DDR-DMA vom Funktionsumfang her irgendwo zwischen den beiden Welten operiert... :P

Mit Refresh wäre ich vorsichtig.
Der KC85/4+5 verfügt bereits intern über segmentierten RAM. Selbst wenn die DMA Byte für Byte die ganzen 64kByte Adressraum durchspult, erreicht sie immernoch nicht die RAM-Zeilen, die der um einige Flipflops erweiterte Refreshcounter ansprechen würde....

Außerdem sind 64kByte * 4 Takte * 568ns ≈ 149 ms, das bewegt sich auch mit der DMA viel zu langsam und kann nur funktionieren, wenn der DRAM speziel für indirekten Refresh MUX-ifiziert wurde.

Normalerweise wird zeilenweise aufgefrischt. Beim Befehl LDIR passiert das z.B. zweimal alle 21Takte. Auf die Art sind bereits nach dem Kopieren von nur 128Byte bzw. nach 1,5ms die 128kByte vom KC85/4 aufgefrischt und nach 256Byte bzw. 3ms die ganzen 256kByte vom KC85/5.

MfG

Dieser Beitrag wurde am 06.11.2016 um 13:36 Uhr von kaiOr editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
06.11.2016, 14:09 Uhr
PIC18F2550

Avatar von PIC18F2550

kaiOr das auffrischen erfolgt mit dem RAS signal am dRAM.
Es bedarf daher nur nur 256*4T
--
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
024
06.11.2016, 15:19 Uhr
kaiOr

Avatar von kaiOr

Beim U2164D hast Du Recht, allerdings nur solange Du nicht im IRM oder ROM opperierst, dann schläft der RAM.
Am U61256D muss beim RAS aber noch A7 wackeln und das geht je nach RAM-Bereich nur wenn zwischendurch auch A14 an der CPU/DMA wackelt oder von RAM8 Segment 0 auf RAM8 Segment 1 umgeschaltet wird.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
06.11.2016, 18:10 Uhr
PIC18F2550

Avatar von PIC18F2550

Das RAS Signal wird immer genneriert egal ob refresh oder speicherzugriff
Die Speicherselektion wird über Cas gemacht.

Dadurch könnte mann die refresh beim bws einsparen.
--
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
026
06.11.2016, 19:42 Uhr
kaiOr

Avatar von kaiOr

/RAS wird verstummen, wenn Du es am dringensten brauchst.

/RFSH generiert die DMA nicht und /RAE kommt nur zustande wenn RAM0/4/8 aktiv geschalten ist und die Adressierung stimmt und der IRM nicht mal eben Vorrang hat. Ergo wird der D209 (74x175) zeitweise kein /RAS generieren.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
06.11.2016, 22:01 Uhr
PIC18F2550

Avatar von PIC18F2550

Auf der RAM-Steuerung macht das der D14 mit etwas kleinkram.

Da sehe ich keinen 74x175.

Ich sehe gerade das ich nur KC85 geschrieben habe da fehlt "/3" ist wohl beim tippen auf der Smartpatsche verloren gegangen.


Aber das Thema refresh ist eigentlich nebensache da die CPU im hintergrund weiterarbeitet.
--
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
028
06.11.2016, 23:12 Uhr
Enrico
Default Group and Edit


Du könntest aber noch Zeit sparen, wenn Du dir was eigenes bastelst.

Mich würde das nämlich noch interessieren, was passiert wenn die DMA Block-Transfer macht,
der DMA zwischendurch (durch z.B. Refreshlogik) der Bus unter dem Hintern wieder weggezogen wird.
--
MFG
Enrico

Dieser Beitrag wurde am 06.11.2016 um 23:13 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
07.12.2016, 14:19 Uhr
PIC18F2550

Avatar von PIC18F2550

Wenn ein Baustein höherer priorität sich anmeldet geht die DMA in Standby und wartet bis sie wieder berechtigt ist.

Die DMA kommt auf Videoplatiene und ist im System an 3. Stelle. es werden nur CS dekodiert und kein Wait.

Ein 74ALS21 wird zum schnelleren Durchschalten der Signale IEI und IEO eingesetzt.
1. DMA
2. PIO
3. Schacht 8
4. Schacht C

/BUSRQ und /BUSAK müsste an alle baustene parallel drann kommen.

Im byte modus müsste sich die DMA pro transfer den Bus einmal freigeben befor sie ihn wieder übernimmt.
--
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
030
07.12.2016, 18:07 Uhr
Enrico
Default Group and Edit


So sollte es sein.
Ich glaube aber, dass ich dazu nichts eindeutiges gefunden hatte.
Ist ja auch schon wieder ein Weile, als ich mir das durchgelesen hatte.

Solange Du bei der DMA nicht doch mal das Wait brauchen solltest,
ist das ja ok. Weis ja nicht inwieweit das bei Dir passieren könnte, im Allgemeinen
wäre das schon denkbar. Hängt davon ab, wie die Brücken in einer D002 gesetzt sind.
--
MFG
Enrico

Dieser Beitrag wurde am 07.12.2016 um 18:07 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
07.12.2016, 18:39 Uhr
PIC18F2550

Avatar von PIC18F2550

Das Wait wäre an einer Hartwarekomponente gebunden.
Darin sehe ich auf der Platine keinen Sinn.
--
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
032
07.12.2016, 18:46 Uhr
Enrico
Default Group and Edit


Wie meinst Du das?

Wenn ein Modul das fordert, dann ja.
Ansonsten kommt das ja über den Busdriver automatisch, entsprechend der Lötbrücken.

Normal hat man bei der 1. D002 Wait bei /M1.
ist bei der DMA natürlich Wurscht. Dann kommt die D004, dort könnte man dann das Wait bei jedem RAM-Zugriff haben.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
07.12.2016, 19:00 Uhr
PIC18F2550

Avatar von PIC18F2550

Oh das ist das Wait von der CPU

Das war aus der GAL Beschreibung der Vorlage nicht gleich ersichtlich.


Quellcode:

CHIP datagear gal16v8

A5=1 NC1=2 A4=3 A3=4 A2=5 A1=6 A0=7 M1=8 IORQ=9 GND=10
WAIT=11 BUSRQ=12 DMACS=13 BUSAK=14 NC2=15 LED=16 NC3=17 A7=18 A6=19 VCC=20

EQUATIONS

/DMACS = A0*A1*/A2*A3*/A4*A5*A6*/A7*M1*/IORQ*BUSRQ
       + /BUSRQ*/WAIT

/LED   = /BUSAK
       + A0*A1*/A2*A3*/A4*/A5*/A6*/A7*M1*/IORQ*BUSRQ




--
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
034
07.12.2016, 19:05 Uhr
Enrico
Default Group and Edit


Jetzt machst Du mich aber total fertig und verwirrt.
Mein Name ist Hase. Was auch immer Du da jetzt hast.
Wait ist doch Eingang der CPU, Qelle sind alle, wer auch immer...

Gleiches ist bei der DMA.
Allerdings ist /CSWAIT an der DMA = /CS wenn die CPU aktiv ist,
oder = /WAIT, wenn die DMA aktiv ist.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
28.01.2018, 23:55 Uhr
PIC18F2550

Avatar von PIC18F2550

Es hat mir keine ruhe gelassen.

Für KC85/4 Bord bei dem KC85/3 ist die CPU andersherum eingebaut.





Die Adresse ist noch offen.

Und natürlich Metrisch

Das Dram Problem wird durch einen SRAM gebügelt.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 28.01.2018 um 23:57 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
29.01.2018, 01:19 Uhr
Perser

Avatar von Perser

das obere Bild kriege ich nicht auf den Schirm,
funktioniert doch, lag warscheinlich an mir.

Viele Grüße
Perser

Dieser Beitrag wurde am 29.01.2018 um 02:10 Uhr von Perser editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
29.01.2018, 16:48 Uhr
PIC18F2550

Avatar von PIC18F2550

Damit mir der KC nicht schlapp macht wenn ich da als Busmaster mit der DMA von Port auf Port Daten schaufle, wird der dRAM (Arbeitsspeicher) durch ein SRAM + zwei Puffer ersetzt.
--
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
038
29.01.2018, 17:01 Uhr
Enrico
Default Group and Edit


Das nützt aber bei dem ganzen anderen Rest an RAM nix.
Entweder Du machst Einzelbyteübertragung,
doer die DMA kommt ev. mit einer extra Refreshlogik zurecht.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
29.01.2018, 18:22 Uhr
PIC18F2550

Avatar von PIC18F2550

Im Gerät spielt das keine rolle.
Betroffen sind nur externe dRam module im Port zu Port Modus.

Gibt es im KC85/4 reservierte Adressen für Erweiterungen?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 29.01.2018 um 18:24 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
29.01.2018, 18:28 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb
Im Gerät spielt das keine rolle.
Betroffen sind nur externe dRam module.



Eben, drum spielt das ja eine Rolle.



Zitat:

Gibt es im KC85/4 reservierte Adressen für Erweiterungen?


Klar.
Für KC selber, C0-D0 ist privat für User,
und dann schon der ganzen Haufen Zeug für
die div. Module.

Aber auswendig weiß sowas Mario viel besser .

Dazu gibts auch eine Liste, die ich mal wieder nicht finde.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
30.01.2018, 18:41 Uhr
maleuma




Zitat:
PIC18F2550 schrieb
Gibt es im KC85/4 reservierte Adressen für Erweiterungen?


Reserviert sind erst einmal alle Portadressen bis auf die für den USER freigegebenen
Freigegeben sind C0..CFh. D0..DFh kann bedingt als frei angesehen werden, denn hier gibt es eine SEW-Variante eines EPROMMER-Moduls mit zwei PIO's auf den Portadressen D0..D7h. Andere Quellen geben jedoch die Portadressen B0..BBh und 3 PIO's an und ich vermute es gibt keines dieser Module außer das eine bei P.S.

Die USER-Portadressen werden aber bereits von diversen Erweiterungen genutzt, zum Beispiel NVA-Floppy (FDC C0..C1h, DMA C2..C3h), M060 von E.Mueller (C0..C2h), M061 von E.Mueller (C0..C3h).
Man kann also maximal eines dieser "eigenen Erweiterungen" nutzen ohne Gefahr zu laufen dass sich da etwas beeinflusst.

Eine Modulübersicht gibt es im KC-Labor.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
30.01.2018, 23:47 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo maleuma,

wenn ich alles richtig verstanden habe wäre der Bereich 10..1F frei.
--
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
043
30.01.2018, 23:51 Uhr
Enrico
Default Group and Edit


Wäre denn im Bereich um die 80, wo die KC-Interna schon sind,
nicht noch eine Adresse frei?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
31.01.2018, 06:41 Uhr
holm

Avatar von holm

@PIC18:

Was hast Du denn eigentlich vor? IMHO pißt Du Dir wegen DRAM und Refresh viel zu viel ins Hemd, das ist bei Weitem nicht so empfindlich wie Du denkst.
Enrico hatte doch mal die P8000 Speicherkarte mit SIMM gebaut, anfangs lief da WEGA drauf...ganz ohne Refresh. Nur als ich mit dem Debugger gespielt habe hab ich rausgefunden das die Zellen langsam leer werden.

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
045
31.01.2018, 10:47 Uhr
PIC18F2550

Avatar von PIC18F2550

Nee holm,

ganz so schlimm ist es noch nicht.

Praktisch wird es wie Du sagst ohnehinn nicht auffallen da Port zu Port kaum verwendung findet.
Bei port zu ram oder ram zu ram gibt es dahin eh keine Bedenken.

Die Schaltung:
ist eher gedacht um datenverluste beim Reseten bzw die im KC85/3 enthaltenen u256 mal ab zu lösen.
es währe dann auch eine veränderung des CPU-Taktes möglich. (nur so ein Gedanke)
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 31.01.2018 um 10:47 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
31.01.2018, 19:55 Uhr
maleuma




Zitat:
PIC18F2550 schrieb
wenn ich alles richtig verstanden habe wäre der Bereich 10..1F frei.


Zumindest kenne ich dort noch keine Anwendung, soll ich Dir aus diesem Bereich 8 Adressen reservieren?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
047
31.01.2018, 20:04 Uhr
Enrico
Default Group and Edit


Die V24 ist doch nicht da drauf, oder?
Aus irgendeinem Grund bilde ich mir ein, dass da was sein müsste.
Ist aber bestimmt nur Einbildung.

Mario, in dem KC-internen Bereich war nichts frei, oder?
Würde ich für sinnvoller erachten, da es ja eine KC-interne
Erweiterung ist. Die DMA brauch ja auch nur eine Adresse.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
048
31.01.2018, 20:24 Uhr
maleuma



Hallo Enrico,

Die V.24 hat 00..0Fh

Als Interne I/O-Adressen sind 80..8Fh reserviert, zur Zeit belegt sind davon:
80h Modulsteuerung
84h und 86h interne Ausgabeports
88..8Bh PIO
8C..8Fh CTC

81h..83h, 85h und 87h wären theoretisch auch noch frei - falls diese Portadressen vollständig ausdekodiert werden, was ich nicht kontrolliert habe.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
049
31.01.2018, 22:07 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo Mario,

ich brauch nur eine für die DMA (10h).
Optional würde ich die 85h vorziehen wenn die Dekodierung vollständig ist.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 31.01.2018 um 22:13 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
050
01.02.2018, 20:15 Uhr
maleuma



Ich habe jetzt einmal den Schaltplan vom KC85/4 durchforstet:
Port 84h (Schaltkreis D08) und Port 86h (Schaltkreis D09) decodieren AB0 nicht mit. Das heißt sie reagieren auch auf die Portadressen 85h und 87h. Damit fallen diese beiden Adressen aus für Erweiterungen. Ich könnte mir aber auch vorstellen, das mpm bewusst die 4 Adressen vorgesehen hat weil sie sich die Option offen halten wollten, dafür in einer späteren Revision eine PIO zu verwenden.

Die Decodierung der Portadresse 80h wird auf jedem Modul selbst gemacht. Wenn Du wissen willst, ob diese vollständig decodiert wird, dann musst Du die Schaltpläne aller Module durchgehen...

Oder Du ergänzt in der Decodierung von D08 das Adressbit 0, dann kannst Du bei AB0=0 den D08 selektieren und bei AB0=1 den DMA. Ist vielleicht die einfachste Lösung für Deine Versuche und blockiert nicht den Adressbereich ab 10h für künftige Module. Was hälst Du davon?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
051
01.02.2018, 20:40 Uhr
PIC18F2550

Avatar von PIC18F2550

Autsch das endet auf einen MH74S287 und dort ist ende der Fahnenstange.

Ich dachte auch schon an NVA-CP/M-Floppy mit C2 und C3 aber das Beißt sich mit dem M060 und M061.

Eventuell ist eine Reservierung von 10h..1Fh für interne Erweiterungen kein ganz so schlechter Gedanke da momentan noch frei.
--
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
052
01.02.2018, 20:45 Uhr
maleuma



Am MH74S287 liegen nur Adressbus-Signale an, die werden entsprechend der benötigten Adresse kombiniert. AB0 liegt als Eingang nicht an, deshalb kannst Du davon ausgehen, dass nur die anliegenden Adressbus-Signale decodiert werden.
Ich würde einfach ab dem Ausgang des MH74S287 auftrenne und das AB0 einschleifen.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
053
01.02.2018, 20:51 Uhr
PIC18F2550

Avatar von PIC18F2550

Nee an der Platte will ich nicht rumschnitzen.

Zu Testzwecken werde ich erst einmal die 10h nehmen eventuell gibt es irgendwo noch eine einzelne freie vagabundierende Adresse.
--
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
054
01.02.2018, 21:01 Uhr
maleuma




Zitat:
PIC18F2550 schrieb
...eventuell gibt es irgendwo noch eine einzelne freie vagabundierende Adresse.

Wie wäre es mit CFh
--
Mario.

Dieser Beitrag wurde am 01.02.2018 um 21:02 Uhr von maleuma editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
055
01.02.2018, 21:34 Uhr
PIC18F2550

Avatar von PIC18F2550

OK nehme ich CFh.
--
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
056
03.02.2018, 08:33 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo,

ich hatte mal Assemblerroutinen zum Thema DMA gefunden nur finde ich die Seite nicht wieder.

Dort war das Testprogramm einer P8000 enthalten.

Ich suche Ram zu Ram und Ram zu Port transport ohne int.
--
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
057
03.02.2018, 13:42 Uhr
PIC18F2550

Avatar von PIC18F2550

Ram zu Ram habe ich gefunden

https://github.com/OlliL/P8000/blob/master/WEGA/contrib/eigentest/s.u880tr.s
--
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
058
03.02.2018, 15:37 Uhr
Enrico
Default Group and Edit


Die DMA-Doku hast Du dir aber schon bei Holm runtergesaugt?

Bevor Du auch nur irgendetwas machst, musst Du 6x an Stück den Befehl zum
Reset rüberschieben.
Mehr fällt mir nicht dazu ein.....
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
059
03.02.2018, 17:10 Uhr
PIC18F2550

Avatar von PIC18F2550

Ok das mit dem RESET ist mir nicht bekannt. Danke für die Info.

Von holms Halde hab ich die Doku mir gezogen.
Muss mir das alles noch verhirnen.

Beispiele sind mir am liebsten da da die Strucktur am besten zu sehen 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
060
03.02.2018, 17:31 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb
....
Beispiele sind mir am liebsten da da die Strucktur am besten zu sehen ist.



Dann hau mal Dkt wegen dem NVA-CPM an.
Ob das für Dich brauchbar und lesbar ist, weiß ich nicht.
Bin ja nicht der SW-Typ.
Das Zeug ist aber noch lange nicht funktionstüchtig und fertig,
und Zeit hat er auch keine so wirklich...
--
MFG
Enrico

Dieser Beitrag wurde am 03.02.2018 um 17:32 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
061
03.02.2018, 23:51 Uhr
jde

Avatar von jde

Ich behaupte mal eine U858 DMA zu integrieren ist nicht weiter kompliziert.

Folgendes: ich habe seit ca. 1987-1988 eine UA858 DMA in meinem privaten 4MHz Z80 CP/M Rechner in Benutzung.
Habe dazu im BIOS einige LDIRs bei denen es sich lohnte durch die DMA machen lassen.
Das traf auf Floppy und Bildschirm (scroll und clear screen) zu.
Bei der Floppy muss ja beim Deblocking von den in der Regel verwendeten 1024 Byte Sektoren immer ein 128 Byte Block kopiert werden und beim Bildschirm waren es ja bei 80x24 Zeichen 1840 zu verschiebende Bytes und 80 Byte mit 0 füllen, und bei Clear Screen 1920 Byte mit 0 füllen.
Da hat sich die DMA schon deutlich bemerkbar gemacht.
Mein BUS hatte keine Treiber drin, die DMA war 1:1 angeschlossen nur die DMA und ein 8205 Decoder auf die I/O Adresse 0xD0 war auf der Platine drauf.
Alles mit PU Lackdraht gefädelt.
siehe Bilder....


CP/M Rechner



CP/M Rechner Boot vom EPROM (27C512)



CP/M Rechner DIR von uPD7220 CAD Disk



CP/M Rechner U82720 Grafik



CP/M Rechner Bildschirm 80x25 mit 6845



CP/M Rechner CPU 4 MHz mit 512K RAM Floppy



CP/M Rechner CPU 4 Mhz mit RAM Floppy 512K Chips Huckepack



CP/M Rechner CPU Rückseite mit Fädeldraht



CP/M Rechner Floppy, Drucker, Tastatur (Cherry)



CP/M Rechner DMA



CP/M Rechner Ansicht 1, die DMA Platine steckt fast nicht sichtbar ganz links neben dem Floppy LW



CP/M Rechner Ansicht 2



Schaltplan CPU Platine mit U82720 CAD Programm in (TuboPascal geschrieben) auf diesem CP/M Rechner gezeichnet


Gruß
Jonny

Dieser Beitrag wurde am 04.02.2018 um 00:36 Uhr von jde editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
062
04.02.2018, 14:32 Uhr
Rainer



sehr schöne, saubere Fädelarbeit!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
063
04.02.2018, 15:08 Uhr
Lötspitze



Hallo Jonny,

was ist das für ein CAD-Programm? Hast Du dafür die Quellen, damit man das ggf. an die VIS3 anpassen kann?

VG Matthias
--
___________________
...geboren, um zu löten.

Wer rennen soll, muß auch mal stolpern dürfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
064
16.02.2018, 17:17 Uhr
PIC18F2550

Avatar von PIC18F2550


Quellcode:
;**************************************************************************
;**************************************************************************
; DMA ohne INT RAM to RAM
;**************************************************************************
;**************************************************************************
; DMA Adresse
DMAADR equ 0CFH

; Definition der Schreibregister WR0...WR6
WR0 equ 0
WR1 equ 4        ;DMA-Port A
WR2 equ 0        ;DMA-Port B
WR3 equ 80h
WR4 equ 81h
WR5 equ 82h
WR6 equ 83h

    org 4000h
DMA_INI:
    PUSH    AF
    PUSH    BC
    LD    A, C3
    LD    BC, 6 * 256 + DMAADR
DMA_1:
    OUT    (C),A
    DJNZ    DMA_1
    POP BC
    POP AF
    RET

DMA:
    PUSH    AF                        11
    PUSH    BC                        11
    PUSH    HL                        11
    LD    HL,DMAT                    10    ;Tab Anfang
    LD    BC, (DMATE - DMAT)* 256 + DMAADR    10    ;Tab Länge & DMA Adresse
    OTIR                            21/16
    IN    A,(C)                        12    ;Status-Byte lesen
    AND    3BH                         7    ;Status-Byte maskieren
    CP    19H                         7    ;STATUS-Byte Sollwert
                                      ;Wenn Statusbyte fehlerhaft Z=0
    POP    BC                        10
    POP    HL                        10
    POP    AF                        10
    RET                            10    

; Initialisierungstabelle fuer den DMA ohne INT Ram zu ram
DMAT
    db    00C3H            ;DMA-reset
    db    WR0 + 007DH    ;Transfer A--->B / A-Adr. u. Laenge folgen
    dw    0000H            ;Anfangsadresse DMA-Port A
    dw    00FFH            ;Datenlaenge-1
    db    00CFH            ;LOAD Adresse A
    db    WR1 + 0010H    ;Port A: MEMRQ / INC
    db    WR4 + 002CH    ;Blocktransfer / B-Adr. folgt
    dw    3000H            ;Anfangsadresse DMA-Port B
    db    00CFH            ;LOAD Adresse B
    db    WR2 + 0010H    ;Port B: MEMRQ / INC
    db    WR5 + 0000H    ;Stop bei Blockende / nur/CE / RDY low activ
    db    00BBH            ;Lesemaske folgt
    db    0007H            ;Lesemaske fuer STATUSBYTE / Bytezaehler l/h
    db    0087H            ;DMA-START
DMATE


--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 16.02.2018 um 22:04 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
065
06.03.2018, 23:08 Uhr
PIC18F2550

Avatar von PIC18F2550

CHIP datagear gal16v8

BUSRQ=12 ... A6=19 <---- ich glaub die wollen mich ....

Die gehen beim gal18v8 gar nicht als Eingänge da drüber werden die Pins 1 und 11 eingelesen!

Nu muss ich doch noch Drahtbrücken löten .
--
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
066
11.09.2022, 15:00 Uhr
PIC18F2550

Avatar von PIC18F2550


Zitat:
PIC18F2550 schrieb
Nu muss ich doch noch Drahtbrücken löten .



Keine Ahnung wo ich hier falsch abgebogen bin.
Nur die Pinns 15 und 16 können nicht als Eingänge verwendet werden.

Hier sollten /CE und LED drauf kommen.
--
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
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

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