2017-09-06 4 views
2

Ich habe Hintergrundinformationen zu ATMEL und ATMEL Bootloadern und wir gehen zu ARM für ein neues Projekt. Insbesondere werden wir den STM32F303RET6 verwenden. Dies ist im Wesentlichen ein a Cortex M4 mit einer höheren Anzahl von analogen Eingangspins.Bootloader bei STM32F303: ab Werk eingebaut oder extern programmiert?

Ich habe durch die Dokumentation über den Bootloader zu gehen und ich bin sehr verwirrt:

Auf Seite 19 des Getting Started Document sagt er folgendes:

„Der eingebettete Bootloader befindet in dem Speichersystem, programmiert von ST bei der Herstellung "

Darüber hinaus erwähnt Application Note AN2606, Seite 81 erwähnt, dass dieser integrierte Bootloader keine Programmierung über USB unterstützt. (Nur UART, I2C oder CAN)

jedoch an anderen Stellen über das Internet (wie this one, obwohl für ein F103) Ich habe über die Notwendigkeit, lesen Sie den Bootloader mit dem ST-Link V2 zu programmieren (ISP).

Unter all das bin ich ziemlich verwirrt, so hier sind meine Fragen:

  • Do STM32-Chips tatsächlich mit einem Bootloader von der Fabrik oder nicht programmiert kommen?
  • Ist der werkseitig eingebettete Bootloader eine Form der ausfallsicheren, "immer da" Programmierschnittstelle? Bedeutung Ich kann später einen zweiten Bootloader programmieren?
  • Die vorherige Frage gibt einen anderen aus: Wenn ich den ST-linkV2-Programmierer verwende, überschreibe ich den werkseitig programmierten Bootloader?
  • Ich bin in Bezug auf das Auswahlbit BOOT1 total verloren. Wie soll ich es einstellen, wenn es eine logische Eigenschaft des Prozessors ist? Dies scheint ein Problem mit Huhn und Ei zu sein.
  • Endlich kann ich diesen Chip über USB reflash oder nicht? Es scheint, ich könnte aber die STM32-Dokumentation 1 sagt der Embedde Dbootloader von ST programmiert kann nicht. Brauche ich einen anderen Bootloader?

Ich weiß, ich bin verwirrt und ich würde Ihre Hilfe zu schätzen wissen.

Danke Pedro

+1

Siehe https://electronics.stackexchange.com/questions/72274/still-struggling-with-the-stm32f051c8t6-bootloader – MSalters

Antwort

8

Application Note AN2606, Seite 81 dieses in Bootloader unterstützt keine Programmierung über USB-Einbau erwähnt. (Nur UART, I2C oder CAN)

Der Titel auf Seite 81 sagt STM32F303x4 (6/8)/334xx/328xx Geräte Bootloader, aber Sie sagen, dass Sie eine STM32F303RE6 haben. Suchen Sie in Tabelle 36 auf Seite 77 nach Ihrem Gerät.

Sind die STM32-Chips tatsächlich mit einem werksseitig programmierten Bootloader ausgestattet?

Sie tun.

Ist der werkseitig eingebettete Bootloader eine Form der ausfallsicheren, "immer da" Programmierschnittstelle?

Es ist immer da, Sie können es als ausfallsicher betrachten. Die andere Ausfallsicherung ist die JTAG/SWD-Debugger-Schnittstelle.

Bedeutung Ich kann später einen zweiten Bootloader programmieren?

Ja, Sie können. Dann können Sie auswählen, welche von externen Pins ausgeführt werden soll.

Wenn ich den ST-linkV2-Programmierer verwende, überschreibe ich den werkseitig programmierten Bootloader?

Nein, es besteht keine Gefahr, die interne ist nach der Produktion schreibgeschützt.

Ich bin in Bezug auf das Auswahlbit BOOT1 total verloren. Wie soll ich es einstellen, wenn es eine logische Eigenschaft des Prozessors ist?

BOOT0 und BOOT1 ist ein Eingangspin. Sie stellen es von außen her ein, verwenden einen Pullup/Pulldown-Widerstand, Schalter, Jumper, was auch immer Ihr Board bietet. Auf meiner Discovery-Platine sind sie auf den Stiftleisten verfügbar.

Endlich kann ich diesen Chip über USB reflash oder nicht?

Gemäß dem Referenzhandbuch können Sie.

Benötige ich einen anderen Bootloader?

Nein, aber Sie können eine andere haben, wenn Sie mit der internen nicht zufrieden sind. Es gibt ein Beispiel in der STM32CubeF3 Bibliotheksverteilung, in Projects/STM32F303RE-Nucleo/Applications/USB_Device/DFU_Standalone.

+1

Ich würde hinzufügen, dass der Factory-Bootloader auch von der Benutzeranwendung aufgerufen werden kann (und dann booten Pin-Einstellung wird ignoriert). –

+1

verstehen, dass der stlinkvwhatever ist ein anderer Mikrocontroller, der ein USB-Protokoll spricht dann SWD für Sie, so dass es Ihr Ziel MCU über SWD angreift, können Sie es für nicht ST-Teile verwenden auch nicht STLINK SWD-Lösungen (Jlink-Klone für ein paar Dollar auf ebay) mit den st Teilen. Der Stlink ist unabhängig von der USB-Programmierung und dem Bootloader auf dem Zielchip selbst. –

+0

Beachten Sie, dass einige Teile den Boot1-Pin nicht freilegen. die Kleinen mit zum Beispiel 16 Pins, die Größeren, vor allem diejenigen, wo der Pin wichtig wäre, würde ich erwarten. –