STM32 con boot loader USB

Salve e benvenuti al nostro contributo di oggi.

 

Il modulo STM32 è un termine. Rientra con un braccio a 32 bit, Cortex, in un'altra lega, ad esempio il Nano V3.

Tuttavia, devo ammettere che, di solito, sto per prendere il Nano V3, quando comincio a commettere un progetto, e solo allo STM32, quando constato che il Nano non è più sufficiente. Il motivo principale è che, per il STM32, ho sempre bisogno di un adattatore FTDI, mentre io riesco a collegare un Nano V3 solo per USB.

Anche se l'STM32 ha anche una porta USB, questa viene utilizzata solo per alimentare il modulo con l'alimentazione elettrica.

Uno dei motivi per cui lo STM32 non è fornito con una USB Bootloader è uno dei motivi per cui non è possibile fornire la STM32. Il caricatore di avvio utilizza approssimativamente 20k spazio. Tuttavia, visto che non sono mai stato al limite di 64k, oggi stiamo cercando di inasprire la USB Bootloader.

A tal fine, abbiamo bisogno:

1x STM32 Microcontroller + Cavo MicroUSB
1x adattatore FTDI USB + Cavo MiniUSB
Cavo jumper
Pazienza e nervi forti

Nella prima fase, assicuriamo che il jumper dell'adattatore FTDI sia regolato a 3,3V e collegi i componenti nel modo seguente:

 STM32 Adattatore FTDI
G GND
A. 10 TX
A. 9 RX

 

Chiunque sia sicuro che il suo adattatore FTDI emette 3,3V puliti VCC (preferisce misurare per primo) il suo STM32 può esserne alimentato con l'elettricità. Tuttavia, in passato ho avuto una cattiva esperienza, e ho preferito che il mio STM32 preferusori di energia elettrica. Stiamo chiudendo l'adattatore FTDI al PC, e scegliendo il modulo giusto in Arduino IDE:

 

Se non si presenta un STM32 nell'unità di bordo, i relativi driver devono essere ancora installati.

Per questo, dovete prima di tutto ".Arduino SAM " Installare il supporto tramite l'amministratore di bordo. Ciò è necessario per installare i po-none - eabi - g + + Toolchain.

 

In seguito, abbiamo bisogno dei file per il STM32 che possiamo scaricare da GitHub: https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip 

Decomprimiamo nella directory Arduino, C:\Users\<Benutzer>\Documents\Arduino\hardware\Arduino_STM32.

Se la cartella "hardware" non esiste ancora, possiamo semplicemente metterlo in azione.

Ora, stavamo installando i driver del caricatore di serie, eseguendo la cartella Arduino_STM32 in "drivers" - > "win" come amministratore.

Se in futuro (tipicamente dopo un aggiornamento automatico di STM32) non è più possibile programmare di nuovo l'installazione del driver sopra mostrata.

A questo punto, dopo un riavvio di Arduino IDE, si consiglia di selezionare il bacheca.

Il file "File" - > "A_STM32_Examples" - > "Digital" - > "Blink" apriamo ora il link di esempio e modifica la pin a 3 cifre di PB1 anche PC13.

 A tale proposito, stiamo ancora fissando il BOOT0 Jumper sulla STM32 e caricando il programma Blink.

 

Se in questo punto si presentano dei problemi, controllare il cablaggio e verificare che le impostazioni siano compatibili con la scheda STM32.

 

In seguito, abbiamo bisogno del programma "STM32 Flash loader dimostrator (UM0462)" che stiamo per fare in questo ambito. Pagina produttore Scaricare. Una volta registrata la pagina del fornitore, è possibile scaricare ed installare il programma.

L'ultima cosa di cui abbiamo bisogno sono i binaries con l'USB Bootloader. L'elenco è disponibile anche su GitHub https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries.

Abbiamo bisogno del file "generic_boot20_pc13.bin" per il nostro modulo. 

Avvia il programma di caricamento del programma di caricamento flash, selezioniamo la porta corretta e fare clic su Avanti.

Quando il programma viene congelato in questo punto, potrebbe essere necessario un paio di minuti prima che venga visualizzato un messaggio di errore. In tal caso, assicurarsi che il Jumper BOOT0 sia impostato su 1 e riavviare il tasto STM32 con il pulsante Reset, se ne deve andare.

Le due finestre successive ci mostrano informazioni sulla dimensione Flash. Possiamo saltare attraverso il "Next".

Nell'ultima finestra, è necessario selezionare "Download to device" e selezionare il file .bin. 

Se il file .bin non viene visualizzato, modificare l'invio di file di "s19 Files (*.s10)" a "Bin Files (*.bin)".

Ora invitiamo il firmware al nostro STM32. Dopo un breve numero di secondi, il messaggio deve essere:

Prima di fare qualcosa, dovremmo sederci il BOOT0 Jumper da 1 a 0, altrimenti il riavvio di Bootloader sarà di nuovo in funzione. Ora possiamo separare l'adattatore FTDI e collegare il nostro STM direttamente tramite USB.

Il gestore unità (win + R e diga devmgmt.msc) deve essere visualizzato come una nuova voce di "Connessioni (COM & LPT)":

 

 

Per verificare se funziona, proviamo a ricaricare il nostro Blink Sketch. A tal fine, modifichiamo il metodo di caricamento su "STM32duino bootloader" nelle impostazioni di bordo.

 

Il caricamento deve essere completato dopo un paio di secondi e il LED on board inizia a lampeggiare a lampeggiare. È possibile ignorare il messaggio di errore da usb_reset.

Stabilità! D'ora in poi, a me, la Faulicità non conta più come scusa per lasciare il CSTM32 nel cassetto.

Spero che il nostro contributo di Heutiger vi abbia fatto piacere e vi aiuterà a fare il passo verso il microcontroller a 32 bit.

 

Auguro a tutti un bellissimo weekend e un sacco di divertimento per la bastia.

Il vostro Markus Neumann

 

 

Projekte für anfänger

6 Kommentare

Ricardo

Ricardo

Ich habe bei Amazon AZDelivery 3 x STM32 STM32F103C8T6 gekauft.
Es ist für mich unmöglich, dass Windows 10 64 das Gerät über USB erkennt.
Ich habe Ihr Tutorium und andere im Internet verfolgt.
Irgendeine Lösung?
Danke

Gholiamirza

Gholiamirza

Es geht viel einfacher mit dem STM32F103C.
Schaut am besten hier https://youtu.be/MLEQk73zJoU

Matthias 2

Matthias 2

Scheint kein Einzelfall zu sein. Auch bei mir funktioniert der Anschluß über USB nicht (Win10Pro). Bis dahin lief alles nach Anleitung genauso ab wie beschrieben. Jumper umgesteckt. Stecke ich nun USB an, dann bekomme ich die Meldung “USB-Gerät unbekannt” – mit den entsprechenden Folgen.
Irgendwie passen Bootloader und Treiber nicht zusammen.

Peter Mauß

Peter Mauß

Hallo Markus,
auch bei mir wars wie bei Johannes, Windows 10 erkennt den STM32, trotz installierter Treiber nicht
und zeigt einfach keinen Comport und keine Maple-Devices an.

Johannes

Johannes

Hallo Markus,

leider funktioniert das nicht bei mir. Ich habe alles nach Deiner Anleitung gemacht, alle Treiber installiert und konnte den Bootloader problemlos auf den STM32 laden. Den Jumper habe ich auch entsprechen Deiner Anweisung zurueckgesetzt. Auch habe ich den R10 auf dem Blue Pill Board auf 1,5kOhm geaendert. Leider wird dann nur im Devicemanager nichts angezeigt. Woran kann das liegen? Wuerde mich ueber eine Antwort & Tips freuen.

Viele Gruesse
Johannes

Matthias

Matthias

Wow, hab ich lange versucht aber nie hinbekommen, vielen Dank :-)

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert