Problem mit der SD Karten initialisierung

Gast #2152423
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?)

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