Entwicklung Platine mit Sprint-Layout -- C64 Cartridge RAM-ROM

  • Im Datenblatt des GAL steht, dass man I und IO Pins unbeschaltet lassen darf, auch CLk und OE, wenn man sie im Jedec nicht verwendet.

    Stimmt, wenn Du ein modernes Atmel ATF16V8 verwendest, dann haben die interne Pullups. Die älteren GALs, z.B. Lattice GAL16V8..., haben das aber nicht; deren Datenblatt empfiehlt explizit, die unbenutzten Eingänge extern auf einen definierten Pegel zu legen. Würde ich also machen, um mit allen GAL-Varianten kompatibel zu sein -- falls jemand noch was älteres aus der Bastelkiste verarbeiten möchte.

  • dann kommt das /Write-Signal vom C64, und das GAL versucht hektisch, das /CE wieder wegzunehmen?

    Stimmt, daran habe ich gar nicht gedacht.

    Wenn das R/W sehr viel später kommt als das CS könnte es möglicherweise zu ungewollten Write kommen.


    Der Prototyp funktioniert zwar ...

    ... jedoch zb. die Expert Cart schaltet das RW über ein OR Gatter.



    Hmmm, R/W über das GAL ... ich werde das nochmal behirnen ...



    Danke für den Tip!

  • Ah, OK. Du würdest also das /CE für das RAM setzen, aber nur bei Lesezyklen (wenn der Schreibschutz gesetzt ist). Passt das vom Timing her? Nicht dass man /CE schon gesetzt hat, dann kommt das /Write-Signal vom C64, und das GAL versucht hektisch, das /CE wieder wegzunehmen?

    Okay, also in diesem Fall ist das kein Problem.

    Das R/W Signal kann von der CPU kommen und muss nicht vom GAL sein.


    Beim C64 ist für die zwei 8KB ROM Plätze (HiROM, LoROM) "nur lesen" vorgesehen.

    Während eines Schreibzugriff sind diese Signale inaktiv.


    In den beiden IO Bereichen kann man von Natur aus lesen und schreiben, da kümmert sich die Logik im C64 um die Signale.


    Damit ich überhaupt voll ins RAM schreiben kann musste ich einen Trick anwenden, also die Adresse und PHI2 und R/W selbst auswerten.



    Deshalb nehme ich HiROM und LoROM nur zum lesen des RAM. (wenn die Signale kommen, dann kommt auch kein /WRITE mehr).


    Zum schreiben verwende ich wie gesagt PHI und R/W -- aber in dem Fall wir NUR geschrieben (das lesen geht nur über HiROM und LoROM).

  • Hier nochmal ein Vorschlag für die Führung der Versorgungsspannungen und die Platzierung der Kondensatoren.


    Wenn Du die Platine insgesamt nicht breiter machen möchtest als den Port-Stecker, würde ich die Kondensatoren für GAL und Register etwas unkonventionell zusammen zwischen den ICs platzieren. So bleibt links eine Rasterbreite Platz für breite GND und +5V-Leitungen. Weil zwischen GAL und Register diverse Datenleitungen laufen müssen, sind die Kondensatoren nach außen versetzt.


    (Der Port-Connector ist hier durch eine Pfostenreihe angedeutet, weil ich den richtigen Footprint nicht da hatte.)


  • Hier nochmal ein Vorschlag für die Führung der Versorgungsspannungen und die Platzierung der Kondensatoren.

    Ja ich hab gestern schon fleissig daran geschraubt.

    Auch an der GND des SRAM, die hab ich allerdings unter dem SRAM gelegt.


    Ich habe auch mit GND Flächen herum gespielt.


    Da gibt es ja auch eine Option, wo man dann alles voll Kupferfläche hat, hab ich mal aktiviert.

    Allerdings habe ich es nicht geschafft diese Flächen nutzbar zu machen zb. als GND???

    Geht das gar nicht oder bin ich nur zu blöd dafür?

  • Sollte aber gehen, KiCad und Eagle bieten das an. Gibt es eine Option der Fläche ein Signal zuzuordnen?

    Ich hab das noch nicht so erforscht.


    Aber heute nach Dienst werde ich mal danach schauen.

  • Wie Sprint Layout Masseflächen handhabt, können die Sprint-Kenner hoffentlich noch erläutern. Nur noch ein allgemeiner Hinweis: Kupferflächen stehen zu lassen, die nicht an einem definierten Potential (Masse oder Versorgungsspannung) angeschlossen sind, gilt allgemein als ungünstig. Solche "im Wind flatternden" Kupferflächen können evtl. die EMV-Eigenschaften der Platine verschlechtern, indem sie als Sendeantennen wirken für kapazitiv eingekoppelte Signale von benachbarten Leiterbahnen.


    Es ist üblich, dann trotzdem in allen ungenutzten Flächen das Kupfer stehen zu lassen und durch großzügig verteilte Vias die Flächen auf Ober- wie Unterseite zu verbinden -- bis überall GND angeschlossen ist. Bei Kicad, Eagle & Co. geht das so, dass man auf beiden Seiten jeweils einen durchgehenden "Ground Pour" über die ganze Platinenfläche definiert. (In Eagle muss man dabei explizit wählen, dass man "Orphans" -- also verwaiste, nicht angeschlossene Flächen -- nicht behalten will; bei Kicad ist da immer so.) Dann lassen die Programme bei Ausrechnen der Kupferflächen die Bereiche zunächst frei, die nicht an eine erreichbare GND-Leiterbahn angeschlossen werden können. Man fügt dann Vias hinzu, bis überall nicht-verwaiste Kupferflächen auf GND-Potential entstehen.


    Vielleicht kann Sprint Layout das ja in ähnlicher Weise. Diese Vias würde ich aber erst ganz am Schluss hinzufügen, wenn die Leiterbahnen alle final verlegt sind; sonst sind einem die Vias dabei dauernd im Weg.

  • Ah, in der Hilfe ist es beschrieben.


    Das Ding heißt "AutoMasse".

    Wenn man ein Objekt mit der Automasse verbinden will, dann setzt man einfach die "Freistanzung" auf den Wert Null.


    Dann kann man auch noch die verbundenen Lötaugen speziell anpassen, damit es thermisch nicht direkt mit der großen Masse verbunden ist.

    So kann man später leichter löten ...

  • Es ist üblich, dann trotzdem in allen ungenutzten Flächen das Kupfer stehen zu lassen


    Die Frage ist aber, warum das "üblich" ist, und ob es Vor- oder Nachteile bringt.


    Beim zuhause selbst Ätzen ist mir das klar, je mehr Kupfer stehen bleibt, umso länger hält mein Ätzmittel.


    Beim Auftragsfertiger ist mir das schon nicht mehr klar, da das Fertigungsverfahren ganz anders sein kann. "Üblich" ist hier bei den Außenlagen: dünne Cu-Auflage von etwa 17µm, auf die dann per mehrstufigem galvanischen Verfahren teilweise geätzt, und teilweise auf 35µm (üblicherweise) aufgekupfert und durchkontaktiert wird. Was jetzt der Verbrauch an Ätzmittel, Lacken, Entwicklern, sowie Zinn und Kupferelektrolyt sowie Zinnstripper ist, keine Ahnung.


    Deshalb: ich mache meine Leiterbilder oft so dass es mir gefällt und mache keine Faxen mit Masseflächen und dergleichen - zumal das beim Löten auch gerne mal Probleme macht, da es die Hitze von der Lötstelle wegzieht.

    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

  • Die Frage ist aber, warum das "üblich" ist, und ob es Vor- oder Nachteile bringt.

    Das ist 'ne berechtigte Frage, klar. Drei Punkte fallen mir ein:

    • Da, wo sowieso Masseleitungen sind, dürfen die gern so breit und damit niederohmig wie möglich gemacht werden durch die zusätzlichen Masseflächen. (Das würde allerdings nicht zwingend dafür sprechen, auch die "Orphans" mit anzuschließen und per Vias zu verbinden. Ein bisschen mehr Leitfähigkeit bringen die dann wahrscheinlich auch noch, aber nicht wahnsinnig viel.)
    • Die Masseflächen reduzieren die Abstrahlung der benachbarten Leiterbahnen und verbessern damit die EMV-Eigenschaften des Boards. (Was ich zugegebenermaßen nie gemessen habe und nur als Faustregel hinnehme.)
    • Wenn auf einer Seite durchgehende Kupferflächen sind (z.B. als Kühlflächen), ist es wünschenswert, auch auf der anderen Platinenseite Kupfer zu haben, damit die Platine sich nicht womöglich verzieht.

    Dazu kommt aber, wenn ich ehrlich bin, der Punkt "Sehgewohnheiten". Ich finde, eine Platine mit durchgehenden Kupferflächen sieht einfach besser aus. ;)

  • Dazu kommt aber, wenn ich ehrlich bin, der Punkt "Sehgewohnheiten". Ich finde, eine Platine mit durchgehenden Kupferflächen sieht einfach besser aus. ;)

    Naja, vor lauter Lötschutzlack sieht man ja fast kein Kupfer mehr ... :D

  • Hat es eigentlich Vorteile, vom Platz her, wenn man PLCC nimmt statt DIL?



    Den ATF1504 gibt es eh nur in PLCC.

    Aber das EPROM gibt es auch in PLCC.


    Zumindestens die 29F Typen.

    Und die könnte man ja sogar direkt vom C64 aus programmieren.



    Die UC2 wird wohl so aussehen:

    • ein 29F040 (512KB Flash)
    • ein 512KB SRAM
    • ein ATF1504
    • drei 100nF
    • Offizieller Beitrag

    Hat es eigentlich Vorteile, vom Platz her, wenn man PLCC nimmt statt DIL?

    PLCC ist deutlich kleiner, aber bei der Entscheidung muss man vorher klären, ob PLCC eingelötet oder gesockelt (der Sockel schluckt viel Platz) - und ob das Routing bei PLCC zum Rest passt. Wenn z.B. die Adress- oder Datenleitungen bei DIL alle parallel zum Prozessor / Bustreiber liegen, dann kann DIL sinnviller sein...

  • Naja eigentlich nur gesockelt, dachte ich.

    PLCC kann man doch gar nicht löten?

    Dafür gibt es doch die anderen Formen, LQFP oder wie das heißt?



    Ich sehe gerade, es gäbe auch das SRAM als PLCC.

    Das sieht sicher schön aus, drei PLCC auf der Platine ...

  • Bei den guten alten DIP-Packages ist es halt nett, dass man sich noch nachträglich entscheiden kann, ob man Sockel einsetzen will oder nicht. Das geht bei PLCC eher nicht, da muss man sich für SMD oder Through-Hole-Footprint entscheiden.


    Den ATF1504 kannst Du ja via JTAG auch in der Schaltung programmieren; den kann man also durchaus einlöten. Dann würde ich aber gleich auf das TQFP-Package gehen, denke ich. Das ist nochmal kleiner, und lässt sich über "Drag Soldering" gut löten.


    Das RAM kann man offenbar ohne Weiteres einlöten -- das EPROM aber eher nicht. Da bleibt wohl nur PLCC oder DIP im Sockel?

  • Naja, vor lauter Lötschutzlack sieht man ja fast kein Kupfer mehr ... :D

    Durch den üblichen grünen Lötstopplack (und auch roten oder blauen) sieht man sehr kontrastreich, wo Kupfer ist und wo das schiere FR4-Material. Das ist zum Nachverfolgen der Leiterbahnen bei der Fehlersuche ja auch wünschenswert. Bei schwarzem oder weißem Stopplack sieht das anders aus; die kenne ich nur in ziemlich stark deckend. Sieht cool aus, ist aber bei Problemen in der Schaltung eher lästig.

  • Das ist nochmal kleiner, und lässt sich über "Drag Soldering" gut löten.

    SMD ist mir einfach zu klein.

    Maximal 2 oder 3 Pole, das kann ich noch.


    Wenn es die größeren sind, gehen noch maximal die kleinen Dinger mit 8 Beinchen.

  • Das sieht doch gut aus! Und wenn noch irgendwo eine Macke drauf ist: Durch Patch-Drähte fließt der Strom genau so gut . 8)


    Der Zeichensatz im Bestückungsaufdruck (Pin-Namen) könnte etwas klein sein; mal sehen, ob man das noch lesen kann. Aber das täte der Funktion ja nun wirklich keinen Abbruch... Die Fertiger können übrigens alle auch auf der Unterseite einen Bestückungsaufdruck machen, ohne Aufpreis. Da hättest Du noch reichlich Platz für Deinen Namen, Deine Web-URL, eine Versionsnummer der Platine etc. Finde ich ganz empfehlenswert, falls Du mal Platinen weitergibst.


    Und, hast Du Dir den teuren Express-Versand geleistet oder bist Du geduldig? Beim schnellen Versand schmerzt das Missverhältnis von Versandkosten zu Platinenpreis, beim langsamen das Missverhältnis von Fertigungs- zu Transportzeit... :/

  • Mit Aisler bin ich nicht recht glücklich geworden. Anfangs waren sie bei kleinen Boards preislich noch recht attraktiv (insbesondere wenn man die Kosten für einen halbwegs schnellen Versand aus China mit gegenrechnet). Aber inzwischen haben sie die Preise ordentlich erhöht. Und für diese Preise, bei gleichzeitig gegenüber der chinesischen Konkurrenz deutlich reduzierten Möglichkeiten, ging mir dann doch zu viel schief bei Aisler:


    Bohrer größer als spezifiziert gewählt; Platine mit "Mousebites" zum Selbst-Abschleifen statt der bestellten und online angezeigten äußeren Kontur (und einen Mousebite auch noch mitten auf eine nicht-gerade Kante gelegt); Konturfräsung völlig aus dem Ruder und ins Kupfer gelaufen. Das waren drei verschiedene Bestellungen bei Aisler... Und auf Antworten auf Email-Nachfragen oder Mängelanzeigen konnte man sich leider auch nicht verlassen.


    Na, Diddl hat offenbar nicht dort bestellt. Sonst wäre sein Preview nicht blau, denn das kann Aisler ja nicht...

  • Dass sie bei nicht rechtwinkligen Layouts einen Frame einfügen, der mit Mousebites verbunden wurde, steht aber auch da. (Ich interpretiere das "nicht gerade Kante" mal als das.


    Das war eine Platine im DIP-Format, die an der einen Schmalseite eine kleine halbrunde Kerbe hatte (Kennzeichnung für die Pin-1-Seite). Das hätte man problemlos direkt einspannen können, denke ich; die chinesischen Fertiger können das jedenfalls. Aisler hat nicht nur Mousebites drangelassen, sondern einen davon mitten in diese Kerbe gesetzt -- so dass ich die liebevoll von Hand ausfeilen durfte, bei diversen Exemplaren.


    Die Platine war übrigens auch größer als die Mindestmaße, unter denen lt. Specs ein Frame hinzugefügt wird. Und wenn die Aislers denn Mousebites machen wollen, könnten sie das ja vielleicht in ihrem "garantierten Preview" anzeigen?


    Ich kann nicht verhehlen, dass ich enttäuscht bin von Aisler. Schade; ich wollte die wirklich mögen, weil ich einen europäischen Lieferanten für meine Hobby-Projekte gut fände. Aber das Preis/Flexibilität/Ärger-Verhältnis hat für mich nicht gepasst.

  • Na mal schauen. Preislich fand ich das Budget 2 Layer schon ok. 3 Platinen für 10 Euro inkl. Versand ist eigentlich ganz ok und nur bei den allerbilligsten Versandoptionen der Chinaklasse teurer. Und ich bin schon zwei so richtig auf die F. geflogen mit Versand. Einmal PCBway was nach 42 Tagen noch nicht ankam und einmal einen teureren Versand genommen (cant remember wo und wie) und dann auch noch fett Tax und Taxerhebungsgebühr zahlen müssen dass die 6 Euro, die DHL sich krallt aussahen wie billigste Almosen. Das waren am Ende 30 Euro Versand oder so.

  • hast Du Dir den teuren Express-Versand geleistet oder bist Du geduldig?

    So eine Mittelmass, kein DHL Express sondern nur DHL, angeblich 6 Tage, schaun wir mal ... :)





    Das waren am Ende 30 Euro Versand oder so.

    Es gibt teurere Hobbies ... ;)


    Meine Nichte hat erzählt, einmal ausgehen und 150 Mücken sind weg.

    Und die Jugend macht das mindestens 8 mal im Monat.

    Da gehen sich sehr viele Platinen aus.

    So viele kann ich gar nicht routen ... :D