www.mikrocontroller.net

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


Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das is doch wirklich recht schnell selbst gebaut:
unsigned char senden_spi(unsigned char spidata)
{
  unsigned char spdr_miso=0;

  PORTB |=  (1<<PB5);          // B5:CLK  high
  PORTB &= ~(1<<PB2);          // B2:CS   low

  for(unsigned char a=7;a<=0;a--)
  {
    PORTB &= ~(1<<PB5);        // B5:CLK  low
    if( spidata & (1<<a) )
      PORTB |= (1<<PB3);       // B3:MOSI
    else PORTB &= ~(1<<PB3);   // B3:MOSI
    
    spdr_miso |= ((PINB & (1<<PB1)) >> PB1) << a; // B1:MISO 
    
    _delay_us(10);
    PORTB |= (1<<PB5);         // B5:CLK  high
    _delay_us(10);
  }

  PORTB |= (1<<PB2);           // B2:CS   high
  return spdr_miso;
}

evtl steigende und fallende flanke tauschen

Autor: Pete K. (pete77)
Datum:

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

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

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

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

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja, SPI ist schon ne Raketentechnik... ;)

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mikro-Control macht auch HW-SPI.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.