Mockingboard Selbstbau

  • Nicht, dass ich auch nur eine Spur von Ahnung von eurem Problem hätte, aber vielleicht hilft es, einmal hier nachzuschlagen: https://vintageapple.org/apple…he_Apple_II_Plus_1983.pdf

    Auf Seite 16 steht entscheidenter Text:

    "For reasons known only to Apple Computer Corp., the Phi2 clock output of the 6502 is not used. Only Phi0 and Phi1 are available at the peripheral connectors." ...

    • Offizieller Beitrag

    Aber auch zum 6520 steht im Hardware-Manual, daß der Enable Eingang an PHI2 soll.

    Mir leuchtet nicht ein, warum man eine umständlichere Lösung wählt, als das dafür vorgesehene Signal zu verwenden, das doch sowieso zur Verfügung steht.

    Vielleicht hat er die Stelle(n) im Datenbuch bis dahin nicht gelesen, weil er die 6520/6522 (noch) nicht eingesetzt hat und somit auch keine Probleme hatte.

    Kommt schon mal vor, manchmal sieht man den Wald vor lauter Baeumen nicht.

    Daher brauchte er die umstaendliche Loesung gar nicht. Damals gab's diese Loesung wahrscheinlich noch gar nicht.

    Und hinterher ist haette, haette immer leicht gesagt.


    Les dir mal den Footer von yalsi durch. :)

  • Lest euch doch bitte erstmal das Apple-Dokument durch, das ich im Beitrag #20 angehängt habe! Das hat bis jetzt erst einer(!) getan. Dort steht relevanter Text zum 6522.


    Gruß, Ralf

    • Offizieller Beitrag

    Wenn ich das jetzt nochmal lese, werd ich aber nicht schlauer.

    :)

    • Offizieller Beitrag

    Ach?! Du warst das? :)

    Ja, ich kann lesen! :)



    Kurz: ein 6522 verhält sich anders als ein 6520.

    Das kann ja sein. Hier muss man mal das Datenblatt lesen.

    Aber das halte ich nicht für relevant.


    Wenn der Entwickler den Chip damals nicht kannte (warum auch immer) oder nicht auf dem Schirm hatte und das Design für diese ICs nicht vorgesehen ist, muss man eben die iCs weglassen oder muss sich solcher Tricks bedienen.

    Hinterher zu sagen, "ja aber ich hätte..." bringt dann nichts.


    Ich hätte auch bei einigen Designs später Details anders gemacht, bzw bei Redesigns korrigiert. Aber bis dahin ist die Schaltung so wie sie ist und basta.


    Aber ich denke die Gründe für die Trick-Schaltungen sind geklärt. Für mich wenigstens.

  • Mich hat das mit der Verzögerung durch den Kondensator interessiert, und ich habe mal gemessen, welche Verzögerung die drei Gatter mit dem Kondensator und den Pullups bewirken. Zur Erinnerung die Schaltung:



    Gemessen habe ich ca. 74 ns Durchlaufzeit (wobei man noch darüber reden kann, wo genau der Threshold festzulegen ist:



    Wenn ich C9 aus der Schaltung entferne, sehe ich eher sowas wie 58 ns:



    Natürlich kann man sich die Frage stellen, ob ein 74LS74 nicht letztlich billiger ist als die drei Pull-ups und der Kondensator. Wie auch immer, ich fand´s interessant, das mal anfängermäßig zu ergründen :)

    • Offizieller Beitrag

    Wie sieht denn die andere Flanke aus? Gleiche Verzögerung?

    Ich vermute du hast an Pins 13 und 10 gemessen.


    ob ein 74LS74 nicht letztlich billiger ist als die drei Pull-ups und der Kondensator.

    Kosten sind m.E. nicht das Problem.

    Aber bei solchen Verzögerungen verschieben sich beide Flanken, was wieder zu anderen Problemen führen kann.


    Deshalb gefaellt mir die Flip-Flop Lösung besser, hier gibt's klare Verzögerungen, ohne Bauteilestreuung von Kondensatoren etc, und die Verzögerung ist nur auf einer Flanke.

    Mit der Verzögerung und der Ver'und'ung aus Post #20 ist das ein guter Kompromis.



    Wie auch immer, ich fand´s interessant, das mal anfängermäßig zu ergründen :)

    War doch gut. So lernt jeder was.

    Ich wusste gar nicht was Phi2 war.

  • Wie sieht denn die andere Flanke aus? Gleiche Verzögerung?

    Nein, an der anderen Flanke ist die Verzögerung kürzer, aber zu problemen führt das offenbar nicht - Zumindest funktioniert mein Aufbau soweit zuverlässig. Ich bin aber geneigt, für ein eventuelles Platinenlayout dann doch die von Apple vorgeschlagene Schaltung zu benutzen, auch wenn ich dann zwei TTLs brauche. Mal sehen.

  • Nein, an der anderen Flanke ist die Verzögerung kürzer, aber zu problemen führt das offenbar nicht

    Das mag bei Deinem Exemplar so sein. Bedenke, daß die Apple II (nicht IIe) aus einem "Haufen" von 74LS-TTLs aufgebaut sind. Jeder Chip hat Toleranzen und manch ein Kompatibler hatte noch kleine Schaltungsänderungen. Genau hier lagen die Probleme, die man seinerzeit mit AppleBus-Karten hatte. Der bekannteste Problemfall war die M$-Z80-Softcard, wo Tips hrumgereicht wurden, welche 74LS367 man gegen welche von anderen Herstellern tauscht. Da ging's um Laufzeiten im wenige Nanosekundenbereich, die das Timing durcheinanderbrachten.

    • Offizieller Beitrag

    aber zu problemen führt das offenbar nicht

    Seh ich wie RalfK .

    Ich hatte das auch etwas allgemeiener gemeint. Einfach Signale, vor allem ein Takt, verzoegern fuehrt gerne spaeter zu einem Eigentor.

    Hier mag es jetzt funktionieren.


    Aber gerade bei einem verzoegerten Takt bleiben Datenleitungen laenger aktiv (beim lesen in die CPU) oder werden Daten spaeter gesampled (beim schreiben von der CPU). Im ersten Fall koennen Daten kollidieren, im 2. werden Daten gesampled wenn der Bustreiber schon abgeschaltet hat.

  • Die clock-signale an den AY3-891x PSGs werden nur für die Klangerzeugung benutzt. Dafür wird ein sauberes TTL Signal benötigt. Der Aufbau in dem Schaltplan soll verhindern, dass 'digitales Rauschen' durch kommt. Aus meiner Sicht ist das total übertrieben und wurde wohl nur gemacht, weil man noch drei Inverter im TTL-IC übrig hatte.


    Ich hatte mal ein Mockinboard aufgebaut mit einem Inverter für CLK und das hatte auch funktioniert.


    Man kann übrigens ganz gut die zwei PSG mit unterschiedlichen CLK betrieben, per Inverter & Verzögerung auf dem CLK-Signal und so schöne Schwebungseffekte auf den Kanälen erzeugen. Dafür muss man aber leider Stereo opfern. Alternativ kann man auch die Leitungen mit Widerstands-Netzwerk zusammenschalten ohne Stereo zu opfern. Das wird aber dann etwas komplizierter und hört sich auch nicht so toll an.


    Die Verzögerung für den 6522 habe ich tatsächlich nie für meinen 6522-Karten verwendet und es hat trotzdem geklappt.


    Hier ist übrigens das 'Frontend' für das Mockingboard:

    https://archive.org/details/Jo…leIICard/page/n1/mode/2up


    :)


    Nachtrag:

    Für das Lesen von den 6522 Ports kann die Verzögerung nötig sein, das hatte ich nie wirklich geprüft. Da sind die Timings von größerer Bedeutung. Da beim Mockingboard aber fast ausschließlich geschrieben wird, spielt das wohl große keine Rolle.


    Nachtrag2:

    Es ist aber auch möglich, dass ich einfach nur 'Glück' hatte. Scheinbar gibt es unterschiedliche Möglichkeiten das PHI2-Signal des 6522 zu 'simulieren'. Mit der 7474-Schalung von Apple und einer seltsamen 7421-Schalung für eine EPrommer sind mir auch schon Transistor-Schaltungen untergekommen. Ich müsste nochmal in meiner Sammlung nachschauen, was da so alles vorhanden ist...


    -Jonas

  • Ich hatte das Mockingboard auf der falschen Seite des Protoboards aufgebaut:




    .. aber es hat funktioniert. Wir hatten ja diskutiert, ob das aus einem 74LS05 aufgebauten Zeitglied zur Erzeugung von Phi2 besser ist, als die von Apple vorgeschlagene Schaltung mit zwei durch 7 Mhz getaktete D-Flipflops. Im Bezug auf die Bauteilezahl ist das sicher der Fall, aber ich habe dann trotzdem die Apple-Schaltung auf meinem Platinenlayout verwendet. Dummerweise habe ich das gemacht, ohne es vorher auf dem Protoboard zu probieren, und als die Platinen dann da waren, funktionierte nichts. Nach einigem Fehlersuchen habe ich nochmal genau nachgelesen, und der wesentliche Hinweis ist:



    Ich habe dann mal eins der Boards mit zwei 6522A bestückt, und ta-da: Funktioniert bestens. Also konnte ich auch den Rest bestücken:



    Im Sinne der Nachhaltigkeit habe ich das Protoboard wieder leer geräumt:



    Die goldbeschichtete Platine von JLCPCB ist von guter Qualität und freut sich auf das nächste Projekt :)

  • Aber, wenn das gesamte Motherboard ohne PHI2 auskommt, warum braucht ich es ploetzlich auf dieser Karte? Macht fuer mich auch keinen Sinn.

    Wie kann der Apple ohne Phi2 auskommen?


    Irgendwie muss er doch die Zeitspanne raus kriegen, wo Daten stabil sind beim Schreibzugriff?

    Aufgrund der DRAM Konfiguration im A][. Das RAM ist schnell genug, dass es schon im ersten halb Zyklus antwortet und im zweiten Halbzyklus greift die Grafikausgabe/Refresh zu. Dazu ist PHI2 zu langsam.
    Also: in einem Taktzyklus wird 2 mal auf das RAM zugegriffen.
    Die 6522 benötigen aber etwas PHI2 ähnliches. kein Phi2 sondern einen etwas verzögertes Phi1, damit Grafik und Peripherie nicht auf dem Bus kollidieren.
    Manche behaupten, das wäre "bad design" aber ich sage, das ist eine geniale Lösung für RAM Refresh und Grafik.
    Der 6502 wird nicht ausgebremst, wie bei anderen Lösungen.
    Denn oft wird für den Refresh und die Grafikausgabe, der 6502 angehalten (RDY), wodurch er deutlich langsamer wird, das nennt sich cycle stealing DMA.

    Einmal editiert, zuletzt von hubidrei ()

  • Aufgrund der DRAM Konfiguration im A][. Das RAM ist schnell genug, dass es schon im ersten halb Zyklus antwortet und im zweiten Halbzyklus greift die Grafikausgabe/Refresh zu. Dazu ist PHI2 zu langsam.

    Naja, genau das machen praktisch alle Commodore Kisten auch so, inklusive dem aller ersten PET.


    Wenn PHI2 high ist, greift der Prozessor zu und sonst die Grafik Hardware.


    Wenn ich einen IO wie den VIA 6522 habe, und ich möchte dass nur die CPU drauf zugreifen kann, dann muss ich es mit PHI2 verknüpfen.


    Am C64 Modulport kann ich ROM anschließen und wahlweise mit PHI2 verknüpfen oder nicht.

    Im Ultimax Modus kann das ROM dann einen Charakter Set haben oder eben nicht (weil der VIC nicht drauf kommt wenn PHI2 verknüpft wird).




    Der Clou ist eben, wenn ich exakt wissen will, ob und wann die CPU zugreift oder nicht, dann brauche ich den PHI2.

    Es ist ein Mangel, wenn ich dieses Signal nicht zur Verfügung habe.

    • Offizieller Beitrag

    wenn ich exakt wissen will, ob und wann die CPU zugreift oder nicht, dann brauche ich den PHI2.

    Es ist ein Mangel, wenn ich dieses Signal nicht zur Verfügung habe.

    Ganz meine Meinung.

    Wenn man sich das 6502 Datenblatt ansieht, fragt man sich wirklich, was man geraucht haben muß, um das nicht mit PHI2 zu machen.

  • Mit dem 65c22 oder dem 6522A, klappt rs auch ohne die Verzögerung.
    Der 6502A hat das Timing für 2MHz und kommt dadurch mit dem Apple Timing klar.
    Das ganze RAM Timing ist auf 2MHz ausgelegt, damit der abwechselnde Zugriff von Prozessor und Video incl rRefresh klappt ohne die 1MHz CPU auszubremsen.
    Im MC Sonderheft Apple ][ ist das in diversen Artikeln ganz gut erklärt, auch im CT Artikel, "Apple sucht Anschluss 2x6522..." zu finden auf der https://www.applefritter.com/appleii-box/index.htm
    Nachtrag: empfehlenswerte Literatur in English: Titus Larsen Apple Interfacing. https://archive.org/details/ti…us-1981-apple-interfacing

  • Ich hänge hier mal die Gerber-Dateien für das Mockingboard v1 an, sie kommen von ReactiveMicro, sind dort aber nur in einem ZIP als RAR versteckt


    Soweit ich sehen kann, sind das in deinem Anhang auch schon die Gerber für die Version 2.1. Bin da selber neulich drüber gestolpert und habe mich etwas gewundert, weil die tatsächlich im V1 Ordner abgelegt sind.


    Index of /Apple II Items/Hardware/Mockingboard_v1/CAD (reactivemicro.com)


    Die 2.1 hat gegenüber der V1 einige Korrekturen erfahren, als da wären die verbesserte Kanaltrennung (Fehler im Mono Soundeingang) und die korrigierte Signalzuordnung links/rechts. Die aktuell verkaufte 2.2 hat dagegen lediglich marginale Änderungen wie die Vorbelegung beim Stereo Speech Jumper.


    Ich habe mir mal Platinen bestellt und bin gespannt wie die dann laufen.



    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt

  • ich habe heute eine Karte aufgebaut und getestet.


    Funktioniert sowohl mit UM6522 als auch W65C22N.


      


    ein paar nicht so wichtige Bauteile mache ich morgen noch drauf.

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt

  • Dann musst du die Schaltung mal erklaeren.

    Was ist an dem Kondensator C6 clever?

    Ich finde es cleverer, einen 74LS05 zu nehmen, um Phi0 passend zu verzögern, als dafür zwei Flipflops und damit einen Extrabaustein zu benutzen. Zumal im 7405 dann noch drei Inverter frei sind, von denen auf dem Mockingboard einer dazu verwendet wird, A7 zur Auswahl eines der beiden 6522 zu invertieren.

    In einigen DIY Schaltungen, wird dazu einfach ein langsames CMOS Gatter für die Verzögerung benutzt.

  • ich habe heute eine Karte aufgebaut und getestet.


    Funktioniert sowohl mit UM6522 als auch W65C22N.

    Nachtrag:


    cybernesto hat mich auf mb-audit aufmerksam gemacht, das obige Chips nicht mochte.


    Ich habe mir jetzt angeblich "neue" R6522AP von einem Ebay Verkäufer aus Deutschland gekauft, die werden von mb-audit, auch V1.42, ohne Fehler getestet. Es kommt jetzt lediglich in V1.42 noch eine Warnung, die ich noch nicht verstanden habe.


    Sämtliche bisher probierten Programme mit Sound funktionieren aber mit allen drei Chips identisch.

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt