3.3V Controller am C64 Expansion Port

Es gibt 7 Antworten in diesem Thema, welches 1.488 mal aufgerufen wurde. Der letzte Beitrag (30. Juli 2016 um 17:26) ist von OlsenG.

  • Ich experimentiere derzeit mit dem XMOS XS1 Microcontroller und bin von der Performance sehr angetan.

    Nun möchte ich gerne die 38 Signalleitungen des C64 Expansion Port an den XMOS hängen, der natürlich nicht 5V-tolerant ist. Ich habe also zunächst den Schaltplan um 5(!) TXB0108E erweitert, was mir zwar 40 bidirektionale Levelshifter gibt, aber enorm viel Platz auf der Platine beansprucht. Das kann irgendwie nicht die Lösung sein! Eine andere Methode mittels BSS138 FETs wäre noch verschwenderischer.

    Wie machen das andere Projekte mit 3.3V (oder weniger), FPGAs, CPLDs usw, die am Expansion Port hängen? Spannungsteiler in die eine Richtung und in der anderen Richtung hoffen, dass 3.3V "high genug" sind?

    Ich bin mit den Signalen des C64 nicht sehr vertraut, deshalb will ich auch erstmal nur eine Art Logic Analyzer aus dem XMOS machen (nur lesend auf dem Bus mitlauschen). Bidirektional sollte das Ganze für zukünftige Experimente trotzdem ausgelegt sein.

    Hat jemand einen Tipp? Gibt's ein OpenSource-Projekt, wo man sich da was abschauen kann?

  • Wie machen das andere Projekte mit 3.3V (oder weniger), FPGAs, CPLDs usw, die am Expansion Port hängen? Spannungsteiler in die eine Richtung und in der anderen Richtung hoffen, dass 3.3V "high genug" sind?

    Typischerweise: Levelshifter oder 5V-tolerante 3.3V-Chips wie zB der XC95144XL auf dem Easyflash 3 oder ein CPLD aus der gleichen Familie beim Turbo Chameleon. Bei CMOS-Ausgängen ist ein High eines 3.3V-Chips auf jeden Fall genug um von den TTL-Eingängen im C64 sicher als High erkannt zu werden, aber wenn für die C64->Device-Richtung ein Spannungsteiler im Signalpfad sitzt muss das nicht mehr funktionieren.

    Zitat

    was mir zwar 40 bidirektionale Levelshifter gibt

    Brauchst du wirklich 40 I/O-Pins?

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    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.

  • Brauchst du wirklich 40 I/O-Pins?

    38 wären es, wenn ich alle Leitungen parallel anschließen würde, was maximale Flexibilität für zukünftige Entwicklungen böte. Da es noch kein definiertes Entwicklungsziel gibt und ich erst einmal mehr über die Interna des C64 am lebenden Objekt lernen möchte, werde ich wohl mit Kanonen auf Spatzen schießen müssen. Das bedeutet aber auch den TQFP128 statt den LQFP64 verwenden zu müssen. Klar, ein CPLD könnte als Levelshifter und gleichzeitig Multiplexer/Serializer dienen, so dass ich Pins am Controller sparen kann. Die Möglichkeit werde ich in Betracht ziehen.

  • du brauchst die TXB0108 van Texas Instruments. Es ist ein bidirectioneler buffer IC.

  • Es gibt noch ein anderes Problem: Der C64 arbeitet mit 1 MHz, der geplante Prozessor mit 60 MHz (auf den IO-Ports). Und der C64 hat keinerlei Abschluß (Terminierung) auf den extrem langen Bus-Leitungen. Das geht eigentlich schon bei 1 MHz nicht wirklich stabil (man google auch mal nach 'Bil Herd C128 blue wire'). Wenn man da von außen Signale mit >60 MHz steilen Flanken reinschießt, bekommt man Klingeln, Echos und Überschwinger wie von einer Kirmesorgel...

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • du brauchst die TXB0108 van Texas Instruments. Es ist ein bidirectioneler buffer IC.

    siehe PostBitte melde dich an, um diesen Link zu sehen. :roll:

    Reparaturtipps auf eigene Gefahr! Ihr seid alt genug, um zu wissen, was Ihr tut. :wink:
    Strom macht klein, schwarz und hässlich. :strom:

  • Danke für Eure Antworten. Das mit der Flankensteilheit hab ich noch gar nicht bedacht, guter Einwand. Ich werde drauf achten.