- STM32 Nucleo 64 Development Board Hardware-uitleg
- Programmeren van de STM32 Nucleo 64 Development Boards
- Aan de slag met STM32F401
- Conclusie
- Video
Voor de meeste mensen die er zijn, zou het eerste embedded ontwikkelbord waaraan ze zouden hebben gewerkt hoogstwaarschijnlijk een Arduino-bord zijn. Maar zoals iedereen het erover eens kan zijn, zou je Arduino je maar tot nu toe kunnen brengen en op een dag moet je overstappen naar een native microcontroller-platform. Dit proces kan een stuk eenvoudiger worden gemaakt met dit STM32-ontwikkelbord, omdat het alle Arduino-schilden kan ondersteunen om u aan de hardwarezijde te helpen en ook veel ingebouwde bibliotheken en functies heeft om u aan de softwarekant te helpen. Ook als u vertrouwd raakt met een STM32 Microcontrollers, kunt u gemakkelijk andere ontwikkelingsmodules van ST verkennen, zoals de SensorTile.Box die we eerder hebben besproken. Dus laten we in dit artikel deze STM32 Nucleo-64 Development boards eens volledig bekijken en leren hoe ze te gebruiken.
Nu zijn er veel versies van STM32-kaarten beschikbaar en deze specifieke in mijn hand heet de STM32F401 Nucleo-64. De naam STM32 geeft aan dat we een 32-bits microcontroller op ons ontwikkelbord hebben, en de naam Nucleo-64 geeft aan dat de microcontroller 64 pinnen heeft. Evenzo zijn er veel andere versies van Nucleo 64-kaarten zoals de STM32F103, STM32F303, enz., Maar als je eenmaal over één bord leert, lijken alle andere behoorlijk op elkaar.
STM32 Nucleo 64 Development Board Hardware-uitleg
Laten we beginnen met het uitpakken van ons Development Board. Zoals u kunt zien, bestaat het complete pakket alleen uit ons ontwikkelbord en een instructiekaart. De instructiekaart vermeldt de specificaties van de controller, de pinouts en op de achterkant hebben we wat informatie over hoe te beginnen en beschikbare toolchain-opties.
Als we het bord van dichterbij bekijken, zien we dat het bord in twee regio's is verdeeld. Het bovenste gedeelte is ST-Link / V2 debugger en programmeur, terwijl het onderste gedeelte je eigenlijke ontwikkelbord is. Op deze manier kunt u uw bord gemakkelijk uit de doos programmeren en debuggen, gewoon met een extra USB-kabel die op de USB-minipoort op het bord kan worden aangesloten.
Op het eerste gezicht lijkt het bord veel jumpers en componenten te hebben, maar ze zijn er allemaal om het ons gemakkelijk te maken. De twee jumpers die je aan weerszijden van het bord CN11 en CN12 vindt, zijn eigenlijk een dummy jumper, deze jumpers kunnen indien nodig in de toekomst voor andere doeleinden worden gebruikt. De twee jumpers op CN2 worden gebruikt om de programmeur en debugger-sectie te verbinden met ons ontwikkelbord. In de toekomst kunt u deze jumpers verwijderen om de programmer via deze pinnen voor andere ST-microcontrollers te gebruiken. En deze connectorpin JP1 kan worden gesloten om de USB-stroom tot 100mA te beperken, indien opengelaten is de maximale stroom 300mA. Hier hebben we een driekleurige LED (LD1) die rood oplicht als het bord wordt gevoed en groen wordt als het bord met succes is geprogrammeerd en oranje wordt als er een communicatiestoring is.
Als we naar de ontwikkelingssectie gaan, hebben we hier ons belangrijkste onderdeel, de STM32F401RET6 Microcontroller. Dit is een 64-pins 32-bits microcontroller met een ARM Cortex M4- processor die werkt op 84 MHz. Het heeft ook 512 Kb Flash en 96 KB SRAM. De Microcontroller heeft 10 timers van 16-bit en 32-bit en een enkele 12-bit ADC. Het heeft ook drie USART, drie I2C, vier SPI en een USB 2.0 voor externe communicatie. U kunt het STM32F401-gegevensblad raadplegen voor meer technische informatie.
Nu komt hier het interessante deel, zoals ik je eerder vertelde, ondersteunt het bord alle Arduino-schilden. Het bord heeft twee sets connectoren, de vrouwelijke pinnen zijn voor Arduino-schilden die perfect passen bij ons ESP8266 Wi-Fi Shield en ons Semtech Arduino LoRa Shield, zoals je kunt zien in de onderstaande afbeelding.
De andere mannetjes worden ST-morpho-pinnen genoemd die kunnen worden gebruikt om de ruimpennen op onze 64-pins microcontroller te gebruiken. Dan hebben we hier een resetknop en een door de gebruiker configureerbare knop die is aangesloten op pin PC13 en ook hier een LED die net als Arduino is aangesloten op pin D13. Om het bord van stroom te voorzien, kunnen we de USB-poort gebruiken of rechtstreeks gereguleerde 5V leveren aan de E5V of aan de 5V-pin hier. Vergeet niet om deze jumper te veranderen om aan te geven hoe u de kaart van stroom voorziet; U5V geeft aan dat het bord wordt gevoed door USB. We hebben hier ook nog een andere interessante jumperpin genaamd IDD die kan worden gebruikt om te meten hoeveel stroom uw microcontroller verbruikt door een ampèremeter op deze pinnen aan te sluiten.
Programmeren van de STM32 Nucleo 64 Development Boards
Als we naar het softwaregedeelte komen, heeft het bord een enorme bibliotheek en programmeerondersteuning en kan het worden geprogrammeerd met Keil, IAR-werkbank en vele andere IDE's. Maar het interessante is dat het de ontwikkelomgeving ARM Mbed en STM32Cube ondersteunt. Omwille van dit artikel heb ik besloten om het ARM Mbed platform te gebruiken omdat het een online tool is en ik vond het erg interessant omdat je er niet alleen je ST boards mee kunt maken maar ook vele andere ontwikkel boards die de ARM microcontroller gebruiken.
Voor degenen die nieuw zijn: ARM MBED is een online ontwikkelingsplatform dat wordt aangeboden door ARM zelf en het biedt u een ingebed besturingssysteem, cloudservices en beveiligingsfuncties om eenvoudig op IoT gebaseerde ingebedde oplossingen te creëren. Het is een enorme open source-gemeenschap en om er in detail over te gaan, is een apart artikel nodig.
Aan de slag met STM32F401
Maar gebruik om te beginnen een USB-minikabel om uw STM32-ontwikkelbord met uw computer te verbinden. Eenmaal gevoed, zou u moeten opmerken dat de LD1 en LD3 LED's rood oplichten, en de programmeerbare LED LD2 zal op deze manier groen knipperen.
U zult ook een nieuwe flashdrive op uw computer opmerken met de naam "NODE_F401RE". Open het en je zult twee bestanden vinden, namelijk details.txt en mbed.htm, zoals hieronder getoond.
U kunt het bestand Mbed.htm starten om direct uw bord online te programmeren met arm Mbed. Maar voordat we daar aankomen, hebben we de vereiste stuurprogramma's geïnstalleerd en hebben we ons aangemeld voor Mbed. Zoek naar STSW-link009-stuurprogrammasoftware en download deze rechtstreeks van de ST-website, installeer het stuurprogramma en zorg ervoor dat het apparaat correct wordt gedetecteerd in uw apparaatbeheer, zoals hier wordt weergegeven.
Ga terug naar uw mbed-platform om u aan te melden op MBED.com met uw inloggegevens. Klik vervolgens op het MBED.HTM-bestand en u wordt begroet met de volgende pagina.
Scroll naar beneden en klik op " Open Mbed compiler ". Zoals u kunt zien, heeft de compiler ons platform al herkend als Nucleo-F401RE en voorziet hij ons van veel eenvoudige voorbeeldprogramma's. Laat me voorlopig de " LED Blinky-code " selecteren en aanpassen zodat de LED uitgaat wanneer ik op de drukknop druk.
Zodra de code klaar is, zoals hieronder weergegeven, kun je op de compileerknop klikken, die je een bin-bestand geeft, kopieer gewoon het bin-bestand en plak het in je flashdrive om je bord te programmeren. U zult merken dat de LD1-led groen wordt zodra het programmeren is voltooid. Druk nu op de blauwe knop en je zult merken dat de groene LED uitgaat. Zo kun je elk van de voorbeeldprogramma's proberen om de verschillende functionaliteiten van het bord te leren. U kunt ook teruggaan naar de hoofdpagina voor andere technische documenten en ondersteuning van de gemeenschap.
Je kunt ook de video bekijken die onderaan deze pagina is gelinkt om de volledige recensie op dit bord te bekijken.
Conclusie
Over het algemeen denk ik dat deze borden uitstekende keuzes zijn als je probeert je vaardigheden te verbeteren en geavanceerde applicaties te ontwikkelen. Met zijn praktische hardware-ondersteuning en online community is de leercurve van deze borden ook vrij eenvoudig, dus misschien wil je het eens proberen. Ik hoop dat je het artikel leuk vond en er iets nuttigs van hebt geleerd. Als je vragen hebt, laat ze dan achter in het commentaargedeelte hieronder of gebruik onze forums voor andere technische vragen.