Schon wieder: SD-Card ansteuern

Gast #402460
Lesenswert?
• ▲
▼
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!
Gast #402466
Lesenswert?
• ▲
▼
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
Gast #402467
Lesenswert?
• ▲
▼
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
Gast #402470
Lesenswert?
• ▲
▼
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?
#402473
Lesenswert?
• ▲
▼
> 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?

...
Gast #402474
Lesenswert?
• ▲
▼
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
Gast #402475
Lesenswert?
• ▲
▼
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.
#402476
Lesenswert?
• ▲
▼
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.

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren