Forum: Mikrocontroller und Digitale Elektronik SD-Card Lib gesucht (kein SPI)


von Pete K. (pete77)


Lesenswert?

Hallo,

ich komme mit der Lib von Ulrich Radig nicht zurecht, konnte bisher 
keine SD-Karte ansprechen.

Gibt es noch andere Bibliotheken, um eine SD-Karte anzusprechen, die 
nicht am SPI hängt ? (Bzw. Software-SPI macht)

Ciao,
Pete

von R. W. (quakeman)


Lesenswert?

Also die Lib von Ulrich Radig benutzt ja Hardware SPI oder Software SPI, 
je nachdem an welchen Pins die Karte dranhängt.
Und grundsätzlich wirst du von der Ansteuerung über SPI auch nicht 
wegkommen.

Aber es gibt eine recht gute SD-Reader Lib von Roland-Riegel, welche du 
mal ausprobieren kannst.
http://www.roland-riegel.de/sd-reader/

Ciao,
     Rainer

von Pete K. (pete77)


Lesenswert?

Ja,ich meinte auch eine Lib für Software SPI. Dann kann ich die Pins 
frei wählen.

Die Lib von Roland Riegel setzt IMHO auch Hardware SPI voraus (siehe 
sd_raw_config.h). Ich habe dort keine Einträge für custom Pins gefunden.

von Michael H* (Gast)


Lesenswert?

das is doch wirklich recht schnell selbst gebaut:
1
unsigned char senden_spi(unsigned char spidata)
2
{
3
  unsigned char spdr_miso=0;
4
5
  PORTB |=  (1<<PB5);          // B5:CLK  high
6
  PORTB &= ~(1<<PB2);          // B2:CS   low
7
8
  for(unsigned char a=7;a<=0;a--)
9
  {
10
    PORTB &= ~(1<<PB5);        // B5:CLK  low
11
    if( spidata & (1<<a) )
12
      PORTB |= (1<<PB3);       // B3:MOSI
13
    else PORTB &= ~(1<<PB3);   // B3:MOSI
14
    
15
    spdr_miso |= ((PINB & (1<<PB1)) >> PB1) << a; // B1:MISO 
16
    
17
    _delay_us(10);
18
    PORTB |= (1<<PB5);         // B5:CLK  high
19
    _delay_us(10);
20
  }
21
22
  PORTB |= (1<<PB2);           // B2:CS   high
23
  return spdr_miso;
24
}

evtl steigende und fallende flanke tauschen

von Pete K. (pete77)


Lesenswert?

Ich bin nicht so der SPI Freund, I2C finde ich besser.

Der SPI empfängt aber auch von der SD, oder ? :-)

von R. W. (quakeman)


Lesenswert?

@Pete K
Also ich weiß ja nicht welche Version der Lib von Ulrich Radig du hast, 
aber auf seiner Homepage ist die neueste Version 2.9 und kann mit 
Software und Hardware SPI benutzt werden.
Es gibt dort eine mmc.h in welcher man mit "#define SPI_Mode" zwischen 
Hard und Soft SPI umschalten kann.

Ciao,
     Rainer

von Pete K. (pete77)


Lesenswert?

Ja, die Lib von Ulrich Radig macht beides, allerdings bekomme ich damit 
keine Karte angesprochen.
Daher fragte ich nach einer alternativen Implementierung.

von J. K. (rooot)


Lesenswert?

Alternative:

www.Mikro-Control.de

ich glaub die hat softwar SPI

bin mit nicht sicher, hab auch erst gestern damit angefangen.

bei mir funktionierts noch nicht ^^

mfg
J.K.

von Simon K. (simon) Benutzerseite


Lesenswert?

Jaja, SPI ist schon ne Raketentechnik... ;)

von Pete K. (pete77)


Lesenswert?

Mikro-Control macht auch HW-SPI.

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.