Hallo zusammen, habe gerade mal das Projekt MMC-SD-Karte von Ulrich Radig bei mir zusammengelötet. Die Karte wird auch erkannt. Ich habe nur das Problem, das ich die SD-Karte über die selben Pins (MOSI, MISO, CLK) ansteuere, wie ich auch den Controller programmiere. Die SD-Karte an andere PINS zu hängen geht nicht, die implementierte Software-SPI funktioniert bei mir nicht. Keine Ahnung warum. Hat jemand eine Ahnung, wie ich am besten die SD-Karte und den Programmer auf die selben Ports bringe? Gruß Werner
Mit einem Jumper für das CS-Signal (oder CS für Karte über Portpin steuern).
Du musst sicherstellen, dass die CS-Leitung der SD-Karte zum Zeitpunkt der Programmierung inaktiv ist. Dank des auf GND ziehenden Spannungsteilers ist jedoch das Gegenteil der Fall, daher der Konflikt. Kann man natürlich per Jumper machen, ist aber etwas umständlich. Wenn du an Stelle der Spannungsteiler einen aktiven Pegelwandler mit beispielsweise 74HC4050 verwendest (Vdd=3,3V), kannst du dessen CS-Eingang per 47K-Widerstand auf 3,3V legen und schon gibt die SD-Karte bei Reset Ruhe.
Hallo, danke für die schnelle antwort. das CS-Signal läuft bei Ulrich Radig über einen Portpin. Jumper ist schlecht. Ich will, dass der Programmer und die SD-Karte immer am Controller hängen und ich ohne Hardwareveränderungen den Controller Flashen kann. Ich überlege schon, ob ich nicht das Reset-Signal des Controllers irgendwie verwenden kann. Ergänzung: Ich habe momentan die Minimalschaltung mit Spannungsteiler und einem 3,3V Festspannungsregler aufgebaut.
Standard-PNP-Transistor. Basis über 10K-Widerstand an Reset. Emitter an 3,3V, Kollektor an den CS-Anschluss der SD-Karte.
Alternative: Spannungsteiler für CS rauswerfen. Widerstand 3K3 zwischen 3,3V und dem CS-Anschluss der SD-Karte, Diode (vorzugsweise Schottky) zwischen CS und Portpin.
werner wrote:
> das CS-Signal läuft bei Ulrich Radig über einen Portpin.
...und wie ist es bei Dir gelöst? Vielleicht reicht ja einfach ein
PullUp/PullDown-Widerstand an diesem Portpin um das Problem zu lösen.
Der µC wird wahrscheinlich während der Programmierens alle Ports (außer
MISO) auf Eingang stellen. Das könnte dann evtl. einen undefinierten
Zustand geben.
Hallo nochmals, bei mir ist der CS auch über Spannungsteiler am Portpin gewesen. Hatte dann noch probiert den Pegelwandler mit zwei BC337 (wie auf der HP von Ulrich Radig beschrieben) zu bauen. Die Pegel stimmten zwar, aber komischerweise fand er damit die karte nicht mehr. Evtl geringe zeitverzögerung oder so? keine Ahnung. Habe nun die Version von A.K. mit der Diode (1N400x) genommen. Geht im kurztest wunderbar. Mal sehen obs auch ausführlichen Tests stand hält. Danke für eure schnelle Hilfe. Einen guten Rutsch ins neue Jahr. Gruß
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.