Schaltplan Microchip SD-Karte and PIC32

OP #3270914
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.
Gast #3270930
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.
OP #3274516
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?
Angehängte Dateien:
#3274637
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.
OP #3274658
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!
Gast #3274799
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.
Gast #3288479
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren