Hello, Guest the thread was viewed6.9k times and contains 63 replies

last post from Matthias at the

FREE MicroSD IEC (DIP/SMD)

  • Wie schon erwähnt arbeite ich an einer "Free MicroSD IEC" Firmware. Das kommt gut voran. Nebenbei habe ich auch gleich ein paar neue Platinen entwickelt. Jeweils in DIP Version und SMD Version. Zu sehen sind bisher nur die speziellen Versionen für das 64 Tuning Board, die anderen Versionen mit MicroSD Slot auf der Platine reiche ich nach (ist nur eine kleine Änderung).


    Die SMD Platinen Version wird schon bestückt sein (ausser natürlich die Header,), da ich keine Lust habe SMD Bauteile zu löten :D . Platinen-Größe: 30x20mm


    Wie immer wird man die Firmware ganz einfach über die Arduino IDE programmieren und hochladen können.


    Wenn ich alles fertig habe, schreibe ich es hier rein.

  • Sehr cool! :thumbup:


    Die "nicht Tuning-Board"-Variante ist mit MicroSD-Slot? Wird es die auch wie für das TB in Header-Pin Version geben?

    Ich habe bspw. noch MicroSD Platinen, die ich dann verwenden könnte. So wäre man auch beim Einbau etwas entspannter, wenn man das intern einflanschen möchte.


    Wunschvorstellung wäre, wenn man die Möglichkeit hat, MicroSD oder Standard-SD verwenden zu können.

    Da gibt es zwar etwas mit der Spannung zu beachten, meine ich, weil die SD Platinchen wohl nicht selbstständig auf 3.3V runterregeln, die MicroSD aber schon, aber träumen darf man ja.

    :D



    Sehr schön, tolle Projekte!

    Danke

  • Da "IEC" als Busbezeichnung eh falsch ist, kannst du es gleich richtig nennen zur Abgrenzung, z. B. "SD2CBM". ;-) ...


    Bin schon gespannt, das nachzubauen. Hast du einen Schaltplan oder wenigstens eine dokumentierte Pinbelegung? Und - keine Kritik - schade, dass kein 7406 drauf ist, sonst wäre es von Anfang an "busfähig". Möglicherweise wir das sonst intern zum Showstopper.


    Cooles Ding jedenfalls. :thumbup:


    [EDIT]


    Bzw. wenn du die Software nicht umfrickeln willst, kannst du einen 7407 nehmen, der invertiert nicht.


    [/EDIT]


    [EDIT #2]


    Und wenn du dann schon den 7406/7407 drauf hast, hast du damit gleich den Level-Shifter für den CBM-Bus. Damit kannst du den MEGA32 mit 3,3 V laufen lassen und sparst dir das Widerstandgefrickel in Richtung SD-Karte. Gut, ein 3,3 V-Regler muss dann drauf.


    [/EDIT #2]

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


    Edited 2 times, last by kinzi ().

  • Da "IEC" als Busbezeichnung eh falsch ist, kannst du es gleich richtig nennen zur Abgrenzung, z. B. "SD2CBM". ;-) ...

    hallo kinzi,


    ja der begriff iec wurde zuerst von commodore nicht benutzt. ich habe ihn von anfang an aber benutzt.
    bei dem pet. weil ich ieee488 nicht so gut aussprechen konnte.

    die ersten pets wurden komplett ohne anleitung ausgeliefert. die eigentliche anleitung kam erst monate später.
    zuvor gab es eine deutsche kurzanleitung. die englischen unterlagen wurden nie mitgeliefert.
    commodore wollte den pet nur mit den deutschen anleitungen ausliefern.


    nach ein paar monaten, bekam ich eine vorab kopie von der pet kurzanleitung.
    und commodore rief mich an, wass ich davon halte. und sie fragten mich selbst über den ieee488 bus aus.
    da ich mich schon damit beschäftigt habe. ich sprach da aber nur von dem iec bus, weil ich es so besser ausprechen konnte.
    und erklärte ihnen dass es eine internationale iec-625 norm gibt und alles ist genauso wie bei der ieee488 norm,
    nur der stecker ist anders.

    als wir dann, die ersten pet kurzanleitungen bekommen haben, habe ich mich gefreut, dass da der begriff iec benutzt wurde :)
    die kam noch wochen vor der eigentlichen bedienungsanleitung.

    zuerst hat commodore, für den seriellen bus den begriff cbm-bus benutzt, besonders immer commodore amerika.
    später stellte ich fest, dass auch amerika dann irgendwann den begriff iec-bus benutzt hat, für die serielle version.

    ich benutzte den begriff iec, ab dem pet, für alle versionen. wenn man die interface bestellt hat,

    war es immer klar, weil der rechner mit angegeben wurde.

    so wäre cbm-bus schon ok. aber dieser begriff wurde nur kurze zeit, in amerika benutzt.
    und man könnte ihn mit dem paralellem bus, für die cbm geräte verwechseln.
    was ja ganz was anderes ist.

    ich würde M2IEC vorschlagen. M = Memory oder ja auch für den urheber Matthias. oder ML2IEC.
    wenn schon free, dann sollte wenigsten der Matthias so geehrt werden, für seine viele arbeit.

    gruß
    helmut

  • schade, dass kein 7406 drauf ist, sonst wäre es von Anfang an "busfähig". Möglicherweise wir das sonst intern zum Showstopper.

    ja, so sehe ich es auch.

    hallo Matthias ,
    hast du meine schaltung, die ich dir damals gesendet habe angesehen?
    die version3, damit man einen 7406, 74ls06, 7407, 74ls07, 7416, 74ls16, 74ls17 oder einen 74ls17 da benutzen kann.
    durch meine schaltung, musst du nicht entscheiden ob invertieren oder nicht, die software wird ja,
    für nichtinvertierend erstellt. durch die hintereinander schaltung zweier invertierenden treiber ist es dann immer korrekt.

    so kann man dann immer, mit dem bestücken was man da gerade hat oder günstig bekommt.

    im notfall, wenn man die nicht hat, auch einen 74xx05, besonders die AX, S und F versionen.
    die können dann wenigstens 4 geräte am bus treiben.
    aber selbst mit einem 74ls05, ist der bus für ein zweitgerät dann geeignte.
    wenn gesteckt, dann kann man ihn später tauschen, gegen die besser geeigneten.

    Bzw. wenn du die Software nicht umfrickeln willst, kannst du einen 7407 nehmen, der invertiert nicht.

    ja, durch meinen schaltungsvorschlag ist es dann egal. was man da sogar nimmt.

    Und wenn du dann schon den 7406/7407 drauf hast, hast du damit gleich den Level-Shifter für den CBM-Bus. Damit kannst du den MEGA32 mit 3,3 V laufen lassen und sparst dir das Widerstandgefrickel in Richtung SD-Karte. Gut, ein 3,3 V-Regler muss dann drauf.

    ja, so würde ich es auch machen. aber die widerstände sind günstiger als ein spannungsregler.
    aber wie du geschrieben hast. man kann es dann so oder so bestücken.
    die widerstände könnte man einfach, mit einem lötjumper, für die regler version, brücken.

    gruß
    helmut

  • Mit den üblichen Typen wird das nicht funktionieren, dazu braucht man dann einen 74LCX06. Dessen Eingänge sind 5V-tolerant und der funktioniert mit 3.3V. Die Kehrseite: relativ teuer, nicht so leicht zu bekommen und nur SMD.

  • hallo matthias,

    hier nochmal meine zeichnung. von damals.

    oben habe ich es so gezeichnet, wie es von commodore mit den drei ics gelöst wurde.

    dann in der mitte habe ich überlegt, wie man es machen kann mit weniger ics.

    und unten ist es endgültig, mit nur einem ic gelöst. dann mit der hintereinander schaltung der treiber.
    so ist es egal, ob invertieren oder nichtinvertieren die sind. somit sind dann alle möglich.
    ohne dass die software dafür angepasst werden muss.

    ich habe da auch die atn ack (atn a) vorgesehen, so wird der bus, in echtzeit, in nano sekunden sofort blokiert.
    so hat man keine timing probleme mehr, wenn man, mit dem microcontroller intern beschäftigt ist.
    man muss ja nur immer die atn a leitung setzen, wenn man nicht gestört werden möchte.
    da der iec bus, so langsamm ist, gegenüber anderer sachen, bremst es ihn auch nicht.
    wie bereits geschrieben, commodore machte es auch so immer, in ihren geräten.



    da ich woander, vor kurzem inzwischen erwähnte, z.b. bei der usb to iec oder der iec to parallel version.

    damit man auch centronics / parallel drucker, am pc oder am c64 benutzen kann.

    ich habe woanders hier geschrieben, ich würde den atmega nicht den usb machen lassen.
    sondern es mit einem einfachen und preiswerten usb to 232 adapter überlassen.
    und nur die harware ser. schnittstelle im atmega dafür benutzen.
    nun sehe ich du hast schon RXD und TXD herausgeführt. so ist es immer universeller :thumbsup:

    da muss man nur, meine untere schaltung etwas ändern, mit lötjumpern oder jumpern.
    damit man die atn a treiber schaltung nicht mit data, sondern dann mit atn iec bus verbinden kann.

    so kann dann dein M2IEC interface auch für die vielen anderen sachen, später benutzt werden.
    da dann die hardware schon universell ist.

    wenn du dann noch 10 io-pins frei hast für den centronics anschluss. ohne einen mit mehr io-pins zu nehmen.
    ich sende dir aber ein paar atmegas. in tqfp-64, dann hast du da 53 io-pins zu verfügung.


    aber dass muss nicht alles erstmal sein, wenn du deine routinen hast, dann würde ich es sogar erweitern können.
    wenn ich mich nun nach 15 jahren, wieder mit den atmegas, beschäftigen würde.

    lg
    helmut

  • Mit den üblichen Typen wird das nicht funktionieren, dazu braucht man dann einen 74LCX06. Dessen Eingänge sind 5V-tolerant und der funktioniert mit 3.3V. Die Kehrseite: relativ teuer, nicht so leicht zu bekommen und nur SMD.

    ja, stimmt es geht ja auch um den input. und in hc gibt es die nicht.



    edit..........


    wobei, die sind ja nur für den iec bus da.
    nicht für die speicherkarte, die wird ja direkt mit dem atmega 3,3v pegel angesteuert. somit ja kein problem.
    und die 74xx treiber funktionieren doch ab dem 2V ttl-high pegel, somit geht es doch.
    selbst die 2,4V würde man doch mit dem atmega problemlos hinbekommen.
    der bus ist ja ganz ganz langsamm. da gibt es auch keine timing probleme.

    hoffentlich mache ich aber nun nicht einen denkfehler, auf die schnelle.

    aber es müsste doch mit meiner schaltung auch mit einem atmega mit 3,3v gehen?

    nur für die centronics schnittstelle müsste man dann auch pegelwandler / treiber dazwischen schalten.
    also am besten dann einen huckepack adapter. gleich mit einem schieberegister.
    dann könnte man gleich auch die io-pins damit lösen.

    aber dann wird die software etwas aufwändiger. so würde ich lieber den atmega,
    bei der späteren iec 2 centronics version, mit 5v betreiben und die memory karte mit widerständen anbinden.
    ist viel weniger aufwand und es ist auch günstiger.

    manche atmegas sind ja auch langsammer, wenn nicht mit 5v betrieben?

    gruß
    helmut

  • edit....


    bei der unteren schaltungs version, siehe bild oben, habe ich rechts die gatterschaltung geändert.

    von einer und auf eine oder verknüpfung.

    damit die pegel verbessert werden. besonders dann nun wichtig,
    würde man den atmega mit 3,3v betreiben.

    und es muss eine zusätzliche diode oder widerstände, in die atn input leitung kommen,
    damit dann der 5v pegel, am iec bus, nicht den atmega zerstört.

  • diese untere schaltung, habe ich aber schon, vor ich glaube zwei jahren, für den pi1541 vorgeschlagen.
    da sind ja, dafür die ganzen anderen treiber, noch frei und noch viel schlimmer immer noch mit offenen eingängen.
    ist wohl aber alles damals untergegangen, weil ich kein englisch kann und es mit einem anderen besprochen habe.

    zum glück wurde wenigstens dann da der 7406 treiber genommen.
    warum man meine universelle lösung nicht übernommen hatte, wundert mich noch heute.


    ist ja nur eine layoutänderung.
    und dann kann man dann auch jeden der oben erwähnten treiber ics benutzen.
    egal ob es dann, invertierende oder nicht invertierende treiber sind. also dass, was man da hat.

    so würde ich, wenn ich mit dem kicad mich beschäftigen würde, die pi1541 platine einfach ändern.
    die software bleibt ja die gleiche.

    die atna ack schaltung (bestückung) kann ja weggelassen werden.

    gruß
    helmut

  • Mit den üblichen Typen wird das nicht funktionieren, dazu braucht man dann einen 74LCX06. Dessen Eingänge sind 5V-tolerant und der funktioniert mit 3.3V. Die Kehrseite: relativ teuer, nicht so leicht zu bekommen und nur SMD.

    3,3 V werden zuverlässig als "H" erkannt am Eingang (gefordert min. 2,0 V laut Standard). Der Ausgang des 7406/7407 ist Open Collector, benötigt also einen Pullup, der kann nach +5 V auf der einen und nach 3,3 V auf der anderen Seite. Das funktioniert perfekt, habe ich selber schon gemacht.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • und ich würde, an den paar cent, für einen ttl-treiber ic, nie am iec bus da sparen.

    aber matthias hat noch keine erfahrung da selbst gemacht. er arbeitet sich ja erst in den iec-bus ein.
    spätestens dann, wird er es auch einfach nachträglich ändern können.
    da es ja sein baby ist. :) :love:

    bei den vorgänger versionen, mmc2iec und dem sd2iec, habe ich schon vor sehr vielen jahren,
    eigentlich sofort, als ich es endekt habe, vieles über die unbedingt benötigten treiber geschrieben.


    da aber wohl die selbst nicht die urheber waren, haben sie es nicht verstanden und nicht implementiert.

    so ist es sehr super und es freut mich ganz extrem, dass der matthias es neu machen will. :thumbsup:

    denn an den ganzen iec und den ieee488 bus systemen, hängt mein herz. :love:

    so war ein iec / ieee488 interface, für den pet, mein erstes, in serie produziertes produkt.
    und dann wendete sich watanabe an mich, weil sie ihr eigenes ieee488 interface, für ihren a3 plotter,
    nicht an den commodore, hp und tektronix geräten, stabil zum laufen bekommen haben.
    empfohlen wurde ich von commodore und epson damals. später von philips, olympia und den anderen.

    so war die watanabe duo-plott, die erste oem version, die ich dann in großen stückzahlen vertrieben habe.


  • Die alten Typen funktionieren nur mit ca. 4.5-4.75V VCC. Für die SW-2 Firmware ist der Inverter passend, nur die alten Typen in DIL gibt es nicht für die 3.3V-Versorgung. Ein 74LVC06A in SOP14 geht auch.

    Man kann den 3.3V-Treiber direkt am C= Bus verbauen oder bis zum Cardreader alles mit TTL-Pegel betreiben. Man braucht auf jeden Fall einen Level-Shifter und einen 3.3V-Regler. Wo man das am Ende dann verbaut ist eigentlich egal.




    3,3 V werden zuverlässig als "H" erkannt am Eingang (gefordert min. 2,0 V laut Standard). Der Ausgang des 7406/7407 ist Open Collector, benötigt also einen Pullup, der kann nach +5 V auf der einen und nach 3,3 V auf der anderen Seite. Das funktioniert perfekt, habe ich selber schon gemacht.

    Ich hatte uralte 7406 ohne Pullups verwendet, funktionierte auch einwandfrei, ist aber Murks. Wenn es immer und überall funktionieren soll, sollte man den Spezifikationen im Datenblatt besser glauben.

  • Der 7406 WIRD nach Datenblatt betrieben, er hängt an +5 V. Da die Ausgänge nur gegen GND schalten, kann man über die Pullups nach 3,3 V / 5 V (je nach Richtung) einen perfekten Levelshifter bauen. Dagegen ist eher das FET-Gefrickel Murks, das sonst so allgemien üblich verwendet wird.


    Verstehen muss man die Schaltung halt erst einmal. ;-)

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Achso, ich dachte der soll mit 3.3V VCC betrieben werden. Bei der langsamen Geschwindigkeit könnte es noch funktionieren, ist dann halt ein Experiment, ob der noch schnell genug aufmacht.

  • Der ist bis einige MHz spezifiziert, da wird er die paar kHz auf dem CBM-Bus schon abkönnen. Wie gesagt, der Standard erlaubt das, und im C64 erreicht auch keine Leitung die +5 V.


    Zum Atmel hin braucht man noch nicht mal Pullups, da kann man die internen nehmen.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Der 7406 WIRD nach Datenblatt betrieben, er hängt an +5 V. Da die Ausgänge nur gegen GND schalten, kann man über die Pullups nach 3,3 V / 5 V (je nach Richtung) einen perfekten Levelshifter bauen. Dagegen ist eher das FET-Gefrickel Murks, das sonst so allgemien üblich verwendet wird.


    Verstehen muss man die Schaltung halt erst einmal. ;-)

    :thumbsup:
    etwas schriftlich zu erklären, ist leider nicht mein ding.

  • Übrigens ist das keine "Vermutung"; sondern ich habe mein Pi1541 so aufgebaut, siehe:


    Pi1541 Daughter Board


    Es funktioniert prma. Keine Ahnung, warum alles mit diesen Fet-Level-Shiftern herumeiert. :-D

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Es funktioniert prma. Keine Ahnung, warum alles mit diesen Fet-Level-Shiftern herumeiert. :-D

    Solche Hacks funktionieren oft, haben aber auch immer ein Restrisiko. Wenn der Treiber mal irgendwo voll durchlegiert, was nicht so unüblich ist, dann kann man sich von den 3.3V-Bauteilen dahinter verabschieden.

    Dann lernt man spontan warum so etwas in einem guten Design nichts verloren hat.

  • Solche Hacks funktionieren oft, haben aber auch immer ein Restrisiko. Wenn der Treiber mal irgendwo voll durchlegiert, was nicht so unüblich ist, dann kann man sich von den 3.3V-Bauteilen dahinter verabschieden.

    Dann lernt man spontan warum so etwas in einem guten Design nichts verloren hat.

    Das ist kein "Hack", das ist Verwendung des Bauteils, wie es gedacht ist (Open Collector). Das gleiche Argument könntest du bei einem 7406/7407 am Userport als Buffer bringen, und diese Schaltung wurde dutzendfach verwendet.. Diese Gefahr bannst du nur, wenn du Optokoppler oder Relais einsetzt, dann hast du völlige Trennung der Kreise.


    Dagegen ist der FET-Level-Shifter-Murks eine Magnitude gefährlicher, weil die Ströme direkt durch das treibende Bauteil fließen, was schon dem einen oder anderen Pi(1541) einen GPIO gekostet haben soll.


    Aber gut, niemand ist gezwungen, es zu verwenden. Man findet immer irgendwo ein Haar in der Suppe. Es ist ja auch nicht mein Design, es ist das von Matthias, und er verwendet es oder nicht. Ich wollte hier auch nicht groß dreinreden, sondern nur Anregungen bieten. ^^

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.