Hallo, ich kämpfe derzeit gerade mit dem LPC3250 und dessen SDIO Interface. Ich hab die NXP Bibliothek zum laufen gebracht, soweit so gut, jedoch habe ich Probleme mit einigen Kommandos. So bringe ich eine 4GB SDHC Karte von Kingston nicht zum laufen, da ich beim Initialisieren mit CMD8 die SD Karte immer Busy bleibt, egal was ich mache. Hat hierzu jemand einen Tipp für mich? Das Problem hab ich derzeit durch Verwendung von 2GB Karten umgangen. Prinzipiell funktioniert alles, jedoch habe ich jetzt versucht mit CMD9 das CSD Register auszulesen (wegen Kartenkapazität). Leider bekomme ich keine vernünfigen Daten zurück (keine 16Byte wie erwartet), das Auslesen des CID Registers funktioniert hingegen tadellos. Hat vielleicht jemand von euch eine Idee wo mein Problem liegen könnte? Gibt es Erfahrungen mit dem LPC3250 SDIO Interface und der NXP CLP Library? Vielen herzlichen Dank für eure Tipps und Bemühungen im Voraus. Viele Grüsse Christian
Hast du im CMD8 die Bits für VHS, Check Pattern und CRC korrekt gesetzt? Beachtest du beim Initialisieren auch die Unterschiede der Karten nach Spezifikation 1.0 und 2.0 und SD und SDHC? Das Auslesen von CID und CSD ist identisch bis auf die unterschiedliche Befehlsnummer. Also wenn der eine geht und der andere nicht ist vermutlich an deinem Code order der Hardware schon irgend etwas nicht ganz korrekt. Es gibt mittlerweile haufenweise Threads hier im Forum bezüglich SD-Karten. Du solltest vielleicht mal die Suchfunktion benutzen. Denn teilweise sind sehr nützliche Tips in den Threads zu Fehlerquellen und wie man diese umgeht enthalten. Ciao, Rainer
Hallo Rainer, danke der Antwort, VHS und Check Pattern sind sicher richtig, bei der CRC, bin ich mir immer noch nicht sicher, eigentlich sollte dies ja intern richtig berechnet werden, wahrscheinlich ist da irgendwo der Hund begraben. Die Unterschiede bei den den Spezifikationen sowie SD oder SDHC hab ich berücksichtigt, aber wie gesagt, solange ich CMD8 nicht hinkrieg, komm ich nicht aus dem Busy raus und solange wird es wohl nix mit der Initialisierung der 4GB Karte. Hab schon lange in den Foren gesucht, bevor ich überhaupt den Beitrag eingestellt habe, aber zu meinem konkreten Problem hab ich eigentlich nichts gefunden. Hast Du vielleicht konkret zu dem LPC3250 mit SD Interface ein paar Tipps um SDHC Karten in Betrieb nehmen zu können? Ist es vielleicht ein Problem, daß laut Manual (LPC3250) nur Standard 1.01 unterstützt wird, SDHC aber mindestens 2.0 ist? Vielen Dank Christian
Christian Kutschenreiter schrieb: > Hast Du vielleicht konkret zu dem LPC3250 mit SD Interface ein paar > Tipps um SDHC Karten in Betrieb nehmen zu können? Ist es vielleicht ein > Problem, daß laut Manual (LPC3250) nur Standard 1.01 unterstützt wird, > SDHC aber mindestens 2.0 ist? Konkret zum LPC3250 habe ich nichts, da ich nur diverse 8051 kompatible Controller programmiere. Du kannst dir gerne meinen C-Code für die SD-Karte unter [1] anschauen, der soweit mit jeder SD-Karte funktioniert hat. Bezüglich des 1.0 und 2.0 SD-Karten Standards ist mir etwas unklar, wie das von deinem Controller abhängen sollte. Du hast bis jetzt auch noch nicht genau gesagt, ob du die SD Karte im SD Modus oder im SPI Modus ansteuerst. Im SPI Modus wird die Karte physisch per standard SPI Verbindung angesprochen. Und die Unterscheidung zwischen 1.0 und 2.0 Standard geschieht nur in der Software und ist völlig unabhängig von der Hardware. Ebenso ist die Unterstützung von SDHC eine reine Softwareangelegenheit und ist ebenfalls von der Hardware unabhängig. Ciao, Rainer [1] https://quakeman.homelinux.net/viewvc/uVision/trunk/Library/SD_Karte_Funktionen.c?view=markup
Hallo Rainer, danke der Antwort und des Links, den werde ich mir heute abend mal angucken. Ich versuch die Karte nicht im SPI Modus sondern über das SD Karteninterface (interner IP Block) anzusprechen und der ist laut Spec eben nur für Standard 1.01 ausgelegt. Die Idee ist eben das Interface zu verwenden (Hitex LPC3250 USB Stick+LCD IO Board). Ich wollte einfach den Standard SD Steckplatz verwenden, bevor ich extra den SPI Block in Betrieb nehme und auf dem Board rumlöten muss. Ich denke ich hab mein Problem irgendwo beim CRC, den den Checkpattern krieg ich ja zurück. Hoffe die nächsten Tage komm ich nochmal intensiv dazu mich mit dem Thema SDHC zu beschäftigen. Danke nochmal Gruss Christian
Wenn ich mich richtig erinnere ist im SD Modus die CRC immer aktiviert und man muss diese per Befehl explizit deaktivieren. Also solltest du deine CRCs der Init-Befehle einfach mal überprüfen ob die richtig sind. Ansonsten kann ich dir zum SD Modus keine weitere Hilfe geben, da ich eben nur den SPI Modus benutze. Der Link zu meiner Init Routine verwendet ebenfalls den SPI Modus, weshalb ich nicht weis, ob diese dir weiterhilft. Ich muss nämlich nur CMD0 und CMD8 mit einer gültigen CRC versehen, danach ist diese automatisch deaktivert laut Spezifikation. Ciao, Rainer
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.