Nachbau Userport Protector

Es gibt 40 Antworten in diesem Thema, welches 7.198 mal aufgerufen wurde. Der letzte Beitrag (24. Oktober 2024 um 01:55) ist von Natas.

  • ist dem IC die Datenrichtung Wurst ?

    Kann man dann die Eingänge ohne Pullup Widerstände abfragen ?

    Wurst nicht :) , naja, man muss beim 74LS541 natürlich so verdrahten...

    dass der Eingang vom IC von einem Ausgang "belegt" wird und umgekehrt...

    Wenn man ein 74LVC245AN nimmt, könnte man die Richtung ja Schaltungstechnisch "wählen".. was dann aber auch wieder eine "Gefahr bedeutet"... wenn man es falsch macht..

    gepflegt werden: VC20, VIC20, C16, 116, C/plus4, C64, C64 II, SX64, C128, C= PC20-III, C= LT286-C,... :thumbup: + amigos

  • Ja, das wäre der Zusammenhang mit der Open Collector Schlatung, den ich oben meinte. In dem Fall würde hier der Strom nicht durch die Diode fließen, sondern nur durch den Widerstand. Und wenn man dessen Wert groß genug wählen könnte, würde er Schaden verhindern. In der Praxis darf der Wert wohl allerdings auch nicht zu hoch sein.

    Exakt.

    Wenn der Wert des Widerstands im Verhältnis zum internen Pullup nun aber eher gering sein muss, was gewinnt man dann noch durch die parallel geschaltete Diode? Hat das was mit der Nutzung des CIA-Pins als Eingang zu tun?

    Das soll, wenn der CIA als "Ausgang" geschaltet ist, den Widerstand eliminieren (die Diode hat ja nur einen sehr kleinen differentiellen Widerstand, wenn sie durchlässt). Denn dieser reduziert den lieferbaren Ausgangsstrom bei Ausgang=1 weiter, und der ist eh schon sehr gering (1-2 mA). Die Spannung fällt also weiter ab, irgendwann ist sie unter der "H"-Schwelle, die zuverlässig erkannt wird. Daher die Diode.

    Von den vier möglichen Fällen bei "CIA-Portpin = Ausgang" ist nur einer "böse":


    Portpin = 1 und es liegt GND von außen an -> Strom wird durch internen Pull-Up begrenzt -> kein Problem.

    Portpin = 1 und es liegt VCC von außen an-> kein Potenzialunterschied -> kein Problem.

    Portpin = 0 und es liegt GND von außen an -> kein Potenzialunterschied -> kein Problem.

    Portpin = 0 und es liegt VCC von außen an -> Open-Collector-Ausgang schaltet voll durch -> Kurzschluss -> Defekt.

    Im Falle "Eingang" ist das Problem nicht, ob "VCC" oder "GND" daherkommt, das ist ja gewollt so. Da ist das Problem eher zu hohe (> 5 V) oder zu niedrige (negative) Spannung. Dagegen hilft eine Diode in Serie und ein Widerstand parallel dazu eher wenig, vor allem wenn es bei statischen Entladungen "sehr, sehr viele Volt" zu viel oder zu wenig sind.

  • Von den vier möglichen Fällen bei "CIA-Portpin = Ausgang" ist nur einer "böse":

    d.h. :gruebel :) was ist die beste Lösung ? -> Treiber-IC dahinter ?:nixwiss:

    gepflegt werden: VC20, VIC20, C16, 116, C/plus4, C64, C64 II, SX64, C128, C= PC20-III, C= LT286-C,... :thumbup: + amigos

  • d.h. :gruebel:) was ist die beste Lösung ? -> Treiber-IC dahinter ? :nixwiss:

    Um was genau zu erreichen?

    Der Userport ist bidirektional, und zwar individuell pro Port-Pin. Wenn das erhalten bleiben soll, nützt kein Treiber. Es gibt anscheinend irgendein IC, dessen Name ich vergessen habe, der das bidirektional ohne umschalten kann, ist ein 3,3 V-Teil mit 5 V-Toleranz. Irgendjemand hat das vor kurzem erst hier erwähnt. Das sehe ich als einzige Alternative, wenn die ganze Funktionalität erhalten bleiben soll.

    Ansonsten muss man überlegen - z. B.: Nur Ausgang? Dann Treiber. Dann geht halt maximal der hops.

    usw.

  • Vielen Dank für die ausführliche Erklärung, kinzi ! Ich denke, damit habe ich die Zusammenhänge nun verstanden. :thumbup:

  • d.h. :gruebel:) was ist die beste Lösung ? -> Treiber-IC dahinter ? :nixwiss:

    Um was genau zu erreichen?

    Der Userport ist bidirektional, und zwar individuell pro Port-Pin. Wenn das erhalten bleiben soll, nützt kein Treiber. Es gibt anscheinend irgendein IC, dessen Name ich vergessen habe, der das bidirektional ohne umschalten kann, ist ein 3,3 V-Teil mit 5 V-Toleranz. Irgendjemand hat das vor kurzem erst hier erwähnt. Das sehe ich als einzige Alternative, wenn die ganze Funktionalität erhalten bleiben soll.

    Ansonsten muss man überlegen - z. B.: Nur Ausgang? Dann Treiber. Dann geht halt maximal der hops.

    usw.

    TurboMicha

    Das meinte ich in Bezug auf den 74LS541 - hätte es besser beschreiben sollen was ich meinte 🙈

    kinzi

    Vlt. fällt dir die Bezeichnung des Chips ja noch ein ☺️

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

  • Vlt. fällt dir die Bezeichnung des Chips ja noch ein

    Ich würde gerne sagen, es war ein 74xxnnnn ... mit xx = irgendwas Neues (LVC o. ä.) und nnnn irgendwas Abstruses vierstelliges. Es fällt mir aber nicht mehr ein. Es war MMN auch ein IC, das nur von einem Hersteller gefertigt wird. Mist, ich hätte mir das gleich irgendwie bookmarken sollen.

    Wobei, wenn ich darüber nachdenke ... der müsste sich dann ja selber "locken" ... vielleicht täusche ich mich auch. :nixwiss:

  • Nochmals kurz nachgedacht: Selbst wenn es dieses IC wirklich gibt, ist das Problem nicht weg ... kommt von außen ein Signal, schaltet er ja die Richtung "nach innen" um -> damit arbeitet er wieder gegen den CIA.

    Das Problem ist einfach, dass die Information "Portbit-Richtung" außerhalb des CIAs nicht verfügbar ist. :nixwiss:

  • Das Problem ist einfach, dass die Information "Portbit-Richtung" außerhalb des CIAs nicht verfügbar ist.

    Klingt nach Bedarf nach einem smarten Zwischensockel mit Raspi, der mitlauscht. :bgdev Was für CIA-Ersatz-Lösungen gibt es eigentlich?

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Wo wir hier schon so schön beisammen sind: Könnte man sinnvoll einen Schutz auf Basis von 4066 ICs realisieren? Mit einer einfachen, cleveren Schaltung daneben, die die Schalter öffnet, wenn der Strom einen Schwellwert überschreitet? Oder wäre das ganze in der Praxis zu langsam, um etwas zu bewirken?

  • Mit einer einfachen, cleveren Schaltung daneben, die die Schalter öffnet, wenn der Strom einen Schwellwert überschreitet? Oder wäre das ganze in der Praxis zu langsam, um etwas zu bewirken?

    Das Problem ist: Wenn "von außen" z. B. eine "1" kommt, muss das ja irgendwie an den CIA-Pin. Dieser hängt aber auch am Treiber "von innen" - wie sagst du dem Treiber nun, dass er nicht arbeiten soll? Der weiß ja nicht, kommt die "1" jetzt direkt vom CIA, weil der Ausgang ist, oder kommt es vom Eingangstreiber.

    Ich sehe momentan nicht, wie das clever zu lösen wäre.

  • Das Problem ist einfach, dass die Information "Portbit-Richtung" außerhalb des CIAs nicht verfügbar ist.

    Klingt nach Bedarf nach einem smarten Zwischensockel mit Raspi, der mitlauscht. :bgdev Was für CIA-Ersatz-Lösungen gibt es eigentlich?

    Raspi - is klar 🙄

    Mit einem 74HC688 und bisl Klüngel sollte sich das Datenrichtungsregister auslesen lassen ☺️

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

  • Das Problem ist: Wenn "von außen" z. B. eine "1" kommt, muss das ja irgendwie an den CIA-Pin. Dieser hängt aber auch am Treiber "von innen" - wie sagst du dem Treiber nun, dass er nicht arbeiten soll? Der weiß ja nicht, kommt die "1" jetzt direkt vom CIA, weil der Ausgang ist, oder kommt es vom Eingangstreiber.

    Ich dachte ja an einen analogen Schalter und nicht an einen Bus-Treiber, oder meintest Du den damit?

    Und ob die "1" von innen oder von außen kommt, wäre mir egal, dachte ich, so lange ich sicherstellen kann, dass nicht mehr Strom fließt, als der CIA verkraften kann. Daher der Wunsch nach einer Schaltung (ja, ich stelle mir das sicher zu einfach vor), die den analogen Schalter öffnet, wenn mehr als x mA fließen.

  • DDRB ist Register 3 (%0011).

    RS3 + RS2 + /RS1 + /RS0 + /CS_CIA2 liefert "0", wenn DDRB3 von CIA 2 angesprochen wird.

    1 x 7400

    RS3 damit invertieren -> /RS3

    RS2 damit invertieren -> /RS2

    Die Signale /RS3, /RS2, RS1, RS0, /CS_CIA2 mit Dioden zusammenführen. Liefert also "0", wenn DDRB3 von CIA2 angesprochen. Damit ein Latch (373) ansteuern, D0..D7 übernehmen.

    (RS3..0 entsprechen A3..A0).

    DDRB steht am Ausgang des Latches bereit.

    Aber jetzt brauchst du immer noch acht einzeln umschaltbare, bidirektionale Bus-Treiber ...

  • oder so 🤷‍♂️

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

  • Da sollte auch ein 74138 gehen RS1, RS2, RS3 an A, B, C, RS0 an #G2A, #CS_CIA2 and #G2B, Pin G an Vcc, das Signal kommt dann entweder aus Y5 oder Y1 je nach gewünschter Polarität mit der man das Latch ansteuern möchte.

    Wird nicht auch noch phi2 und r/#w benötigt? Dann evtl. ein 74139?

    So ein bidirektionaler 8-Bit Level-Shifter wäre z.B. ein Bitte melde dich an, um diesen Link zu sehen., es können beide Spannungen 5V sein, eine galvanische Trennung macht der natürlich nicht und gibt es nur als TSSOP oder BGA.

    Oder als ebay, amazon bzw. aliexpress Modul, so ließe er sich dann auch sockeln:
    Bitte melde dich an, um diesen Anhang zu sehen.Bitte melde dich an, um diesen Anhang zu sehen.

  • Mit einem 74HC688 und bisl Klüngel sollte sich das Datenrichtungsregister auslesen lassen ☺️

    wozu so kompliziert?

    ich habe es damals nicht hier so mitbekommen, da ich monatelang nicht online war.
    ich habe grade mit Natas darüber auch geschrieben.

    warum auslesen, einfach parallel, mit in ein normales latch schreiben lassen.
    mit einem 74139 müsste es für adress, r/w, phi2, cs gehen.
    auslesen muss man ja das datenrichtungsregister, da es ja beim schreiben von der cpu, auch im latch mit landet. wenn man es benötigt, dann bekommt man es bei einem read ja aus der VIA oder dem port-baustein, falls man eine schaltung haben möchte auch für VC20, PET, CBM eigentlich alle anderen geräte, auch bei einem apple oder einem atari würde es gehen ;)

    so hat man die datenrichtungsregister schon sofort zum passenden umschalten der einzelnen bits.

    mit einem huckepack oder einem zwischenadapter oder einem unter dem board adapter geht das einfach ;)

    wenn man unter einem board, wie dem pet oder cbm, genug platz hat, dann lötet man direkt unter dem port-baustein 652x oder 682x oder 852x einen ich sockel und man bestückt die schutzschaltung mit den stiften nach oben, so kann man die einfach von unten anstecken und keiner sieht es von oben ;)


    alles andere geht leider nicht. da man ja ohne das datenrichtungsregister nicht automatisch erkennen kann, welches bit oder port in welche richtung da funktioniert.

    so klappt es nicht mit den entsprechenden eingangs und den ausgangs treibern dann auch nicht.

    möchte man eine z.b. user-port lösung haben, mit schutzfunktionen und den entsprechenden eingangs und ausgangs treibern oder eine lösung mit optokopplern oder mit input und output relais, wüsste ich keine andere machbare lösung.

    gruß
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

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

    Einmal editiert, zuletzt von axorp (24. Oktober 2024 um 00:01)

  • DDRB steht am Ausgang des Latches bereit.


    Aber jetzt brauchst du immer noch acht einzeln umschaltbare, bidirektionale Bus-Treiber ...

    ich habe es jetzt erst gelesen, der kinzi hat ja schon damals eine machbare lösung erwähnt.

    klar ist, nun benötigt man weitere schaltungen pro bit, was ich gestern dem Natas gesendet habe, damit man nun die einzelnen pins, in beide richtungen sichern kann, treiben kann, für z.b. leds und für optionale optokoppler oder für meine 15 mA stromrelais usw. da die z.b. 74HCT125 / 126 ja intern schon schutz dioden haben und die dann niederohmiger sind, bei einer überspannung, könnte man sich zusätzliche dioden schutzschaltungen sparen. da die port-bausteine hochohmiger sind und die überspannung sich den niederohmigeren weg zuerst sucht. da man dann eine treiber und eine schutzschaltung für input und output hat und wenn man nun noch serienwiderstände da bei den ein und ausgeängen der 74HCT125 / 126 mit vorsieht, dann würde es schon oft ausreichen. ich würde aber noch zum schutz nicht an dem euro für zusätzliche externe dioden sparen, nach dem motto doppelt hält besser.

    dann hat man eine universelle und sehr sichere lösung zum experimentieren am user-port und an allen anderen ports. so könnte man nun mit dem tastatur oder mit dem joystickport auch noch sachen anstellen, an die noch keiner gedacht hätte.

    gruß
    helmut

    Helmut Proxa @axorp (HP.)

    proxa computer

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

  • Und ob die "1" von innen oder von außen kommt, wäre mir egal, dachte ich, so lange ich sicherstellen kann, dass nicht mehr Strom fließt, als der CIA verkraften kann. Daher der Wunsch nach einer Schaltung (ja, ich stelle mir das sicher zu einfach vor), die den analogen Schalter öffnet, wenn mehr als x mA fließen.

    da ich nicht von anfang an lese, sondern die themen nur rückwärts, so möchte ich dir auch dazu antworten.

    du meinst wohl nur einen schutz, der port pins.

    das geht mit den esd-schutz dioden und den arrays.

    oder wie es commodore später machte mit den zwei dioden, die eine überspannung in die versorgungsspannung dann ableiten.

    da die hersteller erst eine durchlassspannung, bei den 1n4148 von 1v garantieren.

    so würde dann erst ab 6v am port pin die spannnung abgeleitet. 5V die versorgungsspannung und die 1v durchlassspannung (VF). so wäre es heutzutage besser die schottky dioden zu nehmen, die oft nur eine 0,3v durchlassspannung aufweisen.

    möchtest du die io-pins vor überlastung schützen, bringt es aber ohne eine treiberschaltung nichts.
    so habe ich oben und der kinzi vor mir dazu etwas geschrieben, wie es doch geht.

    gruß

    helmut

    edit....die anderen alten fragen davor muss ich wohl nicht lesen. falls es noch ideen oder fragen gibt, dann bitte nun fragen. dann bekomme ich es nun mit.

    Helmut Proxa @axorp (HP.)

    proxa computer

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


  • So ein bidirektionaler 8-Bit Level-Shifter wäre z.B. ein Bitte melde dich an, um diesen Link zu sehen.

    Ist das nicht nur die klassische Version des MOSFET-basierten Shifters plus etwas Flankenverbesserung? Da wär das Problem, dass "auf Masse ziehen" immer gewinnt, aber auch allen Strom versenken muss. Soll heißen, genau vor "hart 5V angelegt" schützt diese Schaltung nicht (oder nur wegen der internen Widerstände, die man aber auch einfacher haben kann). Kann mich aber irren.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.