STM32F401-Blackpill (🚧)

Synopsis: AZ-Delivery STM32F401 Development Board V 3.0🔗

Habe es endlich geschafft, das Board unter Arduino auf MacOS zum laufen zu kriegen. Problem war das richtige Vorgehen beim Aktivieren des DFU-Modus.
Beim AZ-µC ist ein WeAct-Bootloader installiert, um auf den benötigten STM32 Bootloader zu kommen muss die DFU-Bootloader-Prozedur zweimal durchgeführt werden! Nach Anleitung AZ-Delivery E-Book Deutsch🔗 wird der µC zunächst nicht erkannt.

Zum Upload wird Software STM32CubeProg🔗 benötigt, bzw. die darin enthaltenen Tools. Ich bekam zunächst keine Verbindung mit dem µC im Bootloader-Modus hin, zur Erklärung die Ansicht des USB-Gerätebaums unter MacOS. Nach Anstecken des µC kommt eine Meldung „Verbinden von Zubehör erlauben?“. Nach Erlauben taucht µC im Gerätebaum auf. Dann nach der AZ-Anleitung DFU-Bootloader einschalten:

  • Drücken und halten Sie die BOOT0-Taste
  • Drücken Sie den NRST (Reset)-Knopf und lassen Sie ihn los, um den Prozessor auszuschalten
  • BOOT0-Taste loslassen

Lässt den µC zunächst aus dem Gerätebaum verschwinden.
Passiert immer nach dem Anstecken beim WeAct-Bootloader.

WeAct Studio HID Bootloader
WeAct Studio HID Bootloader

Die DFU-Prozedur nochmal ausführen, dann kommt die Erlaubnisfrage und der µC taucht mit STM32 BOOTLOADER im Gerätebaum wieder auf.

Alternativ vor dem Einstecken die BOOT0-Taste gedrückt halten und nach dem Einstecken los lassen. Der µC wird nun auch in STM32CubeProg erkannt.

STM32CubeProg
Verbinden von Zubehör erlauben?
STM32 BOOTLOADER

Testprogramm aufspielen

#define P_BOARD_LED PC13 // LED auf dem Board

void setup(){   // Einmalige Ausführung => Initialisierungen...
    pinMode(P_BOARD_LED, OUTPUT);  // Pin als Ausgang schalten
}

void loop(){
    digitalWrite(P_BOARD_LED, HIGH);// High ausgeben
    //GPIOC->ODR= 1<<13;            // alternativ
    delay(200);                   // warte 200ms
    digitalWrite(P_BOARD_LED, LOW); // Low ausgeben
    //GPIOC->ODR= 0;
    delay(200);                   // warte 200ms
}
Der Sketch verwendet 23560 Bytes (4%) des Programmspeicherplatzes. Das Maximum sind 524288 Bytes.
Globale Variablen verwenden 4936 Bytes (5%) des dynamischen Speichers, 93368 Bytes für lokale Variablen verbleiben. Das Maximum sind 98304 Bytes.
Warning: long options not supported due to getopt from FreeBSD usage.
Selected interface: dfu
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.19.0                  
      -------------------------------------------------------------------



USB speed   : Full Speed (12MBit/s)
Manuf. ID   : STMicroelectronics
Product ID  : STM32  BOOTLOADER
SN          : 356E338C3237
DFU protocol: 1.1
Board       : --
Device ID   : 0x0433
Device name : STM32F401xD/E
Flash size  : 8 MBytes (default)
Device type : MCU
Revision ID : --  
Device CPU  : Cortex-M4
Opening and parsing file: STM32F401-Test.ino.bin


Memory Programming ...
  File          : STM32F401-Test.ino.bin
  Size          : 23.44 KB 
  Address       : 0x08000000 



Erasing memory corresponding to sector 0:
Erasing internal memory sectors [0 1]
Download in Progress:


File download complete
Time elapsed during download operation: 00:00:01.400

RUNNING Program ... 
  Address:      : 0x8000000
Start operation achieved successfully

Nach dem Upload meldet sich der µC im Gerätebaum mit BLACKPILL und das Einschalten des Bootloaders klappt dann beim ersten Mal, der WeAct-Bootloader wird ersetzt.

BLACKPILL serielle Schnittstelle