STM32F207ZGT und DFU

OP #6455965
Lesenswert?

Hallo zusammen,

ich bin gerade am entwickeln eines Boards für einen STM32F207ZGT.
Die Firmware soll per DFU auf das Board gebracht werden.

Mir ist jetzt eine Sache noch nicht klar beim Anschluss des 1.5k Pull-Up 
an D+.

Laut AN4879 von ST ist der Pull-Up erst nach erkennen von VBus (an A9) 
einzuschalten, um die Enumeration am Host zu starten.
Das kann ich in der SW problemlos erkennen.

Aber wer handelt mir das im DFU-Bootloader?
Der Bootloader? Wenn ja, welcher Pin ist dafür vorgesehen?

Der ST-Link-Adapter nutzt VBUS, um den Pull-Up über einen Transisor an 
3.3V zu schalten.

Was ich möchte:
Ähnlich dem ST-Link-Adapter den USB als VCP benutzen und per Kommando in 
den DFU-Modus wechseln.
Dort dann das Firmwareupdate machen und wieder in die Applikation 
wechseln, ohne den USB-Stecker ziehen zu müssen.

Danke für eure Antworten.

VG
Thomas
Gast #6455979
Lesenswert?

Du könntest das so machen, dass der Pull-Up Widerstand per default 
eingeschaltet ist und durch dein eigenes Programm kurz unterbrochen 
werden kann, damit der PC das USB Gerät neu erkennt.

Ich habe irgendwo mal gelesen, dass man den Pull-Up Widerstand auch 
einfach fest mit 3,3V verbinden kann und die neue Erkennung dadurch 
auslöst, dass man den I/O Pin kurz als Ausgang mit LOW Pegel konfiguert. 
Quick and dirty.
(Firma: TU Darmstadt) #6455992
Lesenswert?

"Du koenntest" Und "ich habe irgendwo gelesen" ist doch nur wilde 
Raterei.

RM0033 sagt fuer den STM32F20x:
· integrated ID pull-up resistor used to sample the ID line for A/B 
device identification.
· DP/DM integrated pull-up and pull-down resistors controlled by the 
OTG_FS core
  depending on the current role of the device. As a peripheral, it 
enables the DP pull-up resistor to signal full-speed peripheral 
connections as soon as VBUS is sensed to be  a valid level (B-session 
valid). In host mode, pull-down resistors are enabled on both  DP/DM. 
Pull-up and pull-down resistors are dynamically switched when the 
device's  role is changed via the host negotiation protocol (HNP).

Und AN2606 sagt fuer STM32F2xxxx c Bootloader V3.x:

USB_DP pin  Input/Output PA12: USB DP line
            No external Pull-up resistor is required
OP #6455997
Lesenswert?

Stefan ⛄ F. schrieb:
> Ich habe irgendwo mal gelesen, dass man den Pull-Up Widerstand auch
> einfach fest mit 3,3V verbinden kann und die neue Erkennung dadurch
> auslöst, dass man den I/O Pin kurz als Ausgang mit LOW Pegel konfiguert.
> Quick and dirty.

Das dürfte dann das sein, was ST beim ST-Link macht.
Per VBUS und Transistor auf 3.3V schalten und über den Pin die Erkennung 
machen und bei Bedarf die Enumeration starten.
Angehängte Dateien:
Gast #6456001
Lesenswert?

Ich mache das immer so, dass ich noch vor main() den Pin als OpenDrain 
definiere und auf Low ziehe. Da kann man dann auch im Debugmodus starten 
mit break in main() ohne dass sich gleich der Rechner verschluckt. Erst 
wenn der Pin später im Programm umkonfiguriert wird beginnt die 
Enumeration. Der Widerstand ist fest an 3,3V wie bei den BluePills u.ä. 
Das hat auch den Vorteil, dass auch sehr langsame Konfigurationsorgien 
laufen können und die USB Enumeration erst danach losgeht.
(Firma: TU Darmstadt) #6456022
Lesenswert?

Das soll kein auslachen sein, sondern ein Hinweis, moeglichst fundiert 
zu antworten. Bei manchen Problemen, zu denen man keine Doku im Web 
findet, koennen solche auch Ratschlaege helfen, auf die Spur zu kommen, 
aber hier leiten sie doc h nur in die Irre. Und fuer die BMP Probe mit 
dem F103 wird es so gemacht, wie Stefan es beschreibt.

@Thomas W. : Warum jetzt noch ein neues Boarddesign mit dem uralten F2? 
So preissensitive?
OP #6456029
Lesenswert?

Uwe B. schrieb:
> "Du koenntest" Und "ich habe irgendwo gelesen" ist doch nur wilde
> Raterei.
>
> RM0033 sagt fuer den STM32F20x:
> · integrated ID pull-up resistor used to sample the ID line for A/B
> device identification.
> · DP/DM integrated pull-up and pull-down resistors controlled by the
> OTG_FS core
>   depending on the current role of the device. As a peripheral, it
> enables the DP pull-up resistor to signal full-speed peripheral
> connections as soon as VBUS is sensed to be  a valid level (B-session
> valid). In host mode, pull-down resistors are enabled on both  DP/DM.
> Pull-up and pull-down resistors are dynamically switched when the
> device's  role is changed via the host negotiation protocol (HNP).
>
> Und AN2606 sagt fuer STM32F2xxxx c Bootloader V3.x:
>
> USB_DP pin  Input/Output PA12: USB DP line
>             No external Pull-up resistor is required

Das würde ja bedeuten, ich brauche überhaupt keinen externen Widerstand 
mehr an den Datenleitungen? Alles wird intern abgehandelt?
Auch VBUS geht direkt ohne Spannungsteiler an PA9?

Uwe B. schrieb:
> @Thomas W. : Warum jetzt noch ein neues Boarddesign mit dem uralten F2?
> So preissensitive?
Was wäre denn eine alternative dazu? USB, viele I/O, RMII wird benötigt.
(Firma: TU Darmstadt) #6456035
Lesenswert?

Thomas W. schrieb:
> Uwe B. schrieb:
>
> Das würde ja bedeuten, ich brauche überhaupt keinen externen Widerstand
> mehr an den Datenleitungen? Alles wird intern abgehandelt?
> Auch VBUS geht direkt ohne Spannungsteiler an PA9?
>
Dazu auch RM0033, 29.4 OTG dual role device (DRD)
               Figure 350. OTG A-B device connection

Kurz: Ja!
> Uwe B. schrieb:
>> @Thomas W. : Warum jetzt noch ein neues Boarddesign mit dem uralten F2?
>> So preissensitive?
> Was wäre denn eine alternative dazu? USB, viele I/O, RMII wird benötigt.

Schau Dir den Online oder PC STM32MCU -Finder an. Klicke an, was Du 
brauchst, dann sortiere nach (Grossmengen) Preise und vergleiche dann 
Preis und Verfuegbarkeit bei den ueblichen Verdaechtigen
OP #6456055
Lesenswert?

Uwe B. schrieb:
> Kurz: Ja!

Ein Traum. Danke für die Info!

Uwe B. schrieb:
> Schau Dir den Online oder PC STM32MCU -Finder an. Klicke an, was Du
> brauchst, dann sortiere nach (Grossmengen) Preise und vergleiche dann
> Preis und Verfuegbarkeit bei den ueblichen Verdaechtigen

Danach bin ich auch vorgegangen.
Der STM32F429ZGT wäre noch günstiger und schneller. Ich habe mich dann 
aber für den STM32F207ZGT entschieden. Mehr ein Bauchgefühl.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren