Vllt hab ich mich mal wieder dumm angestellt beim Suchen :/ Ich bin auf der Suche nach einer Lib oder einer Beschreibung wie ich Daten auf die SD Karte bekomme usw. OHNE Dateisystem. Mir haben die vielen Beiträge zu Fat bisschen Angst gemacht und ich möchte es ersteinmal so probieren. Hab irgendwo den Tipp gelesen, einfach die SD mit FAT zu formatieren, danach eine Datei mit genau der größe des Speichers draufzukopieren und dann über Hex Editoren den Anfang der Datei zu Suchen. Ab dort könnte man dann seine Daten schreiben und am PC über Hex wieder auslesen. Hatte der jenige da recht, oder gibts da nen Haken. Es gibt immer einen Haken. Grüße
http://elm-chan.org/fsw/ff/00index_e.html Ist zwar ein komplettes FAT System, aber bei den Anwendungsbeispielen siehst du die Low-Level Ansteuerung der Karte. Das ist das was du machen möchstest (Blöcke lesen/schreiben) und auch das komplizierteste an der Sache. Wenn das einmal geht kannst du einfach die FatFS dadrauf laufen lassen.
Oke Spitze, das hatte ich schn in der Hand, dachte es gibt vllt ein Stand Alone ohne Fat ich mag das Wot nicht mehr :D Ich mach mich mal dran DANKE!
Ich arbeite da grad an was. Wie lang kannst du warten? (je länger du wartest, umso schöner ist der Code...) Ist fast fertig, kann sich nur noch um Monate handeln... Freizeit-Projekt. AVR schreibt über SPI auf die SD (MMC-Protokoll). Lib hab ich hier irgendwo gefunden, und im Großen und Ganzen nur konfiguriert für meinen AVR Typen (ATMega644). Auslesen (und löschen, also auch schreiben) tu ich das unter Windows mit der gleichen Methode wie NTRawrite (Source findest du mit Suchmaschine). Hab dazu eine DLL mit python Wrapper geschrieben, auf die aktuellste Version hab ich erst am Wochenende Zugriff, falls du sie haben willst. Probleme beim Windows-Zugriff (getestet mit XP): - Tut nur mit Adminrechten. Ich hab keinen Weg gefunden, wie ich das (unformatierte) SD-Laufwerk einem anderen Benutzer freigeben kann. - Tut nicht mit jedem SD-Laufwerk. Hab ein USB-Laufwerk, mit dem es einwandfrei funktioniert, mit dem im Laptop eingebauten tut es nicht (Gerät meldet falsche Größe) Selbstausgedachtes "Dateisystem": Nur für logging (immer nur anhängen), wenn man löschen will, dann die ganze Karte. AVR findet (z.B. nach einem Stromausfall) den letzten benutzten 512-byte-Block durch binäre Suche in logarithmischer Zeit (Und es muss ein "großer" AVR sein, der die 512 bytes im Speicher halten kann...) Mit dem Verfahren vermeide ich Verwaltungs-Strukturen, die ich regelmässig aktualisieren muss (und damit Flash-"Ermüdung"). Löschen tu ich nur unter Windows. Löschen mit dem AVR hab ich probiert, und es hat sich rausgestellt, dass man bei verschiedenen Karten verschiedene Löschbefehle braucht. Hab das drum aufgegeben (brauch ich eh nicht). Log-Nachrichten codiere ich mit COBS, damit ich sie beim Senden über die serielle Schnittstelle (alternativ zum loggen in MMC, wenn ich mal "life" draufgucken will) einfach zerpflücken kann (Kein Problem mit Synchronisierung wenn mal was verlorengegangen ist). Hab dazu eine Open Source COBS Implementierung aus dem Internet so geändert, dass ich sie für in-place encoding (also ohne Zusatzspeicher) in einem Ringpuffer verwenden kann. Der Ringpuffer ist klein (kleiner als 256 bytes), in dieser Größenordnung braucht COBS nur 1 byte extra pro Nachricht - dafür muss halt Platz sein im Ringpuffer. Von dem Ringpuffer aus geht's über TWI in kleinen Stückchen (um den Bus nicht zu lang zu blockieren) in den AVR, an dem die MMC und die serielle Schnittstelle angeschlossen ist. Das Schreiben dieses Beitrags hat mich gerade davon abgehalten, an dem python-Auswerteprogramm weiterzuarbeiten. Das macht auch den Empfang (RS232), und COBS-decoding. Gute Nacht.
@ Rico S. (donricone) >Ich bin auf der Suche nach einer Lib oder einer Beschreibung wie ich >Daten auf die SD Karte bekomme usw. OHNE Dateisystem. Warum? >Mir haben die vielen Beiträge zu Fat bisschen Angst gemacht und ich >möchte es ersteinmal so probieren. Genau anders herum wird ein Schuh draus! Nimm eine FERTIGE, getestete Lib und du wirst in Null Komma Nix dein SD-Karte ansprechen, ohne dich um irgendwelchen Low Level Kram kümmern zu müssen! Been there, done that. Die Lib von ELM Chan ist sehr gut, lief bei mir auf Anhieb. Nim einen soliden SD-Kartenslot, keine umgeschnitzten ISA-Stecker oder sonstigen Müll. Du musst VIER Signale richtig anschließen, Pull-Up an SDO nicht vergessen (10k). Fertig! >Hab irgendwo den Tipp gelesen, einfach die SD mit FAT zu formatieren, >danach eine Datei mit genau der größe des Speichers draufzukopieren und >dann über Hex Editoren den Anfang der Datei zu Suchen. Ab dort könnte >man dann seine Daten schreiben und am PC über Hex wieder auslesen. Bastelmurks! Nimm FAT und fatig.
@ sebastians (Gast) Genau SO macht man es nicht, wenn man keinen sinnlosen Stress haben will. Du erfindest das Rad neu, allerdings 7,32345 eckig. Naja, urteilen Sie selber.
Zugegeben, ein bisschen Rad-Neu-Erfinderei war schon dabei. Hat trotzdem Spass gemacht. Bis auf die 2 angegebenen Nachteile (Adminrechte, ...) hatte ich durch den Verzicht auf FAT aber keinen großen Stress (und aus dem Stress, den ich hatte, hab ich was gelernt.)
Und, ja, ich weiß dass das Argument mit der Flash-"Ermüdung" nicht wirklich zieht, weil die Controller auf den SD-Karten für FAT ausgelegt sind.
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.