Forum: Mikrocontroller und Digitale Elektronik STM32F407 ST Bootloader AN2606 HW Anforderungen


von Dirk (Gast)


Lesenswert?

Hallo, ich arbeite gerade an ein CAN Board für den STM32F407 und wollte 
mir die Möglichkeit offen halten über USART1 und CAN2 die Firmware 
zuändern.

Nachdem lesen der Application Note AN2606 sind ein paar Fragen 
meinerseits offen zum Kapitel 9.2 (Seite: 51)

Link zur App Note: 
https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf

Auszug AppNote:

>BOOT0 pin high and the BOOT1 pin low during reset

Ist soweit verständlich.

Auszug AppNote:

>If USART1 is used to connect to the bootloader: the USART3_RX (PC11 and
>PB11), CAN2_RX (PB05), OTG_FS_DM (PA11) and OTG_FS_DP (PA12) pins
>have to be kept at a high or low level and must not be left floating during >the 
detection phase

Frage 1:
PC11, PB11, PA11 und PA12 lege ich auf ein GND oder VDD mit 
Pull-Up/-Down Widerstand, aber was mache ich mit PB5, wenn ein CAN 
Transceiver am RX Pin angeschlossen ist? Pullup oder Pulldown 
Widerstand?

Auszug AppNote:
>If CAN2 is used to connect to the bootloader: the USART1_RX (PA10),
>USART3_RX (PC11 and PB11), OTG_FS_DM (PA11) and OTG_FS_DP (PA12)
>pins have to be kept at a high or low level and must not be left floating
>during the detection phase.

Frage 2:

Was mache ich mit PA10, wenn ein FT232RL an der RX Leitung angeschlossen 
ist? Pullup oder Pulldown Widerstand?

von U.G. L. (dlchnr)


Lesenswert?

Eigentlich werden CAN2_RX (PB05) und USART1_RX (PA10) schon  vom CAN
Transceiver bzw. vom FT232RL getrieben, so dass man eigentlich auf einen 
PullUp verzichten kann - kannst aber dennoch einen PullUp im 
zweistelligen kOhm-Bereich einplanen, um diese Signale auch schon 
während der Reset-Phase zu definieren, in der die angeschlossenen 
Baustein womöglich noch nicht "enabled" sind.

von Dirk (Gast)


Lesenswert?

>so dass man eigentlich auf einen PullUp verzichten kann - kannst aber
>dennoch einen PullUp im zweistelligen kOhm-Bereich einplanen, um diese
>Signale auch schon während der Reset-Phase zu definieren

Ich teile deine Auffassung. Gibt es hierzu eine technische Begründung, 
wieso Pullup- und nicht PullDown-Widerstand?

von U.G. L. (dlchnr)


Lesenswert?

PullUp, weil bei beiden Signalen (CAN_RX und UART_RX) ein high der 
inaktive Zustand ist.

von Dirk (Gast)


Lesenswert?

>PullUp, weil bei beiden Signalen (CAN_RX und UART_RX) ein high der
>inaktive Zustand ist.

Danke, das verstehe ich somit.

Ich hab vergessen zu Fragen, wie es sich für OTG_FS_DM (PA11) and 
OTG_FS_DP (PA12) verhält. Beide Leitungen einen Pullup?

von U.G. L. (dlchnr)


Lesenswert?

Zunächst einmal hat ein Host-USB-Port an D+ und D- einen 1k5 
PullDown-widerstand.
Bei USB-Peripheriegeräten ist bei Low-Speed Geräten an OTG_FS_DM ein 1k5 
PullUp, bei Full- und High-Speed-Geräten ist dieser an OTG_FS_DP.
Den jeweils anderen Pin würde ich einen 47k PullDown-Widerstand 
verpassen.

Und dann sollte kein USB-Kabel gesteckt sein, wenn der Bootloader läuft,
da sonst der PullUp mit dem PullDown des Hosts den Pegel wieder gerade 
ungefähr in Mitte bringt und damit undefiniert ist.

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.