Forum: Mikrocontroller und Digitale Elektronik Bootloader Mode STM32F303


von Zain A. (zain)


Lesenswert?

Hallo,

ich habe neulich einen STM32F303 Mikrokontroller gekauft und möchte 
jetzt den in Booadmode versetzten.
Den Pin Boot0 habe ich auf High geschaltet und den uC neu gestartet.
Leider erkennt CubeIDE Progrmmer den nicht über DFU.
Wie kann ich den uC über DFU flaschen?


MfG
Zain

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Der DFU mode ist USB gebunden. Probier erstmal bei aktiviertem Boot pin 
deine CPU über USB mit dem PC zu verbinden.Da sollte dann vom PC ein DFU 
Treiber geladen werden. Bei ST gibt es die "DfuSeDemo" zum runterladen. 
Damit kannst du aus dem Hex File ein DFU File machen und das dann 
downloáden.

Grüsse

von Stefan F. (Gast)


Lesenswert?

Fehlt vielleicht der Pull-up Widerstand am USB?

Oder sind nicht alle Vdd/Gnd Paare angeschlossen und mit einem 
Kondensator versehen?

Geht den der serielle Bootloader?

Zeige mal deinen Schaltplan.

von Johnny B. (johnnyb)


Lesenswert?

Zain A. schrieb:
> Leider erkennt CubeIDE Progrmmer den nicht über DFU.

Der Bootloader versucht zu Beginn die verschiedenen unterstützten 
Schnittstellen durch UART, USB, SPI, I2C, ... es ist wichtig, dass die 
nicht zum verbinden vorgesehenen Schnittstellen einigermassen "still" 
sind.

Schau noch in der nachfolgenden Application note nach, ob Dein exaktes 
Derivat überhaupt DFU kann.
Die meisten F303 können es, aber "STM32F303x4(6/8)/334xx/328xx" können 
es nicht.

In der Application note AN2606 von ST ist alles genau beschrieben:
https://www.st.com/resource/en/application_note/an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf

: Bearbeitet durch User
von Zain A. (zain)


Angehängte Dateien:

Lesenswert?

Das ist mein Schaltplan. Den Pullup Widerstand habe ich mit ESD Schutz 
für USB vorgesehen, wie auf dem Applikation Note AN4879 vorgeschrieben 
bzw. empfohlen ist.

von Zain A. (zain)


Lesenswert?

der PC erkennt den uC gar nicht.
Das ist das Problem.
auf dem Applicaton note AN2606 ist mein DFU nicht unterstützt.
Das hatte ich gesehen bevor ich den Schaltplan entworfen habe.
Ein wissenschaftliche Mitarbeiter in meine Uni meinte es soll aber 
funktionieren obwohl ich ihn auf den AN2606 hinweisen habe....

von Stefan F. (Gast)


Lesenswert?

In deinem Schaltplan fehlen VSS Pins: 31, 47, 64
Die müssen alle angeschlossen sein.

Zain A. schrieb:
> auf dem Applicaton note AN2606 ist mein DFU nicht unterstützt.

Das halte ich für einen Irrtum.

Der Mikrocontroller enthält einen DFU Bootloader. Das steht in der 
Application Note (Table 41) und auch im Datenblatt (Chapter 3.5).

von Zain A. (zain)


Angehängte Dateien:

Lesenswert?

alle VSS habe ich mit Masse verbunden.
Da steht zwar nur ein VSS Anschluss, sind aber alle im Layout verbunden 
weil dieses Symbol so ist.
Ich weiß nicht, wo du 31, 47 und 64 gesehen hast. Die sind alle 
ausgeblendet und mit VSS zusammengefasst.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Vermutlich ist es nicht deine Problemursache, aber

ich sehe dass du sämtliche Abblock-Kondensatoren indirekt durch ein VIA 
angeschlossen hast. Ich glaube, das ist keine gute Idee.

Links sogar zwei VIAs und viel zu lange Leitungen. Da gehört ein 
Kondensator direkt an die Pins 12 und 13.

Zain A. schrieb:
> Ich weiß nicht, wo du 31, 47 und 64 gesehen hast.

In der Pinbelegung im Datenblatt.

> Die sind alle ausgeblendet und mit VSS zusammengefasst.

Blende sie ein, wenn du kannst, um Verwirrung zu vermeiden.

von Thomas Z. (usbman)


Lesenswert?

Stefan F. schrieb:
> ich sehe dass du sämtliche Abblock-Kondensatoren indirekt durch ein VIA
> angeschlossen hast. Ich glaube, das ist keine gute Idee.

genau so macht man das aber bei einem Multilayerboard. Man holt sich Vcc 
+ GND per Via direkt am Kondensator und fährt vom kondensator dann den 
entsprechenden Vcc Pin an.

von Stefan F. (Gast)


Lesenswert?

Thomas Z. schrieb:
> Man holt sich Vcc + GND per Via direkt am Kondensator und fährt
> vom kondensator dann den entsprechenden Vcc Pin an.

Genau das hat er bei GND aber nicht gemacht. Er fährt nicht vom 
Kondensator den entsprechenden GND Pin an.

Deine Empfehlung gilt doch auch für GND, oder nicht?

von Thomas Z. (usbman)


Lesenswert?

Stefan F. schrieb:
> Deine Empfehlung gilt doch auch für GND, oder nicht?
In einer idealen Welt ja, eine Anbindung der GND Pins via GND Plane ist 
aber auch ok da sehr niederomig.

von Thomas Z. (usbman)


Lesenswert?

Aus AN2606 für den F303:
...
An external pull-up resistor 1.5 KΩ must be connected to USB_DP pin
...

von Stefan F. (Gast)


Lesenswert?

Thomas Z. schrieb:
> An external pull-up resistor 1.5 KΩ must be connected to USB_DP pin

Hat er doch

von Thomas Z. (usbman)


Lesenswert?

Stefan F. schrieb:
> Thomas Z. schrieb:
>> An external pull-up resistor 1.5 KΩ must be connected to USB_DP pin
>
> Hat er doch

stimmt hab ich bei dem Suchbild übersehen, ich gehe davon aus dass der 
ESD Schutz nicht bestückt ist sonst müsste zumindest ein unbekanntes 
Gerät erscheinen, unabhängig ob BOOT1 aktiviert ist oder nicht.

von Zain A. (zain)


Lesenswert?

ich erzähle euch alles was neues.
Ich habe den uC mit UART angeschlossen.
CubeProgrammer hat den uC erkannt und dann eine Verbindung hergestellt.
Dann habe ich aus versehen nBoot1 in Option Bytes ausgecheckt.
Daraufhin erkennt der Programmer den uC nicht mehr.
Allerdings kann das Win System ein neues USB Geräte feststellen aber 
nicht betreiben. CubeProgrammer kann kein DFU Verbindung feststellen.

von Stefan F. (Gast)


Lesenswert?

Ich denke, du kannst das mit einem ST-Link Adapter über die SWD 
Schnittstelle zurück setzen.

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.