Atmega 1284p, Gelegentlicher Absturz bei Einstecken SD-Karte

Gast #2816399
Lesenswert?

ich habe eine Schaltung, bei der an einem 1284P (u.A.) ein SD-Slot per 
SPI dranhängt, siehe Schaltplan (Anlage).
In einer früheren Version hatte ich alles bis auf die SD-Karte auf 5V, 
mit einem 7805, die SD-Karte an einem MCP1702-3302. Spannungswandlung 
vom Atmega zur SD per simplen Widerstandsnetzwerk.
Jetzt habe ich das Design geändert, alles auf 3,3V, Versorgung mit einem 
LM1117T-3,3.
Funktioniert alles, bis auf einen kleinen Makel: wenn ich die SD-Karte 
bei laufendem Betrieb ziehe und wieder einstecke gibt es gelegentlich 
(ca. bei jedem 10. Versuch) Abstürze. Hat jemand Tips woran das liegen 
könnte?

Vielen Dank im voraus!

Micha
Angehängte Dateien:
Gast #2816413
Lesenswert?

vermutlich am Spannungseinbruch von Vcc. Du hast jedem IC brav 100n 
spediert, aber der SD Karte nicht.
Die zieht beim Stecken ordentlich Strom.
Wenn du ein Oszi hast, dann schau dir vcc beim Einstecken der Karte mal 
an.
Gast #2816938
Lesenswert?

Vielen Dank für die Tips!

Ein ordentliches Speicheroszilloskop ist eine Anschaffung über die ich 
schon seit Monaten nachgrüble... damit könnte ich jetzt schön 
reinschauen was mit Vcc passiert.
Hab zuerst mal zuerst provisorisch einen 100nF Kondi an Vcc und Gnd 
direkt am SD-Karten-Anschluss gelötet, hat leider garnichts gebracht. 
Dann einen 47uF Elko. Da habe ich den Eindruck dass es hilft, mit 
schwankendem Resultat - mal kann ich die Karte ca. 50 mal ein- und 
ausrasten ohne Absturz, mal passiert es nach 2 Malen wieder. Aber 
tendenziell seltener.

Würde ja auch den Vorschlag von Monsieur probieren, bin aber unsicher ob 
das erfolgversprechend ist - das ist ja die typsche Beschaltung für den 
7805. Beim LM1117 wird im Datenblatt dagegen je ein 10uF Tantalkondi 
davor und dahinter empfohlen. Hat es überhaupt eine Chance etwas zu 
verbessern wenn man davon so drastisch abweicht?
Gast #2816981
Lesenswert?

Layout hab ich als png angehängt, bzw. die Sprint Layout Datei, zusammen 
mit einem Viewer gibt es auch hier:
http://www.k1000uc.de/downloads/K1000uC%20v11.zip
Wär unheimlich nett wenn jemand von den Profis da mal reinschauen 
könnte.

Auf der Seite von elm-chan hab ich inzwischen gelesen, dass in so einer 
SD-Karte ein Kondensator integriert ist, der beim Einschieben der Karte 
die Spannung kurzzeitig runterzieht. Hatte dann gleich eine "ganz tolle 
Idee" die leider garnichts gebracht hat: ich hab per Fuses im Atmega die 
Brownout Detection von "disabled" auf 2,7V umprogrammiert. Erhofftes 
Resultat: der Atmega resetet dann planmäßig anstatt irgendwo ins Nirvana 
zu springen. Hat leider nicht so geklappt wie ich mir das vorgestellt 
hatte - die Abstürze sind weiterhin wirr :(
Angehängte Dateien:
Gast #2817000
Lesenswert?

@holger: Ja, das Problem tritt nur beim Stecken auf, nie beim Ziehen ;)

Dein Rat ist praxisorientiert absolut sinnvoll. Eigentlich gibt es 
keinen sinnvollen Grund, die SD im eingeschalteten Zustand des Geräts zu 
wechseln. Konkret handelt es sich hier um die Nachbildung eines 
historischen Tischrechners. Die SD-Karte ersetzt hundertew von 
Magnetkaten des Originals. Eigentlich sollte man die kaum jemals 
wechseln müssen.

Ich war auf das Problem gestoßen als ich ein aufgebautes Test-Exemplar 
einem Härtetest mit allen möglichen Gemeinheiten unterzogen habe.
Praktisch könnte man es vernachlässigen, aber irgendwie ist man doch bei 
der Ehre gepackt wenn ein Gerät das man entworfen hat sich 
unkontrolliert verhält - ich hab manchmal viel Zeit verbracht um solche 
Dinge zu klären. Auch wenn der praktische Nutzen gering bis Null ist - 
man fühlt sich hinterher besser wenn man eine Lösung findet ;)
Gast #2817010
Lesenswert?

Welche Vorkehrungen hast du eigentlich getroffen bevor du die
Karte ziehst oder steckst? Hast du das SPI Modul abgeschaltet
und MOSI, SCK und CS auf Input geschaltet?

Bei deiner Spannungsteilerlösung wurde der AVR durch
die Spannungsteiler davor geschützt die Karte evtl.
parasitär durch diese Leitungen zu versorgen.
Jetzt sind die direkt angeschlossen.
Gast #2817014
Lesenswert?

Die 100pF sind kein wirres Herumgesuche. Man bedenke, dass die Karte ein 
anderes Potential führe kann, wann bevor man sie einsteckt. Das führt 
folglich zu einem Ladungsausgleich bei Kontakt mit der Platine. Die 
100pF wirken dem Störimpuls entgegen.
Bei EC Karten hilft es jedenfalls...


Ingo
Gast #2817025
Lesenswert?

@holger:
per Software hab ich bisher keine Vorkehrungen getroffen. Das ist eine 
vielversprechende Sache die ich morgen gleich ausprobieren werde - MISO, 
MOSI, SCK auf Input, ich nehme an interne Pullups aktivieren. Und SPI 
nur wirklich dann aktivieren wenn es gebraucht wird.

Wobei mir derzeit noch nicht klar ist, ob man das SPI Modul 
softwareseitig aktivieren bzw. deaktivieren kann. Hab bisher gedacht das 
geht nur per Fuses einzustellen...
#2817072
Lesenswert?

> Die 100pF sind kein wirres Herumgesuche. [...]

Doch. Bei den SD-Karten und -Schächten sind die Kontakte für GND und VCC 
am längsten, haben also zuerst Kontakt. Damit ist ESD auf den anderen 
Kontakten praktisch ausgeschlossen.

Der Strom (VCC) sollte aber schaltbar sein, denn eine SD Karte kennt 
keinen Reset - bei Fehlern muss man daher die Versorgung abschalten. Ich 
habe hier Karten, die bei einigen - wohl eher selten benutzten - 
Funktionen einfach abstürzen.

Dann kann man auch eine Karte sicher einlegen und entfernen.
Gast #2817304
Lesenswert?

Micha schrieb:
> Wär unheimlich nett wenn jemand von den Profis da mal reinschauen
> könnte.

Ist das Layout 4-lagig mit GND und VCC auf den Innenlagen, oder sollen 
diese dünnen Leiterbahnen eine ordentliche Masseverbindung schaffen?
Da wäre dann ein fliegender Aufbau wahrscheinlich besser als die 
vorhandene Platine.
Gast #2818759
Lesenswert?

nein, es ist einfaches zweilagiges Design. Wollte gerade anführen dass 
ich auf der Unterseite der Platine eine Massefläche habe (die zeigt der 
Sprint Layout Betrachter aus irgendwelchen Gründen nicht). Allerdings 
hab ich beim genauen Hinschauen bemerkt dass die nicht mit GND vereinigt 
ist - immerhin hab ich so per Googeln gelernt wie man bei Sprint Layout 
ein Signal mit der Automassefläche vereinigt ;)

Aber im Ernst: gibt es für die Breite von Leiterbahnen, speziell GND und 
Vcc, eine Faustregel wieviel man pro mA dranhängender Verbraucher 
vorsehen sollte?
#2818879
Lesenswert?

Micha schrieb:
> Aber im Ernst: gibt es für die Breite von Leiterbahnen, speziell GND und
> Vcc, eine Faustregel wieviel man pro mA dranhängender Verbraucher
> vorsehen sollte?

Es geht hier nicht allein um den ohmschen Widerstand der Leitung, 
sondern auch um den induktiven. Bei langsamen Stromspitzen ist der 
ohmsche Anteil relevant, bei schnellen der induktive Widerstand. Der 
Gleichstrommittelwert (Stromaufnahme des Gerätes) ist hier wohl nicht 
das Problem.

Bei digitalen Schaltungen bracht man eigentlich immer ein gutes 
GND-Netzwerk bzw. eng vernetzte GND-Fläche!

Du kannst ja mal die schon vorhandene Kupferfläche an einigen Stellen 
mit GND verbinden.

Gruß Dietrich

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