De keuzecriteria stap voor stap

Bij het aangaan van uitdagingen op het gebied van de bouw van nieuwe elektronische apparatuur moet je jezelf een aantal vragen stellen. Een van de belangrijkste is de keuze van onderdelen, die niet altijd even simpel is. De afgelopen jaren waren veel componenten moeilijk verkrijgbaar en moest er meer dan eens worden gekozen voor varianten met vergelijkbare eigenschappen, zelfs wanneer dit ten koste ging van een nieuwe printplaat. De microcontroller is het hart van veel moderne apparatuur. Vaak is de juiste keuze eenvoudig op basis van onze vaardigheden of beschikbare uitrusting. Soms staan we echter voor een nieuwe uitdaging en moeten we antwoord geven op allerlei vragen in verband met onze keuze, en rekening houden met verschillende criteria.
 
  • De rol van een nauwkeurige ontwerpbeschrijving
  • Keuzecriteria voor microcontrollers
    • Voedingstype
    • Werkingsspanning
    • Aantal aansluitingen
    • Randmodules
    • Snelheid van de kern en randsystemen
    • Beschikbaar geheugen
    • Elektrische betrouwbaarheid
    • Volume


De keuze van de juiste microcontroller voor het betreffende ontwerp moet al helemaal aan het begin worden gemaakt. Wat betreft het aanbod zijn er drie groepen microcontrollers te onderscheiden: 8, 16 en 32 bits. Het kiezen van een microcontroller hangt niet samen met strenge regels, maar er zijn wel vele factoren om rekening mee te houden. Vooral aan het begin van het project is het vaak moeilijk in te schatten welke kenmerken van de microcontroller het belangrijkst zijn voor de betreffende toepassing. Werking binnen een breed temperatuurbereik of beschikbaarheid van ingebouwde interfacemodules kunnen bijvoorbeeld botsen met de noodzaak van een laag stroomverbruik.

Ontwerpbeschrijving

Het selecteren van componenten voor je apparaat is een compromis tussen eigenschappen, prijs, beschikbaarheid en uitrusting van de werkplaats. Dat geldt zonder meer ook voor de microcontroller. De keuze is bij dit onderdeel vaak nog lastiger omdat zij van invloed is op huidige en toekomstige eigenschappen van het eindapparaat evenals de mogelijkheid om het verder te kunnen ontwikkelen. Het is verstandig om in deze fase eerst een beschrijving van alle vereisten op te zetten. Op die manier kies je niet alleen eenvoudiger een geschikte microcontroller maar vergelijk je ook makkelijker prijzen en parameters van afzonderlijke systemen. Deze beschrijving moet beginnen bij de basisfuncties, oftewel een lijst van sleuteleigenschappen voor het betreffende ontwerpen. Deze moet de volgende informatie bevatten:
 
  • Welke functies moet het ontworpen apparaat vervullen?
  • Wat zijn de ingangs- en uitgangssignalen? Wat zijn de spannings- en stroomniveaus en welke frequentie hebben ze?
  • Moet het apparaat communiceren met de omgeving? Zo ja, op welke manier? Is er een draadloze interface nodig? Worden er gegevens aan de gebruiker getoond op een grafisch scherm?
  • Welke gegevens worden er opgeslagen in het geheugen en hoeveel ruimte is daarvoor nodig? Moeten deze gegevens ook beschikbaar zijn na het in- en uitschakelen van de voeding?
  • Wat is de benodigde reactiesnelheid op gebeurtenissen?
  • In welke taal wordt het stuurprogramma geschreven (dit heeft invloed op de grootte van het werkgeheugen en programmageheugen)?

Kijk vervolgens naar de ontwerpbeperkingen:
  • Wat is de doelprijs van het apparaat (wat beïnvloedt de kosten van de montage en onderdelen)?
  • Wat zijn de beperkingen op het gebied van voeding? Wordt het apparaat stationair of draagbaar? Wat is de vereiste werkingstijd na het vervangen/opladen van de batterij?
  • Wat is de beoogde grootte van het apparaat? Wat voor behuizing krijgt het apparaat?
  • Is het apparaat bedoeld voor industriële, consumenten- of speciale toepassingen?
Op basis van deze eisenlijst kun je een inschatting maken van de middelen waar de microcontroller over moet komen te beschikken. Je kunt vereisten op het gebied van werkgeheugen, gegevens en software bepalen. Ook kun je het aantal I/O-aansluitingen, de randapparatuur en het geschatte vermogen van de kern specificeren
Op dit punt hoeven de specificaties trouwens niet supernauwkeurig te zijn. Het belangrijkste is een goede raming van de benodigdheden zodat je de kenmerken en functies van verschillende microcontrollers kunt vergelijken. Zo zijn het realiseren van apparaatfuncties in standbymodus, de real time-reactie en de bestendigheid tegen EMI-interferentie typische kenmerken van systemen met 8 bit-kern. 32 bits-microcontrollers zijn daarentegen een goede keuze als er meerdere taken tegelijk moeten worden uitgevoerd, met dynamisch voedingsbeheer, grote rekenkracht en werking onder de hoede van het besturingssysteem.

Keuzecriteria

Om de keuze van de juiste microcontroller te vereenvoudigen, hebben we een reeks criteria opgesteld waar je je door kunt laten leiden. Beschouw deze als richtlijnen en denkhulp, ingedeeld naar gewichtigheid en beoogde apparaateigenschappen, en voeg ook eigen criteria toe die niet in deze tekst voorkomen. Wat voor het ene apparaat essentieel is, kan zelfs helemaal buiten beschouwing worden gelaten voor het andere.

Voedingstype

Draagbare apparaten worden meestal gevoegd door een batterij of accu. Daarom moet de microcontroller van zo’n apparaat bij voorkeur zo min mogelijk energie verbruiken. Ook microcontrollers die worden ingebouwd in apparaten op netstroom (met adapter) moeten energiezuinig zijn om bij te blijven bij de moderne trends, maar het stroomverbruik hoeft in dit geval niet tot een minimum te worden beperkt.

Een microcontroller met batterijtoepassing moet een zeer krachtige kern bevatten om zoveel mogelijk operaties uit te kunnen voeren wanneer deze uit stand-by komt, de modus waarin hij het grootste deel van de tijd zal verblijven (om het energieverbruik minimaal te houden). Daarom kun voor draadloze apparaten meestal het beste kiezen voor een 32 bits ARM-kern. In stationaire apparatuur met eigen voeding is de snelheid van de microcontroller een belangrijk criterium, maar alleen ten behoeve van de toepassingen.

In een draagbaar apparaat is een groot aantal stand-by-opties een voordeel voor de microcontroller. Dit is typisch voor 32 bits-microcontrollers. De eenvoudigere 8 bits-modellen hebben hoogstens een of twee werkingsmodi met een verlaagd stroomverbruik. Ook is het vaak zo dat de microcontroller alleen aan of uit kan. Voor veel toepassingen speelt dit geen rol, maar voor de geavanceerde modellen kan beschikbaarheid van een groter aantal energiezuinige modi noodzakelijk zijn. Zo blijft het gemiddelde stroomverbruik minimaal en is de werkingsduur op batterijvoeding langer.

Waarde van de voedingsspanning

De waarde van de voedingsspanning is om minstens twee redenen belangrijk. Ten eerste is deze van invloed op de werkingssnelheid van de microcontroller Meestal betekent een kleinere spanning een langzamere kern (lagere kloksnelheid). Daar moet rekening mee worden gehouden bij het overwegen van de uitvoeringssnelheid van de code. Ten tweede zijn er de externe systemen. Daarbij draait het meestal om de vraag of de microcontroller bij voeding met lage spanning nog wel in staat is om samen te werken met bijv. interfaces die hogere spanning nodig hebben. Hiervoor moet dus worden gekeken of deze systemen überhaupt beschikbaar zijn en of er speciale converters nodig zijn, of dat de microcontroller met een hogere spanning moet worden gevoed dan voorzien was.
De spanningswaarde heeft ook invloed op het vermogensverlies in de kern, maar in de meeste microcontrollers is geen aanvullende koeling nodig.

Aantal en type aansluitingen

Een belangrijk criterium is het aantal I/O-aansluitingen van de beoogde behuizing. Om dit te bepalen moet je de toepassing al in grote lijnen voor ogen hebben. Dat betekent dat je moet weten welk scherm er zal worden gebruikt, hoe het wordt bestuurd, of er ingangs- en uitgangsinterfaces nodig zijn en hoe deze moeten worden aangesloten op dezelfde microcontroller. Ook moet je weten hoeveel in- en uitgangen van het type aan/uit er nodig zijn, wat het aantal knoppen en analoge in- en uitgangen wordt etc. Pas wanneer je dat min of meer voor ogen hebt, kun je bepalen hoeveel aansluitingen er nodig zijn en in welke behuizing je de microcontroller gaat plaatsen.

Natuurlijk kun je gebruik maken van extra expanders met seriële interface, waardoor je minder pins nodig hebt, maar dit maakt de software en plaat ingewikkelder en bemoeilijkt ook het inschakelen van het apparaat. Het kiezen van de juiste microcontroller op basis van het aantal aansluitingen is altijd een compromis tussen wat er beschikbaar is en hoeveel moeite er moet worden gestoken in het latere schrijven en starten van kant-en-klare toepassingen.

Speciale, aanvullende eisen

Moderne microcontrollers zijn behoorlijk goed voorzien van ingebouwde randmodules. Daartoe behoren exemplaren waarmee drivers van motoren en omvormers direct kunnen worden aangestuurd. Je vindt microcontrollers met een zeer groot aantal ingebouwde PWM-generators, wat handig is voor het aansturen van meerdere servomechanismen in de manipulator. Op de meesten kan direct een USB-interface worden aangesloten. Ingebouwde randmodules vereenvoudigen toepassingen, versnellen hun werking en verkleinen de omvang van de programmacode. Ook verbetert het de opstarttijd van het apparaat aanzienlijk. Daarom dien je bij het kiezen van de microcontroller rekening te houden met de beschikbaarheid van randmodules en andere speciale functies.

Ook de keuze van de verwerkte signalen is van groot belang. Als er in een toepassing analoge signalen worden verwerkt, moet de microcontroller krachtig zijn, beschikken over het juiste aantal A/C-omvormers met de vereiste bemonsteringsfrequentie, en zijn er bij voorkeur ook nog randmodules voorhanden die hun werking ondersteunen, zoals DMA, MAC (Multiply And Accumulate), DSP en FPU. In dat geval kunnen analoge signalen efficiënt worden verwerkt zonder de hogere vereisten aan dezelfde kern en zijn vermogen.

Werkingssnelheid van de kern en randsystemen

De keuze of tussen het via het apparaat of programma realiseren van functies heeft gevolgen voor het hele project. Dit is namelijk een keuze tussen kleine behoeften aan rekenkracht en ontwerpeenvoud. Ook moet gelet worden op de gevolgen van de gemaakte keuze. Zo is het bijvoorbeeld mogelijk om een UART-interface in programmavorm te maken maar moet de CPU hiervoor continu een signaal ontvangen via een bepaalde aansluiting, of moet de hoofdtaak van het programma worden onderbroken als we ervoor kiezen om interrupts van de I/O-ingang te gebruiken. Deze functie kan een groot gedeelte van de CPU-rekenkracht kosten en hinderlijk zijn voor de bediening van andere peripherals. Datzelfde geldt voor het grafische scherm. Een grote hoeveelheid verstuurde gegevens kan van invloed zijn op de realisatie van het programma, vooral bij een hoge schermresolutie. Een DMA voor gegevensoverdracht uit het geheugen met een apparaat-SPI zonder betrokkenheid van de kern kan hier veel efficiënter blijken.

Beschikbaar geheugen

Het besturingssysteem verricht per definitie een veelvoud aan taken en schakelt zelfstandig tussen verschillende statussen van de state machine, wat het programmeren aanzienlijk vereenvoudigt. Aan de andere kant beslaat een zelfstandig geschreven state machine veel minder programmageheugen en gegevens, is er minder rekenkracht nodig en kan deze optimaal zijn voor toepassingen en hun werkingssnelheid. Beide benaderingen zijn nuttig en worden in de praktijk gebruikt.

Een besturingssysteem heeft aanzienlijk meer geheugen nodig dan een zelfgeschreven toepassing. Naast het juiste programma moet er plek zijn voor redundante gegevens. Daartoe behoren in dit geval code van het operatiesysteem, geschreven in Flash, en de behoefte aan werkgeheugen (stack, systeemvariabelen, interrupts, interfacesystemen e.a.).

Meestal hebben programma’s die in assembleertaal geschreven zijn het minste geheugen nodig. Gebruik van een high-level-compiler vereist een zekere hoeveelheid geheugen voor de programmastack en variabelen. Zoals eerder gezegd, is er nog meer geheugen nodig voor het besturingssysteem en het programma dat onder zijn controle draait. Ook maakt het uit of de microcontroller samenwerkt met het grafische scherm, omdat er in dat geval iconen en grafische elementen worden opgeslagen in het Flashgeheugen, meestal in de vorm van bitmaps met bijbehorende kleurattributen, wat veel ruimte in beslag neemt.

Elektrische betrouwbaarheid

In een ideale toepassing wordt niet gekeken naar weerstand van de microcontroller tegen spanningsschommelingen, EMI-interferentie of overspanning van I/O-lijnen. Onder reële omstandigheden, met name in voertuigen, wordt de microcontroller echter wel degelijk in vergaande mate blootgesteld aan deze factoren. In voertuigen kan daarom veel beter worden gekozen voor microcontrollers met 8 bits-kern of indirecte microcontrollers met 16 bits-kern en voedingsspanning van 5 V. De praktijk wijst uit dat het gebruik van een 32 bits-kern met lage spanning van 2,7 tot 3,3 V moeilijk is vanwege een verhoogde blootstelling aan EMI-interferentie. Een dergelijke toepassing is mogelijk maar het opstarten duurt veel langer.

Productievolume

Voor de keuze van onderdelen, niet alleen die van de microcontroller, is het belangrijk of het apparaat een module is van een industriële machine met kleine oplage, of dat het bestemd is voor de particuliere markt en in duizenden wordt geproduceerd. In het eerste geval hoeft geen rekening te worden gehouden met de afmetingen van de behuizing en prijs van de onderdelen. In het tweede geval moet niet alleen rekening worden gehouden met de componenten en hun prijzen, maar tevens met de wijze van montage op de doelplaat.

Opstartomgeving, programmatools

Tegenwoordig zijn er voor veel microcontrollers tal van geweldige gratis high level-compilers, editors, debuggers, simulators en andere apparaat- en softwaretools. Daarom is dit criterium vaak niet van groot belang, maar niet altijd. As we bezig zijn met een apparaatontwerp voor motorvoertuigen of de luchtvaart, moeten we gebruik maken van gecertificeerde programmatools, die niet goedkoop zijn en beperkte keuzemogelijkheid bieden voor bepaalde systeemfamilies en fabrikanten. Een constructor die een nieuw apparaat bouwt voor de consumentenmarkt, zoals de besturingseenheid van speelgoed, geniet aanzienlijk meer vrijheid.

Bij het kiezen van het systeemtype en de startomgeving van de IDE moet rekening worden gehouden met de beschikbaarheid van de functielibrary. Vaak nemen de fabrikanten van de systemen een enorm deel van de programmeur voor hun rekening door functies en procedures te ontwikkelen voor tal van functionaliteiten en randmodules: aanraakinterface, scherm, communicatie-interface, PWM-generators etc. Standaard codefragmenten die getest zijn in laboratoria van de fabrikant, kunnen de uitvoering van het programma aanzienlijk versnellen en de aan het ontwerp bestede tijd inkorten. Ook loont het om eerder geschreven code opnieuw te gebruiken en dus te kiezen voor een fabrikant die verschillende microcontrollers levert die op dezelfde wijze en met dezelfde tools zijn geprogrammeerd.

Slotopmerkingen

Wanneer we alle criteria analyseren en besluiten voor een compromis te kiezen, kunnen we beginnen met zoeken naar een microcontroller die aan onze ontwerpvereisten voldoet. Vaak blijkt echter dat het ondanks een enorm aanbod moeilijk is om het ideale model te kiezen. Misschien dat moet worden afgezien van bepaalde opties, die het ontwerp enerzijds gecompliceerder maken en anderzijds de kosten verhogen. Daarbij gaat het niet alleen om de microcontroller zelf maar ook om de prijs van de noodzakelijke uitrusting voor het starten en testen van de functies van het eindapparaat evenals de kosten van de randsystemen voor het realiseren van de betreffende functies. Vaak is het zo dat het aansluiten van aanvullende functies de tests ingewikkelder maakt en de tijdsduur voor het op de markt brengen van het apparaat aanmerkelijk verlengt. Ook de mogelijkheden van de werkplaats zijn niet onbelangrijk. Het kan namelijk best eens zo zijn dat de enige programmeeroptie is om een op de plaat gesoldeerd systeem (in-circuit) te gebruiken. De meeste moderne microcontrollers hebben deze mogelijkheid, maar niet allemaal.

De tekst is opgesteld door Transfer Multisort Elektronik Sp. z o.o.
https://www.tme.eu/nl/news/library-articles/page/58382/hoe-kies-je-de-juiste-microcontroller-voor-je-ontwerp/