Ist es möglich, den 4-Pin-Modus einer SD-Karte beim Entwerfen einer Schnittstelle mit einem Mikrocontroller zu verwenden, oder müssen Sie immer den SPI-Modus verwenden? Ich denke besonders an einen Mikrocontroller wie einen PIC24. Der SPI-Modus ist offensichtlich langsamer, und ich versuche, bessere Möglichkeiten zu finden, um den Durchsatz des Geräts zu verbessern.
quelle
swapf PORTC,w,c / iorwf PORTA,w,c / movwf POSTINC0,c
die SD-Karte während jedes Takts getaktet wirdmovwf
. Das richtige Timing für den Beginn und das Ende jedes Bursts zu finden, könnte schwierig sein (natürlich müssten Interrupts unbedingt deaktiviert werden), aber wahrscheinlich nicht unmöglich. Das Anvisieren einer Rate von einem Byte pro vier Zyklen könnte die Dinge vereinfachen.xorwf crc,w,c / movf PLUSW1,w,c / movwf crc,f,c
sollte zu einem Preis von 3 weiteren Zyklen / Byte funktionieren, wenn eine geeignete 256-Byte-Tabelle im RAM vorhanden ist; wenn man mit Byte-Paaren arbeitet, könnte man dies möglicherweise besser machen.Verbesserung des Durchsatzes im 1-Bit-Modus
Die Leistung von SD-Karte zu SD-Karte ist sehr unterschiedlich.
(a) Alle Karten geben eine "Besetzt" -Antwort auf einen Befehl, bis er bereit ist, den nächsten zu verarbeiten. Eine Karte kann den Standards auch dann noch entsprechen, wenn das Schreiben eines Datenblocks eine Sekunde dauert. Vielleicht könnten Sie ein paar verschiedene Karten ausprobieren und herausfinden, welche für Sie am besten geeignet ist - der beste Nettodurchsatz, die geringste Latenz, die geringste Energiemenge, um die Daten aufzuwecken und zu speichern und wieder einzuschlafen, oder was auch immer am meisten ist wichtig für Ihr Projekt. Wenn der Durchsatz am wichtigsten ist, sollten Sie die entsprechende Geschwindigkeitsklasse für SD-Karten auswählen - die höchste Geschwindigkeit, die Sie sich leisten können, oder zumindest die niedrigste Klasse, die eine angemessene Leistung bietet.
(b) Während der Standard verlangt, dass alle SD-Karten im 1-Bit-Modus Kommunikationen mit bis zu 25 Mbit / s verarbeiten, scheinen einige Karten mit viel höheren Bitraten zu funktionieren - vielleicht könnten Sie ein paar verschiedene Karten ausprobieren und die Daten erhöhen Ihre Bitrate auf etwas schnelleres, das mit dieser bestimmten Karte funktioniert. (Gibt es so etwas wie "automatische Baudratenerkennung", um automatisch die maximale Geschwindigkeit zu verwenden, die von der aktuell angeschlossenen Karte unterstützt wird?)
im 4-Pin-Modus
Ein Mikrocontroller kann die Verwendung des Vier-Bit-SDI-Übertragungsmodus unterstützen. Die 2 Optionen, die ich kenne, sind:
(a) Stecken Sie die Karte in einen USB-SD-Kartenadapter, der den Vier-Bit-SDI-Übertragungsmodus verwendet. Stecken Sie den Adapter in einen USB-Host-Anschluss, der an einen Mikrocontroller angeschlossen ist, der als USB-Host fungieren kann, z. B. den PIC24FJ32GB002.
(b) Stecken Sie die Karte in einen SD-Kartensteckplatz, der direkt an einen Mikrocontroller angeschlossen ist. Muss ich Lizenzgebühren an die SD-Karten-Benutzer zahlen, wenn mein Gerät „zufällig“ mit SD-Karten kompatibel ist? Verschiedene Patente und Geschäftsgeheimnisse erforderten lange Zeit, dass eine Person, die eine solche Host-Controller-Schnittstelle entwarf, eine NDA unterzeichnete und eine Patentlizenz von der SD Card Association kaufte. Aber ich höre, dass der SD-Schnittstellenstandard seit 2006 offener wird .
quelle