Die M0+ Familie der ARM-Cortex-Controller ist leistungsfähig und preisgünstig; darüber hinaus gibt es kostenlose Tools, welche die Entwicklung stark vereinfachen. Was sollte dann einem Einstieg in die Welt der 32-bit-Controller im Wege stehen? Unser Kurs, bei dem Erfahrungen mit 8-bit-Mikrocontrollern vorausgesetzt werden, hilft Ihnen dabei!
 
Der Programmierkurs soll Ihnen die Welt der ARM-Cortex-M0+ Controller näherbringen, wie immer bei Elektor legen wir dabei den Schwerpunkt auf die Praxis. Es gibt mittlerweile viele kostenlose Entwicklungsumgebungen und günstige Entwicklungsboards. Unser Kurs basiert auf dem Board „SAM D20 Xplained Pro“ mit einem Low-Power-Mikrocontroller SAM D20.
 
In dieser ersten Kursfolge geht es los mit einem kleinen Überblick über Board und Mikrocontroller, danach wird die Entwicklungsumgebung Atmel Studio 6.2 installiert und – damit man schon ein kleines Erfolgserlebnis hat das erste Projekt erstellt. Wir ziehen manchmal auch Vergleiche mit der verbreiteten 8-bit-AVR-Familie, die in mancher Hinsicht ähnlich ist. In den nächsten Folgen werden dann die wichtigsten Peripherie-Elemente mit ihren Möglichkeiten in kleinen Projekten vorgestellt.
 
GromovÜber den Autor
Viacheslav Gromov ist mit 15 Jahren einer der jüngsten Elektor-Autoren, doch schon seit Jahren begeistert von analoger und digitaler Elektronik. Sein Hobby übt er meist in seinem gut ausgestatteten Hobbykeller aus. Er hat schon einige Bauteil-Tipps bei Elektor veröffentlicht. Darüber hinaus hat er Bücher geschrieben, die sich unter anderem mit ARM-Cortex-Controllern beschäftigen. Er möchte sich an dieser Stelle nicht nur bei seiner Familie für die Unterstützung seines Hobbys, sondern auch bei Andreas Riedenauer von der Ineltek Mitte GmbH für die Unterstützung mit Informationen und Boards bedanken. 

Das Board
Das Blockdiagramm des Boards (Bild 1) sieht auf den ersten Blick etwas unspektakulär aus. Man sieht, dass zahlreiche Pins des 64-Pin-Mikrocontrollers auf Header nach außen geführt sind. Die Belegung der Stiftleisten und anderer Anschlüsse ist in Tabellenform wiedergegeben. Das Board kann wahlweise über die USB-Buchse oder den PWR-Header mit +5 V versorgt werden. Bei Versorgung über USB stehen an PWR 5 V beziehungsweise 3,3 V zur Versorgung von angeschlossenen Schaltungen zur Verfügung. Wenn das Board von PWR aus gespeist wird, schaltet sich der On-Board-Debugger EDBG (siehe Kasten) automatisch aus, um Strom zu sparen. Trotzdem ist es empfehlenswert, dass die Stromversorgung (oder der USB-Anschluss) mindestens 500 mA zu Verfügung stellen kann.

Atmel board
Bild 1. Blockdiagramm des Boards.
Auch an den Stiftleisten EXT1 bis EXT3 liegt eine Spannung von 3,3 V zur Versorgung von Erweiterungsboards. Auf jedem Extension-Header ist der Pin 1 namens ID für den Anschluss eines ID-Chips auf dem angeschlossenen Erweiterungsboard reserviert. Der EDBG erkennt dadurch, um was für ein Erweiterungsboard es sich handelt. Diese Information wird dann an die Entwicklungsumgebung auf dem PC weitergegeben.

 
Außer dem 32-kHz-Quarz (eine der Taktquellen des Hauptcontrollers) und dem Anschluss DEBUG USB für einen externen Debugger ist noch ein RESET-Taster, der Taster SW0 und eine gelbe LED0 auf dem Board vorhanden. SW0 und LED0 sind an PA15 respektive PA14 angeschlossen und stehen dem Anwender zur freien Verfügung. Der Jumper neben SW0 verbindet die Ausgangsspannung vom Spannungsregler auf dem Board mit dem Mikrocontroller. Schließt man statt des Jumpers ein Messgerät an, kann man den Stromverbrauch des Mikrocontrollers messen.

 
Die (nicht eingezeichnete) Power-LED und die Status-LED neben der USB-Buchse sind beide an den EDBG angeschlossen. Die Power-LED leuchtet, wenn das Board mit Strom versorgt wird, die Status-LED blinkt, wenn der Hauptcontroller SAM D20 gerade durch den EDBG beim Debuggen oder sonstigen Vorgängen angesprochen wird. Wenn die Firmware des Debuggers aktualisiert wird, blinken beide LEDs gleichzeitig. Das User-Manual zu diesem Board finden Sie hier (pdf).