Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Z80-PIO Control Ports rücklesbar ? » Themenansicht

Autor Thread - Seiten: -1-
000
14.01.2013, 16:17 Uhr
Ralph



Hat jemand eine 100% ige Aussage, was eine Z80-PIO auf dem Control Kanal für einen Wert zurückliefern müsste ?
Der Control Kanal ist ja zum programmieren der PIO da und wird normalerweise beschrieben und nie gelesen.
Daher nahm ich bisher an, das bei einem IN-Befehl auf einen der beiden Control Kanäle nichts (TriState) zurückgeliefert wird.

Meine Erfahrung in meinem AC1 aber ist, das die PIO doch einern Wert auf den Datenbus legt, nämlich FFH, also kein TriState Verhalten !!

Kann mir das mal jemand bestätigen ? Danke sagt Ralph
--
Es geht alles erst richtig los !

Dieser Beitrag wurde am 14.01.2013 um 16:18 Uhr von Ralph editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
14.01.2013, 16:32 Uhr
Heiko_P



Ich glaube, diese Frage wurde hier schon mal irgendwo diskutiert. Eine klare Aussage dazu kenne ich leider nicht ...

Bist du dir sicher, dass wirklich die PIO FF zurückliefert und der Wert nicht durch die Pull-Up-Widerstände im Datenbus des AC1 gelesen wird?

Gruß Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
14.01.2013, 16:38 Uhr
Ralph



@Heiko, ja ich bin mir sicher das es NICHT die Pull-Up-Widerstände sind ! Die würden ein L - Signal welches auf dem DB liegt nicht auf H ziehen können.
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
14.01.2013, 18:02 Uhr
Wusel_1



Ein Controllregister der PIO kann nicht gelesen werden. Das da #FF gelesen wird ist normal, da ein offener Ausgang erkannt wird, welcher aber auf H liegt.
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
14.01.2013, 18:09 Uhr
Ralph



@Wusel_1... woher stammt Deiner Meinung nach das H ?
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
14.01.2013, 18:28 Uhr
susowa



http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=8226&highlight=PIO
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
14.01.2013, 19:54 Uhr
Ralph



Danke Susowa ! Ralf, aber das bringt uns/mich leider nicht weiter ! Allerdings hatte ich diesen Thread auch nicht gefunden Ich hatte nicht nach Z80-PIO gesucht
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
14.01.2013, 20:12 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Beim Z9001 kommt bei den PIO-Control-Kanal-Ports auch nur FF ...
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
14.01.2013, 21:38 Uhr
susowa




Zitat:
... aber das bringt uns/mich leider nicht weiter !

Ich weiss aber was erwartest Du denn auch? Warum soll man sich mit Dingen beschäftigen, welche nicht beantwortet werden können?


Zitat:
Daher nahm ich bisher an, das bei einem IN-Befehl auf einen der beiden Control Kanäle nichts (TriState) zurückgeliefert wird.

Meine Erfahrung in meinem AC1 aber ist, das die PIO doch einern Wert auf den Datenbus legt, nämlich FFH, also kein TriState Verhalten !!

Ich glaube, Du verwechselst hier Ursache und Wirkung. Die Ergebnisse aus 000 des anderen Thread's sagen eher etwas Anderes. Die PIO macht wirklich "nichts", daher liest die CPU irgendwelche nicht determinierten Zustände des Datenbus, welche zum einen von der Bus-Hardware elektrisch und vielleicht auch von der/den letzten Aktivitäten der Software auf dem Bus abhängig sind. Auch wenn das vielleicht in einem System immer gleich ist, heisst das noch lange nicht, das in anderen Systemen mit anderer Bus-HW das auch so sein muss. Ich finde es daher eher müssig, darüber zu spekulieren.

MfG
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
14.01.2013, 22:48 Uhr
holm

Avatar von holm

Probiere es doch mit einer Pio auf einem Steckbrett, gib der Takt und Adressiere Deinen Steuerkanal, danach /CS und gucke was passiert.
Es ist aber völliger Käse da zu spekulieren, im Endeffekt weiß keiner ob eine PIO von MME sich da genauso verhält wie eine von SGS, Zilog oder Mostek.

Unfug Sowas.

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
010
14.01.2013, 23:06 Uhr
Ralph



Manchmal frage ich mich, warum es in unserem Forum auf eine klar und verständlich gestellte Frage zu einem Sachverhalt nie ne eindeutige Antwort gibt ?
Stattdessen wird vermutet und spekuliert... und dann nicht mehr geantwortet Das find ich traurig..

Die aus meiner Sicht einzig sinnvollen Antworten hab ich von VolkerP und (in Teilen) von Susowa bekommen.
WISSEN tut es aber wohl doch niemand aus einem Datenblatt, was die PIO tun sollte, oder ?

Ich will nochmal klar sagen !! Ich habe im AC1 die Datenbus Pull-Up Widerstände von +5V auf 0V (Masse) gelegt.
Somit müsste ein IN A,(IOControlPort) ein 00H liefern, weil der DB zum Zeitpunkt des IN Befehles durch die Widerstände
auf 00H liegt und laut Susowa's Aussage die PIO "nichts" macht. Davon bin ich bisher auch ausgegangen.
Ich bekomme aber FFH geliefert !! D.h. "jemand" zieht den L Pegel auf H.
Ziehe ich nun die PIO aus der Fassung kommt erwartungsgemäß 00H !
Das bedeudet für mich, das die PIO den H-Pegel liefert. Das machen alle von mir getesteten PIO's.
Komisch ist das schon für mich.... Nun gut, es ist halt so..
--
Es geht alles erst richtig los !

Dieser Beitrag wurde am 14.01.2013 um 23:07 Uhr von Ralph editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
15.01.2013, 00:15 Uhr
Wusel_1



Du solltest dir mal den Aufbau des PIO ansehen - ist in jedem Datenblatt, da wirst du sehen, dass das Kontrollregister nur beschrieben werden kann. Es ist nirgendwo in den Datenblätter angegeben, das dieses Register bidirektional betrieben werden kann.
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***

Dieser Beitrag wurde am 15.01.2013 um 00:16 Uhr von Wusel_1 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
15.01.2013, 08:11 Uhr
holm

Avatar von holm

Ralph: lege mal die "Pullups" des Pio internen Datenbusses auch von Vcc nach GND, ich bin sicher, dass Du dann 00 lesen wirst.
Um Ein Register rücklesen zu können benörigt man einen Multiplexer, der die Ausgänge des Registers wirde mit dem internen Datenbus verbindet und der durchgeschaltet wird, wenn eine Leserequest kommt. Da diese Hardware im PIO ganz offensichtlich nicht vorhanden ist, werden halt leere Daten gelesen. Was zur Hölle ist denn daran eigentlich komisch?

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
013
15.01.2013, 08:43 Uhr
Ralph



@Holm.. ich finde es komisch (bzw. unlogisch), dass das Verhalten der PIO beim Lesen der Control Kanäle meiner Meinung nach nicht klar dokumentiert ist!
UND, das wenn schon Lesen nicht gestattet ist, die PIO offensichtlich doch Signale auf den DB legt. Sowas gehört meiner Meinung nach in ein Datasheet. Aber was solls..
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
16.01.2013, 13:23 Uhr
Ralph



So, ich habe mir echt mal die Arbeit gemacht und diverse Tests mit verschiedenen Z80-PIO's gemacht.

Testumgebung waren 2x AC1, mit und ohne Bustreiber, sowie Z1013 ohne externe Karten mit jeweils 1k ! Widerständen im Datenbus nach Masse geschaltet!

1. das Lesen der Control-Kanäle bringt JEDESMAL ein eindeutiges FFH zurück, alle anderen IO-Ports erzeugen erwartungsgemäß ein 00H.
2. alle von getesteten PIO's, U855D (8Stk) und Z80PIO (2Stk) haben sich gleich verhalten !

Ich bin mir damit relativ sicher, das ein Z80-PIO beim Lesen des Control-Kanales FFH liefert/liefern muss, auch wenn es nirgends dokumentiert scheint.


Gruß von Ralph

PS: Es wäre nicht schlecht, wenn das mal jemand an einem andern Rechner ebenfalls testen könnte.
--
Es geht alles erst richtig los !

Dieser Beitrag wurde am 16.01.2013 um 13:24 Uhr von Ralph editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
16.01.2013, 14:01 Uhr
jmueller



Ralph schrieb:


Zitat:
...das Lesen der Control-Kanäle bringt JEDESMAL ein eindeutiges FFH zurück...

Ich habe zwar solche Teste nicht durchgeführt, aber laut dem anderem Thread
hat maleuma bei seinen Tests unterschiedliche Werte gelesen.
Ich denke, man müsste die PIO auch mal unterschiedlich programmieren
und dann vom Control-Port lesen, um da eine definitive Aussage treffen zu können.

Jens
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
16.01.2013, 14:21 Uhr
Ralph



Ja Jens, das hast Du recht Vielleicht sollte sich Mario mal hier dazu melden ! ?

Mir gings jetzt aber auch nicht unbedingt darum, WELCHEN Wert der PIO liefert, sondern die Tastsache das der PIO beim Lesen den Datenbus belegt.


Gruß Ralph
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
16.01.2013, 15:15 Uhr
Mario Blunk

Avatar von Mario Blunk

Also, falls ich gemeint bin, werde ich das am TRAIN-Z mal untersuchen. Bis Ende der Woche weiß ich was dazu zu sagen.
--
Mein Chef ist ein jüdischer Zimmermann.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
16.01.2013, 16:01 Uhr
jmueller



Ralph schrieb:

Zitat:
Mir gings jetzt aber auch nicht unbedingt darum, WELCHEN Wert der PIO liefert, sondern die Tastsache das der PIO beim Lesen den Datenbus belegt.

Das kann man aber durchaus auch so aus dem Datenblatt herauslesen.
Hier mal ein Auszug aus der Beschreibung des IORQ-Signals:


Zitat:
When CE, RD, and IORQ are active, the port addressed by B/A
transfers data to the CPU (a read operation).

Da steht nirgendwo, dass abhängig von C/D die PIO hochohmig wird,
sondern einfach nur, wenn diese drei Signale aktiv sind,
die PIO Daten an die CPU sendet.
Das Datenblatt schweigt sich aber dazu aus,
welche Daten das im Fall eines Lesezugriffs auf das Control-Port sind.


@Mario Blunk:
Falls Du auf maleuma angesprungen sein solltest,
dann wärest Du damit nicht gemeint.

Jens
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
16.01.2013, 16:41 Uhr
Ralph



Vielen Dank Jens !!

genau solch eine Antwort hatte ich mir mit meiner Frage in 000 eigentlich erhofft
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
16.01.2013, 22:57 Uhr
holm

Avatar von holm

Das was JEns geschrieben hat, ist aber das Selbe wie ich geschrieben hatte. Die PIO Internen Treiber sind aktiv nach außen, aber der interne Datenbus ist nicht belegt. Was da kommt, ist nicht spezifiziert (offensischtlich Pullups), Du hast 2 Stück internationale ausprobiert, gut, es gibt aber deutlich mehr Hersteller und es gibt auch CMOS Typen. Das das innerhalb eines Herstellers bei einer IC-Sorte gleich ist, möchte ich doch stark hoffen...

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
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

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