Hallo Besucher, der Thread wurde 104k mal aufgerufen und enthält 651 Antworten

letzter Beitrag von Saskia am

MockA65xx - Universeller MOS 65xx/85xx CPU Ersatz

  • Geiler Scheiß!
    Ich komme nicht nah' genug ran - aber Blind/Burried Vias konntet ihr vermeiden denke ich (ansonsten gehen die PCB Preise durch die Decke) - Routing sieht jedenfalls SEHR gut aus ....


    Danke fürs Bauchpinseln... :)


    War aber auch ein langer Weg bis dahin. Zwischenzeitlich habe ich die Platine auch ein paar Wochen liegengelassen und dann erst (mit neuem Elan) weitergemacht...


    Ja, Blind- und Burried-VIAs wollte ich nicht mit reinnehmen. Wie @androSID schon schrieb, das Teil soll ja später auch bezahlbar werden. Wobei ich im Moment gar nicht wüsste, ob KiCAD derartige VIA-Typen überhaupt anlegen könnte. Man bräuchte dann ja auch weitere Drill-Files, z.B. für Bohrungen, die nur in den inneren Lagen sind. Ob es das bei KiCAD gibt, da wäre ich im Moment überfragt...


    Eine weitere Schwierigkeit hatte ich auch bei den Spannungsversorgungen des FPGAs. Ich lege die Leitungen immer streng von der Quelle über die Kondensatoren (erst gemeinsamer großer C, dann einzelner kleiner C) an die VCC-Pins des FPGA. Nicht nur einfach mechanisch in der Nähe, sondern auch schön elektrisch angebunden. Das bedingt manchmal eine etwas merkwürdige Leitungsführung...


    Und kleiner als 0402 in der Bauform wollten wir auch nicht gehen. Nachher atmen wir die Bauteile beim Bestücken noch ein... <X


    Gruß
    Thomas


    PS: Jetzt erstmal den Restsonntag nutzen und von der DoReCo im HNF ausruhen... :D


  • Danke fürs Bauchpinseln... :)


    War aber auch ein langer Weg bis dahin. Zwischenzeitlich habe ich die Platine auch ein paar Wochen liegengelassen und dann erst (mit neuem Elan) weitergemacht...


    Ist kein Bauchpinseln - ich weiß was Du gemacht hast .....
    Ich habe mal einen Stepper von uns (QFN-0909-05) auf ein Board layouted weches auch PinHeader haben musste - zwischen den Pins hatte ich dann noch 10.7mm .... und faktisch brachte ich den Platz komplett aber auf der Power Seite ... das Teil kann schon ein paar Ampere ..... und irgendwie muss ich die Powerflächen ja auch unterbringen .....



    Ja, Blind- und Burried-VIAs wollte ich nicht mit reinnehmen. Wie @androSID schon schrieb, das Teil soll ja später auch bezahlbar werden. Wobei ich im Moment gar nicht wüsste, ob KiCAD derartige VIA-Typen überhaupt anlegen könnte. Man bräuchte dann ja auch weitere Drill-Files, z.B. für Bohrungen, die nur in den inneren Lagen sind. Ob es das bei KiCAD gibt, da wäre ich im Moment überfragt...


    KiCAD ist nicht das Problem - geht ganz easy ..... der Preis ist was anderes ....
    LCSC macht's nicht und PCB Way wollte für obiges Board (erste Version mit Blind und Burried-Vias - Größe 18x23mm 4-lagen) nur 50€ .... nee .... nicht für 10 ... für 1 Board :-( (also 500€ für 10 Stück)




    Und kleiner als 0402 in der Bauform wollten wir auch nicht gehen. Nachher atmen wir die Bauteile beim Bestücken noch ein... <X


    Macht auch nicht wirklich mehr Spaß ....

  • Das Projekt ist sehr interessant und erinnert mich an die 40pin FPGA Boards „Craignell“ und „GoDIL“. Das Craignell Board war sogar nur minimal größer als ein normaler Dip40. Wie ist denn die Preisvorstellung? Restposten von GoDIL bekommt man für etwa 60€ (spartan 3e 500). Der Craignell ist wesentlich teurer, (>150€) bietet aber auch einiges an RAM und ROM. Beide Boards sind jedoch abgekündigt, weshalb ich diese Aktion sehr gut finde.


    https://www.enterpoint.co.uk/shop/home/25-craignell2.html


    http://www.oho-elektronik.de/

  • Das Projekt ist sehr interessant und erinnert mich an die 40pin FPGA Boards „Craignell“ und „GoDIL“. Das Craignell Board war sogar nur minimal größer als ein normaler Dip40. Wie ist denn die Preisvorstellung? Restposten von GoDIL bekommt man für etwa 60€ (spartan 3e 500). Der Craignell ist wesentlich teurer, (>150€) bietet aber auch einiges an RAM und ROM. Beide Boards sind jedoch abgekündigt, weshalb ich diese Aktion sehr gut finde.


    https://www.enterpoint.co.uk/shop/home/25-craignell2.html


    http://www.oho-elektronik.de/


    Das Craignell war sehr teuer - aber dafür immerhin sehr eingeschränkt: Man konnte VCC+GND nur an bestimmten Pins per Lötbrücke konfigurieren.
    Immerhin: Es war schön kompakt.


    Am ehesten vergleichbar ist das Projekt dann noch mit dem GoDIL40... nur der FPGA und die Platine sind einiges kleiner.
    Dafür wird der Preis aber auch GANZ SICHER unter dem eines GoDIL liegen. :D

  • Das Craignell 2 habe ich mal gekauft (Spartan 3A 700 32Mb ram 16Mb rom) um damit einen Beschleuniger für den 8088 Sockel zu basteln. Wegen Zeitmangels ist daraus nichts geworden. Die GoDil konnte mal leider selten im Sockel lassen, wenn man das Gehäuse schließen wollte oder es kamen Komponenten im Umfeld des Sockels in die Quere und machten die installation ohne Turmbau unmöglich.


    Ich bin daher SEHR gespannt auf deine Lösung.
    Um 50€ wäre schon super.

  • Das Craignell 2 habe ich mal gekauft (Spartan 3A 700 32Mb ram 16Mb rom) um damit einen Beschleuniger für den 8088 Sockel zu basteln. Wegen Zeitmangels ist daraus nichts geworden. Die GoDil konnte mal leider selten im Sockel lassen, wenn man das Gehäuse schließen wollte oder es kamen Komponenten im Umfeld des Sockels in die Quere und machten die installation ohne Turmbau unmöglich.

    Ich hab mir mal irgendwann ein Craignell besorgt und auch 2-3x GoDIL40 hier rumliegen... aber alle nie wirklich richtig benutzt. :rolleyes:


    Für die MockA65xx sind beide Lösungen (Craig+GoDIL) nicht nur physisch einfach unnötig groß und vor allem zu teuer! (Wenn man
    außer acht lässt, daß die Teile abgekündigt sind und nur noch Reste abverkauft werden.)


    Davon abgesehen: Der eigentliche 6502 Core ist ja nicht soooo riesig... da ist ein Spartan3A 700 schon echt Verschwendung.
    Und für den CIA/VIA Ersatz ist ist das Verhältnis noch schlechter: Da benötigt der Basis-Core ja weniger Ressourcen als der 6502.



    Um 50€ wäre schon super.

    Es ist noch zu früh um hier verbindliche Aussagen machen zu können... aber geh' mal zu 99,9% davon aus, das dieser
    Preis für die in Serie produzierten MockA65xx nicht überschritten wird. :)



    Grundsätzlich können (werden?) aber auch größere FPGAs der gleichen Serie bestückt werden - falls doch mal jemand mehr
    Ressourcen braucht um was vernünftiges damit zu machen. :thumbsup:

  • Ganz nett ist auch die Möglichkeit das Board zu vergießen (zB. mit Epoxid) um es vor Umwelteinflüssen zu schützen. Es gab für den Apple2 einen 'Ersatzprozessor names "ZIPCHIP" von 1986, der von der Größe her ähnlich war.


    28623193404_af805a9fcb_z.jpg


    13316967_10154187205850960_1918398533253310479_o.jpg s-l300.jpg


    Für mich ist die physische Abmessung des ZIPCHIP die Referenz. Wenn man mit dem MockA den ZIPCHIP reproduzieren kann (65c02 + Logik + 8k Cache), bin ich zufrieden ;-)


    Welcher FPGA ist denn für die Serie vorgesehen?


    -Jonas

  • MAX10


    65c02 sollte kein Problem darstellen. 8kB RAM auch nicht - sofern der FPGA ausreichend groß ist oder es einer ist (aus der Serie),
    der RAM hat.

    Der 10M04 sollte eigentlich für alle Eventualitäten ausreichen. Der 10M02 ist zwar auch ok, hat aber sehr wenig flash (12kx8) und b-ram (12kx9). Der 10M04 hat mit 156kx8 flash und 21kx9 b-ram genug Ressourcen für 8 bit Rechner. Damit lassen sich größere ROMs, LUT und Cache implementieren. DP-bram ist leider immer sehr knapp, wenn man auf performance optimiert.


    Welche level shifter willst du verwenden? Der Godil hat ja eher Begrenzer verwendet, was auch ganz gut geklappt hat. Beim Apple2 kam es aber manchmal zu Aussetzern mit dem GoDil, wenn man den Bus zu sehr belastet hat (zu viele Erweiterungskarten) und das Netzteil nicht mehr richtig hinterher kam. Auf 5V gab es dann kurze (wenige ns) Einbrüche und Peaks. Der SoftCore hat dann Probleme mit dem Treiben der Adressleitungen (komischerweise A8-A15) bekommen. Auch erschien mir der GoDil etwas träge beim "Wahrnehmen" von Zustandsänderungen, weshalb ich Anfangs Probleme hatte das timing hin zu bekommen um Daten korrekt zu lesen. Irgendwie habe ich die Synchronisation zum Apple II async 2M Takt nie so richtig hin bekommen. Zwar hat später alles geklappt aber optimal war es nicht. Da war immer so ein mulmiges Gefühl, dass da was nicht gut passt.


    Übrigens ein nettes Teil:
    https://github.com/hoglet67/AtomBusMon/wiki


    -Jonas

  • Ja... kenne ich natürlich. Leider nicht ganz kompatibel (ich hatte Probleme in 1-2 Boards mit 6502) - aber das Grundkonzept finde ich gut.


    Da der 10M02SC für die CPU ausreichend ist, werden die größeren Varianten aus Preisgründen nur optional sein. Das Layout ist aber dafür
    ausgelegt (z.B. Verzicht auf Analog-In Sektion).


    Die Levelshifter sind bei mir auch "nur" passiv (i.e. Bus-Switches). Aber träge sollte es nicht sein, da die mit einer Tpd von 250ps ja nicht wirklich
    auffällig langsam sind. Auf dem ersten Prototyp hatte ich noch "echte" aktive 1, 4 und 8bit bidrektionale Level-Shifter verbaut.
    Die waren so gruppiert/ausgewählt, daß ich immer Pins, die je nach ausgewählter CPU Konfiguration nur als Eingang, nur als Ausgang oder bidirektional
    fungierten, richtig umschalten konnte. Das ganze war/ist jedoch ein Platz- und Bestückungsmonster und auch preislich völlig unattraktiv.
    Das ganze Konstrukt brach immer dann zusammen, wenn ich von der Ursprungsplanung abweichendes implementieren wollte. -> :poop:


    Der DCDC-Wandler auf der MockA65xx ist bis 800mA belastbar... und derzeit spuckt mir der PowerAnalyzer für den FPGA
    einen Bedarf von nur ca. 100mA (~340mW) aus. Von der Seite sollte also noch Luft sein.
    Mal schauen was die Stütz-/Pufferkondis dazu sagen, wenn solche Lasten am System hängen. :D


    Warum das Timing bei Dir problematisch war kann ich freilich nicht sagen/nur spekulieren.
    Welchen 6502-Core hast Du denn verwendet dafür?


    Der 10M04 sollte eigentlich für alle Eventualitäten ausreichen. Der 10M02 ist zwar auch ok, hat aber sehr wenig flash (12kx8) und b-ram (12kx9). Der 10M04 hat mit 156kx8 flash und 21kx9 b-ram genug Ressourcen für 8 bit Rechner. Damit lassen sich größere ROMs, LUT und Cache implementieren. DP-bram ist leider immer sehr knapp, wenn man auf performance optimiert.


    Bei der Gelegenheit möchte ich noch ein weiteres Feature erwähnen, daß ich für die MockA65xx Variante mit etwas
    mehr RAM o. Flash angedacht habe:


    • RAM-/ROM-Overlay


    Was so komisch klingt ist aber nix anderes als ein in der CPU gespeichertes ROM/Kernal o. kleine Patches, die in den
    Addressraum eingeblendet werden können. Eine "Poor man's MMU" sozusagen. :roll2:


    Beispiel wäre: Einbau Jiffy-DOS in den C16 (sofern es mal stabil wird?!) ohne das Original-ROM entfernen zu müssen.
    Oder die Bug-Fixes im Basic des VC20 "drin zu haben" - ohne die Original-ROMs rauszuwerfen.
    Aber auch ein komplettes Spielmodul/Erweiterungscartridge könnte man damit einbauen... Kiosk-mode?!


    Das ganze stößt natürlich bei Systemen mit etwas aufwendigerem Banking (z.B. C64) an gewisse Grenzen; aber grundsätzlich
    geht es: Beim entwicklen des ersten Prototyps habe ich mir den Einbau des Jiffy-DOS in eins der Testsysteme auf diese Weise
    bereits erspart. Oder die Farben der Einschaltmeldung on-the-fly gepatcht um nicht an Augenkrebs zu erkranken.


    Aber trotzdem ganz wichtig: Das sind derzeit nur angedachte, keine zugesicherten Features! :zeig:
    Zum Beispiel habe ich mir noch keine Gedanken gemacht, wie man die Patches/ROMs zur Laufzeit
    komfortabel einspielen kann etc.


    Bei fehlendem Interesse werde ich mir die Arbeit dafür eher sparen. ;) Feature-Creep lässt grüßen!

  • Bei fehlendem Interesse werde ich mir die Arbeit dafür eher sparen. ;) Feature-Creep lässt grüßen!

    Alles ist besser als die derzeitige Situation, wo man tief in die Tasche greifen muss um bereits abgekündigte Lagerware zu kaufen.


    Auch ein 10M02 hat genug Ram/Flash für die meisten Sachen. Mit 12k ram kann ich immerhin mind. 4k cache realisieren. Beim Apple II(+) muss man nur auf die oberen 16k achten bzw. man cached einfach nur die unteren 48k. Beim Apple //e sieht die Sache ähnlich wie beim C64 anders aus. Das Bank-switching ist relativ complex und es gibt biz zu 16Mb Erweiterungsspeicher, die alle eingemapped werden können. Das ganze im Cache abzubilden ist schon eine Aufgabe. Der schon erwähnte ZIPCHIP hat das in einem Gate-Array gelöst (um die 50x50 = 2500 Gatter) und 8K tag-ram sowie 8K cache-ram genutzt. Ich schätze, dass sich eine abgespeckt Version mit 4k cache auch auf dem 10M02 realisieren lässt. Manchmal sind es ja die Einschränkungen, die einen reizen :-)


    -Jonas

  • Aus meiner Sicht machen zwei Varianten Sinn: Eine mit 10M02 und eine mit 10M08. Der 10M16 ist IMHO
    unverschämt teuer. Aber davon abgesehen: Die GerberDaten etc. sind ja offen... kann also jeder selbst
    noch produzieren, wenn er Bedarf hat oder Änderungen machen möchte. ^^

  • Kurzer Zwischenstand:


    Ich wollte zwar die ersten Prototypen selbst bestücken, aber mein Dampfphasen-Reflow-Ofen hat noch etwas Lieferverzögerung.
    Daher sind nun erstmal 4 Prototyp-Platinen inkl. Material beim Bestücker... nun hoffe ich, daß der bald Platz hat in seiner Pipeline.


    Sobald genaueres bekannt ist, poste ich es natürlich.

  • Kurze Info... ich warte immer noch auf die Lieferung des *deutschen* Fertigers/Bestückers.


    Nur so als "Schmankerl":


    2 Wochen nach Beistellung der Teile fällt denen auf, das der Stencil ein Problem hat*... sollte 2 Tage
    Verzögerung bedeuten. Inzw. sind wieder 1,5 Wochen vergangen und das Paket ist angeblich unterwegs!



    Derzeit überzeugt nur der Preis - nicht die Termintreue! :thumbdown:



    * Platinenhersteller hat die Balls (ALLE!) des FPGA einfach weggelassen; wurden fälschlicherweise
    für Passermarken gehalten! :cursing: 169 Passermarken? WTF!

  • Sicher doch:


    image2.jpeg


    Man sieht die Pads der 4 Level-Shiffer... aber der FPGA in der Mitte fehlt.


    Wegen der leicht höheren Anforderungen und geringen Stückzahl habe ich einen Hersteller mit deutscher Niederlassung genommen.
    Der Stencil-Ersatz war auch 2 Tage später da - obwohl ich darauf verzichten wollte: Der Bestücker hat eigenen nachproduziert.


    PS: Platinen sind GERADE angekommen... heute Abend (sobald ich Zeit hatte die Lieferung zu sichten) gibt's Update. :D