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
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.
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...
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.
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
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.