STM32 met USB-oplader

Hallo en welkom op onze post vandaag.

 

De STM32 module is bij velen bekend. Uitgerust met een 32-bits armschors, speelt het in een andere competitie dan bijvoorbeeld de Nano V3.

Echter, ik zelf moet toegeven dat ik meestal gebruik maken van de Nano V3 als ik een project te starten, en alleen overschakelen naar de STM32 als ik vind dat de nano niet langer voldoende is. De belangrijkste reden is dat ik altijd een FTDI adapter voor de STM32 moet aansluiten, terwijl ik een Nano V3 eenvoudig via USB kan aansluiten.

De STM32 heeft ook een USB-poort, maar dit wordt alleen gebruikt om de module van stroom te brengen.

Een van de redenen is dat de STM32 niet wordt geleverd met een USB-bootlader. Deze boot loader neemt ongeveer 20k schijfruimte in beslag. Echter, omdat ik nog nooit opzettelijk de 64k limiet bereikt, vandaag proberen we de USB boot loader flash.

Om dit te doen, hebben we:

1x STM32 Microcontroller + MicroUSB-kabel
1x USB FTDI-adapter + MiniUSB-kabel
Jumperkabel
Geduld en sterke zenuwen

In de eerste stap zorgen we ervoor dat de jumper van de FTDI-adapter is ingesteld op 3.3V en de componenten als volgt verbindt:

STM32 STM32 FTDI-adapter
G Gnd
A10 Tx
A9 Rx

 

Als u zeker weet dat uw FTDI adapter naar VCC een schone 3.3V uitgangen (bij voorkeur eerst meten) u de macht van uw STM32 erboven. Echter, ik heb slechte ervaringen met dit in het verleden, en de voorkeur aan mijn STM32 te voorzien van stroom via USB. We verbinden de FTDI-adapter op de pc en selecteren de juiste module in de Arduino IDE:

 

Als er geen STM32 in de raadsbeheerder zit, moeten de juiste stuurprogramma's nog worden geïnstalleerd.

Om dit te doen, het eerste wat je moet doen is omArduino SAM" ondersteuning via de board manager. Dit is nodig om de arm-none-eabi-g++ gereedschapsketting te installeren.

 

Vervolgens hebben we de bestanden nodig voor de STM32 die we kunnen downloaden van GitHub: https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip 

We pakken ze uit uit de Arduino-directory C:-Users-<Users>-Documents-Arduino-hardware-Arduino_STM32.

Als de map "hardware" nog niet bestaat, kunnen we deze eenvoudig maken.

Nu moeten we de seriële uploadstuurprogramma's installeren door het bestand "install_drivers.bat" als beheerder in de Arduino_STM32 map onder 'drivers' uit te voeren -> "win".

Als op een bepaald punt in de toekomst (meestal na een automatische Windows-update) de STM32 niet meer kan worden geprogrammeerd, helpt het meestal om de bovenstaande driverinstallatie opnieuw uit te voeren.

Nu, na het herstarten van de Arduino IDE, moet het bord beschikbaar zijn voor selectie.

Via "File" -> "Examples" -> "A_STM32_Examples" -> "Digitaal" -> "Blink" openen we nu de Voorbeeldschets blink en wijzigen we de pin in 3 plaatsen van PB1 ook PC13.

Tot slot zetten we de BOOT0 jumper op de STM32 op 1 en uploaden we het blink-programma.

 

Als je problemen hebt op dit punt, controleer dan de bedrading en zorg ervoor dat de instellingen overeenkomen met uw STM32 bord.

 

Vervolgens hebben we het programma "STM32 Flash loader demonstrator (UM0462)" nodig dat we kunnen Pagina van de fabrikantkan downloaden. Na registratie op de pagina van de fabrikant, kunnen we het programma downloaden en installeren.

Tot slot hebben we de binaire bestanden met de USB-bootloader nodig. Deze zijn ook te vinden op GitHub op https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries.

We hebben het bestand "generic_boot20_pc13.bin" nodig voor onze module. 

We lanceren de Flash Loader Demonstrator, selecteren de poort die bij ons past en klikken op "Volgende".

Als het programma op dit moment vastloopt, kan het enkele minuten duren voordat er een foutbericht wordt weergegeven. In dit geval gewoon zorg ervoor dat de jumper BOOT0 is ingesteld op 1, en start de STM32 met de reset-knop, dan moet het gaan.

De volgende twee vensters tonen ons informatie over flitsgrootte. We kunnen deze overslaan door middel van "Next".

In het laatste venster moeten we 'Downloaden naar apparaat' selecteren en het .bin-bestand selecteren. 

Als u het .bin-bestand niet ziet, wijzigt u de extensie van 's19-bestanden (*.s10)' in 'Bin-bestanden (*.bin)'.

Nu laden we de firmware op onze STM32. Na enkele seconden moet het volgende bericht worden weergegeven:

Voordat we iets doen, moeten we de BOOT0 jumper van 1 naar 0 zetten, anders is de bootloader weg na een herstart. We kunnen nu de FTDI adapter loskoppelen en onze STM direct via USB aansluiten.

In de apparaatbeheerder (druk op Win+R en voer devmgmt.msc in) moet nu een nieuw item worden weergegeven onder 'Verbindingen (COM & LPT)':

 

 

Om te testen of het nu werkt, proberen we onze Blink Sketch opnieuw te uploaden. Hiervoor wijzigen we de uploadmethode in "STM32duino bootloader" in de board instellingen.

 

De upload moet worden voltooid na een paar seconden, en onze onboard LED zal weer beginnen te knipperen. We kunnen de foutmelding over de usb_reset negeren.

Beheerd! Luiheid telt voortaan niet meer als excuus om de STM32 in de la de la de la te laten liggen.

Ik hoop dat u genoten van onze bijdrage vandaag en zal u helpen de stap in de wereld van 32-bits microcontrollers.

 

Ik wens iedereen een leuk weekend en veel plezier tijdens het sleutelen.

De jouwe Markus Neumann

 

 

Projekte für anfänger

8 Kommentare

Rudolf Schenke

Rudolf Schenke

Wir geht es genau wie den anderen Kommentatoren: Es funktioniert nicht! Windows erkennt den STM32 nicht. Was aber erstaunt und mich ein wenig ärgert: Es gibt keine Antworten!!

Rudolf Schenke

Rudolf Schenke

Ich muss mich den enttäuschten Nutzern dieses Blogs anschließen:
“Windows hat das Gerät nicht erkannt.”
Ich sehe aber keine Antwort. Darf man die nicht erwarten?

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

Aanbevolen blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi