Klik hier voor de Engelse versie van de broncode.

Gebruik van schaalbare microcontrollers voor ontwerpflexibiliteit

Door Kenton Williston

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Nu geavanceerde functies zoals kunstmatige intelligentie (AI) en complexe, grafische human-machine interfaces (HMI’s) steeds vaker in toepassingen worden gebruikt, zijn productontwerpers op zoek naar krachtigere microcontrollers (MCU’s). Ontwerpers worden echter ook gevraagd om kostenefficiënte producten te maken zonder deze ‘flashy’ functies. Door deze concurrentiedruk is het noodzakelijk om een MCU te kiezen die eenvoudig kan worden aangepast aan verschillende markteisen.

Daarnaast maakt de toenemende innovatiesnelheid deze druk nog groter. Toepassingsvereisten kunnen onverwacht veranderen, dus is het essentieel om alternatieve MCU’s bij de hand te hebben. Ook moeten toekomstbestendigheid en hergebruik worden overwogen. Als ontwerpelementen opnieuw kunnen worden gebruikt voor andere projecten kunnen er aanzienlijke tijds- en kostenbesparingen worden gerealiseerd.

Eén manier om deze uitdagingen aan te pakken, is door te kiezen voor een MCU-familie met een groot aantal opties. De STM32H7 van STMicroelectronics is hier een goed voorbeeld van. Deze varieert van voordelige, entry-level 32-bits MCU’s tot dual-core MCU’s met uitgebreide functiesets.

In dit artikel worden de criteria besproken waarmee rekening moet worden gehouden bij het selecteren van een MCU-familie, waarbij kenmerken van de STM32H7-serie als voorbeeld worden gebruikt. We introduceren ook ontwikkelboards en tools die beschikbaar zijn voor de STM32H7-MCU’s en leggen uit hoe je projecten kunt starten met behulp van deze infrastructuur.

Factoren die een MCU-familie flexibel en schaalbaar maken

Bij het zoeken naar een flexibele MCU-familie moet rekening worden gehouden met veel factoren. Het is vooral belangrijk om opties te hebben voor een breed scala aan prestaties en vermogensniveaus. De gewenste MCU-familie moet opties bevatten met een grote keuze aan kloksnelheden en kernen die geoptimaliseerd zijn voor verschillende doelen. Een voorbeeld is de Arm® Cortex®-M4 voor low power en de Arm Cortex-M7 voor hoge prestaties.

De familie moet MCU’s bevatten met basisverwerkingsmogelijkheden en opties met uitgebreide mogelijkheden. Veel toepassingen vereisen gegevensbescherming en veilige communicatie. Functies zoals hardwarematige encryptie, veilig opstarten en cryptografische versnellers zijn essentieel voor deze gebruikssituaties. Ook een digitale signaalprocessor (DSP) en floating-point instructies zijn cruciaal voor gegevensintensieve toepassingen.

De MCU-familie moet ook een breed assortiment aan RAM- en flashgeheugengroottes bieden voor zowel eenvoudige toepassingen als toepassingen die uitgebreide softwareframeworks of gegevensopslag vereisen. De MCU’s moeten externe geheugeninterfaces hebben voor toepassingen die de interne geheugencapaciteiten overschrijden om de nodige schaalbaarheid te bieden.

Tot slot zijn MCU-families met meer opties voor peripherals beter geschikt voor een breder scala aan toepassingen. Het is essentieel dat de MCU-familie opties bevat met geavanceerde I/O zoals USB, ethernet, Bluetooth en wifi, omdat deze interfaces niet eenvoudig kunnen worden toegevoegd als upgrades in latere ontwerpen. Idealiter biedt de geselecteerde familie pincompatibiliteit over het hele productassortiment om hardware-upgrades of -downgrades te ondersteunen zonder dat de printplaat opnieuw ontworpen hoeft te worden.

De ontwikkeltools moeten de hele MCU-familie ondersteunen vanuit een softwareperspectief. Om de ontwikkeling te versnellen moet er een consistente software-API (application programming interface) zijn en een robuuste set bibliotheken en middleware evenals een real-time besturingssysteem (RTOS).

STM32H7: een voorbeeld van veelzijdigheid

De STM32H7-serie van STMicroelectronics is een voorbeeld van een MCU-familie die aan deze criteria voldoet. Zoals tabel 1 laat zien, is deze zeer schaalbare serie opgebouwd rond de Arm Cortex-M7 die zowel basis-MCU’s als geavanceerde MCU’s omvat. De serie heeft vier lijnen, elk geoptimaliseerd voor verschillende toepassingen.

MCU-kern en -klok Maximaal flash/RAM Kenmerken
Value-lijn 280 MHz tot 550 MHz
Arm Cortex-M7
128 kB flash
1 MB RAM
Lage kosten, ethernet, QSPI, TFT
Single-Core-lijn 280 MHz tot 550 MHz
Arm Cortex-M7
2 MB flash
1,4 MB RAM
TFT, ethernet, Q-SPI, low-power
Dual-Core-lijn 480 MHz
Arm Cortex-M7 +
240 MHz
Arm Cortex-M4
2 MB flash
1 MB RAM
Geschakelde voeding (SMPS), TFT-LCD, MIPI-DSI, JPEG
BootFlash-lijn 600 MHz
Arm Cortex-M7
Externe flash, 620 kB RAM NeoChrom GPU, I3C, XiP, USB PHY

Tabel 1: Belangrijkste kenmerken van de vier lijnen van de STM32H7-serie. (Bron tabel: auteur, met bronmateriaal van STMicroelectronics)

De Value-lijn is verkrijgbaar met snelheden van 280 tot 550 megahertz (MHz) en beschikt over 128 kilobyte (kB) ingebouwd flashgeheugen en 1 megabyte (MB) RAM. Deze lijn ondersteunt een verscheidenheid aan communicatie-interfaces en externe geheugenuitbreidingen en biedt een kosteneffectieve oplossing voor prestatiegerichte systemen. De STM32H750VBT6 is zo’n MCU en wordt geleverd in een 100-LQFP van 14 x 14 millimeter (mm).

De Single-Core-lijn draait ook op snelheden van 280 tot 550 MHz. Hij biedt tot 2 MB flashgeheugen en tot 1,4 MB RAM-geheugen voor toepassingen die een rijke gebruikersinterface en real-time besturing vereisen. Een voorbeeld is de STM32H743IIK6, die wordt geleverd in een 201-UFBGA-pakket van 10 x 10 mm.

De Dual-Core-lijn heeft een secundaire Arm Cortex-M4-kern die is geoptimaliseerd voor efficiëntie. Een ingebouwde schakelende voeding (switched-mode power supply, SMPS) verbetert de energie-efficiëntie. Andere geavanceerde peripherals zijn TFT-LCD, MIPI-DSI en een hardware JPEG codec. Een voorbeeld is de STM32H747AII6, die wordt geleverd in een 169-UFBGA-pakket van 7 x 7 mm.

De BootFlash-lijn valt op door zijn hoge prestaties, met snelheden tot 600 MHz. Hij is ontworpen voor realtime XiP-toepassingen (execute-in-place) en is uitgerust met 64 KB boot flash naast 620 KB RAM. Daarnaast hebben sommige modellen in deze lijn een optionele NeoChrom GPU voor verbeterde grafische versnelling. Een standaardvoorbeeld is de STM32H7R3Z8J6, die wordt geleverd in een 144-UFBGA-pakket van 10 x 10 mm.

Voordelen van compatibiliteit met de STM32F4- en STM32F7-families

De STM32H7 maakt deel uit van een uitgebreidere reeks MCU’s van STMicroelectronics en is pin-compatibel met de STM32F4 en STM32F7 voor de meest gangbare pakketten. Deze MCU’s zijn allemaal gebaseerd op Arm Cortex-M-kernen en delen vergelijkbare peripherals en GPIO-pin-lay-outs. De overeenkomsten maken het makkelijker voor ontwerpers om tussen de MCU’s te migreren zonder ingrijpende wijzigingen in hardware. Deze compatibiliteit kan de tijd en kosten van de ontwikkeling verminderen bij het upgraden van een product of het ontwerpen van nieuwe producten op basis van de verschillende mogelijkheden van elke familie.

Daarnaast worden de MCU’s allemaal ondersteund door hetzelfde software-ontwikkelecosysteem, waaronder de STM32CubeMX voor configuratie en het genereren van initialisatiecode en de STM32CubeIDE voor ontwikkeling en debuggen. Deze compatibiliteit zorgt ervoor dat softwarecomponenten, middleware en applicatiecode kunnen worden hergebruikt in projecten die op beide families zijn gericht, waardoor ontwikkelcycli nog sneller verlopen.

Aan de slag met MCU’s in de STM32H7-serie

Het eerste gebruik van STM32H7-MCU’s bestaat uit een paar belangrijke stappen en het effectieve gebruik van ontwikkelboards en -tools. De volgende stapsgewijze gids laat zien hoe ontwikkelen met deze krachtige microcontrollers in zijn werk gaat.

1. Kies een ontwikkelboard

Discovery-kits zijn ideaal als eerste stap en worden geleverd met een geïntegreerde debugger/programmer. Ze hebben meestal verschillende ingebouwde leds, toetsen, sensoren en connectiviteitsopties. Nucleo-boards, zoals de NUCLEO-F767ZI (afbeelding 1), bieden een goede balans tussen flexibiliteit en betaalbaarheid. Ze zijn compatibel met Arduino Uno voor eenvoudige uitbreiding en hebben een STLINK-interface voor gebruik met debuggers/programmers.

Afbeelding van het NUCLEO-F767ZI-ontwikkelboard van STMicroelectronicsAfbeelding 1: Het NUCLEO-F767ZI-ontwikkelboard is een eenvoudig maar flexibel startpunt voor experimenten. (Bron afbeelding: STMicroelectronics)

Evaluatieboards bieden de meest uitgebreide set peripherals en connectiviteitsopties om alle functies te verkennen. Met Discovery-kits zoals de STM32H745I-DISCO (afbeelding 2) en de STM32H750B-DK is de evaluatie van verschillende interfaces mogelijk met functies zoals:

  • 4,3 inch (10,9 cm) RGB-interface LCD met aanraakscherm
  • Ethernet conform IEEE-802.3-2002
  • Voeding via ethernet (PoE = Power over Ethernet)
  • USB OTG HS
  • SAI-audiocodec
  • Eén ST-MEMS digitale microfoon
  • 2 × 512 Mb Quad-SPI NOR flashgeheugen
  • 128 Mb SDRAM
  • 4 gigabyte (GB) on-board eMMC
  • 2 × CAN FD’s
  • Compatibel met Arduino shields
  • Ingebouwde STLINK-V3E debugger/programmer met USB-re-enumeration: massaopslag, virtuele COM-poort en debugpoort

Afbeelding van STM32H745I-DISCO-evaluatieboard van STMicroelectronicsAfbeelding 2: Het STM32H745I-DISCO-evaluatieboard biedt een uitgebreide set hardwaremiddelen. (Bron afbeelding: STMicroelectronics)

2. Softwaretools

STMicroelectronics biedt een geïntegreerde ontwikkelomgeving (integrated development environment, IDE) voor MCU’s (afbeelding 3). Deze omvat een compiler, debugger en een configurator voor het genereren van initialisatiecode en het instellen van peripherals.

Afbeelding van de STM32H7 IDE van STMicroelectronicsAfbeelding 3: Een screenshot van de STM32H7 IDE. (Bron afbeelding: STMicroelectronics)

3. Leer en experimenteer

Nu is het raadzaam om de documentatie te lezen. Een uitstekende plaats om te beginnen is de gebruikershandleiding van het ontwikkelboard en de relevante STM32H7-referentiehandleiding. Deze documenten bieden essentiële informatie over MCU-architecturen, peripheralconfiguratie, Pin-Mux en hardwarekenmerken.

Experimenteren met voorbeeldprojecten is een effectieve manier om de tools te leren. STMicroelectronics biedt een reeks voorbeeldprojecten voor verschillende STM32-MCU’s. Deze voorbeelden kunnen dienen als een goed startpunt om te leren hoe je verschillende MCU-functies kunt gebruiken.

Tot slot kan de ontwikkelaar-community extra ondersteuning bieden. Resources zoals de ST Community, tutorials en video’s bieden oplossingen voor veelvoorkomende problemen en inspiratie voor mogelijke projecten.

4. Ontwikkeling en debuggen

De IDE biedt alles wat je nodig hebt om te beginnen met het schrijven, compileren en debuggen van computercode. De configurator binnen de IDE kan gebruikt worden voor het initialiseren van peripherals en het instellen van middleware. De geïntegreerde STLINK-debugger/programmerinterface van het ontwikkelboard maakt debuggen in realtime mogelijk. Problemen kunnen worden geïdentificeerd met behulp van breakpoints, het bekijken van variabelen en het stapsgewijs doorlopen van de computercode.

5. Een project uitbreiden

Uitbreidingskaarten kunnen functionaliteit zoals connectiviteit of sensoren toevoegen aan Discovery- en Nucleo-boards. Zodra de gewenste functionaliteit is vastgesteld via ontwikkelboards, kan een aangepaste printplaat worden ontworpen met de schema’s van het ontwikkelboard als referentie. Een voorbeeld van een aangepast board is het OpenMV4 CAM H7-cameraplatform (afbeelding 4) van Seeed Technology Co. Het maakt gebruik van de single-core STM32H743.

Afbeelding van de OpenMV4 CAM H7 van Seeed Technology, bedoeld voor vision-systemenAfbeelding 4: De OpenMV4 CAM H7 is bedoeld voor vision-systemen. (Afbeelding bron: Seeed Technology Co. Ltd.)

Een ander voorbeeld is de ABX00051 Nicla Vision (afbeelding 5) van Arduino, die gebruik maakt van de dual-core STM32H747.

Afbeelding van de Arduino ABX00051 Nicla VisionAfbeelding 5: De ABX00051 Nicla Vision helpt ontwikkelaars bij het evalueren van verschillende beeldsensoren. (Bron afbeelding: Arduino)

Conclusie

De selectie van de MCU in een productontwerp is kritisch, gezien de concurrerende vraag naar geavanceerde functies en kostenoptimalisatie. De STM32H7-serie van STMicroelectronics is een krachtig voorbeeld dat laat zien hoe het kiezen van de juiste MCU-familie een schaalbare, flexibele oplossing kan bieden die tegemoetkomt aan de huidige en toekomstige behoeften.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Kenton Williston

Kenton Williston

Kenton Williston received his B.S. in Electrical Engineering in 2000 and started his career as processor benchmark analyst. Since then he worked as an editor with the EE Times group and helped launch and lead multiple publications and conferences serving the electronics industry.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey