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.
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.
Ferrit ist auch so ein Thema, welchen? am Ende ist es eh nur ein Stück draht aber denoch, gibts da irgend welche bevorzugten?
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?
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.
Danke für den Plan, hat das so auch schonmal funktioniert?
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
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
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?
Spannungsteiler, weil die Karte offensichtlich mit andere Spannung betrieben wird, als der uC - deswegen auch der LM317 da.
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.
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.
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!
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.
>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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.