6509 Ersatz mit 6502 für CBM2 und P500 - neue Version !

  • Hallo,

    ich habe den NU6509 (alter Name Fake6509) von Jim Brain nachgebaut. Leider läuft er nicht.

    Der erste Batch den Jim Brain ausgeliefert hat, soll laufen - allerdings hat er wohl auch hautsächlich mit WDC CPUs getestet.

    Ein R6502A ist darin nicht gelaufen...

    Sein zweiter Batch lief nicht - deshalb hat er den Verkauf in seinem Shop gestoppt.


    Ich hab nun also die ganze native 65816 Unterstützung entfernt und einige Fehler im Code bereinigt.

    Die Schaltung und die Platine habe ich etwas abgeändert (SYNC läuft jetzt nicht mehr durch das CPLD).

    Ich habe einen vernünftigen Programmierheader ergänzt.

    Bei mir läuft nun auch ein Rockwell ;)


    Das ganze Design incl. Gerber und Verilog-File ist auf Github https://github.com/vossi1/nu6509


    Der Adapter läuft mit allen CPUs die ich getestet habe (CMOS natürlich ohne illegale Opcodes) - siehe Readme.

    Für WDC Chips muss man die Lötbrücke trennen (default ist gebrückt für non-WDC).


      

  • Hallo,

    nachdem ich nun mehrere Adapter gebaut habe, treten bei einigen leider komische Probleme auf:

    Mit bestimmten CPU's treten Fehler beim IEEE Transfer auf (SDPET+ und SFD1001). Das Directory wird dann ggf. nicht vollständig angezeigt und/oder David Viners Monitor stürzt ab, da es wohl Datenfehler beim Laden gibt. Der Diagnostic Test läuft aber mit allen CPU's fehlerfrei.


    Am besten laufen mos6502A und R6502AP CPU's. Auch R65C02 und CMD's G65sc02 Prozessoren laufen meist (aber ohne illegale Opcodes natürlich).

    Interesssanterweise laufen gerade die mos6502B meist nicht.


    Ich habe aber einen Adapter in dem alle CPU's laufen - warum???

    Eigentlich ist das nur mit den CPLD's zu erklären - werden die auch gefälscht? Sind die denn evtl. langsamer oder haben schlechtere IO-Werte?


    Im P500 gibt es mit sämtlichen CPU's überhaupt keine Probleme!

  • Meine XC9572XL von Mouser sind gekommen. Die Beschriftung sieht ganz anders aus als bei den beiden China Lieferungen - also waren die sicher nicht echt.

    Außerdem ist bei den China CPLDs die Beschriftung nach dem Löten mit Flussmittel und Isopropyl reinigung kaum noch lesbar - beim Original schon!


    Leider treten trotzdem Fehler mit einigen CPUs im 6xx auf.

    Man kann also abschließend sagen das mos6502, R6502AP immer laufen.

    Meine UM6502A von 84 und 86 laufen auch 100%.

    Aber alle CMOS und UM6502A ab 88 machen teilweise Probleme oder versagen fast komplett.


    Im P500 laufen alle CPUs 100%

  • Nach weiteren Tests kann man sagen das alte CMOS (gte 65sc02 bis 86) auch laufen.

    Die gerade erhaltenen Rockwell R65c02-p2 laufen auch - aber da die neu gelabelt sind, weiß ich natürlich nicht ob es wirklich Rockwell sind...?


    Ich habe festgestellt das mit einer kleinen modifizierung auch 6512A sehr gut darin laufen.

    Der R6512 kommt dem 6509 sogar noch näher, da er ebenfalls PHI1 und PHI2 benötigt und er hat sogar noch einen DBE Eingang. Das haben sonst ja nur die CMOS 6502 von WDC. Der gte CMOS 65sc12P-2 läuft ebenfalls.

    Somit hat man also eine NMOS-CPU die auch illegale Opcodes kann und zusätzlich den Databus Enable Eingang besitzt. Nur einen AEC Eingang hat sie nicht - aber der wird in den CBM2-Rechnern ja nicht verwendet.


    Folgende CPUs laufen also nun zu 100%:

    Code
    mos6502A
    mos6502AD
    R6502AP
    UM6502A up to 86 datcode
    gte G65SC02P-2 up to 86 datecode
    
    R6512AP runs with a wire from socket 40 to IC pin 3 (needs the two-phase clock!)
    GTEµ G65SC12P-2 runs with a wire from socket 40 to IC pin 3 (needs the two-phase clock!)

    Im P500 mit 1MHz laufen alle 6502, 6502A, B, C-CPUs die ich habe - also scheint es ein Timing-Problem zu sein, das mit 2MHz nicht alle laufen...


    Für die 6512 Unterstützung hab ich das Layout nun etwas geändert und Platinen bestellt:


  • Hi, ich habe den NU6509 nun noch verbessert.

    Das Layout sowie der Verilog Code wurden optimiert.

    Er ist nun auch mit dem 6512 nutzbar und läuft mit sämtlichen von mir getesten CPUs in 3x 6xx, 2x 7xx und im P500 völlig stabil.

    Github: https://github.com/vossi1/nu6509


    PS: Mit der Proxa7000 läuft er nicht. Bei CMOS 6502 CPUs gibts im BurnIn Test einen TOD-Fehler im CIA - die Ursache suche ich noch - aber vermutlich sind CMOS-CPUs nicht 100% kompatibel - obwohl meine getestete Software auch damit fehlerfrei läuft.


      


    Christian

  • Hallo,

    ich versuche hier gerade, einen nu6509 nachzubauen. Ich scheitere gerade beim Progrmamieren vom Xilinkx. (Mouser-Ware, nicht aus China). Der Xilinx wird extrem heiss, wenn ich die 5 Volt auf pin 6 lege - Pin 21 auf GND, Programmier-Kabel wird erkannt.

    Frage: Die Kondensatoren c1=10 pF, c2=22pF, C3 100nF?

    Darf der 6502 während des Programmierens gesteckt sein, oder nicht?

    Sorry das ich hier Basics abfrage - ist für mich das erste mal mit einem Xilinx..

    Vielen Dank für Ratschläge aller Art!

    Ich brauch den 6509 für einen frisch erstandenen P610 - der halt keine CPU hat ..

  • C1=10uF, c2=22uF, die anderen 100nF. Im Schaltplan stehen die Werte alle in uF!

    Wenn du keine 10/22 da hast kann man natürlich auch z. Bsp. 33 oder 47uF nehmen... - ist nicht kritisch.

    Das sind doch die Kondensatoren am 3,3V Regler!

    Ich schaue beim Anlegen der 5V Spannung immer auf den Strom am Netzteil. Der sollte so bis 70mA max. sein. Je nachdem ob er schon programmiert wurde oder nicht.

    Ich hab auch schon mit 6502 programmiert, schadet nicht.

  • Danke Dir! Ja, werde mal die C's tauschen (ich hab da pF genommen, wie es international bei 2 Ziffern angeblich so ist.. kein Problem. Aber ich tippe auf einen Kurzen beim Einlöten des chips. (Stromverbrauch über 1 A ... da hab ich dann abgedreht..)

    Nochmals vielen Dank!

  • Danke Dir! Ja, werde mal die C's tauschen (ich hab da pF genommen, wie es international bei 2 Ziffern angeblich so ist.. kein Problem. Aber ich tippe auf einen Kurzen beim Einlöten des chips. (Stromverbrauch über 1 A ... da hab ich dann abgedreht..)

    Nochmals vielen Dank!

    In den vielen Plänen sind die Werte in uF. Deshalb ja auch 0.1 bei den 100nF.

    Ich habe das aber auch von Jim Brain übernommen - er hatte ja den NU6509 ursprünglich entwickelt. Nur leider funktionierte seiner nicht zuverlässig...

    In meinen ganz neu erstellten Plänen schreibe ich immer p, n, µ dahinter.


    Ich löte die TQFP immer runderhum mehrmals mit Flussmittel und hinterher schaue ich mit der Lupe und Platine gegen helle Lampe, ob ungewollte Verbindungen da sind. Außerdem streife ich immer alle Pins einmal ab, ob noch einer lose ist.

    Dann lege ich Spannung an uns schaue das es nur zweistellige mA sind und programmiere ihn erst einmal.


    Ich nehme XC3sprog unter Win10 (Parallels) oder dreikt unter OSX openfpgaloader.

    Ich habe einen Digilent Adapter mit FTDI chip.

  • Vielen Dank nochmal! Ja, so löte ich auch - habe jetzt eine PCB, die ich programmieren konnte - habe da dein Video mit der AMD-ISE "nachgeturnt". Ein wenig aufwendig, für einfach mal einen FPGA zu programmieren - aber sollte geklappt haben (Verify war OK).

    Leider fährt der commodore 610 trotzdem nicht hoch - da muss ich jetzt das Oszi ansetzen .. wird eine langwierige Sache, fürchte ich ;)

    -> Danke für den Tipp mit dem XC3sprog