Forum: Mikrocontroller und Digitale Elektronik STM32L4xx interner Bootloader & Pinkonfiguration


von Ralf (Gast)


Lesenswert?

Hallo,

ich arbeite mich gerade in die STM32L4xx Familie ein. Die ST Application 
Note 2606 beschreibt, wie man die "internen" Bootloader aktiviert, 
welche Schnittstellen unterstützt und wie die entsprechenden Pins durch 
den BL konfiguriert werden.
Was ich leider nicht einwandfrei herausfinden konnte ist, ob zu Beginn 
nur die Empfängerpins der jeweiligen Schnittstellen geprüft werden, oder 
ob auch gleich alle Sendepins konfiguriert werden. Ich halte letzteres 
zwar für unwahrscheinlich, aber ich find nirgends eine konkrete Aussage 
dazu.

In den jeweiligen Protokollbeschreibungen steht zwar drin, dass die 
Schnittstelle nach der Erkennung entsprechend konfiguriert wird, aber 
das kann eben die reinen Schnittstellenparameter, die Portkonfiguration 
oder eben beides bedeuten.

Kennt jemand den genauen Ablauf der Bootloaderkonfiguration oder hat mir 
einen Tipp, wo's drin steht?

Ralf

von W.S. (Gast)


Lesenswert?

Es gibt da zumindest 2 Appnotes von ST zu diesem Thema. Aber die sind 
mit gewisser Vorsicht zu genießen, denn häufig genug stimmen die nur im 
Generellen. Der Grund ist, daß es unterschiedliche Bootlader-versionen 
gibt, die auch unterschiedlich in ihrem Könen sind und die auf manche 
Chips nicht wirklich draufpassen - bzw. nicht auf alle Revisionen des 
betr. Chips passen. Ich habe da bei meinem Bootlader-Projekt einige 
Überraschungen erlebt.

Ansonsten gilt: der Bootlader hat so seine Default-Ports und die sollte 
man eben dafür freihalten, wenn man ihn benutzen will. Egal, ob nun 
zuerst nur das RxD oder gleich auch das TxD bei seriell initialisiert 
wird. Bei den anderen in Frage kommenden Schnittstellen sieht das anders 
aus. Einen I2C oder SPI zum Beispiel kann man nicht mit nur einem Pin 
anfangen.

W.S.

von Uwe Bonnes (Gast)


Lesenswert?

Figure 60.Bootloader V10.x selection for STM32L476xx/486xx in an2606 
Rev.27 zeigt ein deutliches Flussdiagram. Daraus lese ich, dass aller RX 
der benutzten USART als Eingang geschaltet werde, sowie I2C und USB 
Pins. Was dann weiter passiert haengt davon ab, welcher Pin wackelt...

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Uwe Bonnes schrieb:
> Figure 60.Bootloader V10.x selection for STM32L476xx/486xx in an2606
> Rev.27 zeigt ein deutliches Flussdiagram. Daraus lese ich, dass aller RX
> der benutzten USART als Eingang geschaltet werde, sowie I2C und USB
> Pins. Was dann weiter passiert haengt davon ab, welcher Pin wackelt...

So sehe ich das auch, allerdings kann ich in der Doku nicht erkennen, 
wie die potentiellen Ausgänge (z.B. UART TX) während der Detection 
programmiert sind.
Auf die Schnelle habe ich im Web dazu nichts gefunden.

Der bekannte VUSB-"Input"-Bug im Bootloader zeigt, dass ST gnadenlos 
Pins auf Ausgang schaltet und auf die Strombegrenzung hofft.

Sollte das Thema richtig wichtig sein, müsste man mal ST direkt fragen.
Einfaches Messen an den Pins wäre mir da zu heikel, wenn ich sehe, dass 
alle paar Monate eine neue AN2606 rauskommt.

von Ralf (Gast)


Lesenswert?

Hallo zusammen,

sorry für die späte Antwort.

@W.S.:
> Ansonsten gilt: der Bootlader hat so seine Default-Ports und die sollte
> man eben dafür freihalten, wenn man ihn benutzen will. Egal, ob nun
> zuerst nur das RxD oder gleich auch das TxD bei seriell initialisiert
> wird. Bei den anderen in Frage kommenden Schnittstellen sieht das anders
> aus. Einen I2C oder SPI zum Beispiel kann man nicht mit nur einem Pin
> anfangen.
Das blöde ist halt, dass der interne BL gleich auf allen möglichen 
Schnittstellen lauscht, was das Hardwaredesign drumrum ggf. 
verkomplizieren kann.

@Uwe Bonnes:
> Was dann weiter passiert haengt davon ab, welcher Pin wackelt...
Ja, aber es ist halt nicht detailliert dokumentiert, was dann weiter 
passiert.

@Marcus H.:
> So sehe ich das auch, allerdings kann ich in der Doku nicht erkennen,
> wie die potentiellen Ausgänge (z.B. UART TX) während der Detection
> programmiert sind. Auf die Schnelle habe ich im Web dazu nichts gefunden.
Eben, das war auch das, war mir dann Bauchweh gemacht hat.

> Der bekannte VUSB-"Input"-Bug im Bootloader zeigt, dass ST gnadenlos
> Pins auf Ausgang schaltet und auf die Strombegrenzung hofft.
Sehr userfreundlich gedacht...

> Sollte das Thema richtig wichtig sein, müsste man mal ST direkt fragen.
> Einfaches Messen an den Pins wäre mir da zu heikel, wenn ich sehe, dass
> alle paar Monate eine neue AN2606 rauskommt.
Japp, ich denke ich werde den FAE mal fragen.

Danke an alle.

Ralf

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Ralf schrieb:
> Danke an alle.

Und wir freuen uns auf Deine Erkenntnisse!

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.