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
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.
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.
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.
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).