Habe einen SD-Kartenslot angebaut. Muss ich da vielleicht irgendwas anders machen?
Was für einen? Es gibt welche, da ist schon ein Levelshifter drauf. Wie hast du ihn Verdrahtet?
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von sebos am
Habe einen SD-Kartenslot angebaut. Muss ich da vielleicht irgendwas anders machen?
Was für einen? Es gibt welche, da ist schon ein Levelshifter drauf. Wie hast du ihn Verdrahtet?
Der SD-Kartenslot ist von Pollin
Ansonsten ist er 1:1 wie die Karte in der Anleitung Step-by-Step SD2IEC Lochraster Nachbau (4) verdrahtet.
Der Slot sollte funktionieren, habe ich auch schon des öfteren verbaut. Hast Du "Cd=Card-Detect" und "Wp=Write-Protect" am Slot angeschlossen oder einfach auf GND gelegt (wie in der Aufbauanleitung)? Wenn du beide doch am Slot angeschlossen hast, hast Du "CS" auf GND gelegt?
Ich hatte mir dafür mal ein kleines Bildchen gemacht:
SD-Slot inkl.Bezeichnung.png
Komme mit den Bezeichnungen jetzt nicht mehr ganz mit
Also ich habe, wie gesagt, 1:1 wie in der Anleitung angeschlossen. Also, denke ich, auf Masse.
Kann ich da irgendwo was tricksen um Card-Detect irgendwie zu simulieren ohne umzubauen?
EDIT: Oder wie kann ich diesbezüglich nachmessen?
Da das Problem häufiger mal auftaucht, hat die Firmware einen SD-Slot-Testmodus eingebaut: Einfach beim Einschalten den PREV-Knopf gedrückt halten. Bei eingelegter Karte sollte dann die rote LED an sein und wenn die eingelegte Karte schreibgeschützt ist, sind die rote und grüne LED an.
Wenn Du dich an die Anleitung gehalten hast:
• AVR Pin 20 an Masse für SD WRITE_PROTECT
• AVR Pin 16 an Masse für SD CARD_DETECT
Dann sollten beide Eingänge am Atmega bereits auf GND gelegt worden sein und sind nicht mit dem Slot verbunden.
Hm.
• AVR Pin 20 an Masse für SD WRITE_PROTECT
• AVR Pin 16 an Masse für SD CARD_DETECT
Sind gelegt?
a das Problem häufiger mal auftaucht, hat die Firmware einen SD-Slot-Testmodus eingebaut: Einfach beim Einschalten den PREV-Knopf gedrückt halten. Bei eingelegter Karte sollte dann die rote LED an sein und wenn die eingelegte Karte schreibgeschützt ist, sind die rote und grüne LED an.
Also wenn PREV = Disk Change ist, dann hat macht das beim Einschalten an den LEDs keinen Unterschied. Allerdings wird mir nicht die Firmware, sondern 00 OK 00 00 angezeigt, wenn ich den "Fehlerkanal" auslese.
Sonst genauso wie vorher.
PIN 20 und PIN 16 sind auf Masse.
Also wenn PREV = Disk Change ist
PREV ist einer der beiden Disk Change-Taster, spezifisch der welcher ein Image zurück (statt vorwärts) wechselt.
Zitatdann hat macht das beim Einschalten an den LEDs keinen Unterschied
Der andere setzt beim Gedrückthalten beim Einschalten alle Einstellungen auf den Default zurück.
So dacht' ich's mir. Hatte beide versucht. Leider ohne Erfolg.
Erledigt. Tausend mal geprüft und schließlich festgestellt dass Masse auf 17 anstatt auf 16 liegt. Ich üb das mit dem Zählen nochmal! Schäm.
Ich danke für Eure Hilfe, hat ja am Ende doch zum Ergebnis geführt.
Und vielen Dank nochmal für die Anleitung!!!!!
Erstmal Danke für die Anleitung!
Hab das jetzt gerade aufgebaut, und es geht nicht.
Wenn ich load "$",8 mache, scheint zunächst gar kein Zugriff zu erfolgen (rote LED geht nicht kurz an), bevor dann der Atmega wohl aufgibt, und die rote LED dauerblinkt.
Das Auslesen des Fehlerkanals sagt
74 "DRIVE NOT READY" 12 00
Hab nun 3 SD Karten (8 GB Kingston, 4GB Sandisk und eine 4GB Noname) probiert, SD-Karten Adapter schon getauscht und alle Leitungen zwischen SD-Adapter und AVR mehrfach gecheckt und kann einfach den Fehler nicht finden.
Mein Adapter hat keinen SD Detect und Write Protect Anschluss, also hab ich die 2 Atmega Pins auf Masse gelegt.
Wenn ich das recht kapiere, liegt offensichtlich ein Kommunikationsproblem zwischen Atmega und SD Slot vor.
Die einzige andere Fehlermeldung, die ich erreichen konnte war mir einem
open 1,8,15,"CD:ARKANOID.D64":CLOSE1
Dann bekomm ich ein ready, eine blinkende rote LED und der Fehlerkanal sagt 71 Directory Error
.
Die Leitungen zwischen SD Slot und AVR sind sehr kurz, weil ich den Adapter neben den Controller auf die Platine geklebt hab.
Multimeter hab ich, Oszi auch. Wäre das jetzt der nächste Punkt? Also Signale an der SD Karte checken?
Vielen Dank im Voraus,
Andreas
Ein Foto der Platine/Verkabelung wäre in diesem Falle ganz nützlich.
Welche Firmware hast Du geflasht? Die neueren haben ein Eeprom-Filesystem auf welches man zugreifen kann, wenn keine Sd-Karte gesteckt ist. So kann man das SD2IEC an sich schon mal testen.
Aktuelle Firmware ist die Larsp 0.10.3 . Hatte vorher 0.9.1 drauf, hab aber wegen der Probleme dann Update gemacht.
Würde erstmal die Leitungen zwischen Atmega und Sd-Adapter durch klingeln. Von der Leitungslänge her sollte es keine Probleme geben. Wenn du den Fehlerkanal direkt nach dem Einschalten von C64 u. SD2IEC ausliest, wird dann die Firmware angezeigt oder kommt es zu einen Fehler?
Ich glaub diese Leitungen hab ich allein Heute schon 3x gecheckt. Such ja seit 3 Tagen noch dem Problem.
ID direkt nach dem Einschalten ist
73 SD2IEC V0.10.3 00 00
Edit: etwas ist mir nun doch noch eingefallen: ich hab den Atmega 644-20PU drauf, weil der halt bei Reichelt lieferbar war. Ich hab mit dem tl866cs China Brenner die Firmware drauf geflashed und musste dafür den ID Check abschalten, weil dieser Typ eigentlich nicht in der Liste der unterstützten MCUs drin ist. Die Firmware sollte anscheinend ohne Änderungen laufen, aber ich hab auch die Fuse Bits unverändert übernommen. Nu grübel ich, ob ich die ggf. ändern müsste. Aber wie, weil der Brenner die ja theoretisch gar nicht für das PU Modell kennt?
Edit 2: noch was: sollte beim Zugriff auf die SD Karte die rote LED nicht zumindest ganz kurz aufleuchten? Tut sie nicht, was meiner Idee nach z.B. drauf hindeuten könnte, dass die SD-Karte gar nicht initialisiert wird? Kann man sich das mit Oszi oder Logic Analyzer irgendwie sinnig anschauen, um evtl. die Stelle zu sehen, an der es scheitert?
Ich hab nur 16-Bit Fat und 32-Bit Fat FS probiert. Das spezielle 16-Bit-Formatierprogramm konnte ich mangels Windows nicht probieren. Hab die Karten nur jeweils unter Linux formatiert und bespielt.
Was ich weiss, ist, dass die Fusebits gleich sind, egal ob 644 oder 1284. Mehr fällt mir leider auch nicht ein.
Edit 2: noch was: sollte beim Zugriff auf die SD Karte die rote LED nicht zumindest ganz kurz aufleuchten?
Nö
ZitatKann man sich das mit Oszi oder Logic Analyzer irgendwie sinnig anschauen, um evtl. die Stelle zu sehen, an der es scheitert
Du könntest nachschauen, ob die Signale und insbesondere deren Pegel auf MISO am AVR (Pin 7) und auf CS, DI und CLK an der SD-Karte (Pins 1, 2, 5 - bitte die komische Pin-Nummerierung beachten!) sinnvoll aussehen - einen Kartenzugriff kann man am einfachsten durch einen Reset des AVRs provozieren.
Da es quasi unmöglich ist, aus deinem Bild die Verschaltung abzulesen: Du hast darauf geachtet, dass die Pins einer SD-Karte etwas komisch (912345678) nummeriert sind?
Ja, die seltsame Belegung hab ich schon mitbekommen.
Die SD Kommunikation geht über SPI? Das sollte mein Oszi dekodieren können.
Heute zum ersten Mal mit dem DSO gemessen. Noch keine Ahnung davon, deshalb wohl eher bescheidene Ergebnisse. Musste am Schluss sogar in die Anleitung schauen...
Ich hab an dem SD-Karten Slot gemessen, so gut ich es halt hinbekommen hab.
Zunächst mal Pin 2, an dem der Atmega die SD-Karte anspricht:
Und dann nochmal Pin 7, an dem die SD Karte antwortet.
Sollte mal vielleicht mal im Zusammenhang zeigen, also in einer Messung, aber dann muss ich mir was basteln, damit ich den Tastkopf nicht halten muss.
Sieht für mich auf den ersten Blick nach Kommunikationsproblem zwischen Atmega und SD-Karte aus. Atmega sagt 'hallo SD-Karte' und die Karte antwortet 'Wer bistn Du? Geh weg!'.
Ausser diesen Impulsen scheint es keine Kommunikation zu geben, bis die rote LED blinkt.