Hallo ich verzweifle jetzt wirklich noch... Will Daten auf eine SD-Karte schreiben und es will einfach nicht klappen. Zuerst habe ich es mit Spannungsteilern und Dioden an der SD-Karte probiert - ging nicht. Jetzt hab ich mir bei Reichelt nen Pegelwandler (74HC4050) und nen anständigen Spannungswandler gekauft, angeschlossen, ewig herumprobiert - geht immer noch nicht. Habs jetzt mit Pull-Up Wiederständen versucht, geht allerdings auch nicht. Jetzt wollte ich wissen, ob mir jemand einen Code geben könnte, der wirklich 100%ig funktioniert, damit zumindest ich mal einen Softwarefehler ausschließen kann. Oder weiß irgendjemand, woran es sonst noch liegen könnte? (Benutze Atmega32 - Fat wird nicht unbedingt benötigt) Gruß Richi
>Oder weiß irgendjemand, woran es sonst noch liegen könnte? Am Code oder an der Hardware. Könnte auch beides sein. Was benutzt du denn so? >Zuerst habe ich es mit Spannungsteilern und Dioden an der SD-Karte >probiert - ging nicht. Dann ist sie vieleicht schon kaputt?
@ gast2: Hab jetzt ja schon so vieles probiert und binn nicht weiter gekommen. @ holger: Ich benutze den Atmega32 (5V) mit Software-SPI. Die 3 Output-Leitungen lasse ich über den 74HC4050 laufen, die Output-Leitung Direkt. Bei der Direkt-Verbindung hatte ich schon Zweifel, habs aber überprüft, da dürfte nicht der Fehler liegen. Alle Leitungen sind mit PullUp-Wiederständen versehen (10k). Die Spannungsversorgung erfolgt mit 3,3V aus einem Spannungsregler. holger schrieb: > Dann ist sie vieleicht schon kaputt? mit dem PC kann ich die Karte lesen/schreiben Zur Software habe ich Ulrich Radigs Quellcode probiert, allerdings scheitere ich dort anscheinend immer bei CMD1. In http://www.uni-koblenz.de/~physik/informatik/ECC/sd.pdf steht aber, dass CMD1 nur für MMCs gültig ist, also habe ich den Code ein wenig abgewandelt, dass die Karte über ACMD41 initialisiert wird. Deshalb wollte ich auch einen Code, der zu 100% funktioniert.
richi... das glaub ich dir... was ich damit meine ist such nach sd-karte und schau in den artikel da gibts ein source von microchip (mdd) in c dort in sd-spi.c -> MDD_SDSPI_MediaInitialize. das funktioniert. jedoch nur mit normalen sd karten. die sdhc anpassung musste ich selbst einbauen... ist aber schon bisschen her... cmd41 ist meines wissens nur fuer sdhc karten... die initialisierung und adressierung der bloecke ist bei diesen karten ist anders... ansonsten http://elm-chan.org/docs/mmc/mmc_e.html da steht auch noch bisschen was. sofern du sdhc karten benutzt. vielleicht kann deine karte kein spi modus mehr. hab ich div. male gelesen das das teilweise weggelassen wird. aber bisher ging jede sdhc karte bei mir mit spi. um sicher zu gehen nimm mal ne normale 1gb sd karte. die ist auf jeden fall nicht sdhc. ob das klappt.
wo genau hast du den code gefunden. habe ihn ehrlich gesagt in der Suche nicht gefunden.
moin, sorry hab dein post nicht gesehen... anbei findest du ein paar sourcen von mdd. ich weiss nich ob das alle sind aber egal... der spi source mit der initialisierung sollte dabei sein.. ich hatte im netz auch ein wesendlich besseren source gefunden... ich weiss aber leider nicht mehr wo der ist :/ vielleicht hilft der ja schon... viel glueck ;) lg ;)
Hi! >da dürfte nicht der Fehler liegen. Alle Leitungen sind mit >PullUp-Wiederständen versehen (10k) "Do" der SD ist meist sehr hochohmig, 10K sind da viel zu viel. Versuche mal aktiv von 3,3V_SDO->µC_In. Daran bin ich mal fast verzweifelt weil die SD-Flanke so ab 2,5V abgerundet wird. Viel Erfolg, Uwe
@Uwe Direktverbindung geht nicht. Habs jetzt die Widerstände auf 4,7k reduziert, geholfen hats nicht viel.
hast du mal die Signale an der SD Karte mit einem Oszi gemessen? Ist im Regelfall das einzige was einen Aufschluß über solch ein Problem gibt. Grüße
Hab jetzt das Problem gefunden. Wahrscheinlich wahren es Fehlende Abblockkondensatoren. Jetzt gehts auf jeden Fall. Danke an alle! Viele Grüße Richi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.