SPI Verzicht bei microSD - Herstellerabhängig ?

OP #1758648
Lesenswert?
• ▲
▼
Hallo,
hat jemand schon microSD Karten an AVR im SPI Mode erfolgreich 
eingesetzt?

Ich bekomme leider immer nur die Meldung, das keine Karte gefunden wird.
Folgenden Artikel habe ich gefunden.

Beitrag "Re: microSD Pinbelegung"

"Es soll auch microSD-Karten geben die keine SPI-Schnittstelle haben:
http://en.wikipedia.org/wiki/Secure_Digital_card#T...
...All memory cards must support all three modes, except for microSD
where SPI is optional...."

An Hardware habe ich einen ATmega32 (3,3V) mit 16 MHz, CS liegt auf P.D5 
mit ext. Pullup 10 K gegen VCC (3,3V) der microSD. Direkt am Adapter 
habe ich 100nF zwischen VCC+GND als Block C gelötet. Ob der 
Programmieradapter gesteckt ist oder nicht - das Ergebnis ändert sich 
nicht.

Die microSD hat 2 GB und ist mit FAT formatiert und steckt in so einem 
Adapter microSD auf SD. Die microSD selbst funktioniert über baugleichen 
Adapter am PC und in einer Digital Camera.
Ich benutze eine fertige LIB, wo ich die Sourcen dazu leider nicht sehen 
kann.

Zurück zu SPI: Kann es sein, das es verschiedene Hersteller / Modelle 
gibt von den microSD Cards, so das die einen SPI haben, andere nicht?

Danke schon mal für konstruktive Antworten. Viele Grüße Herbert
OP #1760515
Lesenswert?
• ▲
▼
Traurig mal wieder festzustellen, das so ein Fehler an einer nicht 
vernüftig getesteten Hersteller LIB liegt.

Wenn ich den /CS für die LIB auf einen unbenutzten PIN lege (sonst 
funktioniert die Hersteller LIB nicht) und den echten /CS selbst vor und 
hinter den Routinen setze funktioniert es bisher.
OP #1760738
Lesenswert?
• ▲
▼
Habe mal im LST File des Compilers geschaut und siehe da, tatsächlich 
ein Fehler in der LIB. Die Schalten den als /CS definierten PIN als 
Eingang (!!!). /CS wird als Signal dann in Folge richtig gesetzt, kommt 
aber nie Außen an, da ja Eingang. Super! Gilt zumindest wenn man für /CS 
Port "D5" oder "A3" benutzt.

Mikroelektronika mikroPascal PRO for AVR V 2.10 LIB vom 10.11.2009 ca. 
11 Uhr
falls jemand ähnliche Probleme hat. (gewählter Prozessor ATmega32, 16 
MHz)

so ist es falsch:
;__lib_mmc.mpas,182 ::
0x459A  0x002191B0    LDS        R27, Mmc_Chip_Select_Direction+0
0x459E  0x7FB7      CBR        R27, 8
0x45A0  0x002193B0    STS        Mmc_Chip_Select_Direction+0, R27

so wäre es richtig:
SBR        R27, 8

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.