Forum: Mikrocontroller und Digitale Elektronik STM32 - SDIO und Micro-SD/MMC-Card


von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo,

Ich möchte an den STM32F207Vx eine MMC Karte an die SDIO Ports an 
schließen.

Allerdings brauche ich auch möglichst viele UARTS (5 Stück) und kann 
somit die Pins SDIO_D2/3 nicht nutzen, da für UART4 verwendet.

Der STM32 SDIO kann mit einer Datenleitung genutzt werden, soweit die 
Doku.

Weiß jemand wie ich die Karte richtig beschalte/anschließe so dass es 
geht?
Die restlichen Pins, bekommen die einen PullUp/Down Widerstand?

Ich wollte jetzt kein SPI verwenden, wenn der STM32 bereits ein SDIO IF 
drin hat.

Danke für Tipps, Links und Demos im Voraus.

Grüße Markus.

von holger (Gast)


Lesenswert?

>Allerdings brauche ich auch möglichst viele UARTS (5 Stück) und kann
>somit die Pins SDIO_D2/3 nicht nutzen, da für UART4 verwendet.

>Der STM32 SDIO kann mit einer Datenleitung genutzt werden, soweit die
>Doku.

Lass das bitte sein. Kastriere das SDIO nicht;)
Das ist ja Verschwendung pur.
Bau dir doch einen Software UART.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

SW-UART geht nicht, der STM32 wird sehr viel zu Arbeiten haben, denn die 
anderen Schnittstellen müssen auch berechnet/bedient werden.
Ethernet als Web-Server ist da auch noch mit geplant.

Da ich in dem Board so viele Funktionen habe brauche ich das nun mal. 
Für einen extra UART Chip ist kein Platz mehr.

Ich weiß, dass damit SDIO "Kastriert" und ausgebremst wird, aber das 
nehme ich in Kauf, da ich nicht die Geschwindigkeit der Karte brauche.

Am liebsten hätte ich sogar gerne einen 6ten UART für eine 
Debug-Ausgabe, aber geht nicht da SDIO_CLK/CMD der gleiche Pin wie 
UART5_TX/RX ist (PD2/PC12).
Dann muss ich diese Ausgaben umbiegen auf einen anderen UART und den 
mehrfach benutzen.

von holger (Gast)


Lesenswert?

>Ich weiß, dass damit SDIO "Kastriert" und ausgebremst wird, aber das
>nehme ich in Kauf, da ich nicht die Geschwindigkeit der Karte brauche.

Irgendwann wirst du das bereuen.

>Am liebsten hätte ich sogar gerne einen 6. UART für eine Debug-Ausgabe,
>aber geht nicht da SDIO_CLK/CMD der gleiche Pin wie UART5_TX/RX ist
>(PD2/PC12).

Hast du das Remapping schon voll ausgeschöpft?

von Gnubbel (Gast)


Lesenswert?

Markus Müller schrieb:
> Am liebsten hätte ich sogar gerne einen 6ten UART für eine
> Debug-Ausgabe

Stichwort: Debug-Printf

Debugausgaben im Printf-Stil per Debugger empfangen.

von Matthias K. (matthiask)


Lesenswert?

Markus Müller schrieb:
> Ich weiß, dass damit SDIO "Kastriert" und ausgebremst wird, aber das
> nehme ich in Kauf, da ich nicht die Geschwindigkeit der Karte brauche.

Dann nimm doch das SPI-Interface für die SD Karte.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Die SDIO Schnittstelle unterstützt lt. Doku bereits die ganzen CMD 
Befehle und mir scheint dass die Ansteuerung einfacher wird, da vieles 
SDIO ab nimmt. Ich habe jetzt zwar noch nicht so im Detail darüber 
gelesen (SW-Funktionen), da ich jetzt erst mal die HW plane, aber es 
muss doch mit SDIO möglich sein. Ich habe von ST kein Beispiel gefunden 
wie ich die Karte anschließen sollte.

Daher die Frage wie beschalte ich die SD-Karte richtig mit SDIO?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

> Hast du das Remapping schon voll ausgeschöpft?

Ja.
PA1 brauche ich für RMII_REF_CLK, somit kann ich PA1 nicht für UART4 
nutzen.

SDIO_Dx Pins werden nur an einem Port-Pin für Remap angeboten.

UART5 und SDIO sind auch nicht kombinierbar.

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Also wenn du bloß so eine olle MMC und keine SD anschließen willst, dann 
mach das Ganze doch schlicht per Software und laß die SDIO-Schnittstelle 
bleiben. Ich hatte sowas Ähnliches schon mal notgedrungen an einem LPC 
von NXP zelebriert, weil ich den Slave-Select für die SPI Schnittstelle 
woanders gebraucht hatte und das ganze SPI ohne dieses Signal nicht 
ging. Siehe angehängtes Archiv

W.S.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Vielen Dank für den Code!

von Arne (Gast)


Lesenswert?

Gnubbel schrieb:
> Markus Müller schrieb:
>> Am liebsten hätte ich sogar gerne einen 6ten UART für eine
>> Debug-Ausgabe
>
> Stichwort: Debug-Printf
>
> Debugausgaben im Printf-Stil per Debugger empfangen.
Über JTAG? Ist im Fall von STM32 & IAR & J-Link tödlich!

von Ralf (Gast)


Lesenswert?

Servus Markus,

fange gerade auch mit dem SDIO an. Hast Du dir schonmal den Beispiel 
Code der ST Eval Boards angesehen? Ich meine den vom ST3210E Eval Board. 
Da ist eine Implementierung für die SDIO Schnittstelle enthalten. Die 
Schnittstelle startet erst mit einer Leitung und schaltet dann auf vier 
Datenleitungen um. Ich glaube es gibt bei der Firmware auch die 
Möglichkeit auf zwei Datenleitungen zu schalten.

Gruß,
Ralf

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo Ralf,

Nein, lt. STM Doku nur 1Bit, 4 und 8.

So viel ich weiß sind die STM Sourcen nur das "Grundgerüst" ohne 
Dateisystem.

Es gibt im Netz ein paar SPI Varianten, die bereits FAT Dateisystem 
können:
http://elm-chan.org/
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/#chanfat_stm32

(zweiter Link hatte ich mal vor einigen Jahren auf einem ARM7/LPC mal 
getestet und hat auf Anhieb geklappt)

Daher denke ich, dass es wohl das einfachste sein wird SPI zu verwenden.
Vom ersten Link sollte es ein Port geben, wo jemand das auf SDIO 
umgeschrieben hat, ich kann das nicht finden.

Ich muss mir das erst mal noch genau durch den Kopf gehen lassen. Ich 
bin in jedem Fall noch dran und am suchen und auch noch nicht 100% 
sicher was ich mache.
Da die Platine erst gemalt wird bin ich noch frei.

Was würdest Du machen?

von Ralf (Gast)


Lesenswert?

Hi Markus,

das elm chan FAT system habe ich bei mir quick and dirty mit SDIO 4Bit 
am laufen. Ging eigentlich relativ problemlos. Getestet habe ich 
allerdings noch nicht richtig da ich die Details noch nicht richtig 
verstanden habe. Wollte nur schnell mal was am laufen haben :-).
Die Quellen kann ich Dir geben.

Gruß,
Ralf

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Das wäre super!
Am besten Mailen: mm x mmvisual.de

von Ralph H. (ralphx)


Lesenswert?

Hallo Ralf,

könnest Du mir den Code bitte auch mailen?

Ich versuche schon seid einiger Zeit ein Beispiel zum Laufen zu 
bekommen, aber es klappt irgendwie nicht.

Das wäre wirklich klasse!

Mail Adresse: rasenderralph at gmx.de

von Ralph H. (ralphx)


Lesenswert?

Ralph H. schrieb:
> Hallo Ralf,
>
> könnest Du mir den Code bitte auch mailen?
>
> Ich versuche schon seid einiger Zeit ein Beispiel zum Laufen zu
> bekommen, aber es klappt irgendwie nicht.
>
> Das wäre wirklich klasse!
>
> Mail Adresse: rasenderralph at gmx.de

Sorry, ich habe einen Typo in meine Email Adresse eingebaut. Korrekt 
ist:

rasender_ralph at gmx.de

von Dennis X. (Gast)


Lesenswert?

Achso, falls das ganze noch aktuell sein sollte, wollte ich noch kurz 
wissen, wie das ganze dann genau aussehen soll.
Ich habe ein Display über eBay gekauft und dieses hat einen 
SD-Kartenslot schon eingebaut. Dieser wird nun über eine Stiftleiste 
herausgeführt.
Jetzt schließe ich eigentlich nur CLK, CMD, D0 und einen CS an.
Ist das soweit richtig?
Gibt es den CS schon im SDIO Interface? Hab jedenfalls keinen gefunden.

Wäre dankbar für Hilfe.

Dennis

von fdssd (Gast)


Lesenswert?

Arne schrieb:
>> Stichwort: Debug-Printf
>>
>> Debugausgaben im Printf-Stil per Debugger empfangen.
> Über JTAG? Ist im Fall von STM32 & IAR & J-Link tödlich!


echt?
also aufm LPC mit Xpressodebugger geht sowas
mit dem STlink auch soweit ich das testen konnte

für mich ist IAR gestorben ..
das ding hat mir mal so derbe ne woche versaut ...
egal wie gut der sein soll ... 2500€  fürn popo

jede GCC variante is mir 1000x lieber als diese verkappte IDE

von Grünkohl (Gast)


Lesenswert?

fdssd schrieb:
> für mich ist IAR gestorben ..
> das ding hat mir mal so derbe ne woche versaut ...
> egal wie gut der sein soll ... 2500€  fürn popo

Es wäre schön, wenn Du das Problem genauer beschreiben könntest. Wie oft 
liest man, dass ein Prozessor spinnt, obwohl das eigene Programm 100% in 
Ordnung ist.
Zu oft sitzt das Problem vor dem Rechner.

von Dennis X. (Gast)


Lesenswert?

kann jemand mir kurz bei meiner Belegung des Controllers helfen?
hab ich das aus dem Datenblatt soweit verstanden? bzw gibt es einen 
bestimmten pin für den CS?

von M. G. (looking)


Lesenswert?

Ralf schrieb:
> Hi Markus,
>
> das elm chan FAT system habe ich bei mir quick and dirty mit SDIO 4Bit
> am laufen. Ging eigentlich relativ problemlos. Getestet habe ich
> allerdings noch nicht richtig da ich die Details noch nicht richtig
> verstanden habe. Wollte nur schnell mal was am laufen haben :-).
> Die Quellen kann ich Dir geben.
>
> Gruß,
> Ralf

Hallo,

kannst Du mir bitte die Quellen per PN schicken?
Danke.

von Thomas B. (escamoteur)


Lesenswert?

Hi,

hier gibt es ein komplettes Projekt, das prima läuft

Beitrag "Re: Fat auf SD ansteuern über STM32"

Gruß
Tom

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.