mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Karte am AT91SAM7S256


Autor: Peter Pippinger (axis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo NG,

habe mir gerade die Demo zu SD/MMC vom AT91SAM764 angeschaut (C). Ich 
würde auch gerne eine SD-Karte ansprechen (nur lesend und ohne 
FAT16/32). Und natürlich wie immer in Assembler. Vor allem würde ich 
gerne weiterhin ohne Stack arbeiten, weil ich den Speicher für andere 
Dinge brauche.

Kann mir jemand ein paar Tipps geben, wo ich ne richtig schöne 
Step-by-Step Vorgehensweise finde, um die Karte via SPI anzusprechen?
http://elm-chan.org/docs/mmc/mmc_e.html
hab ich schon gefunden. Bin aber noch nicht so 100% begeistert. 
Vielleicht gibts ja noch was tolleres :-)

Was mir auch noch nicht ganz klar ist: Muss ich immer einen kompletten 
Block (512Byte) von der Karte lesen, oder kann ich auch kleinere 
Häppchen bekommen? Muss die Adresse, von der ich anfange zu lesen immer 
ein "Blockbeginn" sein?

Vielen Dank für jeden Hinweis!
Peter

Autor: Christian Julius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielleicht solltest Du mal den Einstieg in C überdenken, denn das wird 
sonst ein 10-faches der Zeit brauchen. Ich habe C-Routinen geschrieben, 
allerdings ohne FAT. Das Protokoll ist nicht ganz einfach aber es geht, 
nur stürzen die Karten gern an, Du brauchst einen P-Mosfet als 
Einschalter, um notfalls resetten zu können wenn die interne State 
Machine abschmiert.

Wie gesagt, alles vorhanden, nur in C für PIC aber gut konvertierbar...

mFG
Christian

Autor: Christian Julius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachwort:

Du solltest 512 Byte zwischenspeichern können. Man kann byteweise lesen 
und schreiben aber nur seriell und dann darf man die CS leitung auch 
nicht loslassen, nichts anderes zwischendurch machen. Die Karten sind 
statisch. Man kann nur Blöcke adressieren und muss mit 32 Bit Zahlen 
dabei rechnen.

Sagen wir es mal so: Ohne ein Dateisystem ist das Ganze recht witzlos. 
Ich habe fixe Dateigrössen vorgegeben und eine Art Tabelle vorn 
abgelegt. Will man dynamisch vorgehen braucht es einen Riesenaufwand 
dazu. Aber Sourcecodes in C für FAT16 kann man auch kaufen, ca 40 USD.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Julius wrote:
> Aber Sourcecodes in C für FAT16 kann man auch kaufen, ca 40 USD.
Ja, oder in der Codesammlung, ca 0 USD

> Du brauchst einen P-Mosfet als
> Einschalter, um notfalls resetten zu können wenn die interne State
> Machine abschmiert.
Dass man sowas "braucht" höre ich hier zum ersten mal. Meine SD-Karte 
ist noch nie abgeschmiert. Welche schmiert denn bei dir immer ab?

Autor: Christian Julius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe diverse Karten hier in meinem Board ausprobiert.

http://www.der-chris.de/temp/b100.jpg

Wenn etwas schiefgeht beim Schreiben, dann hängt die Karte bis sie neu 
gebootet wird. Tagelang läuft es und auf einmal geht was schief, Karte 
antwortet nicht etc. Kommerzielle Anwendungen haben ebenfalls einen 
Ausschalter für die Karte, wie zB Datenlogger zudem die Karten reichlich 
Strom fressen, wenn sie nicht in den Idle Mode gesetzt werden.

Ich weiss nicht ob es bei den AVR so ist wie bei den PICs aber wenn ich 
die SPI benutze, dann werden die Port als Schmitt Triger geschaltet und 
dann reichen die Pegel nicht mehr, bzw nicht immer. daher habe ich zwei 
Inverter davor geschaltet. Kann sein, dass es bei den AVRs so ist, muss 
aber nicht sein.

Autor: Peter Pippinger (axis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@christian:
> Das Protokoll ist nicht ganz einfach aber es geht,

Welches Protokoll meinst Du? SPI? Der Arm hat ein SPI on Chip...

MfG
Peter

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.