Forum: Mikrocontroller und Digitale Elektronik SD Karte am XMEGA128A1


von milan (Gast)


Lesenswert?

Hallo zusammen,
kann mir bitte jemand einen Schaltplan + Demo Programm geben.

Were sehr dankbar.

Gruss
Milan

von Gerhard G. (xmega)


Lesenswert?

milan schrieb:


> kann mir bitte jemand einen Schaltplan + Demo Programm geben.

http://www.basteln-mit-avr.de/atxmega32a4.html#sdcard


Gruß xmega

von milan (Gast)


Lesenswert?

Hallo xmega,
leider funktioniert es bei mir nicht!
er initialisiert es nicht. und ich habe keine ahnung warum.
Gruss
Milan

von Gerhard G. (xmega)


Lesenswert?

Hallo,

Code ist auf verschiedenen Xmegas super gelaufen.

wenn deine Hardware passt, muss alles funktionieren.

SD-Card richtig angeschlossen? Sind ja nur 7 Anschlüsse.

4 mal SAPI, 2 mal GND, und einmal 3,3V

Port unbedingt vor SPI initialisieren! Wie im Beispiel.

Geh mal mit dem Takt auf 16Mhz oder den SPI-Takt reduzieren.




//ATxmega128A3  SD-Card

// MMC_Chip_Select PD4  Pin30   ->    MMC/SD-Karte (CS)
// MMC_MOSI        PD5  Pin31   ->    MMC/SD-Karte (DI)
// MMC_MISO        PD6  Pin32   ->    MMC/SD-Karte (DO)
// MMC_Clock       PD7  Pin33   ->    MMC/SD-Karte (CLK)

// ATxmega32A4    SD-Card

// MMC_Chip_Select PD4  Pin24   ->    MMC/SD-Karte (CS)
// MMC_MOSI        PD5  Pin25   ->    MMC/SD-Karte (DI)
// MMC_MISO        PD6  Pin26   ->    MMC/SD-Karte (DO)
// MMC_Clock       PD7  Pin27   ->    MMC/SD-Karte (CLK)


Gruß xmega

von Pascal H. (pase-h)


Lesenswert?

Don't feed the Troll!

von milan (Gast)


Lesenswert?

Hallo xmega, jetzt ist klar das es nicht funktionieren kann weil ich es
1) an port J angeschlossen habe, und am port d mein TFT dran ist.

ich habe jetzt im mmc.h folgendes geendert:
  #define MMC_Write      PORTE.OUT
  #define MMC_Read      PORTE.IN
  #define MMC_Direction_REG           PORTE.DIR


  #define SDCARD_MISO       6
  #define SDCARD_MOSI      5
  #define SDCARD_Clock       7
  #define SDCARD_SS          4

so solte es funktionieren oder???
Gruss
Milan

von Dominik S. (dasd)


Lesenswert?

milan schrieb:
> so solte es funktionieren oder???

Ausprobieren!

von milan (Gast)


Lesenswert?

Hallo, geht eben nicht.
Gruss
Milan

von milan (Gast)


Lesenswert?

das programm hängt sich bei
if( FALSE == mmc_init() ){
  }

auf, geht nichts mehr.

von milan (Gast)


Lesenswert?

hallo,
also initialisieren kann ich:
ich musste das verändern SPI_MODE_0_gc zu SPI_MODE_3_gc.

lesen kann ich aber nicht.
Gruss
Milan

von milan (Gast)


Lesenswert?

Hallo zusammen,
es kommt bis zur zeile:
if( MMC_FILE_OPENED == ffopen(file_name,'r') ){
und das wars.

Kann mir bitte jemand helfen??
Gruss
Milan

von milan (Gast)


Lesenswert?

hallo zusammen, initialisieren geht nicht. wenn ich auf SPI_MODE_3_gc 
gehe. dan zeigt es immer init an ob karte dran ist oder nicht ob kabel 
angeschlossen oder nicht.
bitte um hilfe.
Gruss
Milan

von Gerhard G. (xmega)


Lesenswert?

Hallo,

das ist mir auch aufgefallen, die Software gibt teilweise falsche 
Ergebnisse bei der Initialisierung zurück (SD-CARD gesteckt oder nicht).

Verlass dich mal nicht auf die Aussage ob Init io, oder ob eine Karte 
dran oder nicht dran ist!

Setze dir mal ein paar Prüfpunkte mit Leds und schau ob gewisse Routinen 
durchlaufen werden.

Meine Karten arbeiten mit dem SPI_MODE_0_gc. Ist womöglich von Karte zu 
Karte unterschiedlich.

Ob die Karte beschrieben wurde, kann doch leicht mit dem PC getestet 
werden.




Gruß xmega

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Testweise Pull-Up Widerstand an die AVR MISO <-> SD-Card DO Verbindung.

von milan (Gast)


Lesenswert?

Hallo funktioniert alles,
ich brauche umbedingt eine Brille!!

Wenn mann alles auf PORTE macht soll man auch SPIE schreiben und nicht 
SPID!!

beschreiben ging bestens.

Wie kann ich jetzt nur zielen weisse auslesen???

Gruss
Milan

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
Noch kein Account? Hier anmelden.