De M0+-familie van ARM-Cortex-controllers is krachtig, voordelig en veelzijdig; bovendien zijn er gratis tools beschikbaar voor het ontwikkelen van software. Dit is een ideale combinatie om de wereld van de 32-bits controllers te gaan verkennen. Deze cursus, waarbij ervaring met 8-bits microcontrollers vereist is, helpt u daarbij!
 
Deze programmeercursus is bedoeld om u dichter bij de wereld van de ARM-Cortex-M0+-controller te brengen. Zoals altijd bij Elektor gaan we daarbij de nadruk leggen op de praktijk. Er zijn tegenwoordig veel gratis ontwikkelomgevingen en voordelige ontwikkelboards verkrijgbaar. Onze cursus is gebaseerd op het ‘SAM D20 Xplained Pro’ board dat werkt met een LowPower-microcontroller van het type SAM D20.

In dit eerste deel van de cursus gaan we van start met een kort overzicht van het board en de microcontroller. Daarna installeren we de ontwikkelomgeving Atmel Studio 6.2 en, om alvast een concreet resultaat te zien, bouwen we een eerste project. We zullen vaak vergelijkingen trekken met de wijdverbreide 8-bits AVR-controllers die in veel opzichten lijken op de ARM-controllers. In de volgende delen gaan we dan de belangrijkste periferie-elementen en hun mogelijkheden behandelen in kleine projecten.
 
GromovOver de auteur
Viacheslav Gromov is met zijn 15 jaar één van de jongste Elektor-auteurs, maar al jarenlang enthousiast bezig met analoge en digitale elektronica. Hij beoefent zijn hobby meestal in zijn goed uitgeruste hobbykelder. Hij heeft al verschillende componententips gepubliceerd bij Elektor. Bovendien heeft hij boeken geschreven, onder meer over ARM-Cortex-controllers. Hij wil op deze plaats graag niet alleen zijn familie bedanken voor het ondersteunen van zijn hobby, maar ook Andreas Riedenauer van Ineltek Mitte GmbH voor de ondersteuning. 

Download dit volledige artikel (deel 1) gratis als front-to-back PDF bestand!

Het board
Het blokschema van het board (figuur 1) ziet er op het eerste gezicht niet zo spectaculair uit. We zien dat veel pennen van de 64-pens microcontroller op headers naar buiten gevoerd zijn. De pinbezetting van de connectors en andere aansluitingen is weergegeven in de vorm van tabellen. Het board wordt gevoed met +5 V. Dat kan naar keuze via de USB-bus of via de PWR-connector.
Atmel board
Figuur 1 (klik om te vergroten)
Als we het board voeden uit de USB-poort is op de PWR-aansluiting 5 V of 3,3 V voor het voeden van aangesloten schakelingen beschikbaar. Als het board vanuit PWR wordt gevoed, schakelt de On-board-debugger EDBG (zie tekstkader) automatisch uit om stroom te besparen. Toch is het aan te bevelen om een voeding (of USB-aansluiting) te gebruiken die minstens 500 mA kan leveren. Ook op de connectors EXT1 t/m EXT3 is een spanning van 3,3 V voor het voeden van uitbreidingskaarten beschikbaar. Op elke Extension-header is pen 1 (met de naam ID) gereserveerd voor het aansluiten van een ID-chip op de uitbreidingskaart. EDBG herkent daardoor om wat voor type uitbreidingskaart het gaat. Deze informatie wordt dan doorgegeven aan de ontwikkelomgeving op de PC.

Naast een 32-kHz-kristal (een van de bronnen van een kloksignaal voor de hoofdcontroller) en de aansluiting DEBUG USB voor een externe debugger zitten er nog een RESET-druktoets, een druktoets SW0 en een gele LED0 op het board. SW0 en LED0 zijn verbonden met PA15 respectievelijk PA14 en staan vrij ter beschikking van de gebruiker. De jumper naast SW0 verbindt de uitgangsspanning van de spanningsregelaar op het board met de microcontroller. Als we in plaats van de jumper een stroommeter aansluiten, kunnen we het stroomverbruik van de microcontroller meten.

De (niet ingetekende) Power-LED en de Status-LED naast de USB-bus zijn beide aangesloten op de EDBG. De Power-LED brandt als het board voedingsspanning krijgt. De status-LED knippert op het moment dat de hoofdcontroller SAM D20 bij het debuggen wordt aangesproken door EDBG of door andere processen. Als de firmware van de debugger wordt geüpdatet, knipperen beide LED’s tegelijk. Het user manual van het board is te vinden op de website van Atmel (pdf).