STM32(F427) Bootloader

Gast #4370329
Lesenswert?

Ich beschäftige mich gerade mit dem "embedded bootloader" im STM32.

Für meinen STM32F427 können folgende Schnittstellen für den Bootlaoder 
verwendet werden:
- USART1 (PA9/PA10)
- USART3 (PB10/11 and PC10/11)
- CAN2 (PB5/13)
- USB OTG FS (PA11/12) in Device mode (DFU: device firmware upgrade).

Was ich noch nicht verstanden habe ist:
Werden bei ausführen des Bootloaders alle Schnittstellen konfiguriert?
Das heißt alle TX PINs werden als Ausgänge gesetzt?

Wenn ich also ein Firmware update über UART1 machen möchte, in der 
Applikation aber die PINs von UART3 jeweils als Eingänge verwende gibt 
es einen Kurzschluss?

Oder gibt es eine Möglichkeit dies zu konfigurieren?

Danke!
Gast #4370393
Lesenswert?

Danke!

hab ich schon gesehen.
Aber auf "kann man so interpretieren" möchte ich halt kein Design 
aufbauen :-)

Ich fände es auch logisch wenn der entsprechende TX Pin erst als Ausgang 
gesett wird wenn an dem dazugehörigen RX Pin die 0x7F empfangen wurden.
Aber lesen konnte ich dies noch nirgends.
Gast #4370476
Lesenswert?

Anfänger schrieb:
> Oder gibt es eine Möglichkeit dies zu konfigurieren?

Natürlich. Du hast es beim Festlegen deiner Schaltung doch selbst in der 
Hand. Bedenke, daß BOOT0 und BOOT1 nur beim Reset den gewünschten Pegel 
benötigen, danach sind sie frei für jede Verwendung. Ich würde sie als 
Ausgänge verwenden und mittels Widerstand einigermaßen hochohmig auf 
Sollpegel ziehen.

Diese Chips haben so viele Pins, da ist es eigentlich immer möglich, 
deren Verwendung im eigenen Projekt so zu gestalten, daß man UART0 (oder 
1?) und Reset und die Mode-Pins so verwendet, daß es da keine 
Kollisionen gibt. Es sind ja nur insgesamt 4 Pins (BOOT0+1,TxD,RxD) und 
Reset.

W.S.
Gast #4372990
Lesenswert?

Naja 4 Pins stimmt nicht ganz.

- USART1 (PA9/PA10)
- USART3 (PB10/11 and PC10/11)
- CAN2 (PB5/13)
- USB OTG FS (PA11/12) in Device mode (DFU: device firmware upgrade).

für diese Schnittstellen komme ich schon auf 10 Pins
Gast #4373308
Lesenswert?

ja schon klar, dass eine Schnittstelle ausreichend ist.

Wenn jedoch direkt alle Schnittstellen durch den Bootloader konfiguriert 
werden muss beim Design aufgepasst werden.
So können in der Applikation die TX Pins aller! Schnittstellen nicht als 
Eingänge verwendet werden. Da es sonst zu Kurzschlüssen kommt.
#4373388
Lesenswert?

Du beziehst dich sicher auf AN2606 Seite 133. Da du die 
SPI-Schnittstellen nicht erwähnst, vermute ich einen v7.x Bootloader.

Ja, das ist in der Tat schlecht beschrieben (oder eigentlich gar nicht). 
Gerade mit dem v9.x-Bootloader, wo noch 3 SPI Outputs dazu kommen, fehlt 
jeder Hinweis darauf.

Hast du ein Demoboard? Ich würde es Ausmessen. Multimeter an den Pin 
gehängt und zärtlich (d.h. mit 10kOhm) abwechselnd nach GND und Vdd 
gepullt. Das Ergebnis sollte Rückschlüsse geben, ob der Pin aktiv 
getrieben wird oder eine interne Pull-Funktion aktiv ist.
#4373589
Lesenswert?

Hab dein Problem verstanden und kann tatsächlich auch nichts dazu in 
AN2606 finden, außer dass er wohl die Tx Ports aller Schnittstellen auf 
Output konfiguriert. Kanns mir aber eigentlich kaum vorstellen.

Eher glaube ich, dass erst nach Empfang des Start-Bytes 0x7F der 
entsprechende Tx Pin konfiguriert wird. Wenn ich was finde, melde ich 
mich. Oder hat jemand anders noch eine Idee?

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