STM32(F427) Bootloader

Gast #4370329
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!
#4370388
Schau mal ST Application note AN2606 an.

Das Bild auf Seite 120 kann man so interpretieren, daß der BL den UART 
erst dann vollständig initialisiert (d.h. auch den Transmit-Teil), wenn 
auf der Receive-Leitung 0x7F empfangen wird.

Gruß, Stefan
Gast #4370393
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
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
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
(Firma: TU Darmstadt) #4373021
Les Dir AN2606 genau durch. Dort ist die Reihenfolge genau angegeben, in 
der die Schnittstellen abgefragt werden. Ebenso sind dort die Bedingung 
angegeben, wann die Schnitstellen dann weiter behandelt oder wann sie 
uebersprungen werden.
Gast #4373308
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.
Gast #4373319
Anfänger schrieb:
> Wenn jedoch direkt alle Schnittstellen durch den Bootloader konfiguriert
> werden muss beim Design aufgepasst werden.

Glaubst du wirklich, daß sich ein Bootloader alle Schnittstellen an Land 
zieht, die der Controller besitzt?
#4373388
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
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.