Forum: Mikrocontroller und Digitale Elektronik MicroSD-Card an ADSP-CM403F


von Matthias W. (matt007)


Lesenswert?

an einem ADSP-CM403F mit Cortex M4 soll eine MicroSD-Card angeschlossen 
werden, falls möglich im QSPI-Mode.

Im Datenblatt fand ich den Hinweis auf SPI_D2 und SPI_D3. Es sind also 
SPI-Signale für paralleles Schreiben über mehrere IOs vorgesehen.

Bisher habe ich weder Erfahrung mit Cortex M4 noch Erfahrung mit QSPI an 
Cortex M4 bzw. hier ADSP-CM403F.

Kann mir jemand sagen wo ich ein Beispiel für eine Implementierung 
finden kann? Welche Pins der Karte müssen an welchen Portpins 
angeschlossen werden damit ein geeigneter Softwaretreiber für FAT 
brauchbar arbeiten kann?

von Timmo H. (masterfx)


Lesenswert?

Vielleicht mal die Implementierung der Blackfins in U-Boot ansehen?

von Jim M. (turboj)


Lesenswert?

QSPI geht nicht mit SD Karten, da geht nur das "normale" 1-bittige SPI.

Wenn der µC eine SD(HC/XC) Karte schnell ansteuern soll, braucht er eine 
SDIO Schnittstelle. Das findet man dann im Datenblatt, falls vorhanden.

von Matthias W. (matt007)


Lesenswert?

Timmo H. schrieb:
> Vielleicht mal die Implementierung der Blackfins in U-Boot
> ansehen?

ich habe gesehen daß es ein Dokument von AD gibt. Das schien mir jedoch 
nicht so brauchbar für diesen Fall. Ich kenne weder die Blackfins noch 
die Cortex M4 besonders gut und auch die 1800-Seiten Doku habe ich 
bisher nicht näher angesehen.

von Matthias W. (matt007)


Lesenswert?

Jim M. schrieb:
> QSPI geht nicht mit SD Karten, da geht nur das "normale" 1-bittige
> SPI.

Danke Jim. Es gibt das XMC4500 Relax Kit-V1:
https://www.infineon.com/dgdl/Board_Users_Manual_XMC4500_Relax_Kit-V1_R1.2_released.pdf?fileId=db3a30433acf32c9013adf6b97b112f9

dabei wird ein microSD CardSlot über Portpins des Cortex M4 direkt mit 
der Karte verbunden. Siehe Users Manual S.16. Es werden DAT0, DAT1, DAT2 
und DAT3 angeschlossen und dazu auch CMD und CLK.

es ist mir jedoch noch unklar ob der Cortex M4 im ADSP das so auch kann 
und welche Pins dazu genutzt werden sollten.

> Wenn der µC eine SD(HC/XC) Karte schnell ansteuern soll, braucht er eine
> SDIO Schnittstelle. Das findet man dann im Datenblatt, falls vorhanden.

im Datenblatt des ADSP-CM403F Rev.A 11.2015 finde ich Signale wie SPI 
Clock, SPI Data 2, SPI Data 3. Data 0 und Data 1 sehe ich jedoch nicht.

es gibt auch SPORT A Channel Clock, SPORT A Channel Data 0, SPORT A 
Channel Data 1.

von Matthias W. (matt007)


Lesenswert?

im Datenblatt des ADSP steht dass bis 16MB externes Serial Quad Flash 
Memory optional an SPI0 angeschlossen werden kann.

Im Quad Mode Transmit werden SPI_MISO, SPI_D2 und SPI_D3 zu Ausgängen.

Beim Quad Mode Receive werden SPI_MOSI, SPI_D2 und SPI_D3 zu Eingängen.

Beim Quad I/O-Mode werden 4 bits gesendet auf SPI_MOSI, SPI_MISO, 
SPI_D2, SPI_D3. Die Ordnung der Bits kann auch vertauscht werden.

Auf S.1339 findet sich ein Bild "Quad Mode Timing for CPHA=0, SOSI=1, 
16-Bit Transfer, LSBF=0".

Damit müsste es doch möglich sein eine MicroSD im 4bit-Mode anzusprechen 
- oder spricht etwas dagegen?

Für mich ist das Neuland. Eine SDIO-Schnittstelle ist das wohl nicht. 
Zumindest taucht der Name nicht auf. Was bringt jedoch ein 
Quad-Interface wenn man Speicher wie MicroSD damit nicht ansprechen 
kann?

Unklar ist mir im Moment wie das mit dem CMD-Pin ist. Zum Ansprechen 
muss man ja DAT0-3 anschließen und auch das bidir. CMD-Signal. Keine 
Ahnung an welchen Pin das soll.

In der Pin-Liste des Chips tauchen Namen auf wie
SPI0_ClK
SPI0_D2
SPI0_D3
SPI0_MISO
SPI0_MOSI
SPI0_SEL1
SPI0_SEL2
SPI0_SEL3

CMD ist da nicht dabei.

Wenn man die SEL-Leitungen nutzen könnte um 2 Karten anzusteuern, so 
könnte ich neben das MicroSD mit 4 parallelen Datenleitungen auch ein 
Flash mit 4 parallelen Datenleitungen anschließen. Da offenbar kein CS 
da ist im Quadbetrieb weiß ich nicht wie das gehen soll.

Bei dem Anschlussbild im Toshiba-Datenblatt 2006 der SD-Karte (S.7) sind 
am Host im SD-Mode 2 SD-Karten und eine MMC-Karte über jeweils separate 
Pins angeschlossen.

Im SPI-Mode hingegen werden die CS-Leitungen benutzt.

Man muss also wohl zu Klimmzügen greifen um neben MicroSD auch ein Flash 
über 4 Datenleitungen anzusteuern.

: Bearbeitet durch User
von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

QSPI ist nunmal für Flashbausteine mit QSPI.
(So manche µC haben auch einen Octa SPI um 2 QSPI Flashbausteine 
parallel zu betreiben)
Dann wird zB beim booten das Programm 4 mal so schnell in den RAM 
kopiert.

SDIO für SD Karten hat NICHTS mit QSPI zu tun, schlag dir das mal aus 
dem Kopf.

Also entweder du findest einen ADSP mit SDIO oder nutzt die Karte im 
1Bit SPI Mode.

von Matthias W. (matt007)


Lesenswert?

Mw E. schrieb:
> Also entweder du findest einen ADSP mit SDIO oder nutzt die Karte im
> 1Bit SPI Mode.

Danke für den Hinweis !

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.