Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für...

5
September 2013 PCNEWS—135 25 CLUBDEV.NET Wie schon in der PCNEWS125 vorgestellt, wird in unserer Elektronikabteilung der neue Industriestandard ARMCortexM3 eingesetzt. Da leider kaum einer der vielen CM3 Derivate ein DIL Gehäuse besitzt, werden die LQFPGehäuse auf einer LeiterplaƩe bestückt und mit SƟŌleisten für einen SteckbreƩauĩau tauglich gemacht. Dieser ArƟkel beschreibt zwei Diplomarbeiten mit an der HTL Hollabrunn neu entwickelten und geferƟgten CM3 DIL Modulen. Programmentwicklung Es ist für den Einsteiger sehr schwierig herauszunden, welche OpenSource Programme man braucht, um ARMControllersoŌware zu entwickeln. Z.B. Eclipse mit Yagarto Tools mit GCC, GDB Hardware Debugging für JTAG Programmieradapter mit OpenOCD Server. Kostet nichts, aber man braucht viel Zeit. Es sind auch viele kommerzielle Umgebungen graƟs (mit Einschränkungen) verfügbar. Zum Beispiel Keil μVision (Demo max. 32KB Code): Die sehr komfortable μVison IDE ist neben dem ARM Compiler auch für einen beliebigen GNUCompiler kongurierbar. Damit besteht das 32kLimit nur noch für den integrierten Debugger / Simulator. μVison selbst kann kostenlos mit dem MDKEvaluaƟonkit heruntergeladen werden. Oder man entwickelt mit der IAREmbeddedWorkbench (Demo max. 32KB Code) oder mit Raisonance Ride7 oder ganz neu mit Atmel Studio 6 für ARM CortexM ApplikaƟonen. EvaluaƟon Boards Im Handel gibt es verschiedene DISCOVERY DemoBoards. Diese Boards sind ideal für den EinsƟeg. Sie sind mit 9 bis 15 sehr günsƟg und haben den jeweiligen Zielprozessor und einen JTAGDebuggerAdapter schon drauf. Die 32Bit ARM CortexM0/M3/M4 Architektur ist speziell für den Einsatz in Mikrocontrollern neu entwickelt und löst damit die bisherigen ARM7basierten Controller weitestgehend ab. Die Controller gibt es in unzähligen Varianten mit variabler Peripherie und verschiedenen Gehäusegrößen und formen. Durch die geringe Chipäche des Cores ist es möglich, eine 32 BitCPU für weniger als 1anzubieten. CortexM0: 13μW/MHz eingeschränkter Befehlssatz um die Chipäche klein zu halten. CortexM0+:11μW/MHz zweistaƩ dreistuger Pipeline CortexM3: 32μW/MHz größere Chipäche und Hardwaredivisionseinheit CortexM4: spezielle Signalprozessorbefehle und eine zusätzliche Gleitkommaeinheit Energy HarvesƟng Energy-Harvesting (EnergieErnten) Darunter versteht man die Gewinnung winziger Mengen von elektrischer Energie aus Quellen wie zum Beispiel Licht (Photovoltaikzelle) Umgebungstemperatur (PelƟerelement oder Thermogenerator) oder VibraƟonen für Geräte mit geringer Leistung. Aufgabenstellung: Es soll eine autarke Plaƪorm für eine Musterlaborübung „Drahtloses Sensornetzwerk ohne kabelgebundener Stromversorgung“ geschaen, und ein UltraLowPowerMikrocontroller mit angeschlossenen Sensoren/ Aktoren/Funkmodulen dadurch gespeist werden. Als konkrete Anwendung sind diese ErMikrocontroller-News aus Hollabrunn Manfred Resel Energy HarvesƟng

Transcript of Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für...

Page 1: Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für JTAG Program ... elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden

September 2013 PCNEWS—135 25

CLU

BD

EV.N

ET

Wie schon in der PCNEWS‐125 vorgestellt, wird in unserer Elektronikabteilung der neue Indust‐riestandard ARM‐Cortex‐M3 eingesetzt. Da leider kaum einer der vielen CM3 Derivate ein DIL Gehäuse besitzt, werden die LQFP‐Gehäuse auf einer Leiterpla e bestückt und mit S leis‐ten für einen Steckbre au au tauglich ge‐macht. Dieser Ar kel beschreibt zwei Diplomar‐beiten mit an der HTL Hollabrunn neu entwi‐ckelten und gefer gten CM3 DIL Modulen.

Programmentwicklung Es ist für den Einsteiger sehr schwierig heraus‐zufinden, welche Open‐Source Programme man braucht, um ARM‐Controllerso ware zu entwi‐ckeln. Z.B. Eclipse mit Yagarto Tools mit GCC, GDB Hardware Debugging für JTAG Program‐mieradapter mit OpenOCD Server. Kostet nichts, aber man braucht viel Zeit. Es sind auch viele kommerzielle Umgebungen gra s (mit Einschränkungen) verfügbar. Zum Beispiel Keil µVision (Demo max. 32KB Code): Die sehr kom‐fortable µVison IDE ist neben dem ARM Compi‐ler auch für einen beliebigen GNU‐Compiler konfigurierbar. Damit besteht das 32k‐Limit nur noch für den integrierten Debugger / Simulator. µVison selbst kann kostenlos mit dem MDK‐Evalua onkit heruntergeladen werden. Oder man entwickelt mit der IAR‐Embedded‐Workbench (Demo max. 32KB Code) oder mit Raisonance Ride7 oder ganz neu mit Atmel Studio 6 für ARM Cortex‐M Applika onen.

Evalua on Boards Im Handel gibt es verschiedene DISCOVERY Demo‐Boards. Diese Boards sind ideal für den Eins eg. Sie sind mit 9 bis 15 € sehr güns g und haben den jeweiligen Zielprozessor und einen JTAG‐Debugger‐Adapter schon drauf. Die 32‐Bit ARM Cortex‐M0/M3/M4 Architektur ist speziell für den Einsatz in Mikrocontrollern neu entwi‐ckelt und löst damit die bisherigen ARM7‐basierten Controller weitestgehend ab. Die Controller gibt es in unzähligen Varianten mit variabler Peripherie und verschiedenen Gehäu‐segrößen und ‐formen. Durch die geringe Chip‐fläche des Cores ist es möglich, eine 32 Bit‐CPU für weniger als 1€ anzubieten.

• Cortex‐M0: 13µW/MHz eingeschränkter Befehlssatz um die Chipfläche klein zu halten.

• Cortex‐M0+:11µW/MHz zwei‐ sta dreistufi‐ger Pipeline

• Cortex‐M3: 32µW/MHz größere Chipfläche und Hardwaredivisionseinheit

• Cortex‐M4: spezielle Signalprozessorbefehle und eine zusätzliche Gleitkommaeinheit

Energy Harves ng Energy-Harvesting (Energie‐Ernten) Darunter ver‐steht man die Gewinnung winziger Mengen von elektrischer Energie aus Quellen wie zum Bei‐spiel Licht (Photovoltaikzelle) Umgebungstem‐peratur (Pel erelement oder Thermogenerator) oder Vibra onen für Geräte mit geringer Leis‐tung. Aufgabenstellung: Es soll eine autarke Pla orm für eine Musterlaborübung „Drahtloses Sensor‐netzwerk ohne kabelgebundener Stromversor‐gung“ geschaffen, und ein Ultra‐Low‐Power‐Mikrocontroller mit angeschlossenen Sensoren/Aktoren/Funkmodulen dadurch gespeist wer‐den. Als konkrete Anwendung sind diese Er‐

Mikrocontroller-News aus Hollabrunn Manfred Resel

Energy Harves ng

Page 2: Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für JTAG Program ... elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden

PCNEWS—135 September 2013 26

CLU

BD

EV.N

ET

kenntnisse zur Messwerterfassung des Durch‐flusses und der Abwassertemperatur im Kanal‐system des Hollabrunner Studentenheims ein‐zusetzen. Verschiedene (Energy Harvesting und Ultra‐Low‐Power‐Mikrocontroller) EVAL‐Boards sind auf Brauchbarkeit zu untersuchen. Ver‐schiedene Möglichkeiten der Datenübertragung zum HTL eigenen Umwelt‐Datenbankserver sind ebenfalls zu untersuchen. Es ist eine Stromver‐sorgung anzustreben die ohne den Anschluss an das 230V Stromnetz funk oniert. Die Ultraschall Durchflussmesser für den Kanal sind nach einem Laufzeit‐Differenz Verfahren auszulegen. Dabei wird abwechselnd Ultraschall ausgesendet bzw. empfangen. Die Schallwellen durchqueren ein fließendes Medium in Flussrichtung schneller als in entgegengesetzter Richtung. Die daraus resul‐

erende Zeitdifferenz ist direkt propor onal zur Durchflussgeschwindigkeit.

Realisierung Die CPU befindet sich die meiste Zeit im Sleep‐Modus und wird nach einer bes mmten Zeit von einem Low Energy Timer geweckt und die schnelle 32‐bit "Höllenmaschine" bringt einen ADC dazu, die aktuellen Temperaturwerte ein‐zulesen und dann über den Low Energy UART an ein Funkmodul zur Datenübertragung auszusen‐den. Im Bild sieht man ein Discovery Board von ST‐Microelektronics. Es wird hier nur der ST‐LINK‐Debugger mit pin‐sparendem SW‐Debugging verwendet. Der Zielprozessor ist hier nicht der On Board Cortex M0 sondern eine externe 28 polige IC‐sockelkompa ble DIL‐HTL‐Pla ne mit einem Ultra‐Low‐Power STM32L151 Controller. Das Tiny Gecko Starter Kit des Norwegischen Chipherstellers Energy Micro ist ein Develop‐mentboard, welches einen ARM Cortex‐M3‐basierten Mikrocontroller aus der Reihe EFM32 benutzt. (EFM32 = Energy Friendly Microcon‐troller 32Bit). Dieser nimmt im Ak vmodus rund 160µA/MHz Strom auf. Hinzu kommt noch eine Vielzahl diverser Peripherie, ebenso ist ein SEG‐GER J‐Link‐Debugger vorhanden. Der Stromver‐brauch im Standby‐Mode beträgt nur 300nA. Strom‐Monitoring: Um die Entwicklung energie‐effizienter Anwendungen leichter zu ermögli‐chen, bietet das Kit das hauseigene Advanced Energy Monitoring. In Verbindung mit dem Energy Aware Profiler, der Bestandteil der mitgelieferten Entwicklungsumgebung Simplicity Studio ist, ist

es möglich, die Stromaufnahme sowie die Span‐nung des Boards in Echtzeit zu messen. Zusätz‐lich bekommt man Informa on darüber, wel‐cher Teil des Codes wie viel Energie verbraucht. Somit kann anschließend der Code in Bezug auf energieeffizientes Arbeiten op miert werden.

Die Daten der Messung können anschließend auch als .xls‐Datei expor ert werden, um sie einer genaueren Analyse zu unterziehen. Im Bild sieht man den Koffer mit den verschie‐denen Energy Harves ng Boards:

Koffer mit verschiedenen Harves ng Boards

Page 3: Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für JTAG Program ... elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden

September 2013 PCNEWS—135 27

CLU

BD

EV.N

ET

The Drop “The Drop” ist ein Evalua on Board für Energy Harves ng aus dem Hause Arrow Electronics. Es beinhaltet ein Solar Board (SBN) mit einer Pho‐tovoltaikzelle, ein Pel er Board (PBN) mit ei‐nem Pel erelement und ein USB Board (UBN). Weiters werden drei RF 2,4GHz Antennen (802.15.4 ZigBee ready), ein mini USB Kabel und ein Quick Start Guide mitgeliefert.

ESK 300 Das ESK 300 ist ein Starter Kit für Energy Harves-ting aus dem Hause EnOcean. Es beinhaltet ei‐nen Taster, welcher über einen eingebauten elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden ist ein Energie‐wandler für lineare Bewegungen (ECO 200), der als Stromversorgung für das Funkmodul (PTM 330) verwendet werden kann. Des Weiteren wird ein Funkmodul (STM 330), welches über eine Photovoltaikzelle betrieben wird, und ein USB S ck (USB 300), der die gesendeten Funk‐telegramme der Funkmodule empfängt und mi els einer So ware, die auf der EnOcean Homepage runtergeladen werden kann, auf dem PC visualisiert.

EVAL 09 "EVAL 09" ist ein Evalua on Board für Energy Harvesting aus dem Hause Cymbet. Es ist ein universelles Energy Harvesting Kit, welches aus 4 verschiedenen Quellen Energie sammeln kann. Diese sind Solar, EM/RF, Temperatur und Vibra‐

onen. Dazu bietet das Board vier Anschlüsse mit entsprechender Anpassschaltung für die unterschiedlichen Energiewandler. Der Thermogenerator, den wir untersucht ha‐ben, heißt TGP 751 und ist von der Firma Micro‐pelt. Das Unternehmen bietet hierzu ein kom‐ple es Modul namens TE CORE 7 an. Der große Vorteil gegenüber einem herkömmlichen Pel‐

er‐Element ist, dass der Thermogenerator einen größeren Wirkungsgrad hat. So beträgt die Ausgangsspannung des TGP 751 110mV pro Kelvin.

Fazit Der Thermogenerator und der STM32L151 Mikrocontroller mit einem Zigbee Modul sind für die Aufgabenstellung geeignet. Das Projekt erhielt von „Jugend Innova v“ einen Kostenzu‐schuss von 350 €

Photovoltaic Consump on Op miza on Es ist ein System zu entwickeln, welches die gelieferte Leistung einer Photovoltaik‐Anlage über RS485 vom Wechselrichter ausliest und Verbraucher wie Waschmaschine, Wäsche‐trockner, Geschirrspüler oder Boiler bei Bedarf automa sch zuschaltet, wenn die Photovoltaik‐Anlage genügend Leistung liefert. So kann ver‐hindert werden, dass die für die Verbraucher benö gte Energie teuer eingekau und später die selbst produzierte Energie billig ins Netz eingespeist wird. Dieses System soll über ein Webinterface administrierbar sein, um Prioritä‐

Im Bild die Projektschüler vor unserer Fotovoltaikanlage mit dem Koffer für die Musterlaborübungen. Von links nach rechts: Alexander Müllner Benjamin Letz und Dominik Tatzreiter Daniel Gerharter Das Photovoltaik Projekt errang am 12.06.2013 in der Akademie Wissenscha en bei Talents Cyberschool 2013 den 3. Platz. Ebenso gelang es Alexander Müllner und Benjamin Letz bei der „computer talents aus‐tria13“ Ausscheidung am 26. Juni 2013 in den Räumen des OCG im Heinz Zemanek Saal den 5. Platz zu erreichen.

Page 4: Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für JTAG Program ... elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden

PCNEWS—135 September 2013 28

CLU

BD

EV.N

ET

ten und Zeitpunkte der spätesten Fer gstellung der Verbraucher einstellen zu können. Außer‐dem sollen der Wasser‐ und Stromverbrauch der Haushaltsgeräte gemessen, und an den Umwelt‐datenbankserver der HTL‐Hollabrunn gesendet werden. Um die Möglichkeiten verschiedener Webserver vergleichen zu können, ist die Admi‐nistrierung mit einem Raspberry Pi und das Vor‐schaltgerät mit einem neu zu entwickelnden CM3‐Miniwebserver zu realisieren. Die Kommu‐nika on zwischen den Geräten soll über Power‐line Ethernet erfolgen. Es dürfen keinerlei Um‐bauten in der Verkabelung der Hausinstalla on und an den Haushaltsgeräten vorgenommen werden.

Lösung Der CM3‐Mikrocontroller kommuniziert mit dem ENC28J60 über eine 20 MHz SPI Schni stelle. Der ENC28J60 ist ein eigenständiger Ethernet‐Controller von der Firma Microchip. Er erfüllt alle Spezifika onen der IEEE 802.3 Norm und beinhaltet zahlreiche Pake ilterungen um den eingehenden Datenverkehr zu minimieren. Wei‐ters besitzt er ein internes DMA‐Modul um

schnelle Speicherzugriffe sicherzustellen und er führt eine automa sche Prüfsummenberech‐nung durch. Für die JSON‐RPC Kommunika on wurde als So ware der uIP‐Stack angepasst. Der uIP (micro IP) Embedded TCP/IP ‐ Stack wurde von Adams Dunkels, vom schwedischen Ins tut für Computerwissenscha en entwickelt und 2006 als Open Source Projekt veröffent‐licht. Der Stack wurde speziell für Embedded Systems mit wenigen Ressourcen entwickelt, um auch 8‐Bit‐/16‐Bit‐Mikrocontroller in ein Netzwerk zu integrieren. Der Stack kann mit einem Betriebssystem wie FreeRTOS betrieben werden, aber er funk oniert, so wie bei uns, auch ohne Betriebssystem. Der Stack ist kom‐ple in C geschrieben und kann somit pla ormunabhängig verwendet werden. Der uIP‐Stack ist ein minimalis scher TCP/IP Stack, der nur die notwendigsten Funk onen anbietet, um in einem Netzwerk mit anderen Geräten zu kommunizieren.

Im Bild der funk onierende Prototypenau au des Vor‐schaltgerätes mit CM3‐Webserver und allen Inter‐faces

Im Bild sieht man links die CM3 DIL‐Webserverpla ne, mit CM3‐Mikrocontroller und dem Ethernetbaustein (Bestückungsseite) und rechts den Al um Layout‐Entwurf

Im Bild Benjamin Letz und Alexander Müllner mit ih‐rem Vorschaltgerät und dem SMA Wechselrichter

Page 5: Mikrocontroller-News aus Hollabrunnd.pcnews.at/_pdf/n1350025.pdf · GDB Hardware Debugging für JTAG Program ... elektro‐dynamischen Generator versorgt wird (PTM 210). Weiters vorhanden

September 2013 PCNEWS—135 29

CLU

BD

EV.N

ET

Wich gste Eigenscha en des Stacks

• Open Source

• Kann kostenlos für kommerzielle und nicht‐kommerzielle Arbeiten verwendet werden

• Geringer Speicherbedarf

• Gute Dokumenta on

• Unterstützt ARP, IP, SLIP UDP, ICMP (ping) und TCP Protokolle

• komple in C verfasst

• Viele fer ge Applika onen bereits vorhan‐den

• Leicht zu verstehen, da der Stack nur die wich gsten Funk onen enthält

Funk onsweise des uIP‐Stacks Damit der Stack auf einem Embedded System genutzt werden kann, muss das System einige Hardware Bausteine zur Verfügung stellen. Es muss einen Treiber für einen Netzwerkcontrol‐ler, der entweder direkt im Mikrocontroller eingebaut sein kann oder einen externen Con‐troller wie den ENC28J60, besitzen und weiters muss auch eine Timerfunk on im Mikrocon‐troller implemen ert werden. Der eigentliche Stack, im Blockschaltbild mit uIP gekennzeich‐net, wird vom Benutzer nicht verändert, son‐dern nur die darauf basierende Applika on, die man entweder selbst schreiben kann oder man verwendet eine fer ge Anwendung die vom Stack bereits zur Verfügung steht (z.B.: Webclient, Webserver, SMTP, usw.).

Raspberry Pi Eben Upton – Ingenieur bei Broadcom Europe, Direktor im Bereich Informa k am St. John’s College in Cambridge entwickelte den Raspber‐ry Pi um seinen Schülern eine Pla orm zu bieten, auf der sie programmieren konnten ohne einen Schaden anrichten zu können. Beim Raspberry Pi handelt es sich um einen scheckkartengroßen Linux‐PC. Das Betriebssys‐tem und alle weiteren Daten sind auf einer SD‐Karte gespeichert und können somit einfach auf einem Laptop gesichert werden. Bei Be‐schädigung des Betriebssystems kann dann einfach ein neues Image auf die SD‐Karte ge‐spielt werden. Das von uns verwendete Modell B des Raspberry Pi besitzt eine Ethernetbuchse und seit Oktober 2012 wird es mit 512MB RAM ausgeliefert. Der Raspberry Pi läu mit einem ARM11 Prozessor mit 700MHz und als GPU wird ein Broadcom VideoCore IV verwendet. Die 16 GPIO Pins sind frei programmierbar. Es stehen einige an die ARM‐Architektur ange‐passte Betriebssysteme zur Verfügung. Für unser System wird Raspbian als Betriebssys‐tem verwendet. Raspbian ist eine Abwandlung der Linux Distribu on Debian, die für den Raspberry Pi ARM‐Architektur kompa bel gemacht wurde.

Fazit Sowohl der Raspberry‐Pi (700mA) als auch der an der HTL‐Hollabrunn entwickelte Webserver mit UART Anschluss (70mA) sind für die Aufga‐benstellung geeignet. Der Unterschied liegt im Stromverbrauch und in der Programmierung. Der Raspberry Pi kann mit einem USB Key‐board und einem HDMI Monitor ausgesta et unter Linux mit GCC programmiert werden, oder direkt ohne Zusätze mit einem Laptop über SSH mit einem Terminalprogramm. Der STM32F103 Mikrocontroller wurde mit der Keil uVision Demoversion entwickelt. Beide Syste‐me laufen stabil, sind gleich teuer (ca. 30€) und senden seit Wochen Daten zur Umweltda‐tenbank der HTL.

Testseite des Mini‐Webservers