Forum: Mikrocontroller und Digitale Elektronik STM32 mit dem LA töten?


von Max G. (l0wside) Benutzerseite


Lesenswert?

Kurzversion: Anschließen eines Saleae-Clons an einen Port des STM32L0 
killt den SWD-Zugang, nicht aber den Rest des Prozessors.

-------------------------------------

Meine ersten Gehversuche mit dem STM32L0 haben zu seltsamen Resultaten 
geführt:
Ich habe mir für den STM32L051 im QFN32 ein kleines Breakout-Board 
gemacht. Das hängt an einem STLink-Clone (BAITE) und wird von dort mit 
3,3V versorgt, außerdem sind natürlich SWDIO, SWCLK und GND 
angeschlossen. Funktioniert.

Eine Ausgabe auf die USART1 (PA9) hat auf Anhieb funktioniert. Wenn ich 
nun aber den Logic Analyzer (Saleae-Clone) an die USART1 TX anschließe, 
läuft das Ganze noch ein paar Sekunden, dann verabschiedet sich der SWD 
in den Siliziumhimmel. Das Board läuft noch, ich kann aber über SWD 
nicht mehr darauf zugreifen. Der SWD lässt sich auch nicht 
wiederbeleben.

Nach uC-Tausch ist alles wieder gut, bis der LA wieder länger als ein 
paar Sekunden dranhängt. Dann verabschiedet sich der SWD wieder in die 
ewigen Jagdgründe.

Einschleifen eines USB-Isolators hilft, leider ist mein 
Olimex-Billigteil zu lahm, um den LA daran zu betreiben (250kS/sec ist 
ein bisschen wenig).


Der LA hat mir mit MSP430 jahrelang gute Dienste geleistet, völlig 
verkehrt kann er also nicht sein.

Any ideas (außer auf chinesische Billigclones zu verzichten)?

Max

von Markus M. (adrock)


Lesenswert?

...also alles wird nur vom PC mit Spannung versorgt? Meine Erfahrung 
ist, dass die STM32 relativ empfindlich auf Spannungsspitzen an den I/O 
Pins reagieren.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Im ersten Anlauf Schaltung extern versorgt, im zweiten dann alles aus 
dem PC.

Ich werde zähneknirschend den uC noch mal tauschen und die LA-Probes 
über 10k längs anschließen. Masse kommt dann über USB. Nicht schön, aber 
wenn's nicht anders geht...

von ui (Gast)


Lesenswert?

Ich nutze zu Testzwecken ausschließlich Orginal Boards von ST (sind eh 
fast geschenkt, so billig kriegst du das alles nicht hin, also µC, 
Kondensatoren SWD etc.). Hab dort regelmäßig auch einen 10€ Saleae Klon 
hängen, bei mir ist noch nie irgendwas gestorben.
Auch auf selbst entworfenen Platinen mit externen Spannungsversorgung 
ist noch nie etwas gestorben.

Vermutung: Deine Schaltung ist Murks. Nimm die 11€ und kauf die so ein 
Discovery/Nucleo Board.

von Markus M. (adrock)


Lesenswert?

Mir sind regelmäßig STM32F030 gestorben (bzw. liefen noch, wurden aber 
dann immer heiß) wenn die Schaltung extern versorgt wurde ("schwebende" 
Masse) und ich ausversehen vom PC über ST-LINK Clone oder FT232-Adapter 
zuerst das Signal verbunden habe und erst dann die Masse.

Da sollte man also wirklich drauf achten... Controllertausch macht 
keinen Spaß ;)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ist die Masse des LA auch mit der des µC verbunden?

Irgendwie klingt "Masse kommt dann über USB" nicht so richtig danach.

von Max M. (maxmicr)


Lesenswert?

Rufus Τ. F. schrieb:
> Irgendwie klingt "Masse kommt dann über USB" nicht so richtig danach.

Ist das nicht die selbe Masse? Immerhin ist alles irgendwie mit dem PC 
verbunden, ob über ST-Link oder über den Logic Analyzer.

von Max G. (l0wside) Benutzerseite


Lesenswert?

@ui: für den L051 gibt es kein Board von ST. Nur für den L101, also eine 
Nummer größer.
Die Schaltung besteht aus einem L051, einigen Abblock-Kerkos und einem 
3,3V-LDO mit 100uF davor und dahinter.

@Rufus: via USB ist das alles die gleiche Masse, bei ein paar kHz sollte 
das egal sein. Eine extra Masseleitung zum LA machte es nicht besser. 
Der Port, an dem der LA hängt, tut ja verrückterweise weiterhin. Nur SWD 
ist tot.

Das mit der schwebenden Masse muss ich mir anschauen. Vermutlich wird es 
auf einen STLink ISOL rauslaufen, 75 Euro, dafür aber Ruhe. Und 
provisorisch eben die 10k-Längswiderstände.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Max G. schrieb:
> das egal sein. Eine extra Masseleitung zum LA machte es nicht besser.
> Der Port, an dem der LA hängt, tut ja verrückterweise weiterhin. Nur SWD
> ist tot.

 Eine extra Masseleitung ist nicht notwendig.
 Es gibt eine vorgesehene Masseleitung zum LA und die reicht vollkommen.

 Beim LA sind es Eingänge, da kann ganz einfach nicht genug Strom
 fliessen, um irgendetwas zu killen.

 Und wenn man zuerst LA einschaltet und erst danach die Schaltung,
 kann ganz einfach nix passieren. Hat bestimmt nichts damit zu tun
 ob dein LA aus China oder aus Deutschland - Schweiz - USA kommt.
 Eher mit dem Bedienpersonal.

: Bearbeitet durch User
von Horst (Gast)


Lesenswert?

Marc V. schrieb:
> Beim LA sind es Eingänge, da kann ganz einfach nicht genug Strom
>  fliessen, um irgendetwas zu killen.

Und wieder jemand, der die Probleme mit den Dioden der 
Schutzbeschaltungen von Eingangsports nicht verstanden hat.

von Hurra (Gast)


Lesenswert?

Ein Tipp für die Zukunft:
Serienwiderstände in Logik-Ports die die Platine verlassen, wann immer 
möglich. Eben an Pins, welche die Platine verlassen.

Man muss etwas aufpassen, weil der Widerstand mit dem Kabel einen 
Tiefpass bildet und die Signale "verschleifen" kann" - also ist das 
keine Lösung für USB oder HDMI. Bei vielen einfachen Sachen - PWM für 
LED, einfache Logiksignale, Debugger-Anschlüsser und UARTs - stört das 
aber nicht.

Der Widerstand macht im Fehlerfall eines: Strom begrenzen. Für 
3.3V-Signale verwende ich oft 220E. Schließt man an einen solchen Port 
z.B. versehentlich 5V an, fließen z.B. 23mA. Das ist der Unteschied 
zwischen "wird ein bischen warm" und dem magischen Rauch.

Es ist relativ wahrscheinlich, dass ein solcher Serienwiderstand deine 
Ports gerettet hätte.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Horst schrieb:
> Und wieder jemand, der die Probleme mit den Dioden der
> Schutzbeschaltungen von Eingangsports nicht verstanden hat.

 Das wurde neulich schon ausführlich durchgekaut und ja, ich habe es
 verstanden und nein, ich habe nicht gesehen, dass er 5V und 3V3
 verbunden hat.

 Es laufen bestimmt Millionen von STM und wahrscheinlich genauso viele
 chinesische LA problemlos weltweit.

 Aber wenn man sich ein bisschen Mühe gibt, ist alles kaputtzukriegen.
 Die meisten uC Pins vertragen nur Vcc + 0,5V, also ist seine
 Entscheidung 5V und 3V3 ohne irgendwelche Schutzwiderstände
 miteinander zu verbinden, was ?

 Genau.

: Bearbeitet durch User
von Max G. (l0wside) Benutzerseite


Lesenswert?

Leute, ich mache nicht erst seit gestern Elektronik. Einen zerstörten 
Port hätte ich auf ESD oder gegeneinander arbeitende Treiber geschoben. 
Der zerstörte SWD macht mich stutzig.

@Marc: Wenn du mir jetzt bitte noch erklärst, wo ich 5V in den STM32 
eingespeist habe. Wäre prinzipiell denkbar, dass der Saleae-Clone in 
uninitialisiertem Zustand 5V auf dem Ausgang hat, würde mich aber 
wundern.

@Markus: danke.

Ich fasse zusammen: den Effekt kennt (bis auf Markus) keiner, dafür ist 
die Diagnose "Blödheit des Bedieners" oder "Schaltung ist Murks" 
blitzschnell gestellt. Bestätigt leider meine Wahrnehmung des 
Unterforums. Ich bin dann mal wieder raus.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Max G. schrieb:
> @Marc: Wenn du mir jetzt bitte noch erklärst, wo ich 5V in den STM32
> eingespeist habe.

 Woher soll ich das denn wissen ?

 Und falls es dir hilft - ich habe auch eine ganz schöne Sammlung mit
 abgerauchten oder nur teilweise funktionierenden uC.

 Es gibt schon einen Grund warum das nicht weggeschmissen wird...

von Hurra (Gast)


Lesenswert?

Ich tippe stark auf eines der folgenden Probleme:
- 3V3 <> 5V - Logik verbunden
- Stecker Pinning falsch
- Potentialdifferenz zwischen LA und Aufbau

Um den Fehler jetzt mal genau zu verorten, wäre es gut, wenn du dir ein 
Blockschaltbild deines Aufbaus, inklusive LA und PC machen würdest. Das 
könntest du hier einstellen.
Dann sollte man sich Gedanken machen, welcher Block warum auf welchen 
Potential liegt, sowie wie die Pegel der Signale auf den einzelnen 
Verbindungen aussehen, und was das für die einzelnen Geräte heißt.

Und zuletzt könntest du meinen Tipp mit den Serienwiderständen 
beherzigen, das spart viel Lötarbeit.

von Nils P. (ert)


Lesenswert?

Mir sind auch schon einige STM32 verreckt. Programm lief noch konnt nur 
nicht mehr über SMD zugreifen. STM ist hold in reset  (oder so ähnlich)

Nachdem ich dann immer 2k vor die Pins gepackt hatte ist es nicht mehr 
aufgetreten...

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.