www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schon wieder: SD-Card ansteuern


Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit einem Taster und einer LED ==>
http://www.mikrocontroller.net/tutorial/

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry,
aber an dem Punkt bin ich schon vorbei

Autor: Sven Derschreckliche (breaky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du mit dem ISP oder mit dem SPI ein Problem?

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit SPI

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was konkret ist (bei SPI) Dein Problem?

...

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Der Schreckliche (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@olaf
wow...das war ein kräftiger Schlag...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wow...das war ein kräftiger Schlag...

Nein, war es nicht. Der vorgeschlagene Weg ist schon der Richtige...

Immer einen Schritt nach dem Anderen.

...

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry für den doppelten Beitrag, ich habe ausversehen auf aktualisieren
dedrückt auf der Seite auf der steht: "ihr beitrag wurde gesendet"

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche Erfahrungen hast du den mit µCs?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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?

...

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: keiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.