Forum: Mikrocontroller und Digitale Elektronik Schaltplan Microchip SD-Karte and PIC32


von David H. (davidm)


Lesenswert?

Hat jemand einen Schaltplan zur Hand für eine SD Karten anbindung an 
einen PIC32 die sauber funktioniert hat? also auch im 25/50MHz betrieb.

Ich habe im Inet viel gefunden, auch von Microchip selbst gibt es 
PICDemo Boards mit SDKarte und einem 5V level shifter drauf.

Auch den Artikel 
http://www.mikrocontroller.net/articles/MMC-_und_SD-Karten
hab ich durch.

Nur es bleiben einfach noch Fragen offen.

- Sollen Widerstände in die SPI Leitungen rein?
- Welche PullUps sind wirklich Notwendig?
  Nur CS? DO der SD Karte um beim Init 0xFF lesen zu können?

- Welche Werte nimmt man hier? Einige sprechen von 10k, andere von 
mindestens 47k

- Pull up oder Pull down? Ich habe auf Schaltungen schon beides gesehen.

von Stefan (Gast)


Lesenswert?

Welchen µC du nimmst ist eigentlich
egal.
Die Anbindung sollte mit 100K
an CS und CD sein. Also plus 100K und dann auf CS und CD.
Vielleicht noch einen Ferrit in die 3,3V
Leitung rein und 100nF zwischen Plus und Minus.

von David H. (davidm)


Lesenswert?

Ferrit ist auch so ein Thema, welchen? am Ende ist es eh nur ein Stück 
draht aber denoch, gibts da irgend welche bevorzugten?

von David H. (davidm)


Lesenswert?

Stefan schrieb:
> an CS und CD sein. Also plus 100K und dann auf CS und CD.

Mit CD meinst du aber schon CardDetect oder?

Sprich kein PullUp bei DO der Karte?

von Stefan (Gast)


Lesenswert?

Wenn du mit DO, SDO oder Dout meinst,
dann kommt da kein pull/up.
Ferrit schau einfach mal bei Reichelt
vorbei. Dort findest du welche. Welche da am
besten sind, kann ich dir auch nicht sagen.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ein Schaltplan.

von David H. (davidm)


Lesenswert?

Danke für den Plan, hat das so auch schonmal funktioniert?

von Stefan (Gast)


Lesenswert?

Warum soll das so nicht funktionieren ?

von David H. (davidm)


Lesenswert?

Naja ich sehe kein Widerstand bei DO. DIe Microchip lib wartet aber auf 
ein 0xFF und das könnte mir beim Init passieren sobald der DO ausgang 
noch floatet

von David H. (davidm)


Lesenswert?

Kann jemand die Anordnung und den Nutzen des Ferrites noch erklären?

Das er höher frequente Signale durch eine höhere impedanz minimiert ist 
klar, aber warum in die 3.3V. Die SPI Signale gehen so oder so zum µC

von David H. (davidm)


Angehängte Dateien:

Lesenswert?

man Beachte mal das Bild im Anhang.

hier werden die Datenleitungen mit einem PullDOwn versorgt.

http://www.camotruck.net/rollins/data_meter_overview.html


Und das wieder als Interface zu einem Microchip.


Ich verstehs nicht.. Wenn der µC intern pullups hätte würde ichs ja 
verstehen, aber warum sollte ich dann nochmal nen pulldown setzen?!

Und für was sind die 2.2K Widerstände?

von M. V. (-_-)


Lesenswert?

Spannungsteiler, weil die Karte offensichtlich mit andere Spannung 
betrieben wird, als der uC - deswegen auch der LM317 da.

von David H. (davidm)


Lesenswert?

Du das könnte echt sein, wenn der da nen 5V µC hat

"Only a voltage divider is need to interface the card with the PIC18F 
chip."

man hätte es mal lesen sollen :-)

ok bleibt nur noch die Frage warum der keinen Pullup in DO braucht und 
was mit dem Ferrit ist.

von Frank M. (frank_m35)


Lesenswert?

Hier ist ein Schaltplan von MikroE für den PIC32 und SD-Karte.

Ich würde sagen, auf jeden Fall rein muss ein Pull-Up bei
- SDI, da nichts anliegt wenn kein SPI Gerät darauf sendet und somit das 
Signal undefniert ist.
- CS, im Falle vom nicht initialisierten PIC
(CD sofern du es verwendest und WP falls eine normale SD-Karte und nicht 
eine microSD verwendet wird)

In SDO habe ich bisher auch einen rein gemacht, nur habe ich das bei 
keinen anderen Schaltungen bisher gesehen. Aber es sollte nicht schaden 
im Falle, dass der uC nicht initialisiert ist und die SD-Karte drin 
steckt und ausversehen CS aktiv ist ^^ Oder bspw. wenn der Master 
schläft und alle Geräte abschaltet und dabei vielleicht am SDO ein 
undefiniertes Signal sonst anliegt.
Da man aber davon ausgehen kann, dass der Master immer ein Signal auf 
SDO legt kann man das auch weg lassen.

Werte: 10k-100k.
Welchen Wert du nimmst bleibt dir überlassen. Einfach probieren, ist am 
Ende auch eine Sache des Stromverbrauchs und deiner Umgebung. Wenn dein 
Gerät neben einem Elektromotor verwendet wird würde ich zu 10k 
tendieren, ist das nicht der Fall und du hast auch noch Batteriebetrieb, 
wohl eher 100k.

Im MikroE ist noch ein 27 Ohm Widerstand in Reihe, sowol in SDO (beim 
PIC) als auch SDI (bei der SD-Karte), hier wird der Sinn erklärt:
http://www.microchip.com/forums/fb.ashx?m=153788


Auch rein sollte ein 0.1uF Kondensator, ich verwende auch immer noch 
einen zweiten 1uF parallel dazu. Ist die Spannungsversorgung weit weg 
vielleicht auch noch einen größeren.


Ob ein Ferrit noch rein soll oder nicht hängt von deiner 
Spannungsversorgung, Anbindung und Umgebung ab.
Wird die Spannungsversorgung auf der selben Platine durch einen LDO oder 
DC/DC Converter erzeugt und ist sehr stabil würde ich sie weg lassen. 
Wird die Spannungsversorgung von außen durch ein Kabel zugeführt und 
direkt an die SD-Karte angeschlossen wird sie wohl notwendig sein.
Ebenso ob induktive Komponenten wie bspw. ein Motor oder Relais auf der 
selben Leitung sitzen.

von David H. (davidm)


Lesenswert?

Vielen Dank für die ausführliche Antwort!!

Im Microchip Beispiel code ist zu lesen:

Basic initialization of media is now complete.
The card will now use push/pull
outputs with fast drivers.  Therefore, we can now increase SPI speed to
either the maximum of the microcontroller or maximum of media, whichever
is slower.  MMC media is typically good for at least 20Mbps SPI speeds.
SD cards would typically operate at up to 25Mbps or higher SPI speeds.


Bedeutet das das die Initialisierung der Karte mit einem open collector 
gemacht wird und später auf Push/Pull umgeschaltet wird? kann ich mir 
irgendwie nicht vorstellen.

Ich habe jetzt nur bei SDI einen PullUp drinne, ansonsten niergends,
funzt zumindest bisher bestens.


Und der Sinn der ~27R Widerstände liegt also im Vermeiden von overshoots

"Thas sounds like undershoot and overshoot problems to me. In a single 
slave system the slave will drive MISO and the master will drive SCK and 
MOSI. In that case adding a series terminating resistor as close as 
possible to the driver of that signal will produce a clean signal at the 
far end. That means adding something like a 47R resistor to SCK and MOSI 
as close as possible to the master, and 47R on MISO as close as possible 
to the slave.  "


perfekt, Jetzt ist das endlich mal sauber geklärt :-)

Danke!

von michael "meikel" D. (meikel)


Lesenswert?

David Mueller schrieb:

> Und für was sind die 2.2K Widerstände?
Die begrenzen den Strom durch die Gateschutzdiode(n), falls der 
Chipbesitzer "mehr als 5V ist Scheiße" nicht lesen kann. Es ist nicht 
auszuschließen, daß der Hinweis so nicht im Handbuch zu finden ist.

EDIT: Mist. Kaum schreibt man hier mal mit, ist der gequotete Text älter 
als die Steinkohle.

von holger (Gast)


Lesenswert?

>Bedeutet das das die Initialisierung der Karte mit einem open collector
>gemacht wird und später auf Push/Pull umgeschaltet wird? kann ich mir
>irgendwie nicht vorstellen.

Genau das ist der Fall. Ohne Pullup an SDO muss ich immer
mehrfach initialisieren. Mit Pullup nur ein mal.

von Jobst Q. (joquis)


Lesenswert?

Hast du dir schon mal das Pinguino-Micro Board angesehen. Da ist ein 
Micro-SD-Slot schon mit drauf. Und ist absolut preisgünstig.

https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO-MICRO/

Ein Schaltplan ist dort auch zu finden.

https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO-MICRO/resources/PIC32-PINGUINO-MICRO-REV-B.pdf

von incesseAbnoms (Gast)


Lesenswert?

After getting more than 10000 visitors/day to my website I thought your 
www.mikrocontroller.net website also need  unstoppable flow of 
traffic...

Use this BRAND NEW software and get all the traffic for your website you 
will ever need ...

= = > > http://get-extreme-autopilot-traffic.com

In testing phase it generated 867,981 visitors and $540,340.

Then another $86,299.13 in 90 days to be exact. That's $958.88 a
day!!

And all it took was 10 minutes to set up and run.

But how does it work??

You just configure the system, click the mouse button a few
times, activate the software, copy and paste a few links and
you're done!!

Click the link BELOW as you're about to witness a software that
could be a MAJOR turning point to your success.

= = > > http://get-extreme-autopilot-traffic.com
Best regards
Your friend
Rebecca

von runtastic (Gast)


Lesenswert?

Wie wäre es sich einfach die Spec anzuschauen?
https://www.sdcard.org/downloads/pls/

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.