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
...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.
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...
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.
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ß ;)
Ist die Masse des LA auch mit der des µC verbunden? Irgendwie klingt "Masse kommt dann über USB" nicht so richtig danach.
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.
@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
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
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.
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.
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
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.
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...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.