Forum: Mikrocontroller und Digitale Elektronik SD an Nucleo-144 direkt?


von Marko R. (dr_marko_rocznik) Benutzerseite


Angehängte Dateien:

Lesenswert?

Darf ich eine SD-Karte direkt ans Nucleo-144 ohne Level-Translater 
hängen?

Wie auf dem Bild zu sehen:
- nehme ich die 5V vom Board und schicke sie über einen 3.3V-LDO
- LDO-En schaltbar vom Board
- D[3:0] jeweils mit 10k an 3.3V gehängt

Sind die I/Os des STM32H7A3 auf 1.8 oder 3.3V?

Und was wähle ich dann im CubeMX aus?
Ich denke: "SD 4 bits Wite buss"  (also ohne voltage converter)

Viele Grüße!
 Marko

von pegel (Gast)


Lesenswert?

So simpel ist das nicht zu erklären.

Im RM mehrere Kapitel.

Geh im CubeMX auf Connectivity, dann mit der Maus über SDMMC1.
Mit Ctrl+D in das RefMan - dann wird dir geholfen.

von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

Das habe ich.
Ich hatte gehofft nicht der erste zu sein der auf diese Frage eine 
Antwort sucht.

Marko

von pegel (Gast)


Angehängte Dateien:

Lesenswert?

Habe leider keine Erfahrung mit H7.

Ich würde einfach das 3V3 Beispiel "von der Stange" nehmen.

https://www.st.com/en/evaluation-tools/stm32h7b3i-dk.html

Dort ist die Schaltung für die µSD Karte zu finden. (siehe Anhang)

Die Software dazu gibt es hier:
~/STM32Cube/Repository/STM32Cube_FW_H7_V1.8.0/Projects/STM32H7B3I-DK

von dasrotemopped (Gast)


Angehängte Dateien:

Lesenswert?

das geht eleganter.
Die 3,3V kannst du direkt vom Board ziehen.

Gruß,
dasrotemopped

von dasrotemopped (Gast)


Lesenswert?

vergessen, den Pegelwandler braucht man wegen der SD-Karte, nicht wegen 
dem uC. Die schnellsten SD Karten laufen mit 1,8 V statt 3,3V. WEnn die 
Karte <32GB ist man auf der sicheren Seite.

von pegel (Gast)


Lesenswert?

Aus dem Datenblatt:

Two SDMMC interfaces (one can be supplied from a supply voltage separate 
from that of all other I/Os)

Ich hatte das so verstanden, dass der Pegelwandler eingebaut ist!?

von Frank K. (fchk)


Lesenswert?

Alle SD-Karten müssen mit 3.3V funktionieren.
Die schnelleren Übertragungsmodi (UHS-I) erfordern aber 1.8V. Hast Du 
das nicht, bist Du auf 25MByte/s Interface-Transferrate beschränkt. So 
wie ich das sehe, reicht das für Dich nicht.

Ich vermute mal, ST sieht für UHS-I das hier vor:

https://www.st.com/en/interfaces-and-transceivers/st6g3244me.html

Das ist nämlich genau so ein applikationsspezifischer Levelshifter für 
SD und SDIO.

fchk

von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

dasrotemopped schrieb:
> das geht eleganter.
> Die 3,3V kannst du direkt vom Board ziehen.
>
> Gruß,
> dasrotemopped

Ich habe den LDO eingebaut um über den EN-Pin die 3.3V abschaltbar zu 
machen und damit der SD-Karte von µC einen Reset verpassen zu können. 
Braucht man das nicht?

Und du hast ja direkt mein Board und bis auf den LDO alles gleicht 
angeschlossen :-)
Könntest ich den Source-Code des SD-Teils deines Projekte haben?
Wie schnell bist du mit dem direkten Anschluss?

PS:
Schickes Bild! Erst der 2te Blick fiel auf die SD ;-)

: Bearbeitet durch User
von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Alle SD-Karten müssen mit 3.3V funktionieren.
> Die schnelleren Übertragungsmodi (UHS-I) erfordern aber 1.8V. Hast Du
> das nicht, bist Du auf 25MByte/s Interface-Transferrate beschränkt. So
> wie ich das sehe, reicht das für Dich nicht.
>
> Ich vermute mal, ST sieht für UHS-I das hier vor:
>
> https://www.st.com/en/interfaces-and-transceivers/st6g3244me.html
>
> Das ist nämlich genau so ein applikationsspezifischer Levelshifter für
> SD und SDIO.
>
> fchk

Ich wundere mich warm keiner für das Nucleo-144 eine SD-Demo-Platine 
herstellt die man einfach drauf steckt und gut ist.

von Stefan F. (Gast)


Lesenswert?

Marko R. schrieb:
> Ich habe den LDO eingebaut um über den EN-Pin die 3.3V abschaltbar zu
> machen und damit der SD-Karte von µC einen Reset verpassen zu können.
> Braucht man das nicht?

Doch doch, das ist eine gute Idee. So kannst du auch die Stromaufnahme 
beim Einstecken begrenzen.

von Stefan F. (Gast)


Lesenswert?

Marko R. schrieb:
> Ich wundere mich warm keiner für das Nucleo-144 eine SD-Demo-Platine
> herstellt die man einfach drauf steckt und gut ist.

Weil SD Karten alles andere als unproblematisch sind. Kein hersteller 
will sich den Stress mit Support antun. Aus Asien bekommst du diverse 
SD-Karten Adapter aber ohne Support und ohne Garantie, dass sie 
funktionieren.

von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
>
> Doch doch, das ist eine gute Idee. So kannst du auch die Stromaufnahme
> beim Einstecken begrenzen.

Du hast keinen LDO drauf?
Wie machst du dann einen Reset?
Kommt man auch ohne diese Möglichkeit aus?

Den EN würde ich sonst einfach auf die 5V hängen.

Ist dein Boad dieses hier?
https://eckstein-shop.de/Waveshare-SD-Storage-Board-SD-card-Micro-SD-card-module?curr=EUR&gclid=Cj0KCQjw6575BRCQARIsAMp-ksPDIzlmxrXJ7A0Ynu-XknlnVX_sd2h7RJpIdh5N5DrF8f0n5a-CbB0aAsrAEALw_wcB

von dasrotemopped (Gast)


Lesenswert?

https://www.st.com/en/evaluation-tools/stm32h743i-eval.html

Mit SD Slot gibt es von ST, aber nicht zum Nucleo Preis.

von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

dasrotemopped schrieb:
> https://www.st.com/en/evaluation-tools/stm32h743i-eval.html
>
> Mit SD Slot gibt es von ST, aber nicht zum Nucleo Preis.

Ne, das Teil ist übertrieben.
Ich mach mal 'ne Weile und hoffe heute Abend den SD am laufen zu haben.

Eine Sache noch:
Ich würde gern printf sowohl für COM als auch SD nutzen. Mir würde da 
jetzt nur einfallen eine globale Variable zu definieren und in der 
"_write" dann entsprechend umzuschalten.
Gibt es da eine elegantere Lösung?

von dasrotemopped (Gast)


Lesenswert?

>Und du hast ja direkt mein Board
fast, meins ist ein STM32F7 Nucleo-144

>Könntest ich den Source-Code des SD-Teils deines Projekte haben?
ist schon ein älteres Projekt, muss ich mal schauen ob ich das noch 
finde
Aber mit CubeMX erstellt, SDMMC und FATFS mit installiert und fertig.
Und natürlich noch einen BMP Loader geschrieben. Nur Proof of concept, 
nix belastbares.

>Wie schnell bist du mit dem direkten Anschluss?
Nie einen Benchmark gemacht, das Bild von SD auf TFT laden hat 
funktioniert, das hat mir gereicht.

>PS: Schickes Bild! Erst der 2te Blick fiel auf die SD ;-)
Pressefoto von der analogen Halluzinelle.
https://de.wikipedia.org/wiki/Ijon_Tichy:_Raumpilot
Kann sein das sie noch andere Filme gemacht hat.

von dasrotemopped (Gast)


Lesenswert?

>> Mit SD Slot gibt es von ST, aber nicht zum Nucleo Preis.
>Ne, das Teil ist übertrieben.
man kann aber den Schaltplan abkupfern ...

von Marko R. (dr_marko_rocznik) Benutzerseite


Lesenswert?

SDMMC und FATFS habe ich im MX bereits drin.
Jetzt muss ich nur noch schauen mit welchen Befehlen ich ein File 
erzeugen und da reinschreiben kann.

Marko

von Stefan F. (Gast)


Lesenswert?

Marko R. schrieb:
> Du hast keinen LDO drauf?
> Wie machst du dann einen Reset?

Gar nicht

> Kommt man auch ohne diese Möglichkeit aus?

Habe ich bisher noch nicht gebraucht. Ich habe SD Karten aber auch nur 
für unwichtige Spielereien benutzt, die man ggf. manuell auf und wieder 
ein schalten kann. Allerdings kann ich mich daran erinnern, dass sich 
meine  Karten jemals spontan aufgehängt hätten - nachdem anfängliche 
Fehler in Hard- und Software behoben waren.

> Ist dein Boad dieses hier?

Habe kein Board verwendet, sondern was eigenes auf Lochraster und das 
CrumbX1-NET Modul von Chip45.

von Stefan F. (Gast)


Lesenswert?

Marko R. schrieb:
> Gibt es da eine elegantere Lösung?

Nimm fprintf, da kannst du angeben, über welches File-Handle du etwas 
"printen" willst.

Oder (vielleicht einfacher) sprintf() da macht du die Ausgabe in einen 
Puffer (Array von Zeichen).

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.