Hallo Ich weiß, das Thema gab es schon hundert mal, aber ich komm einfach nicht weiter. Ich möchte eine SD-Karte mit Daten über einen Avr beschreiben und wieder lesen. Ein Datensystem ist also nicht nötig. Ich habe auch schon enige Datenblätter gelesen, in denen war aber immer nur von Schriftbefehlen die Rede, nie von Binärcodes. Das zweite Problem ist, dass ich mit dem ISP Interface noch keine Erfahrung habe. Wo soll ich anfangen? Vielen Dank für eure Hilfe!
ich bräuchte enfach mal eine adresse die das spi grundlegend erklärt, auf dieer seite steht nur dass es kein genormtes protokoll gibt, deshalb habe ich keine idee wie ich die sd-Karte ansteuern kann, also wie die speiceradresse und die daten, was senden zum initialisieren
SPI ist einfach nur eine syncrone (es gibt eine eigene Taktleitung) serielle Uebertragung. Damit waer eigentlich alles gesagt. Mit etwas Ueberlegung solltest du dahinterkommen das es verschiedene Moeglichkeiten gibt etwas so zu uebertragen. Naemlich mit steigender Flanke, fallender Flanke, unterschiedlichen Ruhepegel. Highbit zuerst, oder Lowbit zuerst, verschieden schnellen Takt, usw. Jetzt liesst du also das Datenblatt einer SD oder MMC Karte durch damit du weisst wie sie es gerne haette, danach das Datenblatt deines Prozessors und dann stellst du dort ein was du brauchst. Und wenn du glaubst das waer jetzt schwer, dann fange lieber mal damit an das du erstmal nur ein Schieberegister an die SPI Leitungen anschliesst bevor du mit einer Speicherkarte ankommst. Olaf
> wow...das war ein kräftiger Schlag...
Nein, war es nicht. Der vorgeschlagene Weg ist schon der Richtige...
Immer einen Schritt nach dem Anderen.
...
ich finde die Idee auch nicht so schlecht, weil ich ja eher Anfänger bin. Das blöde ist nur, dass ich kein richtiges Experimentier Board habe und jede schaltung löten muss. Aber mein Problem ist eigentlich, das ich gar keine angaben finde, was ich wirklich senden muss. Ich lese immer nur zur initialisierung cmd1 (oder so ähnlich) senden usw.. Kann aber im Datenblatt nicht entdecken welche Folge von einsen und nullen ich senden muss. Villeicht bin ich auch nur zu blind, oder vestehe ich irgentetwas falsch?
sorry für den doppelten Beitrag, ich habe ausversehen auf aktualisieren dedrückt auf der Seite auf der steht: "ihr beitrag wurde gesendet"
> Aber mein Problem ist eigentlich, > das ich gar keine angaben finde, was ich wirklich senden muss. Ich > lese > immer nur zur initialisierung cmd1 (oder so ähnlich) senden usw.. > Kann > aber im Datenblatt nicht entdecken welche Folge von einsen und > nullen > ich senden muss. Also die Kommandos heißen so wie ihre Bitmuster. Für CMD1 schickst Du eine (dezimale) 1, für CMD16 eine 16. Wo ist das Problem? ...
Es gibt (mindestens) zwei Moeglichkeiten: man will sich alles ganz genau "von null" selbst erarbeiten oder man schaut, wie es andere schonmal gemacht haben und versucht es nachzuvollziehen und daraus zu lernen oder einfach nur zu nutzen. ("Von null" ist meiner Meinung Zeitverschwendung, aber hier nicht der richtig Platz dies ausdiskutieren.) Es gibt viele fertige Ansteuerfunktionen fuer MMC und SD-Karten an AVR SPI, manchmal etwas versteckt in Dateisystem-Bibliotheken, aber die Low-Level-Funktionen braucht man dort auch (und den Rest kann man weglassen). Google-Futter fuer den Anfang: - embedded filesystem library efsl (Dateien sd.c/atmega128.c) - elm-chan ffat (mmc.c im AVR "sample") - Holger Klabunde - Ulrich Radig Dazu noch das SanDisk SD Product Manual (die aelteren Versionen sind recht ausfuehrlich, google findet) als Referenz zum nachlesen. Martin Thomas
danke für die Info mit dem cmd, jetzt erscheint mir das ganze schon viel logischer. Mit Cmd konnte ich einfach nichts anfangen. Ich binn leider kein c Programierer, aber die mmc.c von Ulrich Radig kann man doch theoretisch in jedes Programm einbauen und die darin definierten Funktionen verwenden, dann würde ich nähmlich zum Anfang dieses Modul verwenden.
Ich bin auch kein C-Programmierer und werde es vermutlich auch nie werden. Ich schreibe meine Programme in Assembler. Und ich nutze nur Code, den ich selbst auch verstehe und den ich meist (wenige Ausnahmen) selbst geschrieben habe. Das (unverstandene) Benutzen fremden Codes mag ich nicht. Man muss das Rad zwar nicht immer neu erfinden, aber es ist schon ganz gut, wenn man seine Funktion versteht. ...
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.