Hi,
ich versuche nun zum ersten mal eine SD Karte über SPI anzusteuern. Ich
sende CMD0 und die Karte antwortet auch. Allerdings tut sie das nach
Spezifikation (SanDisk) zu spät. Im Bild sieht man, dass NCR 11 Takte
lang ist. In der Spezifikation steht aber, dass NCR min. 1 und max. 8
lang ist. Verstößt meine SD Karte von HAMA nun gegen die allgemeine SD
Spezifikation oder die SanDisk Spezifikation oder mache ich etwas
falsch? Bei Takten ist schon der SPI Takt gemeint? Ansonsten macht sie
alles korrekt. SPI ist mit 250 kHz getaktet.
Vielen Dank im Voraus
"Hama" ist offenbar das Kürzel für "Handelsmarke". Dahinter verbirgt
sich in der Regel Überschuss oder B-Ware - so richtig gute Sachen kenne
ich von denen nicht. Daher kann es gut sein, dass die Karte nicht ganz
sauber läuft.
Das Sandisk-Datenblatt muss jedoch nicht für Hama-Karten gelten. Kann
gut sein, dass es bei diesen Timings paar Freiheiten gibt und die nicht
einer SD-Spezifikation unterliegen - oder Sandisk die Spezifikation da
einfach enger fasst.
Bin kein SD-Experte, aber miese Karten gibt es tatsächlich zuhauf. Am
besten ordentliche Karten von den Flash-Herstellern nehmen: Sandisk,
Samsung, Toshiba, ... da macht man weniger falsch mit.
Danke. Das habe ich befürchtet. HAMA ist ja nicht unbedingt für Qualität
bekannt. Jetzt ist nur die Frage, ob die Karte gegen die allgemeine
Spezifikation verstößt oder ob SanDisk das Timing für sich selbst
eingegrenzt hat. Bisher habe ich in der "Physical Layer Simplified
Specification" noch nichts gefunden. Natürlich ist das Kapitel "7.5 SPI
Bus Timing Diagrams" in der vereinfachten Version leer. Bisher konnte
ich das Timing noch nicht herausfinden. Kennt jemand den allgemeinen
Wert für NCR?
> Verstößt meine SD Karte von HAMA nun gegen die allgemeine SD> Spezifikation oder die SanDisk Spezifikation oder mache ich etwas> falsch?
Ja du machst etwas falsch. Du vergleichst einen Opel mit dem
Reparaturhandbuch von VW. Das ist ziemlich doof.
Wenn du einen Treiber schreiben willst der mit jeder beliebigen Karte
klar kommt dann musst du dir mindestens zehn verschiedene Karten
besorgen und die alle implementieren. Du wirst dann merken das die
Karten alle ihre kleinen Macken und unterschiede haben. Ausserdem wird
dir dann auffallen das es total einfach ist eine Speicherkarte fuer ein
eigenes Bastelprojekt anzusteuern, aber sehr viel Arbeit einen Treiber
zu schaffen der immer funktioniert.
Olaf
Ja das ist mir schon bewusst. Mir geht es in erster Linie nur darum
meine SD Karte zum Laufen zu bringen. Ich kann auch ein längeres NCR
implementieren, aber aus Neugierde und für die Zukunft würde ich gerne
wissen, ob manche Hersteller die Spezifikation nicht befolgen. Damit
würde ich mir eine Menge Frust ersparen.
Hab jetzt noch mal ganz genau die Tabelle mit den Werten angeschaut. NCR
ist 1-8 * 8 Clock Cycles lang. Also war es doch mein Fehler.
Trotzdem vielen Dank für die Aufklärung ;).
Dirk K. schrieb:
> Jetzt bekomme ich Bregenzerrung. Wie willst du -63 Takte schaffen? So> schnell schalten, ein Wurmloch in die Vergangenheit zu bohren? ;)>> SCNR :)http://www.youtube.com/watch?v=iIIuR-HjFho
Es gibt so viele SD-Karten, die extrem grob gegen fast alles verstoßen,
was jemals spezifiziert wurde. Guck dir mal den MMC/SDHCI-Treiber im
Linux-Kernel an. Workarounds über Workarounds, um auch mit den ganzen
schäbigen Karten klarzukommen. Selbst bekannte Markenhersteller
verkaufen Müll. Und die Host-Controller sind dann auch meistens recht
eigensinnig...
Als das Raspberry Pi rauskam, habe ich am SDHCI-Treiber für den BCM2835
mitgewirkt. Es war nicht mehr feierlich, was ich mit meiner Sammlung an
ca. 15 verschiedenen SD-Karten erlebt habe. Und obwohl meine Karten am
Ende alle problemlos und schnell funktionierten, gab es noch zahlreiche
Nutzer mit weiterhin problematischen Karten.
Ein großes Problem ist auch, dass die Hersteller u.U. den
Controller-Chip beim gleichen Modell wechseln. Je nachdem, welche Charge
man bekommt, hat dann das gleiche Modell an Karte unterschiedliche
Performance-Charakteristik und unterschiedliche Bugs. Man kann sich auf
nichts verlassen.
greg schrieb:> Und obwohl meine Karten am> Ende alle problemlos und schnell funktionierten, gab es noch zahlreiche> Nutzer mit weiterhin problematischen Karten.
Gibt es das Problem auch bei den micro-SD-Karten, oder ist die
'Streuung' dort besser geworden? Hast Du da Erfahrungswerte?
m.n. schrieb:> Gibt es das Problem auch bei den micro-SD-Karten, oder ist die> 'Streuung' dort besser geworden? Hast Du da Erfahrungswerte?
Ich glaube kaum, dass es da einen Unterschied gibt. MicroSD ist ja
lediglich ein kleineres Gehäuse, die Controller sind gleich. Als ich
damals (2012) mit dem Raspberry Pi arbeitete, waren die 2 oder 3
MicroSD-Karten, mit denen ich testete, nicht besonders auffällig.
> Man kann sich auf nichts verlassen.
Das war auch meine Erfahrung. :-)
Am schlimmsten sind im uebrigen SD-Karten welche nicht auf Basis einer
Statemachine arbeiten sondern richtig Intelligenz aufweisen. Also
SD-Karten die zusaetzlich noch einen USB-anschluss haben, Memorystick
nach SD, oder SD+Wlan.
Und wenn man das Problem im Griff hat dann kommt das Filesystem.
Meine erste Karte hatte im uebrigen nur 8MB und natuerlich war sie mit
FAT12 formatiert...
Und selbstverstaendlich gibt es Karten als Superfloppy und mit
Partitionstabelle.
Das ist IMHO auch der Grund warum alle Digitalkameras Karten formatieren
koennen. Ich meine wenn man da mal drueber nachdenkt ist das doch eine
ueberraschende Funktionalitaet. Aber damit versuchen die Hersteller ein
Teil der Probleme in den hoeheren Schichten zu kompensieren.
Olaf
soul eye schrieb:> so langsam verstehe ich, warum im Profibereich die CF-Karte> einfach> nicht aussterben will...
Was treibt dich zu der wahnsinnigen Annahme, dass es bei CF besser
aussieht? :)
Eine eigene Frage?
Dieser Thread ist über 12 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.