C64-Userport - erste Basteleien

Es gibt 137 Antworten in diesem Thema, welches 10.249 mal aufgerufen wurde. Der letzte Beitrag (10. November 2024 um 19:05) ist von Snoopy.

  • Wenn ich nicht zu viel gelöscht habe, was ich nicht glaube, müsste die Fischertechnik Software noch bedingt funktionieren.

    die komplette schaltung würde mich interessieren.

    leider ist ja alles mit schieberegistern aufgebaut, mit basic, mit peek und mit poke, dann viel umstendlicher und viel langsammer. um den faktor ca. 20 langsammer, so muss man maschinensprache routinen dann benutzen.

    man hat dann aber eigentlich keinen echten lernefekt mehr, wie die ports wirklich gesteuert werden sollen.

    nichts geht über normales basic mit peek und poke ;)

    gruß
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

    ultra electronic Helmut Proxa GmbH & Co. Computer Systeme Hardware Software KG - Telex 888 66 27 uehp

  • Ich hab hier von einem ziemlich fähigen Forenkollegen eine "C64SPS" liegen. Mit Hardware Steckmodul...

    32 Eingänge, 48 Ausgänge.

    Erweiterbar auf ... ? äh .. Jew. 128 I/O's

    Diddl

    Das nutzt auch den 2803 als 'Treiber'...

    :)  Diddl :)

    eine ideale komplette lösung zum steuern und viel blink blink.

    lg
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

    ultra electronic Helmut Proxa GmbH & Co. Computer Systeme Hardware Software KG - Telex 888 66 27 uehp

    • Offizieller Beitrag
    • Interessanter Beitrag

    ........

    > ich habe immer einen kurzschluss gegen die versorgungsspannung vermieden.

    .......

    > ja, würde ich gerne mal auch klären. und einen cia opfern.
    .......

    Alles richtig gemacht: Einen Kurzschluss gegen Vcc killt den Port sobald er versucht Low auszugeben.

    Ein Kurzschluss gegen Masse hingegen ist harmlos, da der High-Side-Treiber "nur" eine Konstantstromquelle ist.

  • Alles richtig gemacht: Einen Kurzschluss gegen Vcc killt den Port sobald er versucht Low auszugeben.

    Ein Kurzschluss gegen Masse hingegen ist harmlos, da der High-Side-Treiber "nur" eine Konstantstromquelle ist.

    danke :)

    gruß
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

    ultra electronic Helmut Proxa GmbH & Co. Computer Systeme Hardware Software KG - Telex 888 66 27 uehp

  • so muss ich keinen 6526 quälen um das zu testen und 1570 hatte auch recht gehabt.

    ohne einen widerstand für die strombegrenzung geht es nicht.

    gruß
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

    ultra electronic Helmut Proxa GmbH & Co. Computer Systeme Hardware Software KG - Telex 888 66 27 uehp

  • A oder kein A ist egal 😌

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Das sind alles schon wieder Interfaces, die für bestimmte Anwendungen sind. Was ich für Experimente interessanter fände, wäre ein Interface, was einfach nur den C64 abkoppelt, aber nach außen die gleiche Funktionalität zur Verfügung stellt, d.h. einzelne Ein- und Ausgänge. Dabei sind ja teilweise feste Ein- und Ausgänge, aber auch bidirektionale Leitungen dabei, wo man die Richtung programmiertechnisch selbst bestimmen kann.

    Ich bin jetzt nicht mehr so genau drin, hatte Ende der 80er aber mal eine Alarmanlage damit aufgebaut und mich damals intensiv damit beschäftigt.

  • Wenn ich nicht zu viel gelöscht habe, was ich nicht glaube, müsste die Fischertechnik Software noch bedingt funktionieren.

    die komplette schaltung würde mich interessieren.

    leider ist ja alles mit schieberegistern aufgebaut, mit basic, mit peek und mit poke, dann viel umstendlicher und viel langsammer. um den faktor ca. 20 langsammer, so muss man maschinensprache routinen dann benutzen.

    man hat dann aber eigentlich keinen echten lernefekt mehr, wie die ports wirklich gesteuert werden sollen.

    nichts geht über normales basic mit peek und poke ;)

    gruß
    helmut

    Hallo Helmut axorp,

    hier der vollständige Schaltplan Bitte melde dich an, um diesen Link zu sehen. Technik hat dazu ein Basic Programm mitgeliefert welches mit Datazeilen Maschinencode bereitstellt Steuerung erfolgt mit SYS und lesen mit USR.

    Der Hintergrund ist, das es einfach nur zwei sehr günstige CMOS Bausteine sind, und man 8 Input und 8 Output Ports hat.

    64erGrufti deshalb ja dieses abgespeckte Interface zu Eigenversorgung langen die 5V am Userport.

    Die Richtungsprogramierbarkeit einzelner Pins des Userports ist genau das Problem wegen der man den CIA nur sehr schwer schützen kann.

    Wenn man einfach einen weitere CMOS Bausteine hinzufügt verdoppelt man die Anzahl der I oder O Ports.

    Wer 100% sicher gehen möcht baut noch ein paar Optokoppler zwischen den User Port und die CMOS chips dann herst eine galvanische Trennung.

  • Das kann man leicht aus dem Datenblatt ablesen, da muss man keine Gerüchten verfolgen. Eine Ausgangsstufe (N-MOS-Transistor), die direkt nach GND zieht, will niemand direkt nach Vcc ziehen. Selbst wenn der Transistor mehr als 1,6 mA "abkönnte", würde er sterben. Und man sieht dort auch schön, dass nach Vcc ein "Begrenzungswiderstand" eingebaut ist, sodass bei einem Schluss nach GND eben genau nichts passiert.

  • Danke! Dann steht den 8 Leuchtdioden am Userport nichts mehr im Wege! :party2:

    Ich muss jetzt noch einen halben Tag freischaufeln, um die Beiträge von axorp durchzulesen. Das sollte als interessante Buchreihe "Proxas Commodoreleben" rausgebracht werden. :thumbup:

    Band 1 bis 2000. :D

  • Hallo Snoopy,

    vielleicht ist dieses interessant:
    Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Wie man den CD4094 am Userport anschließt siehst du in dem abgespeckten Fischertechnik Interface Schaltplan den ich gepostet habe seht gut.

    Ignorier erstmal den Teil mit der RGB LED und das BT Modul.

    Hier ist der Schaltplan auf dem du sehen kannst wie dort die LEDs angeschlossen sind:

    Bitte melde dich an, um diesen Link zu sehen.

    1 x CD4094BE/HCF4094BE

    1x 16pin DIL Socket

    10 x LED- 3mm- 8 pcs same color(red/white/blue/green/yellow) and 2 pcs different colors (can be any color)

    10 x Resistors- 220Ohm

    Ich weiß nicht ob es hier schon erwähnt wurde aber hier ist noch ein tolles User-Port Interface:
    Bitte melde dich an, um diesen Link zu sehen.

    Ich hätte direkt einen Verbesserungsvorschlag für diese Platine:

    Ich würde wenigstens 4 Eingänge vorsehen oder als bester Kompromiss meiner Meinung nach 6 Ausgänge und 6 Eingänge.

    2 sind jeweils fest verdrahtet und 4 können per (Löt-)Jumper umgeschaltet werden.

    Dann kann ich bei der Bestückung oder später entscheiden wie viele Ein und Ausgänge man benutzen möchte insgesamt bleiben es natürlich 8.

    Daher besser noch den 7406 weg und dafür die beiden Chips vom Fischertechnik Interface drauf, dann sind bis zu 8 Ausgänge und 8 Eingänge gleichzeitig möglich.

    Allerdings ist die Programmierung etwas aufwendiger aber auch keine Raketenwissenschaft.

    Hier mal eine professionelle Version wie sie auch von Commodore,HP oder Proxa Computer hätte angeboten werden können:

    Bitte melde dich an, um diesen Link zu sehen.

    Dieses benutzt den IEEE488 Standard müsste also mit einem entsprechenden Interface auch am C64 funktionieren.

    Man könnte sowas natürlich auch wie die 1541 seriell anschließen, dürfte dann aber um einiges langsamer sein.

  • warum kompliziert wenns auch einfach geht ?!

    An den beiden Joystickbuchsen hat man ohne großen AAufwand 10 Eingänge zur Verfügung.

    Einfach Masse gegen Input.

    Wer schiß hat baut noch Optokoppler vor.

    am Userport acht Ausgänge über nen günstigen und sehr einfach händelbaren ULN2803 mit externen Steckernetzteil - fertig.

    Das arme FT-Interface 😐

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Was ich für Experimente interessanter fände, wäre ein Interface, was einfach nur den C64 abkoppelt, aber nach außen die gleiche Funktionalität zur Verfügung stellt, d.h. einzelne Ein- und Ausgänge. Dabei sind ja teilweise feste Ein- und Ausgänge, aber auch bidirektionale Leitungen dabei, wo man die Richtung programmiertechnisch selbst bestimmen kann.

    Da bin ich bei dir. Sowas fände ich auch praktisch und unkompliziert. Einfach eine Schaltung, die die simple Handhabung des Userports nicht erschwert, sondern "nur", so gut es geht, schützt. Nicht mehr und nicht weniger.

    Ich bin für jeden Hinweis und Tipp hier - auch weiterhin - dankbar, aber mir ging es ursprünglich darum, mal eine oder mehrere LEDs am Userport vom Userport gesteuert leuchten zu lassen. Ich will hier in die Materie reinkommen. Da kommt mir z.B. die Schaltung von Hucky mit den 8 LEDs (in den Beitrag weiter oben) sehr entgegen.

    Wenn ich für den Schutz z.B. deutlich mehr basteln müsste, als für die eigentlich geplanten einfachen Hardwareversuche, dann passt für mich die Verhältnismäßigkeit irgendwie nicht. Ist nicht böse oder undankbar gemeint, jede Schaltung hat sicherlich ihren Nutzen und Zweck. Ich möchte es nur "etwas einfacher" halten, damit ich auch für mich nachvollziehen kann, was ich überhaupt mache. Nach und nach steigt dann sicherlich auch bei mir das praktische Verständnis und die Schaltungen werden von allein komplizierter. ;)

  • Da bin ich bei dir. Sowas fände ich auch praktisch und unkompliziert. Einfach eine Schaltung, die die simple Handhabung des Userports nicht erschwert, sondern "nur", so gut es geht, schützt. Nicht mehr und nicht weniger.

    Au ja, da wäre ich auch gespannt drauf,. wie man das hinkriegt - die Ein- und Ausgänge des CIA beliebig konfigurierbar mit externem Schutz. Dass da noch niemand drauf gekommen ist ... muss man nur noch überlegen, wie man den Port-Status des CIA nach extern kriegt ---

  • Au ja, da wäre ich auch gespannt drauf,. wie man das hinkriegt - die Ein- und Ausgänge des CIA beliebig konfigurierbar mit externem Schutz. Dass da noch niemand drauf gekommen ist ... muss man nur noch überlegen, wie man den Port-Status des CIA nach extern kriegt ---

    Ach ja, wie charmant unser Kinzi immer die Zusammenhänge erklären kann :love:

  • Da bin ich bei dir. Sowas fände ich auch praktisch und unkompliziert. Einfach eine Schaltung, die die simple Handhabung des Userports nicht erschwert, sondern "nur", so gut es geht, schützt. Nicht mehr und nicht weniger.

    Au ja, da wäre ich auch gespannt drauf,. wie man das hinkriegt - die Ein- und Ausgänge des CIA beliebig konfigurierbar mit externem Schutz. Dass da noch niemand drauf gekommen ist ... muss man nur noch überlegen, wie man den Port-Status des CIA nach extern kriegt ---

    Deshalb ja de Ansatz wie beim Fischertechnik einfach Ein- und Ausgänge trennen.

    Der 4094 kostet 80 Cent und der 4014 sogar nur 60 Cent.

    Wenn man es Anfänger und Super sicher machen will braucht man noch 5x Bitte melde dich an, um diesen Link zu sehen. mit 5€ leider nicht ganz billig.

    Diese Optokoppler mit eingebauten Treibern benötigen keinerlei externe Komponenten sieht schön aus und macht es einfacher aber auch teurer.

  • Ich habe heute eine Mail von Einem bekommen, der hier nicht Mitglied ist, aber mitliest. Ich habe die Erlaubnis, den Inhalt der Mail hier reinzukopieren, was ich hiermit mache. Zum Inhalt kann ich nichts groß sagen, außer dass der C64-Userport erwähnt wird. :)

    Zitat Mail:

    ...

    Eine vollständig galvanisch getrennte Lösung für den Userport könnte man mit bidirektionalen Optokoppler erreichen. Allerdings dürfte die dazugehörige Schaltung nicht unbedingt trivial sein.

    Eine Leitung, die mit einem bidirektionalen Optokoppler wie dem FOD8012 aufgebaut ist, würde folgendermaßen aussehen:

    Grundlegender Aufbau:

    Zwei Datenleitungen: Der Bitte melde dich an, um diesen Link zu sehen. verfügt über zwei interne Kanäle, die in beide Richtungen arbeiten können. Jeder Kanal ist für den Austausch von Daten zwischen zwei isolierten Schaltungsteilen vorgesehen.

    Eingangs- und Ausgangsseite: Die beiden Enden jeder Leitung sind vollständig galvanisch getrennt, was bedeutet, dass keine direkte elektrische Verbindung zwischen den beiden Schaltungsteilen besteht. Stattdessen wird das elektrische Signal in Licht umgewandelt, durch einen optischen Pfad geleitet und auf der anderen Seite wieder in ein elektrisches Signal umgewandelt.

    Funktionsweise in der Praxis:

    Datenrichtung 1 (z. B. von C64 zu externem Gerät): Wenn der C64 (5V) ein Signal sendet, wird die LED auf der Eingangsseite des Optokopplers aktiviert, und das optische Signal erreicht den Fototransistor auf der Ausgangsseite, welcher das Signal auf die Zielspannung (z. B. 3,3V) konvertiert.

    Datenrichtung 2 (z. B. von externem Gerät zum C64): Das gleiche Prinzip gilt in umgekehrter Richtung. Das externe Gerät sendet ein Signal, das die LED auf der anderen Seite aktiviert, und der Fototransistor auf der C64-Seite stellt das Signal für den Userport bereit.

    Wichtige Eigenschaften:

    Galvanische Trennung: Ja, der bidirektionale Optokoppler trennt die beiden Schaltungsteile vollständig. Das bedeutet, dass keine elektrische Verbindung, weder in der einen noch in der anderen Richtung, zwischen den Geräten besteht. Stattdessen erfolgt die Übertragung des Signals über einen Lichtstrahl innerhalb des Optokopplers.

    Bidirektionalität: Der FOD8012 ermöglicht die Datenübertragung in beide Richtungen, aber er verwendet für jede Richtung einen separaten optischen Kanal. Die beiden Kanäle sorgen für die Übertragung der Signale unabhängig voneinander, sodass bidirektionale Kommunikation möglich ist.

    Anwendungsbeispiel:

    Angenommen, du hast eine serielle Datenverbindung zwischen dem C64 und einem modernen Mikrocontroller. Mithilfe des FOD8012 können beide Geräte miteinander kommunizieren, wobei:

    Der C64 (5V) über den Optokoppler Daten an den Mikrocontroller (3,3V) sendet.

    Gleichzeitig kann der Mikrocontroller auf einer anderen Leitung (oder bei Bedarf auf derselben, bidirektional) Daten an den C64 zurücksenden.

    In beiden Fällen sorgt die galvanische Trennung dafür, dass keine gefährlichen Spannungen den C64 erreichen können.

    Fazit:

    Die Leitung ist durch den FOD8012 definitiv in beide Richtungen galvanisch getrennt. Dies bedeutet, dass der C64 vollständig vor potenziellen Überspannungen oder anderen elektrischen Störungen auf der Seite des externen Geräts geschützt ist.

    ...

    Zitat von Datenblatt FOD8012 im Anhand als PDF

    Description:

    The FOD8012 is a full duplex, bi-directional, high-speed logic gate Optocoupler, which supports isolated commu- nications allowing digital signals to communicate between systems without conducting ground loops or hazardous voltages. It utilizes Fairchild’s proprietary coplanar packaging technology, Optoplanar ® , and opti- IC design to achieve minimum 20kV/µs Common Mode Noise Rejection (CMR) rating.

  • Leider bietet der Anonyme Autor keine Lösung an.

    Der Optokoppler ist nice wenn man sowas wie eine Serielle Schnittstelle hat ansonsten aber eher unpraktisch.

    Wenn man jetzt auf die Idee kommt einfach die beiden Pins auf jeder Seite zu verbinden wird das nichts, da dann alles anfängt "sich im Kreis zu drehen".

  • Ich habe dem Sender nachgelegt, er soll sich doch bei Diskussionsbedarf hier im Forum anmelden. Ist ja einfacher und ich muss nicht "stille Post" spielen. :D

    Hier noch eine Mail und dann ist von meiner Seite aus auch gut. So lange Wartezeit besteht meines Wissens nicht im Forum bei Neuanmeldugen und kostet auch nix! ;)

    ----

    Zitat Mail:

    Bei einem bidirektionalen Optokoppler wie dem FOD8012 wird die Datenrichtung nicht aktiv umgeschaltet. Stattdessen nutzt der Optokoppler eine intelligente Architektur, um Daten in beide Richtungen zu übertragen, je nachdem, von welcher Seite ein Signal kommt. Die Umschaltung der Datenrichtung erfolgt automatisch, ohne dass der Benutzer eingreifen oder die Schaltung speziell anpassen muss.

    Wie funktioniert die automatische Umschaltung der Datenrichtung?

    Unabhängige Kanäle für beide Richtungen: Der FOD8012 enthält zwei optische Kanäle, die beide Richtungen gleichzeitig unterstützen. Jeder Kanal besteht aus einer LED (Eingangsseite) und einem Fototransistor (Ausgangsseite).

    Kanal 1: Überträgt Signale von der C64-Seite zur externen Schaltung.

    Kanal 2: Überträgt Signale von der externen Schaltung zur C64-Seite.

    Automatische Umschaltung durch Aktivitätserkennung: Die Umschaltung der Datenrichtung erfolgt durch Erkennung der Signalaktivität. Wenn auf einer Seite (z. B. auf der C64-Seite) ein Signal anliegt, wird der entsprechende Kanal aktiviert, und das Signal wird auf die andere Seite übertragen.

    Der FOD8012 reagiert auf das Vorhandensein eines Signals und schaltet dieses über den optischen Pfad zur anderen Seite, ohne dass eine separate Steuerleitung oder Umschaltlogik benötigt wird.

    Detailliertes Beispiel:

    Senden vom C64: Wenn der C64 ein Signal sendet (z. B. ein High-Signal von 5V), leuchtet die LED auf der C64-Seite, und der Fototransistor auf der externen Seite schaltet durch. Das Signal wird entsprechend in die Zielspannungsebene (z. B. 3,3V) übersetzt und auf die externe Schaltung übertragen.

    Senden von der externen Schaltung: Wenn die externe Schaltung (z. B. ein Mikrocontroller) ein Signal zurücksendet, aktiviert dies die LED auf der externen Seite des Optokopplers, und der Fototransistor auf der C64-Seite schaltet durch. Das Signal erreicht den C64 und wird entsprechend als 5V-Logiksignal interpretiert.

    Also: Der bidirektionale Optokoppler benötigt keine manuelle Umschaltung der Datenrichtung. Er erkennt automatisch, von welcher Seite das Signal kommt, und leitet es entsprechend zur anderen Seite weiter. Dies ist ideal für einfache serielle Kommunikationsprotokolle oder parallele Datenleitungen, die bidirektional arbeiten müssen, wie z. B. I2C oder UART.