Hallo, ich möchte gerne am PC eine Datei erstellen (eine Tabelle bestehend aus 20 16-Bit-Werten) und auf SD-Karte schreiben. Anschließend soll die Karte in meine Schaltung gesteckt werden und der Controller (ein AtMega88) soll auf Kommando den Datensatz einlesen und im EEPROM abspeichern. Ich habe nun bereits versucht mich etwas in die Materie einzulesen, allerdings habe ich immer noch keine Ahnung wie ich das am besten angehen soll. Was ich nun suche ist eine möglichst einfache Möglichkeit das Ganze zu realisieren. Konkret fallen mir dazu erstmal folgende Fragen ein: Wie erstelle ich die Datei am besten auf dem PC, sodass der Controller damit klar kommt? Muss ich wirklich dieses ganze FAT Dateisystem auf meinem Controller implementieren nur um ein paar Zahlen von der Karte zu lesen? Vielen Dank erstmal! MfG, Philipp
Cardreader schrieb: > Muss ich wirklich dieses ganze FAT Dateisystem auf meinem Controller > implementieren nur um ein paar Zahlen von der Karte zu lesen? Wenn du deine Karte "normal" am PC bearbeiten willst ja. Ich weiß nicht, ob es PC Programme gibt die mit unformatierten SD Karten umgehen können um z.b. einfach einen Bitstrom drauf zu schieben.
Nein, das filesystem braucht man nicht unbedingt. Der PC kann allerdings nur mit einem Filesystem schreiben. Du kannst einen Treiber fuer den Controller schreiben, der das SD als linearen, sektorisierten speicher anspricht. Zentral ist allerdings der Zugriff auf die Sektoren der SD. Das musst erst mal drauf haben. Das FAT obendrauf, ist eine Frage der Implementaion einer vorgegebenen Struktur. Eine durchschnittliche IDE hat allerdings Treiber fuer SD schon vorhanden. Sei das nun fuer fuer Atmel, PIC oder sonstwas, zu irgendeiner Sprache
Die 40 Bytes werden ja mit Sicherheit in einem Block hintereinander abgelegt. Im Prinzip brauchst du also nur den Blockanfang nur mit einer Schleife zu suchen, z.B. auf ein vorgesetztes Schlüsselwort.
Siebzehn und Fuenfzehn schrieb: > Nein, das filesystem braucht man nicht unbedingt. Der PC kann allerdings > nur mit einem Filesystem schreiben. Unter Linux kann man auch das RAW-Device ohne Filesystem lesen und schreiben. Ich hab mal gehört, das geht auch unter Windows, kenn mich da aber nicht so aus. MfG Klaus
Hallo nochmal, ein extra Programm wollte ich eigentlich nicht installieren um die SD-Karte zu beschreiben... das sollte von jedem PC aus funktionieren. Dann lieber das FAT-System auf dem Controller! Da würde ja dann eine abgespeckte "Read-only" Version ausreichen oder? Wäre es damit dann möglich den Datensatz einfach als .txt datei auf der Karte abzulegen oder welches Dateiformat würde sich da am besten eignen? In welcher Form liegen die Daten dann im Controller nachdem die Datei von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten 40 Bytes aus der .txt Datei? Gruß, Philipp
Cardreader schrieb: > Hallo nochmal, > > ein extra Programm wollte ich eigentlich nicht installieren um die > SD-Karte zu beschreiben... das sollte von jedem PC aus funktionieren. > Dann lieber das FAT-System auf dem Controller! Da würde ja dann eine > abgespeckte "Read-only" Version ausreichen oder? Das 'Problem' ist nicht der Code. Das Problem ist der Speicher, den du zur Zwischenspeicherung der FAT Tabellen brauchst.
Cardreader schrieb: > Wäre es damit dann möglich den Datensatz einfach als .txt datei auf der > Karte abzulegen wäre möglich. Hat den Vorteil, dass du am PC ganz einfach Notepad dafür verwenden kannst. > In welcher Form liegen die Daten dann im Controller nachdem die Datei > von der SD-Karte gelesen wurde? so wie du sie einliest. Datei auf Datensatz lesen Datei zu Vielleicht doch erst mal im C-Buch deines Vertrauens nachlesen, wie Dateibearbeitung in C grundsätzlich funktioniert und am PC mal ein paar Übungen dazu machen, ehe man dann auf die Spezialitäten in der µC-Version umsteigt, die dem Umstand geschuldet sind, dass dort einiges nicht ganz so einfach ist, weil man in Resourcennot ist.
>In welcher Form liegen die Daten dann im Controller nachdem die Datei >von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten >40 Bytes aus der .txt Datei? Alter ich krieg ne Krise wenn ich sowas lese. Klatsch dir ne UART Verbindung an deine Schaltung und beam die Daten so rüber. Oder mach es per ISP. SD Karte ist sowas von gar nichts für dich.
holger schrieb: >>In welcher Form liegen die Daten dann im Controller nachdem die Datei >>von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten >>40 Bytes aus der .txt Datei? > > Alter ich krieg ne Krise wenn ich sowas lese. > Klatsch dir ne UART Verbindung an deine Schaltung > und beam die Daten so rüber. Oder mach es per ISP. > > SD Karte ist sowas von gar nichts für dich. Sehe ich ähnlich. Ne RS232 Schnittstelle und dann mit nem RS232toUSB wärs in dem Fall wohl doch leichter als das Gezuppel mit FAT...
Mh ja... ich merke schon... das Ganze ist wohl doch ne Nummer zu hart für meine bescheidenen Programmierkenntnisse (wie man vielleicht merkt). holger schrieb: > Alter ich krieg ne Krise wenn ich sowas lese. > Klatsch dir ne UART Verbindung an deine Schaltung > und beam die Daten so rüber. Du brauchst ja nicht gleich die Krise zu kriegen, der Thread heist nicht umsonst "...für Anfänger". Genau wie du es schreibst funktioniert die ganze Geschichte zur Zeit ja schon... allerdings wäre es praktisch verschiedene Datensätze auf SD-Karten in der Hosentasche zu haben die man Zuhause vorbereiten kann und nur noch umzustecken braucht. Aber ich werde mich jetzt nach einer anderen Lösung umsehen! (Evtl. direkt mehrere verschiedene Datensätze auf den Controller schieben die dann per DIP-Schalter ausgewählt werden können... oder einen kleinen "USART-Programmer") Trotzdem herzlichen Dank an alle Schreiber! Gruß, Philipp
Naja, FAT zum implementieren ist schon ne Ansage. Schau dir mal z.B. das hier an: http://www.dharmanitech.com/2009/01/sd-card-interfacing-with-atmega8-fat32.html Vielleicht hilft es dir, aber es wird noch ein langer Weg werden denke ich ;)
Hallo, es gibt doch eine FAT Lib für AVRs hier in der Codesammlungen. Ich habe die damals glaube ich auf einen Mega 8 zum laufen gebracht. Gruß Peter
...werden in dem zusammenhang oft: * Roland Riegel's FAT-Lib * Petit-File System von Elm Chan Beide schon gehabt. Bei Elm Chan musst Du evtl. noch den HAL selber schreiben.
Anstatt SD_Karte kannst du einen kleinen MC einsetzen in dessen EEPROM du die 40 Bytes gespeichert hast. Auch so etwas passt in die Hosentasche.
Oder serielle EEproms: http://www.reichelt.de/EEPROM-seriell-Microchip/24LC04B-I-P/3/index.html?;ACTION=3;LA=2;ARTICLE=40073;GROUPID=4511;artnr=24LC04B-I%2FP In SMD sind die sogar kleiner, als SD Karten.
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.