CBM-Link via Userport

  • Hallo zusammen,


    ich plane für eine Ausstellung drei meiner 8296 miteinander sprechen zu lassen. Hierfür möchte ich die PA0 und PA1 des Userports verwenden.

    Also der "Steuer-CBM" (CBM#1) sendet nach Ablauf eines Programms ein Signal an CBM#2 via PA0 und an CBM#3 via PA1, so dass diese dann ein Programm starten.

    Sehr einfach ... sollte aber funktionieren.


    Theorie: Verstanden hatte ich, dass nach dem Einschalten der Userport bei allen 8 Kanälen auf "Input" steht und kein Strom fließen sollte.

    Praxis: Nach dem Einschalten liegen bei PA0 - PA7 aber sofort 5V an.


    Und auch die Steuerung mittels Poke funktioniert nicht wie sie sollte: Mit Poke 59459,255 sollten alle Kanäle auf Output schalten (also 5V liefern) - in der Realität stoppt der Stromfluss.

    Und mit Poke 59459,0 gibt es wieder 5V auf alle Datenkanäle.


    Hat jemand eine Idee, warum diese "verkehrte" Welt herrscht?


    holiju


    PS: Mir ist bewusst, dass der Userport direkt am 6522 hängt, und man entsprechend vorsichtig (optimalerweise mit einer Schutzschaltung) agieren sollte.

  • Ich habe die IO-Adressen des 6522 nicht mehr Kopf und gehe davon aus, dass du die richtige verwendest. Daher hier meine Vermutung, was da passiert.


    Wenn der Userport auf Eingang geschaltet ist, werden die Pegel über Pullup-Widerstände auf High (+5V) gezogen.

    Im Ausgangsregister des Userports steht vermutlich standardmäßig 0. Wenn du also den Userport auf Ausgang schaltest, werden die Ausgänge auf Low (0V) geschaltet.


    Also such mal die Adresse des Ausgangsregistern und schreib da irgendwas rein (zum Beispiel 255), nachdem du den Port auf Ausgang geschaltet hast. Dann müssten sich die Pegel am Ausgang ändern (Edit: Die Adresse des Ausgangsregisters A müsste 59457 sein).


    Deine Theorie mit dem Stromfluss bei 5V passt so übrigens nicht. Je nach Ausgangsbeschaltung fließt der Strom auch bei 0V-Pegel, wenn gegen 5V geschaltet wird. Außerdem muss überhaupt erstmal etwas am Userport angeschlossen sein, damit Strom fließen kann. Deswegen spricht man auch von Ausgangspegeln. Die liegen auch an, wenn nichts angeschlossen ist.


    Und so schlimm empfindlich ist der 6522 übrigens nicht. Ich habe damals viel mit dem Userport experimentiert und nie einen 6522 kaputt gekriegt.

    Aber bei größeren Kabellängen würde ich schon einen Hardwaretreiber vorsehen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Wichtig ist sich klarzumachen, daß es da zwei wichtige Register gibt. Mit Deiner einen Adresse kommst du also nicht weit.


    Prinzipiell geht das so, daß das sogenannte Datenrichtungsregister festlegt, ob da ein Input oder ein Output Kanal auf dem jeweiligen Bit/Anschlußpin liegt. Standard sollte Input sein, weil der Chip, wenn auf Ausgang geschaltet, sehr empfindlich gegen Spannungen/Strom von außen ist und quasi sofort kaputt geht, wenn man da von außen was falsches anlegt. Deshalb auch die unbedingte Empfehlung da einen ICs oder so eine Schutzdiode/Widerstandskombination davor zu bauen.


    Erst wenn das Datenrichtungsregister festgelegt hat, welches Bit wie benutzt wird, kann man die eigentlichen Daten im Datenregister senden oder empfangen.


    Vermutlich ist Deine 59459 das Datenrichtungsregister. Und es würde dann irgendwie auch Sinn machen, wenn alle Eingänge als Input definiert sind und auf 5V liegen, weil man sie dann - über einen Widerstand - auf Masse legen kann und der Chip das mitbekommt. Allerdings würde er das dann in genau dem anderen Register mitteilen.


    (Ich habe dazu hier schonmal irgendwann was geschrieben und da war es genau verkehrt herum gedacht; daher : mit Vorsicht genießen und evtl den Thread suchen, da war das dann auch schön erklärt. Das C64-Wiki hat auch ein paar verständliche Texte zu dem Thema (VIA, CIA, PIA, Userport usf))

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Danke an detlef und ThoralfAsmussen für Eure Antworten. Ich schau mir nochmals die Datenrichtungsregister-Logik an. Bloß was ich dennoch nicht verstehe ist, wenn der Rechner angeschaltet wird, dass 5V fließen. detlef : Mein Voltmeter ist ja auch ein "Abnehmer", so dass Strom fließt - allerdings nur mit sehr geringer Stromstärke.

  • Bloß was ich dennoch nicht verstehe ist, wenn der Rechner angeschaltet wird, dass 5V fließen. detlef : Mein Voltmeter ist ja auch ein "Abnehmer", so dass Strom fließt - allerdings nur mit sehr geringer Stromstärke.

    Da fließt sogar Strom, wenn du nicht mal das Multimeter angeschlossen hast. Über die Pullup-Widerstände nach +5V.

    Bei so geringen Strömen muss man sich wie gesagt von dem Stromflussgedanken lösen und in Spannungspegeln denken.

    Eine Eingang auf einen Pegel auf +5V oder 0V zu legen, bedeutet eben, dass da immer eine kleine Menge Strom fließt. Aber längst nicht soviel, wie wenn der Port auf Ausgang geschaltet werden und wirklich etwas schalten muss.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Theorie: Verstanden hatte ich, dass nach dem Einschalten der Userport bei allen 8 Kanälen auf "Input" steht und kein Strom fließen sollte.


    Praxis: Nach dem Einschalten liegen bei PA0 - PA7 aber sofort 5V an.

    Volt fließen nicht. Niemals. Ampere fließen. Nichts vom dem was du beobachtet widerspricht sich.

    Im Gegnteil, du kannst nur deshalb 5V messen, weil KEIN strom fließen kann. Da nichts angeschlossen ist was eine Verbindung nach GND herstellen könnte.


    Praxis: Nach dem Einschalten liegen bei PA0 - PA7 aber sofort 5V an.


    Und auch die Steuerung mittels Poke funktioniert nicht wie sie sollte: Mit Poke 59459,255 sollten alle Kanäle auf Output schalten (also 5V liefern)


    Beide Ports haben interne Pullups nach 5V. Wenn die also als Eingang geschaltet sind und dein Messgerät die Leitung wenig genug belastet (was ein heutiges DMM mit 10Megohm Eingangsimpedanz nicht macht), dann misst du da 5V.

    Dementsprechend liefern auch die Eingänge ein "High", wenn nix angeschlossen ist. Sobald da aber ein die Leitung treibender Ausgang eines anderen Geräts angeschlossen ist, wird er die Leitung nach 5V oder GND ziehen.


    Warum denkst du, ein Ausgang sollte 5V liefern? Das wird er nur dann machen, wenn du auch eine 1 in den entsprechenden Ausgang schreibst. Du hast der Via mit dem Poke nur gesagt, dass er die Ports als Ausgang nutzen soll. In dem Moment schaltet sie die Ausgangstransistoren aktiv, und da du in die Portregister noch nichts geschrieben hast, ist das eben eine 0 und damit GND. Der Ausgang treibt die Leitung nach GND und das kann der schwache Pullup nicht ändern. (Pullups sind ja immer so designed dass man sie nach GND ziehen kann, und sie die Leitung nur nach High ziehen, wenn sonst garnix anliegt.

  • detlef, danke Dir! Langsam verstehe ich :)

    Ist der folgende Satz korrekt?: Spannung fließt immer, nur im Input-Fall mit einer sehr geringen Stromstärke. Und wenn ja, müsste Dein Satz nicht lauten:

    Bei so geringen Strömen muss man sich wie gesagt von dem Spannungsgedanken lösen und in Stromflüssen denken. Dann wäre es für mich klar.

    Du hattest es allerdings anderes formuliert. Danke für die Ausbildung :)

  • Danke Dir - das hilft mir weiter!!! Ich hatte vorher noch nie was von Pullup-Widerständen gehört :) Nun dämmert es auch mir :)

  • Ist der folgende Satz korrekt?: Spannung fließt immer, nur im Input-Fall mit einer sehr geringen Stromstärke. Und wenn ja, müsste Dein Satz nicht lauten:

    Bei so geringen Strömen muss man sich wie gesagt von dem Spannungsgedanken lösen und in Stromflüssen denken. Dann wäre es für mich klar.

    Physikalisch gesehen ist das so. Aber von der Logik her denkt man in der Digitaltechnik erstmal in Spannungspegeln (Low- oder High-Pegel). Aus diesem Spannungspegel resultiert dann natürlich ein Stromfluss. Aber so lange die Ströme innerhalb der Spezifikationen der Chips bleiben, spielen die eigentlich keine Rolle (sie sollten natürlich wegen dem Gesamtstromverbrauch und der Wärmeentwicklung nicht zu hoch werden).


    Man muss das gedanklich trennen. Die Schaltlogik der ICs wird in Spannungspegeln (oder einfach nur Low oder High) angegeben und die daraus resultierenden Ströme muss man im Auge behalten, damit die ICs nicht überlastet werden.


    Wenn du ins Datenblatt des 6522 schaust, dann steht da in der Funktionsbeschreibung nicht "Bit x in Register y setzen, damit am Ausgang der Strom z fließt". Da steht sinngemäß "Bit x in Register y setzen, damit der Ausgang auf High-Pegel geschaltet wird". Weiter hinten im Datenblatt sind dann die zulässigen Spannungen und Ströme angegeben.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Danke detlef

    Ich werde die Tage versuchen, meine Schnittstelle zwischen den 8296ern zu bauen und gebe Rückmeldung :)

    Wie soll die Verbindung denn technisch aussehen? Willst du die Userports direkt verbinden, ohne Hardware-Treiber dazuzwischen? Das kann funktionieren, wenn die Leitungen nicht zu lang. Eine gute Masseverbindung ist hilfreich.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Danke detlef

    Ich werde die Tage versuchen, meine Schnittstelle zwischen den 8296ern zu bauen und gebe Rückmeldung :)

    Wie soll die Verbindung denn technisch aussehen? Willst du die Userports direkt verbinden, ohne Hardware-Treiber dazuzwischen? Das kann funktionieren, wenn die Leitungen nicht zu lang. Eine gute Masseverbindung ist hilfreich.

    Naja - eigentlich möchte ich nur dei Userports direkt verbinden, denn die Rechner stehen direkt nebeneinander. Jeweils eine Datenleitung geht vom CBM#1 zum CBM#2 und eine andere Leitung vom CBM#1 zum CBM#2. CBM#1 ist der Steuer-Computer.


    Dann kam ich vom Hölzchen zum Stöckchen, denn ich las von galvanischer Entkopplung, um die 6522 nicht zu zerstören. Und war dann hier gelandet:

    ELV Homematic Bausatz Funk-Sendemodul, 8-Bit HM-MOD-EM-8Bit, für Smart Home / Hausautomation
    ***** Hinweis: Hierbei handelt es sich um einen Bausatz, der noch zusammengebaut werden muss! ***** Dabei sind die Schalt- und Dateneingänge…
    de.elv.com

    Über dieses Modul könnte ich 8-Bit übertragen - und zwar kabellos - eine tolle Idee. Da ich allerdings kein Elektroniker bin (was Ihr bestimmt schon herausgefunden habt :), wird mir das zu kompliziert.


    Daher nur die direkte Kabelverbindung - mit guter Masseverbindung :)

  • Wenn du den IEEE-Bus nicht benötigst, kannst du auch einfach einzelne IEEE-Bus-Leitungen für die Verbindung nutzen.

    Da sind robuste Treiber schon eingebaut und die Leitungen lassen sich auch einfach über Register setzen.

    Du musst dir dann nur passende Ein- und Ausgänge raussuchen. Man kann die nicht einfach umschalten.


    Diese Funkdinger arbeiten auf 868 MHz. Diese Frequenz kann auch vor Ort einfach mal gestört sein. Darf zwar nicht, aber darauf würde ich mich nicht verlassen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Wie werden denn eigentlich vor Ort die Programme geladen?


    Falls du das mit den IEEE-Leitungen in Erwägung ziehen solltest, kann ich dir gerne passende Leitungen und die zugehörigen Register raussuchen.

    Wenn es nicht eilig ist. Ich muss mich da auch erst mal wieder reinfuchsen. Und mit dem 8296 kenne ich mich eigentlich gar nicht aus. Die Register-Adressen sind hoffentlich die gleichen, wie bei den Vorgängermodellen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Beim 8296 muss man mit dem Userport vorsichtig sein.

    Die Umschaltung der verschiedenen Memory Maps erfolgt über Ports am Userport. Wenn man da nicht aufpasst, schaltet man sich schnell mal den Speicher mit dem laufenden Programm oder das ROM weg.

    Wenn nur eine Leitung zum Senden und eine zum Empfangen gebraucht wird, wäre vielleicht einer der Tape Ports eine Option.

    +++ ATH

  • Beim 8296 muss man mit dem Userport vorsichtig sein.

    Die Umschaltung der verschiedenen Memory Maps erfolgt über Ports am Userport. Wenn man da nicht aufpasst, schaltet man sich schnell mal den Speicher mit dem laufenden Programm oder das ROM weg.

    Wenn nur eine Leitung zum Senden und eine zum Empfangen gebraucht wird, wäre vielleicht einer der Tape Ports eine Option.

    Danke für den Tipp! Den Kassetten-Port hatte ich noch gar nicht auf dem Schirm... Schau ich mir mal an! :)