SD Karte mit Code von Radig

Gast #769409
Lesenswert?
• ▲
▼
Hallo
Ich habe eine 1GB SD Karte erfolgreich mit dem Beispiel Code von Radig 
an meinem Atmega32 initialisiert. Nun möchte ich auf der Karte ein Byte 
schreben. Wie müßte ich da vor gehen? Mit mmc_write_byte (U08 Byte)
schreibe ich z.B. eine 12 rein. Und mit U08 mmc_read_byte (void) möchte 
ich das Byte wieder auslesen und auf dem Uart ausgeben. Aber ich kann 
nix lesen? Was mache ich falsch?
Vielen Dank für Hilfe!
MFG
Frank
Gast #769424
Lesenswert?
• ▲
▼
Danke für die schnelle Antwort. Mit den Funktionen
U08 mmc_write_sector (U32 addr,U08 *Buffer) und
U08 mmc_read_sector (U32 addr,U08 *Buffer) habe ich es auch schon 
probiert. Wie müßte es den aussehen, wenn ich ein Sector beschreiben und 
auslesen  will? Ich möchte eigentlich nur Senoer Daten auf der SD Karte 
ablegen.
Frank
Gast #769435
Lesenswert?
• ▲
▼
Es müßte doch so U08 mmc_write_sector (0,512)zum schreiben  gehen und 
zum auslesen U08 mmc_read_sector (0) gehen. Die letzte Funktion gibt 
doch ein Buffer zurück, so das ich den Buffer auf der Seriellen ausgeben 
kann???
Frank
Gast #769558
Lesenswert?
• ▲
▼
Noch ne Frage! Muss ich ein Textfile auf der SD mit dem PC erzeugen in 
dem dann der Sector reingeschrieben wird? Weil so wie ich es beschrieben 
habe schreibt er nichts auf die SD Karte. Weder beim auslesen mit dem 
Atmega noch unter Windows kann ich den Sector wieder auslesen b.z.w. 
sehen.
(Firma: 4CKnowLedge) Persönliche Seite #814196
Lesenswert?
• ▲
▼
So... jetzt bin ich am Ende mit meinem Latein... irgendwas ist heute los 
baer die SPI will und will nichts ausspucken... verwenden tu ich auch 
den Code vom Ulrich... den ich übrigens für sehr übersichtlich und schön 
gecodet halte ^^

ich hab das ganze auf einen Mega8 gepackt... Die einzige kleine Änderung 
die ich vorgenommen hab war in der MMC.h
1
#if defined (__AVR_ATmega8__)
2
  #define SPI_DI        4    //Port Pin an dem Data Output der MMC/SD-Karte angeschlossen ist 
3
  #define SPI_DO        3    //Port Pin an dem Data Input der MMC/SD-Karte angeschlossen ist
4
  #define SPI_Clock      5    //Port Pin an dem die Clock der MMC/SD-Karte angeschlossen ist (clk)
5
  #define MMC_Chip_Select    1    //Port Pin an dem Chip Select der MMC/SD-Karte angeschlossen ist
6
  #define SPI_SS        2    //Nicht Benutz muß aber definiert werden
7
#endif

Derweilen versuche ich noch die MMC.c in das bestehende Projekt 
einzuweben... Ich hab mit dem LA und dem Oszi auf SCK und MOSI gemessen, 
allerdings ohne Erfolg...
Gast #848262
Lesenswert?
• ▲
▼
@Benedikt K:
Sinnenfrei Antworten wie "Ja, hab ich" helfen in diesem Zusammenahng 
meist nicht sonderlich weiter.

Die Frage nach demCodebeispiel möchte ich hier mal wieder aufgreifen, da 
ich mich selbst gerade mit dem Code nach Radig beschäfftige. Bei mir 
funktioniert der Code auch bis zu diesem Punkt:

Karte gefunden!!
0 5d 1 32 13 59 80 e3 76 d9 cf ff 16 40 0 4f
Directory


Directory Ende

FERTIG!!

Soweit scheints zu gehen. Nur das schreiben von Daten hab ich auch noch 
nicht hinbekommen. Muss man nun ein TXT File erstellen, oder wie 
funktioniert das?
#868622
Lesenswert?
• ▲
▼
Na hier muß man keinen Textfile erstellen um was zu lesen oder zu 
schreiben. Soll das denn später in einen Textfile?? Wenn ja dann muß man 
auch noch ein FAT16 System installieren. Nur mit dem Schreiben eines 
Sektors passiert in der Richtung nichts. Im Gegenteil. Oben erwähnt ihr 
das schreiben in Sektor 0. Damit ist dann der MBR oder VBR hin und unter 
Windows kann man die Karte nur noch mit WinHEX o.ä. betrachten.

Frage ist also - was willst du wirklich machen?

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