Forum: Mikrocontroller und Digitale Elektronik STM32 startet nach Programmierung erst wenn alle Kabel abgezogen wurden


von Heinz M. (subi)


Angehängte Dateien:

Lesenswert?

Hallo,

ich hatte bereits in einem anderen Thema angekündigt, dass meine 
Mikrocontroller rumzicken. Jetzt ist es so schlimm, dass eine Lösung her 
muss.

Die Kondensatorengrößen sind aus dem Datenblatt entnommen. Auf der STM32 
Seite hier im Wiki steht noch ein 100nF Kondensator nach Ground. Mit 
oder ohne macht keinen Unterschied. Ansonsten siehe angehängtes Bild.

Programmiert wird mit CubeMX und SW4STM32 als Eclipse Plugin. Wenn ich 
ein altes Programm nehme tritt der Fehler genauso auf.

Beim Flashen habe ich höchstens jedes 50. Mal einen Verbindungsfehler. 
Würde sagen das funktioniert. Die Kabel sollten mit 10cm auch kurz genug 
sein. Zum Programmieren wird die SWD Schnittstelle von einem STM32F072 
Discovery Board verwendet. GND, SWDIO,SWDCLK und NRST sind verbunden.

Am Anfang lief noch alles so wie es soll: Nach dem Flaschen startet der 
Mikrocontroller neu und führt sein Pprogramm aus.

Ca. 20-50 Flashs später musste ich die Stromversorgung kappen und wieder 
anstecken. Erst dann ist er losgelaufen.

Nach ca. 100 Flashs musste ich erst das UART Kabel abstecken, dann die 
Stromversorgung reseten. Das UART Kabel ist an einem myAVR MK3 
Programmieradapter angeschlossen. Hängt aber am gleichen PC, also keine 
potentialdifferenz.

Nun startet er nur noch sporadisch. Oder wenn ich ihn aus der Schaltung 
rausnehme, nur die Plus und Minusanschlüsse verbinde, kurz einschalte 
und danach wieder in die Schaltung einsetze.

Betrifft mehrere STM32F042F6P6 und STM32F051C8T6.


Woran kann das liegen? Elektrische Aufladung durch den PVC Fußboden? 
Flash Zyklen habe ich bestimmt noch nicht erreicht. Mehrere Tage 
ausschalten oder trennen bringt auch keinen Effekt ... bin ratlos

von Alex W. (a20q90)


Lesenswert?

Wie sieht das Hauptboard auf, auf das der Adapter gesteckt wird? Foto? 
Layout? Schaltplan? Was ist mit dem Testpin?

: Bearbeitet durch User
von Heinz M. (subi)


Lesenswert?

Testpin?

Hauptboard ist ein Breadboard.

Der F051 hat am I2C1 einen Temperatur/Feuchtesensor (HTU21D) und am I2C2 
den gleichen Sonsor nochmal und einen I2C IO Expander. An einem Pin noch 
eine blinkende LED mit 1K Vorwiderstand, damit ich sehen kann ob er 
schon wieder nicht startet. Noch eine UART, damit ich die 
Temperaturwerte auf der Konsole mitlesen kann.

Für den F042 habe ich ein anderes Breadboard. ADC geht an einen PIR 
Sensor (kein Modul). Mit ein paar Widerständen und Kondensatoren. Spielt 
aber keine Rolle, da es auch ohne Sensor auftritt. 2 LEDs ebenfalls mit 
Vorwiderstand und Uart. Ein weiterer ADC Kanal und der I2C sind 
aktiviert, aber nicht in Benutzung und nicht verbunden.

Auf dem Bild würde man nur Kabel sehen und es tritt auch auf, wenn man 
die Schaltung downgraded auf 1LED oder das Programm neu erstellt und 
drauf flasht.

von Christopher J. (christopher_j23)


Lesenswert?

Heinz M. schrieb:
> Woran kann das liegen? Elektrische Aufladung durch den PVC Fußboden?
> Flash Zyklen habe ich bestimmt noch nicht erreicht.

Flashen kannst du den ca. 10000 mal. Sind denn Softwarefehler 
ausgeschlossen? Was sagt der Debugger? Hängt der sich zufällig in 
irgendeinem Fault-Handler auf, falls Peripherie angeschlossen ist?

von Jim M. (turboj)


Lesenswert?

Heinz M. schrieb:
> Die Kondensatorengrößen sind aus dem Datenblatt entnommen. Auf der STM32
> Seite hier im Wiki steht noch ein 100nF Kondensator nach Ground. Mit
> oder ohne macht keinen Unterschied. Ansonsten siehe angehängtes Bild.

Aber leider nicht der Fakt das sie dicht am Package dran sein müssten. 
Die langen Leiterbahnen machen die Kondensatoren praktisch unwirksam.

Außerdem würde ich mal prüfen ob sich da nicht Kurzschlüsse abzeichenen. 
Lötstopplack ist AFAIK nicht als dauerhafte Isolierung gedacht.

von BlaBla (Gast)


Lesenswert?

Die Lötstellen der Pins mal überprüfen. Die sehen nicht gut aus.

von des lesens mächtig (Gast)


Angehängte Dateien:

Lesenswert?

die Beschaltung des Reset Pins ist inexistent.
100k Pullup und 100nF Kondensator gegen Ground an Reset sollte helfen. 
Garniert mit einem Taster als Schliesser gegen Ground runden das Ganze 
sehr fein ab.

von ui (Gast)


Lesenswert?

Du hast so einen Murks als Devboard und wunderst dich das es nicht geht? 
Da braucht man sich nicht mehr wundern. Wie bei den Amis, haben Häuse 
aus Karton und jammern dann rum wenn die erste Windböe alles mitnimmt.
Kauf dir halt einfach nen Discovery/Nucleo Board, maximalkosten 20€

von Frank (Gast)


Lesenswert?

Ich würde entweder auf schlechte Versorgungsspannung im Einschaltmoment,
ein Problem mit dem Reset,
oder falsch beschaltete Bootloader Pins vermuten...

von Walter S. (avatar)


Lesenswert?

Heinz M. schrieb:
> im Wiki steht noch ein 100nF Kondensator nach Ground. Mit
> oder ohne macht keinen Unterschied

ist auch kein Wunder wenn man den Kondensator mit derart langen 
Leitungen anschließt

von Mampf unterwegs (Gast)


Lesenswert?

Wieso kauft sich der TE keinen Maple Mini für 2eur inkl Versand?

Muss den anderen Recht geben... Sieht schon sehr murksig aus.

Aber zum eigebtlichen Problem... Manchmal kommt es vor, dass mein 
stm32f429 auf einem Custom Boarf nicht geflasht werden möchte. Wurde 
auch schlechter, bilde ich mir ein... Aber mit einrm Druck auf einen 
Resettaster ging es danach immer - auch wenn Strom abstecken nichts 
gebracht hat.

Mein Vorschlag: reset taster anflantschen :)

von Thomas (kosmos)


Lesenswert?

Gibt es eine programmierbare Brown out Schwelle?Wenn ja stell die mal 
probeweise niedriger. Der Kerko wird auf die Entfernung zum uC kaum 
etwas bringen. Die Resetbeschaltung würde ich schon etwas niederohmiger 
als 100kOhm machen. 10kOhm ist meist die Herstellerempfehlung.

von Mampf unterwegs (Gast)


Lesenswert?

Ah und wenn mab Semihosting und printf verwendet kommt es öfters vor, 
dass der Controller dort hängen bleibt - aber nicht immer.

Keine Ahnung, wann das der Fall ist.

von Mampf unterwegs (Gast)


Lesenswert?

Ähm mit abgestecktem Debugger... Sonst klappt es immer.

von Alex W. (a20q90)


Lesenswert?

Heinz M. schrieb:
> Hauptboard ist ein Breadboard.

Alex W. schrieb:
> Foto?
> Layout? Schaltplan?

von Amateur (Gast)


Lesenswert?

Ich würde einmal - Programmtechnisch - zu Adam und seiner Freundin Eva 
zurückgehen. Also das "Hello World" Äquivalent reinhauen und gucken, ob 
das geht. Am besten mit dem furchtbaren delay () in der Schleife.

Da kann man nur unter großen Schwierigkeiten etwas falschmachen.

Erst wenn das dann geht würde ich weitersehen...

von Markus M. (adrock)


Lesenswert?

Stelle sicher das der der BOOT0 Pin entweder direkt oder über einen 
Angstwiderstand nach GND verbunden ist. Damit ist sichergestellt das der 
Controller aus dem FLASH bootet.

Siehe Refmanual Abschnitt 2.5 Boot Configuration.

von Heinz M. (subi)


Angehängte Dateien:

Lesenswert?

@Christopher Johnson: Hatte ich vergessen zu schreiben. Ja der Debugger 
macht Probleme. Er sagt sowas wie "Verbindung unterbrochen". Und die 
kommt auch nicht wieder. Manchmal macht das Debuggen keine Probleme, 
aber das normale laufen, so wie jetzt gerade.

Was mir noch aufgefallen ist: Der µC hat rund den 10 fachen 
Stromverbrauch, wenn er nicht richtig startet.

@Jim Meba & Walter S.: Wie soll ich die Kondensatoren näher ran 
bekommen?

@BlaBla: Kein Kurzschluss und Durchgang.

@des lesen mächtig: Hinzugefügt. Kein Effekt. Sowohl 100K, als auch 10K. 
Meine gelesen zu haben, dass der STM32 bereits einen internen 40K PullUp 
hat. Am Anfang ist der µC von selbst losgelaufen. Mit Taster könnte ich 
leben, aber das Problem liegt denke ich woanders. Zumindest der 
Kondensator am NRST kann ja nicht schaden.

@ui:
1. Ich will nicht nur rumspielen, ich möchte auch Projekte 
verwirklichen. Und momentan steht eins an, wo ich 25 Mikrocontroller 
brauche. Das wird mit Entwicklungsboards sehr teuer. Irgendwie muss man 
ja vorher mal testen bevor man Leiterplatten ätzt oder in Auftrag gibt.
2. Mir ist kein STM32F042 Disco Board bekannt. CubeMX auch nicht.
3. Im Eingangspost steht, dass ich die SWD Schnittstelle eines Disco zur 
Programmierung verwende. Bevor man sich über andere auslässt, sollte man 
wenigstens den Eingangspost gelesen haben.

@Frank: Versorgungspannung habe ich auch vermutet. Alle selbstgelöteten 
µC gehen sowohl mit 1000µF Kondensator(VCC-GND) und einer LED genauso 
sporadisch, wie wenn ich eine hauchdünne Versorgungsleitung 100x durch 
eine Stromzange wickle und hinten noch weitere ICs anschließe.

Reset Beschaltung wurde entsprechend nachgerüstet. Kein Effekt.

Bootpin hat der STm32F042F6 nicht.

@Mampf Unterwegs: Für den F051 wäre es eine Alternative, aber nicht für 
den F042, weil der CAN Controller fehlt. Außerdem gibt es weniger 
fertige Boards, als µC. Wenn man es selbst löten kann hat man einfach 
mehr Auswahl.

@Thomas O.: Ja gibt es:
https://stm32f4-discovery.net/2015/08/hal-library-22-bor-for-stm32fxxx/
In CubeMX selbst habe ich nichts gefunden und die 4 Source Dokumente im 
Programme habe ich durchsucht und nichts gefunden.

Durch den Hinweis habe ich etwas anderes Probiert. Die Disco Boards 
liefern nur 2,98V. Ich habe die Stromversorgung von den "3,3V" des Disco 
Boards auf "5,0V" umgeklemmt und einen AZ1117CH-3.3TRG1 vor den 
Mikrocontroller gesetzt. Er startet jetzt wieder ca. jedes 2. Mal. Also 
wesentlich besser. Leider lässt er sich so nicht programmieren. "Open 
OCD nicht gefunden". Umstecken, flashen, zurückstecken geht zwar, ist 
aber keine Lösung. Kann ich vielleicht mit einem Pegelwandler die SWD 
Kabel "entkoppeln"?

Jetzt wäre es noch interessant, warum es mit der Zeit abgenommen hat.

Sauber ist es trotzdem noch nicht. Wenn ich den Reset Taster drücke, 
dann geht er nicht mehr an. Erst wenn ich das USB Kabel ziehe (zumindest 
zu 50%). Der µC auf dem Discovery wird durch den Reset auch resetet. Der 
läuft einfach wieder los, wenn ich den Taster loslasse....warum habe ich 
nicht einfach den Resettaster vom Disco genommen...mmh

Ziehe ich die Stromversorgung vom Linearregler, geht der µC auf dem 
Disco auch mit aus. Also scheint irgendwas über die SWD Kabel 
verschleppt zu werden. Weil mehr Kabel sind nicht dran.

@Mampf unterwegs & Amateur: Habe das Programm komplett neu erstellt. 
Minimale Pinbelegung und den einzigen Code, den ich eingetragen habe:
1
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
2
HAL_Delay(100);
Macht keinen Unterschied.

@Markus M. Wie gesagt hat der F042F6 keinen Boot Pin.

Gleich kommen noch die Fotos vom Experimentierbrett.

von Heinz M. (subi)


Angehängte Dateien:

Lesenswert?

DSC6296: Das links auf dem Experimentierbrett ignorieren. Der zweite µC 
ist nicht aufgesteckt. Habe ich nur wegen der Pinbelegung daneben 
gelegt.

DSC6297: Näher kann ich die Kondensatoren nun wirklich nicht an den 
Linearregler bringen.

von anonymer (Gast)


Lesenswert?

nur so als hinweis:

steckboards haben zwischen den verschiedenen kontaktreihen eine 
vergleichbar hohe kapazität. dies führt zu starken übersprechen zwischen 
benachbarten leitungen.

evtl liegt hier der hund begraben für das nicht richtig funktionieren 
des programmierens.

von Mampf unterwegs (Gast)


Lesenswert?

Kuck mal hier, da hat der F042 einen Boot0 Pin:

http://andybrown.me.uk/2015/10/31/stm32f042dev/

von Nico W. (nico_w)


Lesenswert?


von Rene K. (xdraconix)


Angehängte Dateien:

Lesenswert?

Heinz M. schrieb:
> DSC6297: Näher kann ich die Kondensatoren nun wirklich nicht an den
> Linearregler bringen.

Du sollst die C nicht näher an die Linearregler bringen, sondern näher 
an den µC. Schau dir mal die Designrules zum Thema C von ST an. Auch 
deine "Verkabelung" von den C sehe ich als Kurios an. Am unteren Ende 
ist doch die Masse nur per Kabel angeschlossen, wohin geht die Masse 
dann?!

EDIT:

Hier mal eine ToDo and Not-ToDo Erklärung für die richtige Verbindung 
von C an einen µC.

http://www.lothar-miller.de/s9y/categories/14-Entkopplung

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Heinz M. schrieb:
> Was mir noch aufgefallen ist: Der µC hat rund den 10 fachen
> Stromverbrauch, wenn er nicht richtig startet.

Das "riecht" nach Latch-Up: 
https://de.wikipedia.org/wiki/Latch-Up-Effekt

Dafür reichen auch sehr kurze Spannungsspitzen, die bei dem fliegenden 
Aufbau  durch die Induktivitäten der Masse- und Versorgungsleitungen 
entstehen könnten.
Das es immer schlechter geworden ist könnte ich mir damit erklären, dass 
bei jedem Latch-Up Vorgang der µC etwas mehr geschädigt wurde.

: Bearbeitet durch User
von ui (Gast)


Lesenswert?

Heinz M. schrieb:
> 1. Ich will nicht nur rumspielen, ich möchte auch Projekte
> verwirklichen. Und momentan steht eins an, wo ich 25 Mikrocontroller
> brauche. Das wird mit Entwicklungsboards sehr teuer. Irgendwie muss man
> ja vorher mal testen bevor man Leiterplatten ätzt oder in Auftrag gibt.

Naja wenn man so schaut was du für Probleme hast würde ich das mal 
hinten anstellen. Wie man sieht hast du offensichtlich nicht so viel 
Ahnung (sonst würdest du die Abblockkondensatoren nicht auf die andere 
Seite der Platine setzen), dann wird das mit dem Projekt sicher nix.
Mein Tipp: Kauf dir beim Chinesen 25 billige Nachbaubboards. Damit 
fährst du wesentlich besser, es scheitert ja bereits an den Grundlagen.

Nicht das ich es dir nicht vergönne das es klappt, aber: Die Zeit die du 
jetzt da reinsteckst, dass du selbstgemachte Probleme löst (die mit 
vernünftiger HW nicht passieren) kannst du auch in Geld umwandeln und in 
vernünftige Platinen investieren.

von Heinz M. (subi)


Angehängte Dateien:

Lesenswert?

@Mampf Unterwegs & Nico W.: Im Link und auch im Datenblatt steht, dass 
der PB8 der Boot Pin ist. Diesem kann ich alles möglich zuweisen, aber 
kein Boot (Siehe Anhang). Da dieser GPIO auch andere Funktionen annehmen 
kann(Datenblatt), bedeutet dies im Umkehrschluss, dass ST eine 
alternative Konfigurationsmöglichkeit vorsieht. Oder sehe ich das 
falsch?

Über den F051 brauchen wir nicht zu sprechen. Ist klar und werde ich in 
Zukunft beschalten.

@Rene K.: Das mit dem Linearregler kam falsch rüber. Dieser hat seine 
eigenen Kondensatoren. Die Kondensatorenbeine sind direkt an die 
Linearreglerbeine gelötet. Deswegen sieht man den Linearregler nicht auf 
dem Foto. Da geht es wirklich nicht näher.

Beim F042 Board handelt es sich um eine normale SMD DIP Adapterplatine 
von Roth. Der Hersteller weiß natürlich nicht vorher welcher IC wo 
wieviele Kondensatoren braucht. Die 2,54mm Pins waren daher für mich das 
einzig mögliche lötbare. An die 0,65mm des µC schaffe ich es nicht die 
Kondensatoren anzulöten.

Der F042P6 hat auf der einen Seite VDD und GND und auf der anderen Seite 
nur VDDA. Damit der Kondensator wirkt braucht er eine Masse. Also habe 
ich die quer rüber gezogen. Aber nicht an den Pin, weil dieser PA0 ist 
und nicht GND.

@Dietrich L.: Seit dem ich den LDO einsetze funtkioniert es wieder 
besser. Also teilgeschädigt, reversibele Schädigung oder doch nur 
temporäre Störung durch die Beschaltung.

@ui: Die Abblockkondensatoren sitzen nicht auf der falschen Seite. Siehe 
Bild im Anhang.

Das sind meine ersten SMD Lötversuche gewesen. Vor den STMs habe ich nur 
5 SOIC8 1,27mm gelötet. Sonst gar nichts an SMDs. Jeder der SMD Chips 
"funktioniert" zumindest löttechnisch. Da ich jetzt weiß, dass ich TSSOP 
und LQFP gelötet bekomme, kann ich mich an die Platinenentwicklung 
machen. Hätte ich mich erst um die Platinen gekümmert, um dann 
feststellen zu müssen, dass ich es gar nicht löten kann. Das wäre 
vertane Zeit gewesen. Wenn ich es so hinbekomme, dass es mit den 
Adapterplatinen läuft wäre es schön. Wenn nicht, weiß ich wenigstens 
vorher was ich bei den Platinen machen muss.

von Heinz M. (subi)


Lesenswert?

Hab jetzt den PB8 (boot) mit 10K gegen GND angeschlossen. Und was soll 
ich sagen... genau so wie es sein soll:
- µC läuft nach Reset los.
- Nach dem Flaschen läuft der µC direkt los.

Vielen vielen Dank für die Hilfe.

Mir stellen sich jetzt nur noch 2 Fragen.
1. Wie soll man den PB8 als GPIO nutzen, wenn dieser auf GND gesetzt 
sein muss? Zeitverzögerter Transistor?

2. Wenn der µC über den Linearregler läuft kann ich ihn nicht flashen. 
Trotz PB8 gegen GND. Wie kann ich das in der späteren Schaltung 
realisieren?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Heinz M. schrieb:
> Diesem kann ich alles möglich zuweisen, aber
> kein Boot (Siehe Anhang). Da dieser GPIO auch andere Funktionen annehmen
> kann(Datenblatt), bedeutet dies im Umkehrschluss, dass ST eine
> alternative Konfigurationsmöglichkeit vorsieht. Oder sehe ich das
> falsch?

Du würdest idealerweise einen Pulldown-Widerstand mit 4,7-10k an den Pin 
hängen und ihn dann Softwaremäßig nur als Ausgang verwenden.

Dann hast du keine Probleme damit.

von Stefan F. (Gast)


Lesenswert?

> Wie soll man den PB8 als GPIO nutzen, wenn dieser auf GND gesetzt
> sein muss? Zeitverzögerter Transistor?

Er muss ja nur beim Start auf Low liegen. Danach kannst du ihn als ganz 
normalen I/O Pin nutzen.

> Wenn der µC über den Linearregler läuft kann ich ihn nicht flashen.

Und womit versorgst du ihn beim flashen?
Eventuell stimmt die Ausgangsspannung deines Linerarreglers nicht mit 
der Signalspannung deines Programmieradapters überein.

von Heinz M. (subi)


Lesenswert?

Also ist PB8 optimal für die Status LED oder einen Taster.


Das Discovery Board liefert ~3,0V, weil hinter dem 3,3V Regler noch eine 
Diode sitzt.

Mein Linearregler liefert so wie er soll 3,3V.

Auf dem SWD Header des Discovery gibt es noch ein VDD. Im User Manual 
UM1472 steht, dass man die ZIelspannung hier anlegen muss. In den ganzen 
Internetanleitungen die ich gelesen habe stand, dass man VDD ignorieren 
soll...

von Christopher J. (christopher_j23)


Lesenswert?

Heinz M. schrieb:
> Auf dem SWD Header des Discovery gibt es noch ein VDD. Im User Manual
> UM1472 steht, dass man die ZIelspannung hier anlegen muss. In den ganzen
> Internetanleitungen die ich gelesen habe stand, dass man VDD ignorieren
> soll...

Das VDD auf dem Disco-Board ist in Wirklichkeit kein VDD, sondern 
VDD_ref, d.h. hierüber misst der ST-Link die Spannung des Targets. 
Versorgen kann man das Target demnach darüber nicht, da es ja nur eine 
Messleitung ist, also Analogeingang für den ST-Link.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Heinz M. schrieb:
> Auf dem SWD Header des Discovery gibt es noch ein VDD. Im User Manual
> UM1472 steht, dass man die ZIelspannung hier anlegen muss. In den ganzen
> Internetanleitungen die ich gelesen habe stand, dass man VDD ignorieren
> soll...

Hab ich bisher auch nicht verwendet ... Bei meinen Layouts route ich den 
nicht mal auf den Pin-Header und funktioniert trotzdem einwandfrei :)

von Heinz M. (subi)


Lesenswert?

@Mampf F.: Benutzt du Discovery Boards zum Programmieren? Wenn ja, 
nimmst du die Versorgungsspannung vom Discovery zum Programmieren oder 
eine externe Spannungsversorgung für den zu programmierenden µC?

Mir bleibt ja noch die Option offen einen Jumper einzubauen, womit ich 
die Versorgungsspannung zum Programmieren vom Discovery hole.

@Christopher: Ja, das ist falsch beschriftet im Manual. Nur löst das 
mein Problem oder kann ich mir damit das Discovery Board zerschießen, 
wenn ich da die 3,3V anlege?

von Christopher J. (christopher_j23)


Lesenswert?

Heinz M. schrieb:
> Nur löst das mein Problem oder kann ich mir damit das Discovery Board
> zerschießen, wenn ich da die 3,3V anlege?

Also zerschießen solltest du da nichts, wenn du an VDD_ref 3,3V anlegst. 
Dafür ist der ja schließlich da. Ob es dein Problem löst weiß ich nicht. 
Eigentlich müsste es auch so gehen, wie Mampf ja schon geschrieben hat. 
Probier es halt einfach aus.

Edit: Wenn das was du an Vdd_ref anlegst deutlich größer als Vdd vom 
ST-Link ist, dann kannst du den natürlich schon kaputt machen. Ist ja 
ein simpler Analogeingang.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Heinz M. schrieb:
> @Mampf F.: Benutzt du Discovery Boards zum Programmieren? Wenn ja,
> nimmst du die Versorgungsspannung vom Discovery zum Programmieren oder
> eine externe Spannungsversorgung für den zu programmierenden µC?

Nein, ich hab so einen 2EUR STLINKV2 USB-Adapter aus der Bucht :)

Zum Programmieren benutze ich immer direkt die Versorgungsspannung, mit 
der das Board später dann auch betrieben wird.

Ich schließe nur den VDD nicht am Programmer an, quasi.

von Heinz M. (subi)


Lesenswert?

Geht trotzdem nicht. Also muss ich mit Jumpern leben.

von Christopher J. (christopher_j23)


Lesenswert?

Nutzt du denn OpenOCD zum flashen oder irgendein anderes Programm?
Habe bei mir gerade sowohl mit einem Discovery mit ST-Link V2, als auch 
mit einem Nucleo mit ST-Link V2.1 einen F103 erfolgreich geflasht, ohne 
VDD_ref anliegen zu haben und mit getrennter Versorgungsspannung von 
ST-Link und Target.

Witzigerweise zeigt mir OpenOCD trotzdem eine Targetspannung an, selbst 
wenn ich VDD_ref explizit auf GND lege. Vermutlich ist es die Spannung 
vom ST-Link selbst bzw. vom Controller auf dem Nucleo bzw. Disco-Board. 
OpenOCD ist bei mir Version 0.10 und die Firmware von den beiden 
ST-Links habe ich erst vor zwei Wochen aktualisiert.

Bei den China Minidingern gibt es ja gar keinen VDD_ref Pin, d.h. hier 
kann der ST-Link wenn überhaupt nur messen, was er selber bekommt. Da 
macht das irgendwie Sinn, dass er was anzeigen kann ohne das explizit 
irgendwo etwas anliegt aber bei den Discovery- und Nucleo-Boards finde 
ich das schon ein bisschen komisch.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Christopher J. schrieb:
> ohne
> VDD_ref anliegen zu haben und mit getrennter Versorgungsspannung von
> ST-Link und Target.

Bei meinen DIY-Boards hab ich auf SWDIO und SWDCLK nicht mal 
pull-Up-Widerstände und es geht wunderbar :)

von Markus M. (adrock)


Lesenswert?

...sollten da welche sein? Ist mir neu, habe ich auch noch nie verbaut.

von Heinz M. (subi)


Lesenswert?

Vielleicht im Programmieradapter. Wenn ich VCC trenne, dann läuft der µC 
weiter. Zieht sich wohl den Strom über SWD. Trenne ich GND auch noch, 
dann geht der µC auf dem Discoveryboard auch aus. Erst wenn ich 
zusätzlich den SWD Stecker ziehe, dann läuft der µC auf dem Discovery 
wieder.

Zumindest beim Discovery steht in keiner Anleitung (die ich gelesen 
habe) etwas zu Widerständen am SWD.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus M. schrieb:
> ...sollten da welche sein? Ist mir neu, habe ich auch noch nie
> verbaut.

Ganz genau weiß ich es auch nicht ... Ich hatte letztens den SWD direkt 
neben der Induktivität eines Boost-Converters platziert und jedesmal 
wenn ich diesen anschaltete, brach meine Debug-Verbindung ab.

Ich hatte dann gegoogelt und einige Schaltpläne mit Pullup gefunden - 
hab ich dann nachgerüstet, dann klappte es.

Ist vmtl auch vom SWD-Adapter abhängig, das 2EUR-Dings aus China war da 
wohl sehr hochohmig an den Pins.

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.