Hallo, ich möchte NMEA-Daten auf einer 4GB SD-Karte im KML speichern. Die SD-Karte ist eine SDHC von SAMSUNG und wird in den Kartenleser des Olimexboards SAM7-EX256 eingesteckt. Ich habe einen Beispielcode für die Ansteuerung einer MMC-Karte gefunden und es sieht schon gut aus aber ich komme immer noch nicht voran. Übrigens, meine SD-Karte ist im FAT 32 formatiert worden. Sowie ich es hier: http://elm-chan.org/docs/mmc/mmc_e.html gelesen habe sollte ich nach dem Software Reset (Befehl CMD0) den Befehl CMD8 mit dem richtigen CRC senden. Erste Frage, welcher CRC sollte es sein? Ist es auch 0x95? Anschließend sollte ich die Initialisierung mit ACMD41 (mit dem HCS Flag) beginnen. Danach sollte CMD58 ausgelesen und das CCS Flag geprüft werden. Im beigefügten Code (mmc.c) habe ich dies noch nicht implementiert. 2.Frage: Ist meine Vorgehensweise oder Vorstellung richtig? Wenn ja, wie kann ich es auf Basis dieses Beispielcodes am besten implementieren? ---------------------Das war es mit der Initialisierung--------------- Jetzt bezüglich auf das KML Format habe ich die RTKLIB runtergeladen und würde es gern verwenden. Aber ich bin ein bisschen verwirrt, weil ich dafür eine Datei im Code erstellen sollte und diese soll im KML Format gespeichert werden. Ich stelle mir vor, dass die Datei in der Funktion "mmcWriteBlock" erstellt werden soll, oder? Erste Frage: wie kann ich eine Datei öffnen bzw. schließen? 2.Frage: wie kann ich die im kml Format speichern? Ich freue mich auf irgendwelche hilfreiche Rückmeldung.
Yann B. schrieb: > Erste Frage: wie kann ich eine Datei öffnen bzw. schließen? Das was du bisher hast ist sozusagen nur der Low-Level Treiber, der direkt mit der MMC Karte 'verhandelt'. Was du noch brauchst ist ein Filesystem, dass dann die von der MMC zur Verfügung gestellten Speicherblöcke in einem Filesystem verwaltet > Ich freue mich auf irgendwelche hilfreiche Rückmeldung. Alle deine Fragen bzw. alles weitere findest du auch bei ElmChan http://elm-chan.org/fsw/ff/00index_e.html Und es hilft natürlich, wenn man sich erst mal mit dem Standard-C Filehandling vertraut gemacht hat. Das von ElmChan vorgestellte FatFS funktioniert da sehr ähnlich und ist ähnlich zu benutzen.
:
Bearbeitet durch User
Yann B. schrieb: > ich möchte NMEA-Daten auf einer 4GB SD-Karte im KML speichern. Ja. Du hast nicht ein, sonder eigentlich drei Probleme: 1. Du mußt für deinen µC das FAT-Filesystem von Chan richtig aufsetzen, wozu du eine passende Implementierung der LowLevel-Treiber brauchst. 2. Du mußt lernen, Chan's FF in deinem Programm zu benutzen. 3. Du mußt die NMEA Daten in dein Zielformat konvertieren. Zu 3. wozu eigentlich? Lege einfach fest, welche Datensätze du tatsächlich brauchst und schreibe sie direkt in deine Datei. Ist ja alles plain ascii, sollte also kein Problem sein. Damit du nicht ganz im Regen stehst, hänge ich dir mal ein paar Dateien zum verstehenden Lesen hier an. Falls du dich entschließt, einen LPC2478 zu verwenden, könntest du sie direkt verwenden. W.S.
Yann B. schrieb: > ich möchte NMEA-Daten auf einer 4GB SD-Karte im KML speichern. Das sind zwei verschiedene Datenformate. Du kannst nicht einen Satz auf Englisch auf Chinesisch schreiben.
Thomas W. schrieb: > Yann B. schrieb: >> ich möchte NMEA-Daten auf einer 4GB SD-Karte im KML speichern. > > Das sind zwei verschiedene Datenformate. Du kannst nicht einen Satz auf > Englisch auf Chinesisch schreiben. Um fair zu sein, lässt sein Ausgansgposting zwischen den Zeilen schon erkennen, dass sich darin auch noch die Fragestellung "Wie wandle ich die aus NMEA extrahierte Information ins KLM Format um?" versteckt. Und die Antwort drauf ist eigentlich die, die man praktisch immer anwenden kann: Erst mal muss klar sein, was ich habe. Dann muss ich mich damit beschäftigen, wie das Ergebnis aussehen soll Sind die beiden Punkte soweit geklärt (nein, nur die Schlagworte zu haben reicht nicht. Wenn ich dir auf dem Papier einen NMEA Datensatz vorlege, muss dir klar sein, wie das zugehörige KLM Format aussieht und du musst es hinschreiben können), dann ergibt sich die Vorschrift wie man aus dem einen das andere erhält sehr oft ganz schnell. Im Zweifel: Papier und Bleistift nehmen und selbst ein paar Beispiele durchspielen. Hier natürlich besonders einfach, da sowohl NMEA als auch KLM reine Textdaten sind. Aber alles in allem stinkt die Fragestellung schon wieder mal ein bischen nach: Ich hab mir das alles viel einfacher vorgestellt und eigentlich kann ich das auch alles gar nicht.
:
Bearbeitet durch User
Karl H. schrieb: > Ich hab mir das alles viel einfacher vorgestellt... Ach Karlheinz, genau DAS haben wir doch die ganze Zeit, immer wieder und wieder. Kauf dir nen australischen Chardonnay bei Aldi, das hebt. Gut Nacht W.S.
W.S. schrieb: > Kauf dir nen australischen Chardonnay bei Aldi, das hebt. Kann der was? Aber eigentlich eine gute Idee. Hab noch einen Chardonnay aus dem Kamptal im Kühlschrank. Den werd ich mal rausholen und ein bischen warm werden lassen. > Gut Nacht Ditto und Prost
W.S. schrieb: > Falls du dich entschließt, einen LPC2478 > zu verwenden, könntest du sie direkt verwenden. Dke W.S für deinen Post. Ich verwende das Board SAM7-EX256 von Olimex. Es ist der AT91SAM7X256 Mikrocontroller darauf. Ich wollte gern schon lange mit dem ersten Punkt (was du genannt hast) anfangen aber der Low Level Treiber ist noch nicht funktionfähig. Ich möchte eine 4GB SD-Karte verwenden und es fällt mir immer schwer, diese zu initialisieren. Laut Elm Chan (http://elm-chan.org/docs/mmc/mmc_e.html) sollte ich nach CMD0, das Kommando CMD8 mit dem Parameter 0x000001AA mit dem richtigen CRC-Byte senden. Wenn die Karte mit 0x05 (illegal command error) antwortet, dann ist die Karte eine SD Version 1 oder MMC-Karte version 3. Wenn die Karte akzeptiert wird dann sollte die Antwort im Format R7(R1(0x01) + 32-bit return value) aussehen. 1.Frage: bei R7 ist R1(0x01) das erste Byte? Wie sieht R7 konkret aus? sind diese 32 Bits nur Nullbits oder ist es nicht wichtig? 2.Frage: kann ich nur prüfen, ob 0x01 (R1) zurückgesendet wird, falls die Karte akzeptiert wird? Bei der zweiten Frage habe ich eine LED zum Prüfen verwendet. Wie es im beigefügten zu sehen ist, prüfe ich nach CMD8 , ob die Antwort 0x01 ist. Wenn ja, dann sollte die LED leucten. Wenn nicht dann nicht leuchten. Bei mir leuchtet sie, also gehe ich davon aus, dass die SD-Karte akzeptiert wird, aber ich bin nicht ganz sicher, ob der Test ok ist. freue mich im Voraus.
:
Bearbeitet durch User
Nimm das Projekt von Elm Chan KOMPLETT und passe es an deinen Controller an, das ist leicht. Dann läuft das. Beitrag "Re: Elm Chan FatFs SD Karte auf Keil MCB2300 LCP2378"
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.