Hallo zusammen, ein STM32F302RBT6 lässt sich in meiner Schaltung nicht programmieren. Ich habe die Spannungen überall nachgemessen und alles passt. 100nF sind an jedem VCC Pin angeschlossen. Den Boot0 Pin kann man mit einem Jumper auf HIGH oder LOW ziehen. An diesem Pin sind zusätzlich 47k angeschlossen. Es funktioniert trotzdem nicht. Die SWD Schnittstelle habe ich mehrmals überprüft und es passt. Wo könnte der Fehler hierfür liegen? MfG
Was siehst Du mit dem Oszilloskop an den SWD-Leitungen, wenn Du zu programmieren versuchst?
Walter T. schrieb: > Was siehst Du mit dem Oszilloskop an den SWD-Leitungen, wenn Du zu > programmieren versuchst? Oszi habe ich noch nicht probiert. Die Konsole zeigt nur, dass kein Target gefunden worden ist. Ich programmiere mit einem originalen ST Link V2.
VDDA und VSSA angeschlossen? VCAP_1 und VCAP_2 wie im Datenblatt über Kondensator an Masse?
Jürgen S. schrieb: > VDDA und VSSA angeschlossen? > VCAP_1 und VCAP_2 wie im Datenblatt über Kondensator an Masse? Ja alles beachtet. Muss man den eigentlich VBAT beschalten?
O_o schrieb: > Ja alles beachtet. Muss man den eigentlich VBAT beschalten? Nein. Neben den noch offenen Fragen (connect under reset, PA13/14 anderweitig belegt) kann es auch sein, daß der Quarz nicht schwingt, falls HSE programmiert ist. Wenn Du so nicht weiterkommst, den Bootloader PA9/PA10 probieren.
Hast du die Möglichkeit, deinen Programmieradapter an einem anderen Mikrocontroller zu testen?
Stefan ⛄ F. schrieb: > Hast du die Möglichkeit, deinen Programmieradapter an einem > anderen > Mikrocontroller zu testen? Das habe ich bereits gemacht. Da geht es. Auf der aktuellen Platine ist noch ein FTDI Chip drauf. Ich wollte neben SWD den Chip noch mit einem Bootloader progammieren. Der DTR Pin ist mit dem RESET Anschluss des Controllers verbunden. Ein Taster für HArdware-Reset ist ebenfalls vorhanden. Den RTS Pin habe ich invertiert, damit für die SWD Programmierung der Boot0 Pin auf Masse gezogen wird. Es geht aber nicht. Den FTDI Chip erkennt der Rechner. Aber SWD klappt nicht.
Wenn die beiden SWD Pins frei sind und Reset unabhängig steuerbar, bleibt meine Vermutung: "connect under reset".
Genau dieses Problem habe ich immer wenn ich wieder VSSA vergessen haben. Aber wurde dem TE ja schon gesagt.
Oder vielleicht doch?!? Aus AN4206: "If no external battery is used in the application, it is highly recommended to connect VBAT externally to VDD."
Hallo nochmals, ich habe das Problem gefunden. Der Grund lag bei mir an der falschen Umsetzung zur Nutzung der SWD Schnittstelle und der Verwendung eines FTDI Chips. Beides funktioniert zusammen nicht. Mit der DTR Leitung wollte ich den Controller einem Reset unterziehen, während der RTS Pin den BOOT0 auf HIGH legen sollte. Die DTR Leitung führt zum RST Anschluss des Controllers. Die RST Leitung des ST V-Link ebenso. Die DTR Leitung störte wohl den Programmer, sodass die SWD Schnittstelle nicht ging. Ich habe die DTR Leitung auf der Platine weggekratzt. Und siehe da, der ST Programmer reagiert wieder :) Ich muss das wohl anders lösen. Ich dnke euch trotzdem für eure Hilfe. MfG
O_o schrieb: > Hallo nochmals, > > ich habe das Problem gefunden. Der Grund lag bei mir an der falschen > Umsetzung zur Nutzung der SWD Schnittstelle und der Verwendung eines > FTDI Chips. Beides funktioniert zusammen nicht. Mit der DTR Leitung > wollte ich den Controller einem Reset unterziehen, während der RTS Pin > den BOOT0 auf HIGH legen sollte. Die DTR Leitung führt zum RST Anschluss > des Controllers. Die RST Leitung des ST V-Link ebenso. Die DTR Leitung > störte wohl den Programmer, sodass die SWD Schnittstelle nicht ging. Ich > habe die DTR Leitung auf der Platine weggekratzt. Und siehe da, der ST > Programmer reagiert wieder :) Dass du statt normalem SWD so einen Zirkus machst, wäre mal eine echt wichtige Info am Anfang gewesen.
O_o schrieb: > Hallo nochmals, > > ich habe das Problem gefunden. [...] > Die DTR Leitung führt zum RST Anschluss > des Controllers. Die RST Leitung des ST V-Link ebenso. Die DTR Leitung > störte wohl den Programmer, sodass die SWD Schnittstelle nicht ging. > [...] Hm. D.h. keine Widerstände oder sonst irgendwelche Bauteile? Du hast direkt RST von ST-Link, die DTR-Leitung und Reset von SWD miteinander verbunden? Habe ich das richtig verstanden? Magst Du die nicht funktionierende Schaltung mal ausschnittsweise kurz skizzieren? Schreibe bitte auch die Bezeichnung des FTDI-Chips hin. Das hilft im Forum vielleicht, weitere gleichartige Fälle schnell zu erkennen.
Theor schrieb: > Magst Du die nicht funktionierende Schaltung mal ausschnittsweise kurz > skizzieren? Schreibe bitte auch die Bezeichnung des FTDI-Chips hin. > > Das hilft im Forum vielleicht, weitere gleichartige Fälle schnell zu > erkennen. Klar, gerne :)
Theor schrieb: > Magst Du die nicht funktionierende Schaltung mal ausschnittsweise kurz > skizzieren? Wenn er das vorher gemacht hätte, hätte er den Fehler sicher selbst bemerkt.
Hallo, ich habe euch den Schaltplan grob gezeichnet. So wie in der Abbildung geht das nicht. Ich habe mit dem FT_Prog den FTDI Chip eingestellt. RTS habe ich invertiert und DTR ist so geblieben. Das ging leider nicht. Den ST Link V2 erkennt er so nicht. MfG
Jetzt wollte ich schon des FTDI (und die Art und Weise wie du den verschaltet hast) sagen, sehe aber im Threadverlauf, dass da der Hund begraben war... Joerg schrieb: > Meines Wissens muss VBAT beschaltet werden Ich hatte ein PCB für einen STM32F103 geroutet und hierbei den VBAT-Anschluss frei gelassen. Irgendwann kam ich auf die Idee, auch einmal mit einem STM32F302CBT6 (weil Cortex M4) zu spielen und habe diesen Chip (weil in den wichtigsten Teilen Pinkompatibel) auf diese Platine gesetzt und siehe da: Funktionierte problemlos. Auch wenn der TO einen STM32F302RBT6 hat, würde ich sagen, dass VBAT nicht zwingend angeschlossen sein muss. Auch wenn mir hierfür der "Hintern versohlt" wurde: Wenn du unter Linux arbeitest, könntest du dir das hier evtl. ansehen: Beitrag "Bootloader control für STM32 und LPC 32-Bit Mikrocontroller" Dadurch, dass ein ATtiny13 die Aktivierung des seriellen Bootloaders beim STM32 übernimmt, ist es egal, wie ein Terminalprogramm evtl. die RTS und DTR - Leitungen hinterlassen. Diese Art der Aktivierung des Bootloaders funktioniert bei mir schon seit ein paar Jahren ohne Komplikationen (und funktioniert auch dann logischerweise noch, wenn SWD softwareseitig abgeschaltet wurde).
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.