STM32 mit dem LA töten?

OP Persönliche Seite #4873476
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
Gast #4873738
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.
#4874247
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ß ;)
OP Persönliche Seite #4874761
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.
(Firma: Vescomp) #4874791
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.
Gast #4874834
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.
(Firma: Vescomp) #4874894
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.
OP Persönliche Seite #4874952
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.
Gast #4875102
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.

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