Forum: Mikrocontroller und Digitale Elektronik Problem mit der SD Karten initialisierung


von Dominik Walter (Gast)


Lesenswert?

Hallo!

Das Projekt an dem ich im Augenblick arbeite (SD karte + farb grafik 
display)  gibt mir Kopfschmerzen.

Das Problem:

Solange ich den Programmer am Xplained Board angeschlossen habe , 
funktioniert die initialisierung der SD karte , sobald ich den 
programmer nichtmehr dran habe bleibt sie im Init stecken oder kommt bis 
zum ersten lesen von Daten und bleibt dann stecken.

Ich verwende Ulrich Radigs Code (V 3) , ich habe ihn lediglich auf die 
Xmega schreibweisen angepasst.

Karte ist eine  Kingston 2GB miniSD (mit Adapter) , Sockel ist ein 
alter SD slot aus einem Kartenleser.

Kann es evtl sein das ich bei den clock settings was falsch gemacht 
habe?
Ich habe auch einen externen Oszillator auf dem  Xplained...aber ich 
weiss nicht wie man den genau nutzt. (oder was für ein wert der hat... 
Die Dokumentation von dem xplained XmegaA1 sind ein wenig 
unverständlich..)
1
 
2
void clock_init()  {
3
/*Oscillator auf 32Mhz einstellen PIN1 = OSC_RC32MEN wird gesetzt */
4
   OSC.CTRL |= 0x02;
5
   /*Wenn Oscillator stabil wird das Flag RC32MRDY
6
    * gesetzt und 32Mhz können benutzt werden*/
7
   while(!(OSC.STATUS & OSC_RC32MRDY_bm));
8
   /*I/O Protection*/
9
   CCP = 0xD8;
10
   /*Clock auf 32Mhz einstellen*/
11
   CLK.CTRL = 0x01;
12
}

zusätzlich nutze ich diese initialen SPI settings für die karte in der 
mmc.c:
1
  SPIF.CTRL =  SPI_MODE_3_gc | SPI_PRESCALER_DIV64_gc | (0<< SPI_CLK2X_bp)
2
 | (1<< SPI_ENABLE_bp) | (1<< SPI_MASTER_bp); // 500khz?

Die settings setze ich nach der initialisierung auf 16mhz (ist  das zu 
hoch?)

von Dominik Walter (Gast)


Lesenswert?

Keiner eine Ahnung?

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.