Sie sind auf Seite 1von 84

www.elektor-magazine.

de
magazine
Mai 2013 | Nr. 509

EMBEDDED
FIRMWARE
LIBRARY
Schnell zur eigenen Mikrocontroller-Anwendung
I/OLEDs
ADCPWM MUXLCDTCP/IP
SD

Einfhrung in Python l Prototyping-Tool l Dreieck-Generator


FPGA-Simulation l Mens mit Tastern und Display
BaroStick Neues aus dem Labor
Retronik Rund um die Elektronikwelt
SPEKTRUMANALYSATOREN

NEU!
!
Firmw
are-Upg
unter w
ww.h
rade
kosten ame
frei ver g.com

+60%
fgbar

HAMEG Instruments hat den


Frequenzbereich bei allen
Spektrumanalysatoren der 1000er

MEHR FREQUENZBEREICH
Serie von 1 GHz auf 1,6 GHz erhht.

Somit erhalten HAMEG Kunden


beim Kauf eines HMS1000, HMS1010 | HMS1000 | HMS1000E
HMS1010 und auch beim
HMS1000E ab sofort 60% mehr
Frequenzbereich ohne Aufpreis. von 1GHz auf 1,6 GHz

www.hameg.com | Great Value in Test & Measurement

Naamloos-1 1 03-04-13 15:30


Der neue Standard
ENIG statt Chemisch Zinn fr Ihre Leiterplatte

Ohne Aufpreis!
Hochwertigste Oberflche: ENIG

Multilayer
Preise bis zu

50% gesenkt
bei 2-5 Multilayer-
Leiterplatten

www.pcb-pool.com
Naamloos-6 1 27-03-13 15:43
Inhalt

magazine

Community Labs

6 Impressum 42 Sorry about my English dass sie leicht von einem Board auf
Interessante Projekte auf der ein anderes portiert werden kn-
8 Elektor World .Labs-Website nen. Dabei ist man nicht auf einen
Neues aus der Elektor-Community Controllerhersteller beschrnkt;
44 Fallstricke in der
10 Aktuell und sogar ein Betrieb auf Em-
Platinenproduktion
Neue Produkte bedded Linux ist prinzipiell mglich.
46 Keramikkondensatoren Dank diverser Funktionen fr ADC,
voll daneben! PWM, Display, TCP/IP, SD-Karten
und vielem mehr eignet sich die
Bibliothek auch fr (C-)Einsteiger.

20 Barostick
Module in USB-Stick-Bauform
gibt es fr viele Anwendungen,
Projects von WLAN und Bluetooth bis zum
Daten-Logging. Das gleiche handli-
Industry che Format hat der Luftdruck- und
12 Embedded Firmware Library Temperaturmesser Barostick, der
38 Tools fr Die modular aufgebaute EFL ist die Umweltgren Luftdruck und
Vektor-Motorsteuerungen nicht nur eine weitere Bibliothek Temperatur mit einem Sensor
Hier wird gezeigt, wie Software fr das Rapid Application Develop- von Bosch-Sensortec misst. Ein
dabei hilft, BLDC-Motoren effizient, ment. Eigene Anwendungen und Programm, das unter Windows auf
przise und leise bei einstellbaren Module lassen sich dabei hardware- dem PC luft, stellt die Messwerte
Geschwindigkeiten zu betreiben. unabhngig programmieren, so grafisch auf dem Bildschirm dar.

4 | Mai 2013 | www.elektor-magazine.de


44. Jahrgang Nr. 509 Mai 2013

26 LCR-Meter 2013 (3) Bedienung sind Taster, die sinnvoll


tige Zwischenstation. In diesem
In die dritte und letzte Runde geht neben dem Display angeordnet
Teil der Serie zeigen wir, wie die
unser LCR-Meter mit folgenden The- sind. Nun bentigt man nur noch
Anwendung aus der letzten Folge
men: Platinenlayout und Stckliste, passenden Code.
simuliert werden kann.
Schaltungsaufbau und Gehuse,
72 Interview
Inbetriebnahme und Einstellungen. 65 OTA-basierter Raspberry Pi: Ein Jahr und eine
Dreieck-Generator
34 PICo PROto Million Computer spter
Viele Anwendungen von OTAs
Wie testet man schnell einen neuen
wurden schon beschrieben, eine
Sensor? Und wie probiert man eine
Basisschaltung zur Erzeugung eines
neue Idee aus, ohne jeweils ein
nicht-sinusoidalen Signals drfte
komplexes und teures Entwicklungs-
aber schwer zu finden sein. Dieser
Board konfigurieren zu mssen? Hier-
Beitrag beschreibt einen kombinier-
fr wurde PICo PROto entwickelt, ein
ten Dreieck/Rechteckgenerator, der
minimalistisches Prototyping-Tool
auf zwei OTAs (Operational Trans- Magazine
48 Von BASIC nach Python (1) conductance Amplifier) beruht.
Die Sprache Python eignet sich gut
68 Flexible Bedienung 76 Hexadoku
zur hardwarenahen Programmie-
Auch auf einem kleinen Display Sudoku fr Elektroniker
rung kleiner Rechnersysteme wie
lassen sich viele Parameter und
z.B. Raspberry Pi. 78 Retronik
Einstelloptionen eines Projekts
Der Fluch des Sammelns
56 Bauen Sie Ihren Chip! (4) anzeigen, wenn man geschickt
Auf dem Weg zum einsatzfhigen eine Menfhrung programmiert. 82 Vorschau
FPGA ist die Simulation eine wich- Voraussetzung fr eine bequeme Nchsten Monat in Elektor

www.elektor-magazine.de | Mai 2013 | 5


Community

Impressum
Lang oder kurz?
44. Jahrgang, Nr. 509 Mai 2013
Wenn Sie dieses Heft durchblttern,
Erscheinungsweise: 10 x jhrlich
(inkl. Doppelhefte Januar/Februar und Juli/August) knnte Ihnen der stark
unterschiedliche Umfang der Artikel
Verlag
auffallen. Einige sind recht lang
Elektor-Verlag GmbH
Ssterfeldstrae 25 geraten - acht bis zehn Seiten sind
52072 Aachen nicht ungewhnlich. Gleichzeitig hat
Tel. 02 41/88 909-0 auch die Zahl der Serien in unserem
Fax 02 41/88 909-77 Heft etwas zugenommen. Sicherlich
liegt das in der Natur der Sache.
Technische Fragen bitten wir per E-Mail an
redaktion@elektor.de zu richten. Wenn wir komplexe Themen wie
die Entwicklung von FPGA- oder
Anzeigen (verantwortlich): Embedded-Linux-Anwendungen auf
Irmgard Ditgens
wenigen Seiten abhandeln wrden,
ID Medienservice
Tel. 05 11/61 65 95-0 | Fax 05 11/61 65 95-55 htten nur die Spezialisten unter den
E-Mail: service@id-medienservice.de Elektor-Lesern etwas davon. Und ein
Es gilt die Anzeigenpreisliste Nr. 43 ab 01.01.2013 Projekt wie unser LCR-Meter enthlt so viele clever gemachte Details, so dass wir
ihm ebenfalls unrecht tun wrden, wenn wir so etwas auf vier bis sechs Seiten
Vertriebsgesellschaft:
IPS Pressevertrieb GmbH komprimierten. Das Titelprojekt in dieser Ausgabe ist ein weiterer dicker Kaliber.
Postfach 12 11, 53334 Meckenheim Mit der Bibliothek lsst sich Firmware prinzipiell unabhngig vom Controller-
Tel. 0 22 25/88 01-0 | Fax 0 22 25/88 01-199 Typ und dem verwendeten Board programmieren. Auf acht Seiten knnen
E-Mail: elektor@ips-pressevertrieb.de
wir in dieser Ausgabe nur eine Einfhrung geben, die vermutlich weder die
Internet: www.ips-pressevertrieb.de
Einsteiger noch die Fortgeschrittenen richtig satt macht. Wir haben uns deshalb
Vertrieb sterreich
entschlossen, viele wichtige Hintergrundinformationen auf ein Zusatz-Dokument
Pressegrovertrieb Salzburg/Anif
Niederalm 300 auszulagern, das man von unserer Website herunterladen kann. In den nchsten
Tel. +43/62 46/37 21-0 Ausgaben werden Sie dann noch einige Anwendungen der Embedded Firmware
Library finden, so dass sich Stck fr Stck ein Bild ergeben drfte, wie man mit
Der Herausgeber ist nicht verpflichtet, unverlangt einge-
sandte Manuskripte oder Gerte zurckzusenden. Auch wird dem System gewinnbringend arbeiten kann.
fr diese Gegenstnde keine Haftung bernommen. Nimmt Natrlich sprechen wir auch auf unseren Redaktionskonferenzen darber, wie wir
der Herausgeber einen Beitrag zur Verffentlichung an, so
erwirbt er gleichzeitig das Nachdruckrecht fr alle ausln-
solch komplexe Artikel am besten unseren Lesern nherbringen. Schtzen diese
dischen Ausgaben inklusive Lizenzen. Die in dieser Zeitschrift lieber einen berlangen Artikel, eine Serie oder die angesprochene Kombination
verffentlichten Beitrge, insbesondere alle Aufstze und
aus einer Verffentlichung im Heft und im Web? Schreiben Sie uns unter
Artikel sowie alle Entwrfe, Plne, Zeichnungen einschlielich
Platinen sind urheberrechtlich geschtzt. Ihre auch teilwei- redaktion@elektor.de!
se Vervielfltigung und Verbreitung ist grundstzlich nur mit
vorheriger schriftlicher Zustimmung des Herausgebers gestat- Jens Nickel
tet. Die verffentlichten Schaltungen knnen unter Patent-
oder Gebrauchsmusterschutz stehen. Herstellen, Feilhalten,
Inverkehrbringen und gewerblicher Gebrauch der Beitrge sind
nur mit Zustimmung des Verlages und ggf. des Schutzrechts-
inhabers zulssig. Nur der private Gebrauch ist frei. Bei den
benutzten Warenbezeichnungen kann es sich um geschtzte
Warenzeichen handeln, die nur mit Zustimmung ihrer Inhaber
warenzeichengem benutzt werden drfen. Die geltenden ge-
setzlichen Bestimmungen hinsichtlich Bau, Erwerb und Betrieb
Unser Team
von Sende- und Empfangseinrichtungen und der elektrischen
Sicherheit sind unbedingt zu beachten. Eine Haftung des
Chefredakteur: Jens Nickel (v.i.S.d.P.) (redaktion@elektor.de)
Herausgebers fr die Richtigkeit und Brauchbarkeit der ver-
Stndige Mitarbeiter: Dr. Thomas Scherer, Rolf Gerstendorf, Klaus Boda
ffentlichten Schaltungen und sonstigen Anordnungen sowie
fr die Richtigkeit des technischen Inhalts der verffentlichten Internationale Redaktion: Harry Baggen, Thijs Beckers, Jan Buiting, Eduardo Corral,
Aufstze und sonstigen Beitrge ist ausgeschlossen.
Wisse Hettinga, Denis Meyer, Clemens Valens

2013 elektor international media b.v. Elektor-Labor: Thijs Beckers, Ton Giesberts, Luc Lemmens,
Druck: Senefelder Misset, Doetinchem (NL) Raymond Vermeulen, Jan Visser
ISSN 0932-5468
Grafik & Layout: Giel Dols, Mart Schroijen

6 | Mai 2013 | www.elektor-magazine.de


Germany
Ferdinand te Walvaart Unser Netzwerk
+49 241 88 909-17
f.tewalvaart@elektor.de

United Kingdom
Wisse Hettinga
+31 46 4389428
w.hettinga@elektor.com

Netherlands
Harry Baggen
+31 46 4389429
h.baggen@elektor.nl

France
Denis Meyer
+31 46 4389435
d.meyer@elektor.fr

USA
Hugo Van haecke
+1 860-875-2199
h.vanhaecke@elektor.com

Spain Die Elektor-Community


Eduardo Corral
+34 91 101 93 95
e.corral@elektor.es

Italy
Maurizio del Corso
+39 2.66504755
m.delcorso@inware.it

Sweden
Wisse Hettinga
+31 46 4389428
w.hettinga@elektor.com

Brazil
Joo Martins
+55 11 4195 0363
joao.martins@editorialbolina.com

Portugal Unsere Partner und Sponsoren


Joo Martins
+351 21413-1600 AudioXpress LeitOn
joao.martins@editorialbolina.com
www.audioamateur.com . . . . . . . . . . . . . 77 www.leiton.de . . . . . . . . . . . . . . . . . . . . 41

India Batronix Linx Technologies


Sunil D. Malekar
+91 9833168815 www.batronix.com/go/23 . . . . . . . . . . . . 67 www.linxtechnologies.com . . . . . . . . . . . . 25
ts@elektor.in
Beta Layout National Instruments
Russia www.pcb-pool.com . . . . . . . . . . . . . . . . . .3 www.ni.com/multisim/d . . . . . . . . . . . . . 23
Nataliya Melnikova
+7 (965) 395 33 36 Distrelec Pico
Elektor.Russia@gmail.com www.distrelec.de . . . . . . . . . . . . . . . . . . 11 www.picotech.com/PS208 . . . . . . . . . . . . 25

Turkey Eurocircuits Reichelt


Zeynep Kksal www.elektorpcbservice.com . . . . . . . . . . . 63 www.reichelt.de . . . . . . . . . . . . . . . . . . . 84
+90 532 277 48 26
zkoksal@beti.com.tr
HAMEG Schaeffer AG
www.hameg.com . . . . . . . . . . . . . . . . . . .2 www.schaeffer-ag.de. . . . . . . . . . . . . . . . 47
South Africa
Johan Dijk
Intelligent Soc s.l.
+31 6 1589 4245
j.dijk@elektor.com www.soclutions.com . . . . . . . . . . . . . . . . 41

China
Cees Baay Sie mchten Partner werden?
+86 21 6445 2811
CeesBaay@gmail.com Kontaktieren Sie uns bitte unter service@id-medienservice.de (Tel. 0511/616595-0).

www.elektor-magazine.de | Mai 2013 | 7


Community

Elektor World
Zusammengestellt von Jeden Tag, jede Stunde, jede Minute, ja, in
Wisse Hettinga
jedem Augenblick schaffen, optimieren,
rekonstruieren und entwickeln
Ingenieure und Enthusiasten neue
Elektronik. Hauptschlich zum Spa,
aber manchmal wird aus Spa
(beruflicher) Ernst.

Schwing die Peitsche!


Wenn Sie unseren Abenteuern folgen, wissen Sie, dass Elektor-Mitarbeiter
nicht an nur einem Ort arbeiten. Die meisten von uns arbeiten in Holland, aber
wir haben auch Kollegen in Spanien, den Vereinigten Staaten, Italien, Indien,
Frankreich - es ist eine lange Liste. Clemens Valens arbeitet von Frankreich
aus und verbindet seine Pflichten als Manager der Elektor-Labs-Website mit
... Schreiben! In seinen ruhigeren Stunden hat er an einem Buch ber Arduino
gearbeitet. In dem Buch erklrt er, wie man die Arduino-Plattform verwenden
kann, um seiner Nachbarschaft auf die Nerven zu fallen, whrend man lernt,
mit dieser interessanten Hardware-Plattform umzugehen. Zugegeben, als wir
das Buch sahen, berraschte uns das Cover mit einem Mikrocontroller (so
weit, so gut) und einer (mnnlichen oder weiblichen) Figur mit einer Peitsche.
Vermutlich, um den Controller richtig anzutreiben. Also, das sieht wirklich wie
ein interessantes Buch aus und wir beschlossen, es in Deutsch und Englisch
zu bersetzen. Aber die Peitsche!? Was sollen wir uns hierbei blo denken?

Die Rckkehr des Tapirs


Letztes Jahr haben wir ein kleines
E-Smog-Meter namens Tapir vorge-
stellt. Die Konstruktion war einfach und bemerkens-
wert mit Leiterplatten als Gehuse. Dieses Jahr bekamen
wir die Besttigung von Eurocircuits, dass sie weitere 1.000 Stck
dieser netten Platinen produzieren werden. Das E-Smog-Mess-
gert kann Ihnen helfen, die Welt des Elektromagnetismus
zu entdecken. Es fngt die Streusignale verschiedenster
Quellen auf und verwandelt sie in Audiosignale. Mit einem
simplen Kopfhrer hrt man die versteckten Sounds
von Smartphones oder Tablets. Die Platinen und der
Bausatz des Tapirs werden Ende Mai 2013 wieder im
Elektor-Webshop verfgbar sein. Verfolgen Sie dies
unter www.elektor.com/Tapir.

8 | Mai 2013 | www.elektor-magazine.de


Rund um die Welt

In der Hhle des Lwen


Es gibt sie auf der ganzen Welt - Dachbden, Keller, Garagen, kleine
Zimmer, angefllt mit elektronischen Gerten. Sie sind die Schatz-
kammern der Elektronik! Viele unserer Leser haben
an solchen Orten viele Stunden gearbei-
tet, nachgedacht und neue Anwendungen
entwickelt. Vergessen Sie die High-Tech-
Labors mit Millionen-Euro-Sponsorvertrgen
denn nicht dort wohnt der wahre Geist der
Elektronikentwicklung. Unser Schwester-Maga-
zin Circuit Cellar (aha!) zeigt Fotos solcher Hhlen Elektronik-
Besessener. Hier sehen Sie den Arbeitsplatz von Vincent Himpe,
einem Entwickler-Pionier und Autor der Elektor-Buchreihe LabWorX.

Elektor-Labor in Mumbai erffnet


Jahr fr Jahr bentigen wir rund 200 Projekte
fr unsere Publikationen. Traditionell haben wir
ein Team von Ingenieuren, das mit den Elektor-
Redakteuren ortsnah Hand in Hand arbeitet. Aber
die wachsende Zahl von Projekten verlangt mehr
Kapazitt. Mit einer neuen Elektor-Labs-Abteilung in
der Lamington Road in Mumbai (ehemals Bombay), mitten im
Herzen des grten indischen Elektronikmarkts, haben wir hier
investiert. Die Lamington Road ist mit mehr Elektronik-Lden
vollgestopft, als Sie sich ertrumen knnen. Wenn unsere
Mumbai-Entwickler irgendein Bauteil bentigen, gehen sie
einfach in den Shop nebenan oder auf der anderen Straen-
seite - was fr ein groartiger Ort, um zu arbeiten! Das Elektor-Labs-Team ist
hier auf dem Foto zu sehen: Von links nach rechts Krishna Chandran, Sunil Malekar, Clemens
Valens, Nandini Singh und Shreenivas G M Shree.

Spark your Design!


Elektor und RS Components arbeiten ab sofort in punkto Design-
Spark zusammen. Zuerst geht es hier um das DesignSpark-Maga-
zin. Dies ist der neue Titel der bekannten Zeitschrift eTech und
wird der gesamten Kundschaft von RS Components zugesandt.
Die neue Zeitschrift berichtet von den neuesten Entwicklungen
auf neuen Hardware-Plattformen und wird auch Elektor-Projekte
enthalten. Weiterhin geht es um die Einfhrung einer speziellen
Design-and-Build-Sektion auf der Webseite von DesignSpark.
com. Die Projektplatinen werden mit DesignSpark PCB, einer
kostenlosen CAD-Software (www.designspark.com) geroutet.
In Elektor und auf unserer Website www.elektor-labs.com wird
es hierzu spezielle Projekt-Beitrge geben.

(130051)

www.elektor-magazine.de | Mai 2013 | 9


Industry

Neue MSOs von HAMEG Preiswerter LED-Strahler


Die neue Serie HMO3000 von HAMEG Instruments besteht Reichelt hat einen LED-Flutlichtstrahler
aus sechs neuen Modellvarianten in den Bandbreiten von mit einer Anschlussleistung von 10 W im
300 MHz bis 500 MHz und mit 2 oder 4 Kanlen. Durch Programm, der nur 18,95 kostet. Das ist
die Funktionalitt eines Mixed-Signal-Oszilloskops knnen fr einen kompletten Scheinwerfer fr den
zustzlich zu den Analogkanlen bis zu 16 Digitalkanle Aueneinsatz sehr preisgnstig. Zusammen
analysiert werden. mit einem Bewegungsmelder kann man
Signifikantester Unterschied damit zu geringen Kosten zum Beispiel den
zur Vorgngerreihe ist neben Eingangsbereich eines Hauses beleuchten.
der erhhten Bandbreite Der Strahler vom Typ HEIT 37009 bringt es
die mit 8 MB verdoppelte immerhin auf eine Helligkeit von 870 lm, was
Speichertiefe jetzt sowohl in etwa der Helligkeit einer 75-W-Glhbirne
manuell als auch automatisch entspricht. Gegenber dieser ist die LED-
einstellbar. Neu ist auch, dass Technik aber bezglich Lebensdauer (ca.
alle bisherigen Modelle der 30.000 h) und der Anzahl an Schaltzyklen
Serie HMO3000 mit 300 MHz weit berlegen, was fr Installationen,
bzw. 400 MHz bei Bedarf ber bei denen man zum Auswechseln des
ein Bandbreiten-Upgrade auf Leuchtmittels eine Leiter oder mehr bentigt,
500 MHz erweitert werden knnen: besonders relevant ist. Den aus Aluminium
300-MHz-Modelle mit Option HOO352 (2-Kanal) oder gefertigten LED-Strahler gibt es in warmwei
HOO354 (4-Kanal), mit einer Farbtemperatur von 3.000 K und
400-MHz-Modelle mit Option HOO452 (2-Kanal) oder einer Anschlussspannung von 230 V. Er ist
HOO454 (4-Kanal). fr den gleichen Preis auch in kaltwei mit
Als Einfhrungs-Angebot erhalten Kufer der neuen Mixed- 6.700 K zu haben. Auerdem gibt es auch
Signal-Oszilloskope den HO3508-Logik-Tastkopf ohne noch Ausfhrungen in 20, 30, 50, 70 und
Aufpreis dazu. Diese Aktion luft bis zum 31. Oktober 2013. 100 W.
www.hameg.de www.reichelt.de

Micro-WLAN-Gerteserver
Lantronix stellt sein neues WLAN-Modul xPico vor, bei dem es sich um einen kompakten, Embedded-WLAN-Gerteserver handelt, der schnelle
Verbindungen zwischen seriellen Anschlssen (bis zu 921 kbit/s) und WLAN ermglicht. Dabei muss keine Software entwickelt und keinerlei Code
geschrieben werden. xPico misst nur 24 mm x 16,5 mm und ist das neueste Exemplar in der xPico-Produktfamilie. Muster sind schon zu haben
und im Laufe des ersten Halbjahrs 2013 sind auch grere Stckzahlen zu Preisen ab rund 25 US-Dollar erhltlich.
xPico bietet Wi-Fi-Funktionen auf kleinstem Raum, einen vollstndigen IP-Stack plus erweiterte Sicherheit und ist daher kosteneffektiv und robust.
www.lantronix.com

Neuer Steckverbinderkatalog
Auf 464 Seiten zeigt der neue Katalog von W+P Steckverbinder ab einem
Rasterma von 0,5 mm, darunter erstmalig wasserdichte Ausfhrungen.
Das Artikelprogramm besteht aus RJ-45, D-SUB- und USB-Steckverbindern,
Kabelkonfektionen und Zubehr. Weitere Produkte, wie z.B. IEEE 1394 (FireWire),
DVI-Steckverbinder und Rundsteckverbinder sind auf Anfrage auch als wasserdichte Ausfhrung erhltlich. W+P bietet auch kundenspezifische
Produkte an.
Erweitert wurde das Produktspektrum um zustzliche Miniaturisierungslsungen mit geringen Bauhhen und kleinen Rastermaen im Stift- und
Buchsenleistenbereich. Der Anteil an rationell bestckbaren und automatengerecht verpackten Artikeln wchst zunehmend. Hierzu werden Tape-
and-Reel-Verpackungen mit Bestckungshilfen angeboten, die leicht in bestehende Ablufe integriert werden knnen.
Der Katalog ist in deutscher und englischer Sprache gehalten und kann kostenlos angefordert werden. Alle Produkte sind jeweils mit Foto,
Mazeichnung, Leiterplattenlayout, technischen Daten und Polzahlen abgebildet.
http://wppro.com

10 | Mai 2013 | www.elektor-magazine.de


Anzeige

www.koehler-partner.de
Experimentier-Board fr APPKRZUNG
Raspberry Pi ZU BER
Das Gertboard ist ein besonders interessantes 500.000
PRODUKTEN
Add-on fr Raspberry Pi, das via Farnell/
element14 erhltlich ist (Bild: Vorfhrung
des Gertboards am Messestand auf der
Embedded World). Das von Gert van Loo
entwickelte Experimentier-Board kann direkt
an Raspberry Pi gesteckt werden und ermglicht diesem den Zugriff auf die physikalische
Welt. Analoge Spannungen lassen sich erfassen und generieren. Hinzu kommt eine
Steuerung fr Motoren, LEDs und Relais sowie die Registrierung von Tastendrcken. Mit HEUTE AUSSUCHEN,
Jumper-Kabeln kommt man an alle Stellen der Platine und erhlt so maximale Flexibilitt. MORGEN AUSPACKEN!
Das Board kann direkt auf den GPIO-Sockel von Raspberry Pi gesteckt werden und
ermglicht so die Steuerung von Motoren bis zu 18 V/2 A. Integriert sind ein zweikanaliger
D/A-Konverter und ein zweikanaliger A/D-Konverter mit jeweils 8-bit-Auflsung sowie ein
ATmega328 mit 10-bit-ADC. Programme knnen auf dem Raspberry Pi geschrieben und
entwickelt sowie dann auf das Gertboard bertragen werden. Das Add-on-Board verfgt
darber hinaus ber sechs Open-Collector-Ausgnge, 12 LEDs und 3 Taster.
www.farnell.com

PoE fr Embedded-Anwendungen
Mit dem CrumbX1-NET Ethernet-Modul bietet die chip45 GmbH eine Plattform fr
Embedded-Anwendungen und ergnzt diese nun durch eine kompakte Power-
Over-Ethernet-Stromversorgung Power-PoE-1. Durch PoE reduziert sich der
Verkabelungsaufwand fr ein Ethernet-Gert auf ein Netzwerkkabel. Dabei wird die
Versorgungsspannung von einem PoE-Switch oder -Injektor ber Ethernet-Datenleitungen
oder ungenutzte Aderpaare des
Ethernet-Kabels bertragen.
Der angeschlossene Verbraucher
bentigt einen PD-Controller, der
die Gegenstelle beim Power-Up
ber seine Leistungsklasse
informiert. Auerdem ist in Ob Onlineshop oder Katalog:
der Regel ein Schaltregler
Wir liefern deutschlandweit innerhalb
erforderlich, der die hohe PoE-
von 24 h ohne Mindermengen-
Spannung von 36...57 V auf eine zuschlag. Lieferung ab 1 Stck.
gngige Versorgungsspannung Die Distrelec-Gruppe: Ihr Partner
von 5 V oder 3,3 V bringt. fr elektronische Bauelemente,
Diese komplette Funktionalitt ist im kompakten Steckmodul Power-PoE-1 mit Automation, industrielle IT und Zubehr.
Abmessungen von nur 28 x 15 mm integriert. Es kann z.B. direkt auf das Embedded
Ethernet-Modul CrumbX1-NET von chip45 aufgesteckt werden und stellt als Kombination WWW.DISTRELEC.DE
wohl eine der kleinsten PoE-versorgten Ethernet-Lsungen dar. Selbstverstndlich kann
das PoE-Modul auch alleine verwendet werden.
Das PoE-Modul hat die PoE-Klasse 1 und liefert eine Ausgangsspannung von 5 V bei einem Bestellhotline 0180 5223435*
*14 Ct./Min. aus dem Festnetz der Dt. Telekom AG,
maximalen Dauerstrom von 500 mA. Optional kann die Ausgangsspannung auch auf 3,3 V Mobilfunk kann abweichen
eingestellt werden. Anschluss-Pins im Rasterma 1/10 vereinfachen die Verwendung des
Moduls auf Lochrasterplatinen oder ltfreien Steckboards.
www.chip45.com
A Datwyler Company

www.elektor-magazine.de | Mai 2013 | 11


Projects

Embedded
Firmware Library

Schnell zum eigenen Controller-Projekt!


Von Jens Nickel Die modular aufgebaute EFL ist nicht nur eine weitere Bibliothek fr das Rapid
Application Development. Eigene Anwendungen und Module lassen sich dabei
hardwareunabhngig programmieren, so dass sie leicht von einem Board auf ein
anderes portiert werden knnen. Dabei ist man nicht auf einen Controllerhersteller
beschrnkt; und sogar ein Betrieb auf Embedded Linux ist prinzipiell mglich.
Dank diverser Funktionen fr ADC, PWM, Display, TCP/IP, SD-Karten und vielem
mehr eignet sich die Bibliothek auch fr (C-)Einsteiger.

Eigenschaften der Embedded Firmware Library Im Herbst hatten wir eine C-Bibliothek fr Elektor-
Bus-Mikrocontroller-Knoten vorgestellt [1]. Eines
Prinzipiell an alle Controller anpassbar, fr die ein ANSI-C-Compiler
der Kennzeichen war die Trennung in einen hard-
besteht
wareabhngigen Teil sowie ein Codemodul, das
Empfehlung ab 32 KB Flash und 2 KB RAM
fr die Protokolle zustndig ist.
Gut dokumentierte API
So ist es mglich, die Bibliothek schnell an andere
Bisher untersttzte Controller: ATmega328/324/644 und
Controllertypen und Boards anzupassen man
Xmega256A3. Weitere in Vorbereitung
muss nur den Hardware-Layer austauschen, die
Bisher untersttzte Boards: ElektorBus-Experimentalknoten, Xmega-
eigentliche ElektorBus-Bibliothek bleibt immer
Webserver-Board [9], Linux-Extension-Board [8], Arduino Uno Rev.3.
gleich.
Weitere Boards in Vorbereitung!
In einer typischen Bus-Anwendung mssen aber
Einfach an andere Boards anpassbar
nicht nur Nachrichten codiert und ber RS485
Bisher verfgbare hhere Libraries: LEDButton, ADCMux,
versandt und empfangen werden.
StepperMotor, ElektorBus, Display, WizNet-TCP/IP-Modul, SD-Karte
Es werden auch LEDs und Relais bedient, analoge
(Rohdaten)
(Sensor-)Werte eingelesen und Motoren ange-
Open-Source-Lizenz LGPL
steuert. Darber hinaus wre es schn, wenn
der Controller auf einfache Weise mit anderen

12 | Mai 2013 | www.elektor-magazine.de


Embedded Firmware Library

Chips kommunizieren knnte, etwa zur Anbin-


dung eines TCP/IP-Moduls oder einer SD-Karte.

Zusammen programmiert
Beim Programmieren kamen weitere Ideen, und
so wurde das Ganze Schritt fr Schritt flexibler
und umfassender gemacht weit ber das Elek-
torBus-Projekt hinaus. Ich hatte dabei Glck, dass
ich mit unserem Leser Michael Busser (einem
Mitglied der ElektorBus-Google-Group) einen Mit-
Entwickler fand, der clevere Codemodule, Funk-
tionen und Ideen beisteuerte.
Um in freien Stunden zusammen am Code arbei-
ten zu knnen, legten wir auf der berhmten
Projekt-Plattform SourceForge [2] einen Ein-
trag namens Embedded Firmware Library (EFL)
an. SourceForge ist fr Open-Source-Projekte
reserviert, was ja gut zu Elektor passt; als Lizenz
haben wir die LGPL gewhlt [3]. Das wichtigste
Feature der Projekt-Plattform ist ein integrier-
tes, SVN-kompatibles Versionsverwaltungssys-
tem [4], das man unter Windows zum Beispiel
mit TortoiseSVN [5] bedienen kann. Ein Maus-
klick gengt, und man kann seine nderungen Beispiel hierfr ist der ATmega328, er ist auf ver- Bild 1.
hochladen (Commit) oder die neueste Version schiedenen Elektor-Platinen, aber auch auf dem Das Tool Doxygen sorgt
des Codes herunterladen (Update). Arduino-Uno-Board zu finden. fr eine bersichtliche
Dokumentation der
Funktionen.
Da mit der Zeit eine stattliche Sammlung von Wenn man einen Erweiterungsstecker mit einer
Funktionen zusammenkam, haben wir auch zum bestimmten Steckerbelegung spezifiziert, lassen
ersten Mal mit einem automatischen Dokumenta- sich auch verschiedene Controllerboards und
tionssystem gearbeitet. Wenn man im Code Kom- Erweiterungsboards kombinieren. Ein Beispiel
mentare mit einer bestimmten Notation hinter- hierfr ist das Linux-Extension-Board in diesem
lsst, kann das Open-Source-Programm Doxygen Heft [8]. Es passt nicht nur an das Elektor-Linux-
[6] automatisch eine bersichtliche Dokumenta- Board, sondern auch an das Xmega-Webserver-
tion aller Funktionen erstellen, welche auf HTML
basiert und in einem Browser angezeigt wer-
den kann (Bild 1). Wirklich eine tolle Sache! Die
Doxygen-Dokumentation der EFL kann man auf APPLICATION
der Website zu diesem Projekt [7] herunterladen.
DISPLAY LED BUTTON ELEKTORBUS LIBRARIES
Baukasten-System UART UDP/TCP/IP
COMMON

Die Embedded Firmware Library ist als Baukas-


EXTENSION BOARD-
ten-System konzipiert, einzelne Module einer BOARD LAYER EFL

Schicht (Layer) lassen sich dabei gegenein- HARDWARE


LAYER
ander austauschen. Es gibt drei unterschiedliche CONTROLLER
Hardware-Ebenen: Ganz unten ist der Control-
ler-Code angesiedelt, dann kommt der Board- HARDWARE
Layer und schlielich ein Extension-Layer (siehe 120668 - 15
Bild 2). Das entspricht den Verhltnissen eines
realen Projekt-Designs. Verschiedene (pinkompa-
Bild 2.
tible) Controller knnen ja auf ein- und demsel- Dank sauber getrennter Hardware-Layer ist ein EFL-Projekt schnell an andere Plattformen
ben Board zum Einsatz kommen, ein Controller anpassbar. Sehr ntzlich ist das, wenn beim Prototyping auch die Hardware noch
aber auch auf verschiedenen Boards. Ein schnes weiterentwickelt werden muss.

www.elektor-magazine.de | Mai 2013 | 13


Projects

lers beziehungsweise Boards tragen. Mehr hierzu


findet man in einem Extra-Dokument zur EFL [7].

PC0
FLASH SRAM PD0
Das Blackbox-Prinzip
PC1 PD1
CPU PD2
Im Idealfall knnen alle drei Hardware-Codemo-
PC2
PD3
dule von drei verschiedenen Entwicklern program-
PC3 G G
TIMER / COUNTER miert werden. Klar ist: Der Controller-Code-Ent-
PC4 P P
TIMER / COUNTER wickler kann dabei nicht wissen, auf welchem
PC5
I TIMER / COUNTER I Board sein Controller zum Einsatz kommt, und der
O O PD4
Board-Entwickler nicht alle Extensions-Boards,
PB3 ADC PD5
PB4 die es geben wird, vorausahnen.
PD6
PB5
UART SPI
PD7
Bild 3. Doch auch umgekehrt (von oben nach unten) gilt,
I 2C
Stark vereinfachtes dass ein Entwickler sich nicht mit Einzelheiten
Blockschaltbild eines und dem intern verwendeten Code der nchsten
Controllers am Beispiel 120668 - 11
Schicht beschftigen muss. Der Board-Code-Ent-
ATmega328.
wickler bentigt nur den Schaltplan des Boards,
auf dem der Controller mit seinen Anschlssen
(Portpins) und deren Funktion verzeichnet ist. Mit
den Registern und Details im Inneren des Cont-
RS485
rollers (Bild 3) muss er sich nicht auskennen; der
ADC/2.0 3.0/RXD
RO
Controller ist fr ihn eine Black Box (Bild 4).
ADC/2.1 3.1/TXD
DI hnliches gilt fr den Entwickler des Extension-
3.2
ADC/2.2 DE Boards. Ihn interessiert nur die Pinbelegung des
3.3
ADC/2.3 RE Erweiterungssteckers, ber den sein Board mit
ADC/SDA/2.4
dem Controllerboard und damit auch mit dem
ADC/SCL/2.5
Controller Kontakt aufnimmt. Aber die Verdrah-
3.4
MOSI/1.3
3.5
tung auf dem Controllerboard (also welche Pins des
MISO/1.4
3.6 Steckers an welche Portpins des Controllers ange-
Bild 4. SCK/1.5
3.7 schlossen werden) muss er nicht kennen (Bild 5).
Fr den Board-Code-
Entwickler ist der Controller
Hhere Bibliotheken
eine Blackbox, er muss nur
ber der Hardwareschicht folgen Module, die
die Anschlsse (Portpins) 120668 - 12
kennen. hhere Bibliotheksfunktionen zur Verfgung stel-
len (in der EFL-Sprache Libraries genannt). Als
Board [9], das wir im Juni vorstellen werden Beispiele enthlt die Codebasis bereits ein Modul
(groes Bild). Ein Mother- oder Baseboard mit zum Ansteuern eines HD44780-kompatiblen Text-
diverser Peripherie, auf das verschiedene Prozes- Displays, einen Treiber fr ein TCP/IP-Modul von
sorboards aufgesteckt werden knnen, ist eine WizNet, eine kleine Schrittmotor-Ansteuerung
weitere Anwendung der EFL. sowie ein Modul zum Lesen und Schreiben von
Rohdaten auf eine SD-Karte. Das Blackbox-Prin-
Fr den Controller, das Controllerboard und das zip wird hier fortgesetzt. Wer die Display-Library
Extensionboard gibt es drei unterschiedliche ndern oder erweitern mchte, kann das Display
Codemodule, die jeweils aus einem Headerfile (oder besser gesagt den Display-Controller) als
.h und einem Codefile .c bestehen. Man muss also Block im Blockdiagramm des Boards betrachten
jeweils die passenden Files ControllerEFL.h/.c, (Bild 6). Er muss nicht wissen, welche Anschlsse
BoardEFL.h/.c und ExtensionEFL.h/c. in sein Pro- des Displays mit welchen Portpins des Controllers
jekt einbinden. Die Filenamen sind fr alle Con- verbunden sind. Dem Display-Library-Entwickler
troller und Boards, die von der EFL untersttzt kann sogar egal sein, ob das Display im 4-bit-
werden, gleich. Damit es hier nicht zu Namens- Modus oder per SPI angesteuert wird. Er kann
konflikten kommt, sind die Files in der unter [11] sich also ganz auf seine Aufgabe konzentrieren,
downloadbaren Codebasis in Unterordnern unter- die entsprechenden HD44780-Kommandos und
gebracht, die den Namen des jeweiligen Control- Daten zusammenzustellen.

14 | Mai 2013 | www.elektor-magazine.de


Embedded Firmware Library

SENSOR
(+0) IO/ADC
(+1) IO/ADC
(+2) IO/ADC
(+3) IO/ADC
SENSOR
(+4) IO/ADC
(+5) IO/ADC

Bild 5.
Der Entwickler des
Extensionboard-Codes muss
sich nur fr die Anschlsse
am Erweiterungsstecker und
120668 - 13 deren mgliche Verwendung
interessieren.

SENSOR #0 RS485

SENSOR #1

C
#0
Bild 6.
Der Applikationsentwickler
bentigt nur ein
Blockdiagramm, die
Verdrahtung auf den Boards
#1
muss er nicht kennen. Die
beiden LED-Blcke werden
120668 - 14
ber die Blocknummern #0
und #1 angesprochen.

Applikationscode Portexpander angeschlossen sind. Auch Taster


Der Applikationsentwickler kann bequem auf alle an analogen Eingngen (wie beispielsweise auf
Blcke des Boards zugreifen, er muss eigentlich dem Linux-Extension-Board) kann man wie echte
nur wissen, dass diese Funktionseinheiten ber- digitale Buttons ansprechen (siehe groes Bild).
haupt vorhanden sind. Es ist sogar mglich, dass
sowohl auf dem Controllerboard als auch dem Einheitliches Funktionsset
Extensionboard ein LED-Block vorhanden ist, mit Wie das Ganze intern funktioniert, kann hier nur
beispielsweise einmal zwei und einmal vier LEDs ansatzweise beschrieben werden (siehe Textkas-
(siehe Bild 6). Der Applikations-Entwickler kann ten). Im Extra-Dokument [7] findet man viele
dann zum Beispiel die erste LED im Block 0 und weitere Infos zur Hardware-Ebene. Diese sind
die dritte LED im Block 1 einschalten, ohne sich vor allem dann wichtig, wenn man einen eigenen
darum kmmern zu mssen, auf welchem Board Board-Layer fr ein bisher nicht untersttztes
die LEDs sitzen. Board schreiben mchte.

LEDs, Taster, Relais und weitere digital gesteu- Zentrales Prinzip der ganzen Bibliothek ist jeweils
erte Einheiten lassen sich auch dann mit dersel- ein einheitliches Set von Funktionen (API), das
ben Bibliotheksfunktion bedienen, wenn sie nicht eine untere Schicht den jeweils hheren Schich-
direkt an einen Controllerpin, sondern an einen ten zur Verfgung stellt. Die Controller-API ent-

www.elektor-magazine.de | Mai 2013 | 15


Projects

gekapselt werden muss. Die hheren Libraries


Tabelle: Controller-Funktionen
greifen dann auf diese Low-Level-Funktionen zu
(Stand Mrz 2013, ohne Setup- und Parameter-Funktionen, Updates siehe [11])
und stellen dem eigentlichen Applikationscode
ATmega
Funktion Xmega256A3 wieder ein Set von Funktionen zur Verfgung.
328/324
Interrupts an/aus X X Beispiel: Display
Wait (Verzgerung) X X Als Beispiel schauen wir uns die Ansteuerung
Pin setzen X X eines Textdisplays an. Der Applikationscode soll
Pin lesen X X eine kleine Begrung in die erste Zeile des Dis-
ADC-Wert einlesen X X plays schreiben und ruft folgende Funktionen der
Display-Library auf:
ADC-Wandlung starten X X
DAC-Wert setzen X
Display_LibrarySetup();
UART Daten senden
X X Display_WriteString(0, 0, "Welcome!");
(interrupt-gesteuert)
Empfang in Ringbuffer X X Die erste 0 bezeichnet dabei die Nummer des
SPI-Master (Byte senden/empfangen) X X Displays (nach C-scher Art sind alle Angaben in
I2C-Master der EFL nullbasiert). Zur Ausfhrung des Schreib-
Bytes schreiben/lesen (kombiniert) X X befehls ruft die Display-Library mehrmals die
Funktion
Timer starten/stoppen X X
Zhlen an einem Pin X *
void Display_SendByte(uint8
Timergesteuert:
DisplayBlockIndex, uint8 ByteToSend,
- Hochzhlen X X
uint8 DATABYTE_COMMANDBYTE)
- Funktionsaufruf X X
- Pin toggeln X X auf Board-Ebene auf, die jeweils ein Daten-
- Toggeln mit variabler Geschwindigkeit X X
oder Kommandobyte an den Display-Controller
bermittelt.
- Frequenz messen X *
Im Falle des Xmega-Webserver-Boards ist das
PWM ausgeben X *
Display ber SPI angeschlossen, die Funktion ist
Software-PWM * * also so implementiert, dass der Aufruf an
X implementiert, * geplant, nicht vorhanden
uint8 SPIMaster_TransceiveByte(int8
Handle, uint8 Databyte)
hlt die immer gleichen Funktionen (vorausge-
setzt, sie werden vom Controller untersttzt). auf der Controller-Ebene weitergegeben wird.
Hier handelt es sich zuallererst um Setup-Funk- Auerdem werden die zustzlichen Eingnge CS
tionen zur Vorbereitung der Funktionseinheiten und RS am Display bedient.
(Units) des Controllers, wie ADC, SPI, UART,
Timer/Counter und mehr. Dazu kommen Funktio- Software-Download
nen, um Parameter einzustellen oder auszulesen Im Software-Download von der Website zu diesem
(zum Beispiel die Baudrate bei einer UART-Unit) Artikel [7] findet man ein Applikationsbeispiel. Es
sowie Funktionen fr die eigentliche Ansteuerung handelt sich um ein hnliches Projekt wie in [1].
(Wert einlesen bei einem ADC-Pin, etwas ber Der ElektorBus-Experimentalknoten [10] wird mit
ein UART- oder SPI-Interface senden und mehr). einem Extension-Board gekoppelt, das mit zwei
Einen kleinen berblick findet man in der Tabelle. Sensoren und vier zustzlichen LEDs bestckt
ist (Bild 7). Die Erweiterung wurde auf einer
Auf der Board-Ebene (Board- und Extension- halben ELEX-Platine aufgebaut, ein LochMaster-
Modul) findet man Low-Level-Funktionen fr die File findet man ebenfalls im Projekt-Download.
einzelnen Funktionseinheiten wie Display, Schritt- Wer die Software mit dem Atmel Studio 6 ffnet,
motortreiber und so weiter. Diese Funktionen sind sieht, dass die Codefiles in bestimmten (virtu-
ntig, weil ja die unterschiedliche Verdrahtung ellen) Unterordnern untergebracht sind, nm-
und Adressierung (zum Beispiel 4-bit- oder SPI) lich Hardware, Common und Libraries (siehe

16 | Mai 2013 | www.elektor-magazine.de


Embedded Firmware Library

Bild 7.
ElektorBus-
Experimentalknoten mit
Erweiterungsplatine
(zwei Sensoren und vier
LEDs). Der Board-Layer
ist schnell an ein anderes
Board angepasst, wie zum
Beispiel die kommende
Schrittmotorplatine.

Bild 8). Auerdem erkennt man im Hauptfile zuerst die Konfigurationsdaten fr den Bus
(ExperimentalNodeEFL.c) das Grundgerst einer bereitgestellt (ein spezielles Konfigurationsfile
EFL-basierten Anwendung. Unter anderem ist zu ElektorBusNode.h/.c bentigen wir nicht mehr).
sehen, welche Funktionen beim Programmstart Danach folgen die Setup-Funktionen fr die Lib-
aufgerufen werden mssen. rary-Module, deren Parameter man im Normal-
fall nicht verndern muss. Mit SwitchLED(1, 0,
In der ApplicationSetup()-Funktion werden ON); wird die erste LED auf dem Extension-Board

Ein Blick in den Motorraum der EFL


Portpins Controllers). Der Board-Code kann die interne Nummerierung
Die Digital-I/O-Funktionen (zum Beispiel Pin-Level setzen) der Units und auch die dazugehrenden Register aber nicht
im Controller-Code werden mit einem Parameter Portpin kennen. Beim Setup der Unit ber eine Funktion auf der
aufgerufen, einer Zwei-Byte-Ganzzahl ohne Vorzeichen Controller-Ebene gibt er stattdessen einen der beteiligten
(uint16): Portpins als Parameter mit, zum Beispiel bei SPI:

void IO_SetPinLevel(uint16 Portpin, uint8 PinLevel) int8 SPIMaster_Setup(uint16 Portpin)

Das erste Byte von Portpin bezeichnet den Port (die Die Setup-Funktion im Controller-Code ermittelt nun
Pingruppe); bei den AVR-Controllern ist dem Port A der Wert ber den Portpin die Unit-Nummer des gewnschten SPI-
0, dem Port B der Wert 1 usw. zugewiesen. ber diesen Interfaces, mit welcher der Controller die entsprechenden
Wert rechnet die Funktion dann das richtige Register aus. Hardware-SPI-Register berechnen kann. Fr sptere Zugriffe
Das zweite Byte bezeichnet den Pin innerhalb des Ports, bei wird die Unit-Nummer zusammen mit dem Portpin in
einem 8-bit-Controller luft der Wert von 0..7. Die Portpins einem Array namens Map gespeichert. Danach gibt die
kann man im Schaltplan mit 0.1, 0.2, , 1.0, 1.1 SPIMaster_Setup-Funktion den Index dieses Eintrags als
usw. bezeichnen (siehe Bild 4). Handle (0) zurck.
Mit dem Handle kann der Board-Code ab jetzt das
Features, Units und Handles gewnschte SPI-Interface ansprechen, um ein Byte zu
Die verschiedenen Funktionen, die ein Controller zur senden und zu empfangen:
Verfgung stellt (ADC, UART, SPI, Timer/Counter usw.),
werden in der EFL Features genannt. Von einem Feature uint8 SPIMaster_TransceiveByte(int8 Handle, uint8
wie SPI kann es mehrere Units geben, so besitzt der Databyte)
Xmega256A3 beispielsweise drei SPI-Units. Zu jeder der Units
gehren bestimmte Portpins (siehe Datenblatt des jeweiligen Genauso funktioniert das auch bei den anderen Features.

www.elektor-magazine.de | Mai 2013 | 17


Projects

{1}
SENSOR [3] RS485
[5]
ADC/2.0 3.0/RXD [4]
(+0) (4) {0}
ADC/2.1 3.1/TXD
(+1) (5)
ADC/2.2 3.2
(+2) (6) (10)
{2} 3.3
SENSOR ADC/2.3 (11)
(+3) (7)
[6] ADC/SDA/2.4
(+4) (8)
(+5) (9)
ADC/SCL/2.5 C (0) [0]
3.4 (1)
MOSI/1.3
3.5
MISO/1.4
3.6
SCK/1.5 (2) [2]
3.7

[1] (3)

(12) (13) (14) (15)

120668 - 16

Boardpins und Blocks


BlockIndex BlockType First Count
Die einzelnen Portpins des Controllers sind mit [0] BLOCKTYPE_ 0 2
Funktionseinheiten auf dem Board (zum Beispiel Reihen LED
von LEDs oder Buttons, RS485-Treiber) verbunden. Die
[1] BLOCKTYPE_ 12 4
Portpins fr diese verschiedenen Blcke werden beim
LED
Board_Init (im Board-
[2] BLOCKTYPE_ 2 2
Code) nacheinander in ein Boardpin Portpin
BUTTON
Array eingetragen. Die (0) 3.4
Indices dieses Arrays heien
(1) 3.6
Boardpins.
Fr den LED-Block in Bild 4 (2) 3.5
Will eine LED-Library eine bestimmte LED in einem
wrden beispielsweise (3) 3.7
bestimmten Block ansprechen, ruft sie die Funktion
die Boardpins (0) und (1) (4) 2.0
vergeben, fr den Button- (5) 2.1 void SwitchDigitalOutput(uint8 BlockIndex, uint8
Block die Boardpins (2) und
(6) 2.2 Position, uint8 ON_OFF)
(3) und fr die Pins des
Erweiterungssteckers die
auf Board-Ebene auf.
Boardpins (4)..(9). (9) 2.5
Die Funktion SwitchDigitalOutput() ermittelt anhand
der Parameter BlockIndex und Position der LED innerhalb
des Blocks den entsprechenden Boardpin und darber dann
Die Extension_Init-Funktion im Extension-Codemodul
den Portpin. Im Block-Array wird auch gespeichert, ob eine
reserviert fr die eigenen LEDs (Bild 5) weitere Boardpins,
eingeschaltene LED einen High- oder Low-Pegel verlangt,
zum Beispiel (12)..(15). Die zugehrigen Portpins 2.2 bis
was ebenfalls von Board zu Board unterschiedlich sein kann.
2.5 werden dabei indirekt ber die Boardpin-Eintrge des
Erweiterungssteckers (6)..(9) ermittelt:
Ressourcen

Die enorme Flexibilitt der EFL hat einen Preis: Neben


(12) 2.2 // = (6) Flashspeicher fr den Programmcode belegt die Bibliothek
(13) 2.3 // = (7) auch RAM-Speicher (einstellbar wenige bis viele Hundert
(14) 2.4 // = (8) Byte). Und auch die Performance (die Geschwindigkeit der
(15) 2.5 // = (9) Programmausfhrung) sinkt. Letzteres fllt besonders bei
einfachen Funktionen wie dem schnellen Toggeln eines
Im Boardpin-Array befinden sich jetzt zwei Blcke von LED- Pins ins Gewicht. Daher wurden zu diesem Zweck spezielle
Boardpins: (0)..(1) und (12)..(15). Diese Zahlen (genauer Funktionen implementiert, die das timergesteuert erledigen;
gesagt der erste Boardpin und die Zahl der LEDs innerhalb man muss den Pin nicht fortgesetzt mit einem erneuten
des Blocks) werden fr jeden Block in ein weiteres Array Funktionsaufruf High und Low schalten. Doch selbst
namens Block eingetragen, zusammen mit dem Typ des wenn man dies tun wrde, wre die Performance noch gut
Blocks: ausreichend, um beispielsweise mehrere LEDs zu dimmen.

18 | Mai 2013 | www.elektor-magazine.de


Embedded Firmware Library

angeschaltet (zur Kontrolle des Programmstarts).


Ein Druck auf den ersten Taster des Experimen-
talknotens toggelt die rote Test-LED sowie die
dritte LED auf dem Erweiterungsboard. Auf Auf-
forderung des Bus-Schedulers bermittelt der
Knoten die Werte der zwei Sensoren zum PC.
Die zweite LED auf dem Erweiterungsboard blinkt
im Takt dazu; die vierte LED lsst sich vom PC
aus schalten.
Das File ExtensionEFL.c enthlt brigens auch gleich
den Setup-Code fr ein kleines Relaisboard (welcher
Code-Abschnitt kompiliert wird, kann man mit dem
#define-Ausdruck in ExtensionEFL.h auswhlen).
Im Projekt-Download findet man auch das
erwhnte, ausfhrlichere Dokument zur EFL
und die Dokumentation, die mit Doxygen erstellt
wurde. Dazu gibt es dort die gesamte Codebasis
inklusive weiterer Libraries (zum Beispiel Display,
WizNet-TCP/IP-Modul) als Quellcode.

Ausblick
Dieser Artikel konnte nur eine kurze Einfh- Weblinks Bild 8.
rung sein; speziell fr C-Ein- und -Umsteiger Screenshot des Beispiel-
[1] www.elektor-magazine.de/120582
ist noch ein Step-by-Step-Artikel geplant. Dar- Projekts in Atmel Studio 6.
ber hinaus wird die EFL auch bei kommenden [2] http://sourceforge.net/projects/embeddedlib/ Die Codefiles des Projekts
[3] www.gnu.org/licenses/lgpl.html sind (virtuell) in bestimmten
Elektor-Projekten eingesetzt, zum Beispiel beim
Unterordnern untergebracht,
Xmega-Webserver-Board. [4] http://subversion.apache.org was die bersicht
Vielleicht wird der eine oder andere Leser die EFL erleichtert.
[5] http://tortoisesvn.net
nicht nur verwenden, sondern auch erweitern und
[6] www.doxygen.org
anpassen wollen (siehe hierzu die Hinweise im
ausfhrlichen Dokument [7]). Wer Vorschlge fr [7] www.elektor-magazine.de/120668
nderungen oder Erweiterungen hat, etwa bei [8] www.elektor-magazine.de/120596
der Controller-API, kann sich gerne beim Autor [9] www.elektor-labs.com/xmegawebserver
melden unter redaktion@elektor.de. Natrlich
[10] www.elektor-magazine.de/110258
wre es auch schn, wenn wir Untersttzung
bei der Anpassung an weitere Controller, Boards [11] www.elektor-labs.com/EFL
und Peripherie-Blocks bekommen knnten.
Auf der Elektor .Labs-Website [11] werden wir
regelmige Updates verffentlichen.
(120668)

ber RS485, TCP/IP und Funk: ElektorBus und eigene Protokolle


Die Hardware-Unabhngigkeit der ElektorBus-Library wurde IP-Modul WIZ820io von WizNet getestet wurde. Die Nutzung
weiter verbessert. Das Codemodul ElektorBusEFL.h/.c von 433-MHz-Funkmodulen wre eine weitere interessante
ist knftig nur noch rein fr die ElektorBus-Protokolle Mglichkeit. Analog kann man sich natrlich seine eigene
zustndig. Es ist mglich, damit Nachrichten nicht mehr nur Protokoll-Library schreiben, wiederum unabhngig vom
ber RS485, sondern auch ber RS232, TTL/UART und sogar verwendeten bertragungskanal, Board und Controller.
TCP/IP zu versenden und zu empfangen, was bereits mit Es ergibt sich hier also eine riesige Spielwiese fr eigene
dem kommenden Xmega-Webserver-Board und einem TCP/ Experimente und Anwendungen.

www.elektor-magazine.de | Mai 2013 | 19


Projects

Barostick
Luftdruck und Temperatur mit
USB-Stick messen

Von Module in USB-Stick-Bauform gibt es fr viele Anwendungen, von WLAN und Blue-
Ruud van Steenis
tooth bis zum Daten-Logging. Das gleiche handliche Format hat der Luftdruck- und
(NL)
Temperaturmesser Barostick, der die Umweltgren Luftdruck und Temperatur
mit einem Sensor von Bosch-Sensortec misst. Ein Programm, das unter Windows
auf dem PC luft, stellt die Messwerte grafisch auf dem Bildschirm dar. Sogar das
Hochladen der Grafiken auf einen FTP-Server ist mglich.

Wenn es in der Welt der PCs um das Speichern und sor in ein Mikrocontroller-System eingebunden
Transportieren von Daten geht, sind USB-Sticks wird. Im Sensor sind individuelle Kalibrierwerte
unentbehrlich. Die Vorteile liegen buchstblich auf gespeichert, die der Hersteller seinem Produkt
der Hand: Die kleinen Speicherriesen passen in mitgibt. Die Messergebnisse sind erst aussagef-
jede Hosentasche, und Zugriffe auf die Daten sind hig, nachdem sie ber einen vorgegebenen Algo-
mit modernen PCs problemlos mglich. Die not- rithmus mit den Kalibrierwerten verknpft sind.
wendigen Treiber sind in den aktuellen Betriebs- Eine Bibliothek [2] fasst alle komplizierten
systemen bereits integriert. Auch Messsysteme Rechenoperationen zusammen, so dass dem
lassen sich im Format von USB-Sticks realisieren, schnellen Programmieren eigener Anwendungen
solange sie nicht allzu komplex sind. Ein Beispiel nichts im Weg steht. Die Routinen sind auch im
ist ein USB-Stick eines chinesischen Herstellers, PC-Programm implementiert, das fr den Baros-
der Temperaturen und relative Luftfeuchten misst. tick geschrieben wurde. Das PC-Programm stellt
Diese Gren gehren zu den mageblichen Fak- die Messwerte grafisch auf virtuellen analogen
toren fr das Wohlbefinden des Menschen. Dage- Anzeigeinstrumenten dar. Natrlich knnen die
gen ist der Luftdruck eine Gre, die von Mess- Messwerte auch gespeichert werden.
systemen dieses Formats nur selten erfasst wird.
Unser Barostick, der diese Lcke schliet, arbeitet Hardware
mit dem Luftdrucksensor BMP085 [1] von Bosch- Fr den Datenaustausch mit einem Mikrocontroller
Sensortec. Aus Bild 1 geht hervor, wie der Sen- ist auf dem Chip des Sensors BMP085 eine I2C-

20 | Mai 2013 | www.elektor-magazine.de


Barostick

Schnittstelle integriert. Wichtig ist hier, dass die


Spannung auf den I2C-Leitungen niemals +3,3 V
bersteigen darf. Da ein USB-Port +5 V bereit- 1.8 ... 3.6V

stellt, ist eine Anpassung der Signalpegel zwin- 100nF

gend notwendig. Anders als der Sensor BMP085 Rp


(1)
Rp
(1)

arbeitet der Mikrocontroller PIC18F14K50, eine VDDA VDDD

SMD-Ausfhrung im SOIC-Gehuse, unmittelbar


2
E PROM
Controller
BMP085 e. g. 8 bit

an +5 V. EOC

Wie die Schaltung in Bild 2 zeigt, sind auer dem


SDA
Control 2
Unit I C interface
SCL
12-MHz-Quarz, den zugehrigen Kondensatoren XCLR

sowie einigen Kondensatoren zum Entkoppeln


Sensor ADC
der Betriebsspannungen nur wenige weitere Bau- element Bild 1.
elemente ntig. Ein Low-drop-Spannungsregler GND Im BP085 sind der Sensor,
AP1117 setzt die Spannung +5 V auf die Betriebs- ein Analog-Digital-
spannung +3,3 V des Sensors BMP085 herab. Note: Display
Wandler, ein EEPROM mit
individuellen Kalibrierdaten
2
(1) Pull-up resistors for I C bus, Rp = 2.2k 10 typ. 4.7k

Die bidirektionale (!) Signalpegelanpassung zwi-


und eine I2C-Schnittstelle
schen +5 V des Mikrocontrollers und +3,3 V des
integriert.
Sensors ist in Bild 3 dargestellt. Folgende Sig-
nalflsse knnen auftreten:
Auf der Sensor-Seite (+3,3 V) wird eine
Leitung nicht nach logisch 0 gezogen. Die IC1
AP1117EG-13
Spannungen an Gate und Source des FET 1 3

betragen +3,3 V, so dass die Source-Gate- C1


R5 R1 R2 R3 R4
2
Spannung die Schaltschwelle nicht erreicht,
4k7

4k7

4k7

4k7

4k7
10u

der FET sperrt. Auf der Mikrocontroller-Seite K1


T1 3 C2
USB-A VDD
(+5 V) zieht ein Pullup-Widerstand die Lei-
4

1 330n
7 SDA
MCLR

VDD

2 18 12
2N7002 IC3
tung nach logisch 1.
D- RB5
3 19 13 T2
D+ RB4 6 SCL
4
Auf der Sensor-Seite (+3,3 V) geht eine Lei- 16
IC2
5
BMP085
5
6

RC0 RC5 VSS


tung auf logisch 0. Die Source des FET ist 15
14
RC1 RC6
8
9
2N7002 1
RC2 RC7
ebenfalls logisch 0, whrend die Gate-Span- 7
6
RC3 RB6
11
10
RC4 RB7
nung auf +3,3 V bleibt. Nun bersteigt die 2 3 C2A
PIC18F14K50
17 VUSB VDD VDDIO
OSC1

OSC2

Source-Gate-Spannung die Schaltschwelle, 6 330n


VSS SDA
X1 IC3A
20

der FET leitet. Auch auf der Mikrocontroller- 5


SCL
BMP180
Seite (+5 V) wird die Leitung logisch 0. C3 C4 C5
VSS
7
Auf der Mikrocontroller-Seite (+5 V) liegt 330n 22p 12MHz 22p

eine Leitung auf logisch 0. Zuerst geht die 120481 - 11

Sensor-Seite (3,3 V) ber die interne Drain-

Bild 2.
VDD1 = 3V3 VDD2 = 5V Der USB-Luftdruck- und
Temperaturmesser arbeitet
Rp Rp Rp Rp
mit einem Sensor-Chip von
Bosch-Sensortec und einem
T1
G Mikrocontroller aus der PIC-
Familie.
SDA1 SDA2
S D
G
T2

SCL1 SCL2
S D

Bild 3.
Die Signalpegelanpassung
3V3 3V3 5V 5V zwischen 3,3 V und 5 V
device device device device
wird mit zwei FETs und
120481 - 12 einigen Pullup-Widerstnden
realisiert.

www.elektor-magazine.de | Mai 2013 | 21


Projects

Stckliste Auerdem:
(Alle R und C: SMD-Bauform 0603) X1 = Quarz 12 MHz (HC49US)
USB-A-Buchse, SMD-Ausfhrung (Lumberg 2410 07)
Widerstnde: USB-Stick-Gehuse (USB1SW, Conrad 531275)
R1...R5 = 4k7 Platine 120481-1
Aufgebautes und getestetes Modul: 120481-91 (siehe
Kondensatoren: [3])
C1 = 10 /10 V X5R Software bestehend aus Quell- und Hexcode, Win-
C2,C3 = 300 n dows-Programm und DLL mit Quellcode:
C4,C5 = 22 p Freier Download von [3]

Halbleiter:
T1,T2 = 2N7002 (SOT232)
Bild 4. IC1 = AP1117E33G-13 (SOT-223)
Das Layout der Platine ist IC2 = PIC18F14K50-I/SO (programmiert, 120481-41)
so gestaltet, dass fr die IC3 = Luftdrucksensor BMP085 oder BMP180 (Bosch
Bestckung zwei Sensor- Sensortec)
Typen von Bosch-Sensortec
zur Wahl stehen.

den Anschlssen. Auf der Platine kann wahlweise


Diode auf logisch 0. Anschlieend leitet der ein Exemplar des einen oder anderen Typs mon-
FET, so dass die logischen Signale beider tiert werden. Die im Elektor-Shop erhltliche,
Seiten identisch sind. aufgebaute und getestete Version ist zurzeit mit
In der Schaltung, die Bild 1 zeigt, sind zwei Sen- dem BMP085 bestckt.
sor-Typen angegeben, der BMP085 (IC3) und
der BMP180 (IC3A). Der BMP085 wurde vom Aufbau
Bild 5.
Hersteller zum Auslauftyp erklrt, bei mehreren Fr den Barostick wurde eine Platine entworfen,
Im Elektor-Shop ist die
aufgebaute und getestete Anbietern ist er jedoch noch in greren Stck- die exakt in ein Standard-USB-Stick-Gehuse
Platine zusammen mit zahlen am Lager. Nachfolger des BMP085 ist der passt (siehe Bild 4). Wie schon beschrieben, kann
dem passenden Gehuse BMP180, er ist zwar funktional voll kompatibel, die Platine wahlweise entweder mit dem Sen-
erhltlich (siehe [3]). hat jedoch eine andere Bauform mit abweichen- sor BP085 oder mit dem Sensor BP180 bestckt
werden.
Smtliche Bauelemente einschlielich USB-Buchse
werden auf der Kupferseite montiert. Die Bauele-
mente haben zwar SMD-Bauform, etwas SMD-
Erfahrung vorausgesetzt gelingt die Montage
jedoch auch von Hand. Etwas kniffelig, aber noch
machbar, ist das Lten des Sensors BMP085.
Zuerst werden die Beine des Chips und die zuge-
hrigen Platinen-Kontaktflchen verzinnt. Dann
wird der Chip in Position gebracht, und seine
Anschlsse werden durch vorsichtiges Berhren
mit dem Ltkolben an die Kontaktflchen geltet.
Wirklich sichere Verbindungen entstehen, wenn
beim Lten an den Kontakten noch geringe Men-
gen Ltzinn hinzugegeben werden.
Fr die Montage des alternativen Sensors BMP180
wird der Einsatz eines Reflow-Ltofens empfohlen,
denn bei diesem Chip befinden sich die Anschlsse
auf der Unterseite. Alle brigen Bauelemente kn-
nen entweder gleichzeitig im Ltofen oder mit
einem konventionellen Ltkolben montiert werden.
Auch wenn die Montage nach der beschriebenen
Methode bisher stets erfolgreich war, kann es
nicht schaden, zunchst alle Verbindungen mit

22 | Mai 2013 | www.elektor-magazine.de


Schneller vom Entwurf
zur fertigen Schaltung

Mit der Schaltungssimulationssoftware NI Multisim knnen Sie dank prziser Simulation


Intuitive Bedienung auch ohne SPICE-
und flexiblem Layout schnell einen Prototyp Ihrer Leiterplatte erstellen. Multisim 12.0 Kenntnisse
kombiniert eine intuitive Entwicklungsumgebung mit leistungsstarker Analysefunktionalitt.
Schnell platzieren, routen und entwickeln
Damit knnen Sie das Schaltungsverhalten optimieren und die Anwendungsleistung frher
Cosimulation von Schaltungen und
visualisieren noch vor dem ersten Prototyp. Zudem verbessert Multisim Ihren Schaltungs-
Software-Algorithmen mit NI LabVIEW
entwurf mit einer Datenbank aus Bauteilen von fhrenden Halbleiterherstellern sowie einer
Mit weniger Iterationen zum Prototyp
erweiterbaren Palette an Analysefunktionen, die in NI LabVIEW entwickelt wurden.

>> ni.com/multisim/d

SENSOR+TEST
Halle 11, Stand 410

2013 | National Instruments, NI, ni.com, Multisim und LabVIEW sind Marken der National Instruments Corporation.
Andere Produkt- und Firmennamen sind Warenzeichen der jeweiligen Unternehmen.

Multisim_Prof_D_207x276.indd 1 02.04.13 17:13


Naamloos-14 1 03-04-13 11:08
Projects

einem Ohmmeter auf einwandfreien Kontakt zu Software


berprfen. Zu diesem Projekt gehrt ein Windows-Pro-
Der Mikrocontroller muss vor der Montage pro- gramm, das die Messergebnisse fr Luftdruck
grammiert werden, sofern das Exemplar nicht und Temperatur auf dem PC-Bildschirm grafisch
bereits programmiert ist. Der Quellcode in Pic- prsentiert. Die Messdaten knnen nach Tagen
Basic und die zugehrige Hex-Datei sind kosten- geordnet gespeichert werden, ferner sind die Mes-
frei auf der Webseite dieses Projekts [3] verfg- sintervalle festlegbar. In Bild 5 ist dargestellt,
bar. Zum Programmieren ist nicht unbedingt ein wie das Programm auf dem Bildschirm aussieht.
Adapter fr das SOIC-Gehuse ntig, es gengt Dem Anwender bietet das Programm diverse Opti-
ein DIL-SMD-Adapter mit vergoldeten Kontak- onen, um die Sprache, die Farben und Linienstr-
ten, wie ihn das Foto auf [4] zeigt. Solange die ken sowie weitere Parameter an eigene Prferen-
Programmierung luft, wird der Mikrocontroller zen anzupassen. Die Grafiken der virtuellen runden
starr auf die Adapterplatine gepresst und fest- Messinstrumente knnen zu vorgegebenen Zeiten
gehalten. Auch diese Methode hat in der Praxis ber FTP auf eine Webseite geladen werden, bei-
ihre Bewhrungsprobe bestanden. Trotzdem sollte spielsweise um die Reprsentation der Daten in
verifiziert werden, dass der Inhalt des Programm- Echtzeit in einen Web-Auftritt einzubinden. Freunde
speichers im Mikrocontroller mit den Daten der der Wetterbeobachtung haben Gelegenheit, die
Hex-Datei bereinstimmt. Messdaten auf einen Server des Wetterkanals
Wenn kein fr den PIC18F14K50 passendes Weather Underground [5] hochzuladen.
Programmiergert zur Hand ist, liefert der Elek- Wie schon erwhnt, steht auch das Windows-Pro-
tor-Shop ein einsatzfertig programmiertes Exem- gramm auf der Projektseite [3] zum kostenfreien
plar des Controllers. Ein passendes Gehuse, in Download bereit. Wer gern programmiert, dem
das die Platine eingebaut werden kann, ist in der leistet die Bibliothek PSensor.dll Hilfestellung.
Stckliste angegeben. Im Elektor-Shop ist fr Den Einsatz dieser DLL erlutert das in Delphi
Bild 6.
Das unter Windows laufende den Barostick auch die bereits aufgebaute und geschriebene Testprogramm DllDemo.exe. Inte-
PC-Programm stellt die getestete Platine zusammen mit dem Gehuse ressierte Leser knnen auch auf den Quellcode
Messdaten grafisch dar, erhltlich. ber die Bezugsmglichkeiten gibt die der Bibliothek PSensor.dll zurckgreifen.
dort lassen sich diverse Projektseite [3] Auskunft. Bevor der Barostick zum ersten Mal in den PC ein-
Parameter einstellen. gesteckt wird, ist das berprfen der Stromauf-
nahme ratsam. Wenn der Strom in der Grenord-
nung 10 mA liegt, kann der Barostick an den PC
angeschlossen werden. Kurz nach dem Einstecken
erkennt Windows die neue Hardware. Da sich der
Barostick wie ein HID Device verhlt, ist das
Laden eines spezifischen Treibers nicht notwendig.
Windows meldet nun, dass ein Pressure Sensor
gefunden wurde. Die nchste Meldung besagt,
dass die neue Hardware konfiguriert worden ist,
sie steht nun fr den Einsatz bereit. Das PC-Pro-
gramm wird gestartet, dort knnen anschlieend
die Einstellungen vorgenommen werden.
Wir wnschen Ihnen langzeitig schnes Wetter,
was Perioden mit hohen Luftdrcken gleichkommt!
(120481)gd

Weblinks
[1] www.datasheetarchive.com/barometric
BMP085-datasheet.html
[2] www.property-protection.nl/Temper
[3] www.elektor.de/120481
[4] www.voti.nl/common/pcb-12.jpg
[5] www.wunderground.com

24 | Mai 2013 | www.elektor-magazine.de


Calculus Quiz

DAS WELTWEIT ERSTE

USB 3.0
OSZILLOSKOP

If only RF could
be so easy.

ALLE MODELLE WERDEN MIT TASTKPFEN, KOMPLETTER SOFTWARE UND 5 JAHRE GARANTIE
GELIEFERT. DIE SOFTWARE ENTHLT: MESSUNGEN, SPEKTRUM-ANALYZER, KOMPLETTES SDK,
ERWEITETER TRIGGER, FARB-PERSISTENZ, SERIELLE DEKODIERUNG (CAN, LIN, RS232, I2C, I2S,
SPI), MASKEN, MATHEM. KANLE - ALLES ALS STANDARD. KOSTENLOSE UPDATES.

RF Modules
Remote Controls
Antennas
RF Connectors
Custom Designs

www.linxtechnologies.com
www.usb3scope.com/PS208

Naamloos-8 1 08-04-13 10:57


Projects

LCR-Meter 2013 (3)


Hchste Przision zu niedrigen Kosten
In die dritte und letzte Runde geht unser LCR-Meter mit folgenden Themen:
Kleine Korrekturen am Schaltbild
Platinenlayout und Stckliste
Schaltungsaufbau und Gehuse
Inbetriebnahme und Einstellungen

Von
Jean-Jacques Aubry
(F)

Im letzten herabgesetzt
Te i l d i e s e s werden muss, war erst
Beitrags wenden wir offensichtlich, als wir hohe
uns endlich dem Bau Kapazitten (1000 F und hher)
und der Inbetrieb- gemessen haben. Der Grund ist vermut-
nahme unseres LCR- lich eine Eigenschaft des MAX7404, die dazu
Meters zu. Doch bevor der Ltkolben fhrt, dass das Eingangssignal des Analog-Digi-
angeheizt wird, kehren wir noch einmal zum tal-Wandlers mit niedriger Frequenz schwebt. Da
Schaltbild im vorangegangenen Teil zurck. hohe Werte von C3 und C9 diese unerwnschte
Erscheinung begnstigen, haben wir die Werte
Ungereimtheiten herabgesetzt.
Bei den Vorbereitungen dieses letzten Teils unse- Fr U2 ist der MAX7404CSA der geeignete Typ,
res dreiteiligen Beitrags kam es ans Licht: Zwi- der MAX7404ESA hat den erweiterten Tempe-
schen dem im zweiten Teil verffentlichen Schalt- raturbereich 40...+85 C, der jedoch fr das
bild und unserer Stckliste hatten sich kleine LCR-Meter nicht notwendig ist. U10 (Zenerdiode-
Ungereimtheiten eingeschlichen. Symbol rechts neben U9) kann auch ein LM4040
Das Schaltbild des LCR-Meters hatten wir in Elek- sein. Wir hatten den LM4050 genommen, weil
tor, Ausgabe Mrz 2013, verffentlicht. Darin wir ihn griffbereit hatten. Operationsverstrker
fehlt die Angabe der Frequenz von Quarz Y1, die U6 muss ein OPA365 sein, denn seine Offset-
Frequenz betrgt 24 MHz. Die parallelen Kop- spannung ist wesentlich niedriger als die Offset-
pelkondensatoren C3 und C9 vor dem Puffer U1 spannung des OPA354. Die nchste Korrektur
mssen die Kapazitt 1 F haben, der Wert 4,7 F betrifft U19: Dies ist FT232RL, ein Tippfehler ist
hat sich als zu hoch erwiesen. Dass dieser Wert verantwortlich, dass daraus ein FT235RL wurde.

26 | Mai 2013 | www.elektor-magazine.de


LCR-Meter

Wichtige Eigenschaften
Das LCR-Meter arbeitet nach dem Prinzip der automatischen Impedanzmessbrcke. Bei der
Entwicklung stand hchste Messgenauigkeit bei unkompliziertem Aufbau an erster Stelle.
Gemessen werden Widerstnde, Kapazitten und Induktivitten passiver Komponenten im
Bereich 1 m...1000 M. Die Frequenz des Messsignals kann 100 Hz (oder 120 Hz, abhngig
von der Netzfrequenz 50 Hz oder 60 Hz), 1 kHz oder 10 kHz betragen.
Zwei Gertekonfigurationen stehen zur Wahl:
Messmodul ohne Display und ohne Bedienelemente, Betrieb nur zusammen mit PC,
Verbindung ber USB, Bedienung ber PC-Programm. Das PC-Programm basiert auf der
Qt-Bibliothek von Atmel, es wurde unter Windows XP, Linux Ubuntu 11.04 sowie MacOS X
Snow Leopard, Lion und Mountain Lion getestet. Unter neueren Windows-Versionen ist das
Programm ebenfalls lauffhig.
Messmodul ergnzt durch eine Erweiterungsplatine, darauf ein LC-Display und die
Bedientaster. Die Funktionen sind vollstndig identisch mit der PC-Version. Stromversorgung
ber die USB-Buchse mit externem Netzteil oder aus externem USB-Port.

Bei den Einstellarbeiten fiel uns auf, dass R17 ein er verbindet die analoge und die digitale Masse
Widerstand mit dem Wert 10 sein muss, die im an einem einzigen, definierten Schaltungspunkt.
Schaltbild stehende Angabe NC (Not Connected) Eine Ltbrcke ist fr R50 ausreichend. Die Kon-
ist nicht korrekt. Die brigen Bauelemente mit der densatoren mssen unbedingt den Angaben in
Bezeichnung NC mssen nur whrend der Kali- der Stckliste entsprechen, kritisch sind insbe-
brierung an ihren Pltzen sein. Hinweise zur Kali- sondere die NP0-Typen.
brierprozedur enthlt ein nachfolgender Absatz. Der nchste Hinweis betrifft den Quarz. Auf der
Wir empfehlen, die genannten Korrekturen in das Platine befindet sich ein Ltpunkt mit der Bezeich-
Schaltbild einzutragen, so dass sie beim Best- nung XTAL CASE. Dieser Ltpunkt muss ber
cken der Platine nicht vergessen werden. Das ein kurzes Stck Draht mit dem Metallgehuse
korrigierte Schaltbild werden wir auf die Projekt- des Quarz verbunden werden, nur dann ist die
seite [3] einstellen, von dort kann es zusammen Abschirmung des Quarzes wirksam. Doch Vorsicht
mit der Software, den Platinenlayouts und den beim Lten am Gehuse, der Quarz ist empfindlich
Dokumentationen heruntergeladen werden. gegen berhitzung, die Ltdauer darf nur kurz sein!
Ein weiterer, nicht weniger wichtiger Hinweis
Aufbau zur Bestckung im Do-it-yourself-Verfahren:
Zum LCR-Meter gehren zwei Platinen, Bild 1...3 Der Mikrocontroller wird vom Hersteller absolut
zeigt die Layouts. Die zweite Platine, Erweite- nackt ausgeliefert. Vor der Montage muss der
rungsplatine genannt, wird nur fr die Stand- Bootloader in den Mikrocontroller geflasht wer-
alone-Version bentigt! Bei der PC-Version ist den. Das geschieht mit einem separaten Modul,
der PC fr die Anzeige- und Bedienfunktionen das die Bezeichnung USB Debug Adapter hat
zustndig. und bei Silicon Laboratories erhltlich ist.
Wenn Sie ber die notwendige Arbeitsplatz-Aus- Die folgenden Anmerkungen beziehen sich auf
stattung verfgen und gengend Erfahrung in das Display- und Bedienmodul der Stand-alone-
der Kunst der SMD-Montage besitzen, knnen Version: Mit HE10 ist ein Flachkabel-Steckver-
Sie die leeren Platinen in Eigenregie bestcken. binder gemeint, der unmittelbar auf die Platine
Trotzdem mchten wir Sie warnen: Dieses Werk geltet wird (Bild 4a und 4b). Dieser Steckver-
gelingt nur Spezialisten, bitte bedenken Sie vor binder muss flach sein, damit die Platine in das
Baubeginn, worauf Sie sich einlassen. vorgesehene Gehuse passt. Das Display wird
Wir empfehlen Ihnen, der Stckliste konsequent an einer Kante ber eine Reihe kleiner Ltsttz-
zu folgen. Damit meinen wir nicht die Reihenfolge punkte festgeltet, parallel dazu liegen zwei Lt-
der Bauelemente in der Stckliste, sondern die punktreihen normaler Gre. Diese Verbindungen
Werte und Toleranzen. Abgesehen von vier Pr- erschienen uns nicht gengend stabil, falls das
zisionswiderstnden haben alle Widerstnde die LCR-Meter rauen mechanischen Beanspruchun-
Toleranz 1 %. Widerstand R50 hat den Wert 0 , gen ausgesetzt ist. Deshalb haben wir das Dis-

www.elektor-magazine.de | Mai 2013 | 27


Projects

play oberhalb der Ltpunkte zustzlich mit einem nenten sind nur fr die Kalibrierung bestimmt,
Zweikomponentenkleber fixiert. sie werden erst spter montiert.
Fr den Fall, dass Unsicherheiten bei der Wahl Die vorstehenden Hinweise gelten fr Ltprofis und
der korrekten Bauelemente auftauchen, haben andere Do-it-yourself-Enthusiasten. Wenn Sie nicht
wir auf der Projektseite [3] eine zweite Version zu dieser Gruppe gehren oder Ihre Zeit zu knapp
der Stckliste (BOM, Bill Of Materials) eingestellt. bemessen ist, knnen Sie die aufgebauten und
Jene Version enthlt weitere, mglicherweise funktionsgetesteten Module im Elektor-Shop erwer-
wichtige Details. ben. Die Module kommen dann ins Haus, sie ms-
sen nur noch im Gehuse befestigt werden. Sofort
Die Reihenfolge, in der die Bauelemente montiert nach der Kalibrierung ist das Gert betriebsbereit.
werden, hngt von den Abmessungen ab. Den Das LCR-Meter ist ein empfindliches elektroni-
Anfang machen die kleinsten Exemplare, womit sches Messgert, das vor Streinflssen, insbe-
nicht nur die Widerstnde und Kondensatoren sondere aus dem Stromnetz abgeschirmt werden
gemeint sind. Auch die ICs mit den schmalsten muss. Ein Metallgehuse, zum Beispiel der Typ
Abstnden zwischen den Anschlssen (Lead Spa- 1455L1601 von Hammond, ist eine gute Wahl,
cing) gehren dazu. Die auf der Platinenrckseite um die Module gemeinsam unterzubringen. Ein
zu montierenden Komponenten drfen natrlich Bohrplan fr dieses Gehuse gehrt zur Doku-
nicht fehlen. Die mit NC markierten Kompo- mentation auf der Projektseite [3].

Stckliste Hauptplatine C37,C40,C41,C43,C44,C45,C46,C47,C48,C49,C50,C51,C53,C54,C61,


C63,C65,C78,C80,C86,C87,C88 = 100 n/25 V, 10 %, X7R
Widerstnde: C3,C9,C62,C64,C90 = 1 /25 V, 10 %, X7R
(SMD 0805, 1 %, wenn nicht anders angegeben) C5,C13,C18 = 15 n/50 V, 5 %, NP 0, SMD 1206
R1,R16,R17,R28 = 10 C6,C7,C14,C15,C16,C56 = 47 n/50 V, 5 %, NP 0, SMD 1206
R2,R34 = 820 k C8,C73,C89 = 1 n/50 V, 5 %, NP 0
R3,R5,R11,R13 = 8k2 C17,C21,C23,C55,C60 = NC (Not Connected)
R4,R10,R47,R55,R56,R71,R72,R78,R81,R82,R94,R95 = 10 k C19,C25 = 150 p/50 V, 5 %, NP 0
R6,R58,R59 = 1k8 C22,C52,C58,C59 = 1,5 n/50 V, 5 %, NP 0
R7,R100 = 5 k Trimmpoti (Vishay-Sfernice TS53YJ502MR10) C24,C32,C69,C72,C74,C75,C81,C85 = 22/16 V, 10 %, X7R
R8,R60,R62 = 16 k C30,C57 = 4n7/50 V, 5 %, NP 0
R9,R23,R25,R35,R38,R39,R41,R52,R68,R69,R70,R87,R88,R96 = 56 C38,C39,C83,C84 = 33 p, 5 %, NP 0
R12,R14 = 5k6 C42,C70 = 33 /6,3 V, Tantal, Bauform A (Vishay-Sprague
R15,R97 = NC (Not Connected) 293D336X96R3A2TE3)
R18 = 10 k 0,05 %, 10 ppm (Panasonic ERA6ARW103V) C66,C71,C82 = 10 n/50 V, 10 %, X7R
R19 = 1 C67,C77,C79 = 47/10 V, 10 %, X5R
R20 = 1 k 0,05 %, 10 ppm (Panasonic ERA6ARW102V) C68,C76 = 470 /6,3 V, Tantal, Bauform D (Kemet
R21 = 100 0,05 %, 5 ppm (Vishay-Dale TNPU0805100RAZEN00) T495D477K006ATE100)
R22 = 100 k 0,05 %, 10 ppm (Panasonic ERA6ARW104V)
R24,R26,R27,R29,R33,R36,R37,R40,R44,R57,R64 = 100 Induktivitten:
R30,R61,R76,R77,R80,R101 = 20 k L1 = Doppelinduktivitt 20 H, SMD (Bourns PM3602-20-RC)
R31 = 750 L2,L3 = Ferritperle, SMD 0805 (Murata BLM21PG221SN1D)
R32,R42,R49,R66,R93 = 100 k
R43,R84,R85,R86,R89 = 22
Halbleiter:
R45,R73 = 39 k
(SMD, wenn nicht anders angegeben)
R46,R90,R91 = 680
D1,D2,D3,D4,D5 = BAV199 (SOT23)
R48,R51,R74 = 4k7
D6 = LED 3 mm grn, bedrahtet, Montage horizontal (Dialight
R50 = 0
551-0207F)
R53,R65 = 470
D7 = MBR0520 (SOD123)
R54 = 1 k
D8,D9 = LED rot, SMD 0805 (z. B. Kingbright KP-2012SURC)
R63,R98 = 1k6
D10 = BAT54A (SOT23)
R67 = 62
U1 = OPA725AIDBV (TI, SOT23-5)
R75 = 5 k Trimmpoti (Bourns 3266W-1-502LF)
U2 = MAX7404CSA (Maxim, SOIC-8)
R79 = 4k3
U3 = 74HCT4052D (SOIC-16)
R81 = 7k5
U4,U20 = TLC2274AID (TI, SOIC-14)
R83 = 30 k
U5 = INA128U (TI, SOIC-8)
R92 = 430
U6,U11,U14 = OPA365DBV (TI, SOT23-5)
R99 = 2 k
U7 = PGA103U (TI, SOIC-8)
U8 = 74HCT4053D (SOIC-16)
Kondensatoren: U9 = C8051F061-GQ (Silicon Laboratories, TQFP-64)
(SMD 0805, wenn nicht anders angegeben) U10 = LM4040D25IDBZ (TI, SOT23)
C1,C2,C4,C10,C11,C12,C20,C26,C27,C28,C29,C31,C33,C34,C35,C36, U12 = DAC8811CDGK (TI, MSOP-8)

28 | Mai 2013 | www.elektor-magazine.de


LCR-Meter

Vorbereitungen der Oberseite wird der Deckel mit den Funktionen


Bohren Sie an den Seiten runde Durchbrche fr der Bedienelemente beschriftet. Die Schrift kann
die BNC-Buchsen und fr die LED D6. Die USB- graviert werden, oder sie wird im Siebdruckverfah-
Buchse und der Drehschalter SW1 haben ihren ren aufgetragen (siehe Bild 5). Das Display- und
Platz auf der anderen Seite, hier mssen die Bedienmodul ist stabil befestigt, wenn es von vier
Durchbrche rechteckig sein. Wenn keine Stanz- 12 mm langen M3-Gewindeschrauben mit 7 mm
werkzeuge verfgbar sind, gengen auch ein Satz langen Abstandsrollen und einigen zustzlichen
feiner Feilen, ein Metalllineal, ein gutes Augen- Distanzscheiben gehalten wird.
ma sowie natrlich etwas Ausdauer und Geduld. Zum Schluss dieses Absatzes noch zwei Hinweise
Das Gehuse muss mit dem Massepunkt der zu den Jumpern: Im Regelfall startet das PC-
Hauptplatine verbunden werden. Dazu ist eine Programm ber die USB-Verbindung die Firm-
Bohrung im Gehuseboden ntig, die der Bohrung ware des Mikrocontrollers. Das ist jedoch nur
der Hauptplatine nahe J16 gegenber liegt. Eine mglich, wenn das LCR-Meter fehlerfrei arbei-
M3-Gewindeschraube zusammen mit einer 5,5 mm tet. Ist diese Voraussetzung nicht erfllt, bei-
langen Abstandsrolle, mehreren Distanzscheiben spielsweise weil ein Firmware-Update einen Bug
und einer Mutter stellen die elektrische und mecha- enthlt, muss der Bootloader einen unbedingten
nische Verbindung her. Das Display- und Bedien- Reboot durchfhren. Zum unbedingten Reboot
modul (DKM) wird im Gehusedeckel montiert. Auf wird der Bootloader mit Jumper J17 veranlasst.

a b
Bild 1. Diese Seite (a) der doppelseitigen Messmodul-Platine wird zwar Bestckungsseite genannt...
...doch auch auf der anderen Seite (ohne Aufdruck!) mssen Komponenten montiert werden (b).

U13 = SN74LVC2G53DCT (TI, SM-8) J4,J5,J14 = Stiftkontakt 1-polig abgewinkelt (siehe Text)
U15 = REG102GA-A (TI, SOT223-5) J10,J11,J12,J13 = BNC-Buchse horizontal, isoliert (z. B. TE Connectivity
U16 = LT1611CS5 (Linear Technology, SOT23-5) 1-1337543-0)
U17 = TPS72325DBV (TI, SOT23-5) J15 = Stiftkontaktleiste 10-polig HE10 (z. B. Multicomp MC9A12-1034)
U18 = TLV70030DDC (TI, SOT23-5) J16 = Stiftkontaktleiste 14-polig HE10 (z. B. Multicomp MC9A12-1434)
U19 = FT232RL (FTDI, SSOP-28) J17 = Stiftkontaktleiste 2-polig abgewinkelt, Raster 2,54 mm
J19 = USB-Buchse Typ B, horizontal (z. B. TE Connectivity 292304-1)
Auerdem: K1 = Drucktaster (Omron B3F-10xx Series)
Y1 = Quarz 24 MHz (z. B. Euroquartz 24.000 MHz Platine 110758-1
HC49/4H/30/50/40+85/18pF/ATF) oder aufgebaute und getestete Platine 110758-91
SW1 = Drehschalter (RS Components 734-6934) Gehuse: Hammond, 1455L1601 mit Beschriftung
J1,J2,J3,J6,J7,J8,J17,J21,J22 = Stiftkontaktleiste 2-polig, Raster Schrauben und Muttern (Gewinde M3), Abstandsrollen, Scheiben
2,54 mm

www.elektor-magazine.de | Mai 2013 | 29


Projects

Bild 2.
Dies ist der Prototyp des
LCR-Meters.

Die Dokumentation, die Bestandteil des Down- Halbautomatische Kalibrierung


loads auf der Projektseite [3] ist, enthlt eine Hochprzise Messgerte wie unser LCR-Meter
Beschreibung der Startprozedur. legen nahe, dass zum Kalibrieren und Einstellen
auer einem hohen gertetechnischen Aufwand
Wir empfehlen, die Kontaktstifte der Testpunkte auch Spezialkenntnisse gefordert sind. Beides
J4, J5 und J14 rechtwinklig abzubiegen, so dass trifft hier nicht zu. Auer einem Multimeter zur
sie fr die Messklemmen leicht zugnglich sind. Kontrolle der Betriebsspannungen werden keine
Hinweise zu den brigen Jumpern enthlt die Messgerte bentigt, es gengen ein kleiner
Online-Dokumentation auf der Projektseite. Schraubendreher und etwas Geduld. Die Software

Stckliste Display- und Bedienmodul


Widerstnde:
(SMD 0805, 1 %)
R1,R2,R3,R4,R10,R11 = 4k7
R5,R6,R7,R9 = 56
R8 = 1 k

Kondensatoren:
(SMD 0805)
C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 = 1 /25 V, 10 %, X7R

Halbleiter:
D1,D2,D3,D4 = BAT54A (SOT23)
D5 = LED 3 mm grn, bedrahtet (z. B. Kingbright L-424GDT)
Q1,Q2 = MOSFET N-Kanal (SOT23, z. B. Fairchild FDV303N)

Auerdem:
U1 = Grafik-Display: Displaytech 64128M-FC-BW-3
J1 = Stiftkontaktleiste 14-polig, Low-Profile HE10, Hhe 5,4 mm
(Harting 09 18 114 9622) Bild 3. Platine fr das optionale Display- und Bedienmodul.
K1,K2,K3,K4,K5 = Drucktaster (Multicomp TS0B22)
Flachkabel-Steckverbinder fr 14-adriges Kabel (z. B. Multicomp
MC6FD014-30P1)
Platine 110758-2
14-adriges Flachkabel, Lnge 1 m, 10 cm werden bentigt (3M
oder aufgebaute und getestete Platine 110758-92
3365-14)

30 | Mai 2013 | www.elektor-magazine.de


LCR-Meter

fhrt eine halbautomatische Kalibrierung durch.


Der Anwender muss nur wenige Einstellungen
vornehmen, die Software geleitet ihn schrittweise
durch die Prozedur. In der (englischsprachigen)
Online-Dokumentation auf der Projektseite [3]
ist diese Prozedur umfassend beschrieben. Dort
ist auch angegeben, wann bestimmte, mit NC
markierte Bauelemente montiert werden mssen
und wie die Jumper zu setzen sind. Wir empfeh-
len, alle Teile der Online-Dokumentation sorgfltig
zu studieren und die Anweisungen in vorgege-
bener Reihenfolge auszufhren. Mit einmal kurz
Querlesen ist es hier nicht getan!
Im ersten Teil dieser Artikelfolge hatten wir Bild 4a. Die Kontaktleiste des Typs HE10 darf nicht hher als 5,4 mm sein!
bereits darauf hingewiesen, dass die Qualitt
der Messkabel von hohem Einfluss auf die Mess-
genauigkeit ist. Abhngig von der Art der Messung
knnen Kelvin-Messkabel zum Einsatz kommen
(Bild 7a), oder ein Messkopf mit vier BNC-Ste-
ckern, wie ihn Bild 7b zeigt. Beispiele sind der
Typ TH26001A (Four Terminal Test Fixture) von
Tonghui, Preis etwa 50 , oder ein artgleicher Typ
von Hameg. Solches Messzubehr ist im Internet
ber die Suchbegriffe LCR Test Clip, Kelvin Clip
oder TH26001A zu finden.
Nachdem die Montagearbeiten abgeschlossen
sind, wird die Stromversorgung an die USB-
Buchse angeschlossen, dann werden die Betriebs-
spannungen kontrolliert. Ohne Firmware im
Mikrocontroller sind alle Portleitungen hochoh- Bild 4b. Das Display- und Bedienmodul, Ansicht von unten.
mig, es geschieht nichts, Messungen sind nicht
mglich. Erst wenn das Messmodul mit einem
eingeschalteten PC verbunden wird, leuchten die Bild 5. Bohrplan fr die Gehuseseiten.

(103) 4x 3.2 mill 90 ( 6) depth 1.4


= =

4x 14 70
2.03

= =
=
(30.5)

80.83

=
=

3.5
37
1.48

61.40

22 10.39 11.61 22 3.2


=

R=2
(91.8)

43.18

5x 10.2
61.95

13
8.03

22.57

9
5.0

10.97
3.97
1.16

R=1
R=1
45.00 61.86 75.20 88.53 101.87 115.20 132.01
6.50
31.75 110758 - 17 (160.0)
110758 - 16

www.elektor-magazine.de | Mai 2013 | 31


Projects

LCR
meter

S/P/A +

Bild 6.
QD
Beschriftung der Frontplatte,
fr Gravur oder Siebdruck.

LEDs D8 und D9 auf. Dies ist ein Zeichen dafr, geflasht. Die Online-Dokumentation erklrt diese
dass der PC mit dem FT232R (U19) auf der Mess- Prozedur sowie die nachfolgenden Schritte.
modul-Platine Daten austauscht.
Danach starten Sie auf dem PC das Programm
Mit dem USB Debug Adapter aus Bild 8, ange- AU2011. Das Programm stellt die Verbindung mit
schlossen an J15, und dem Programm Flash- dem Bootloader her und ffnet einen seriellen
Util wird der Bootloader in den Mikrocontroller Port. Ist auch dies gelungen, muss nur noch ber

Bild 7a.
Die Kelvin-Messklemmen mit
BNC-Anschlssen kosten im
Handel ungefhr 10 .

32 | Mai 2013 | www.elektor-magazine.de


LCR-Meter

Bild 7b.
Der Messkopf von Hameg
passt unmittelbar auf die
LCR-Meter-Anschlsse.

Utilities/Load Firmware (Men von AU2011) die - Gehusebohrplne fr PC- und


Firmware in den Mikrocontroller geladen werden. Stand-alone-Version
Starten Sie nun das LCR-Meter neu und fhren - Frontplatte (Entwurf, nur fr
Sie die halbautomatische Einstellung der Off- Stand-alone-Version)
sets durch. Der Ablauf dieser Prozedur ist im
- Manuals, Getting Started und User Manual
Dokument Getting Started unter [3] beschrie-
ben. Klicken Sie im PC-Programm AU2011 auf
Start, um die erste Messung durchzufhren. Wenn
Sie jetzt das Symbol der offenen Messklemmen
sehen (Bild 9), dann haben wir Anlass, Ihnen
zu gratulieren: Sie haben das LCR-Meter 2013
erfolgreich aufgebaut!
(130093)gd

Weblinks und Literatur


[1] LCR-Meter 2013, Teil 1,
www.elektor.de/110758
[2] LCR-Meter 2013, Teil 2, Bild 8.
www.elektor.de/130022 In den leeren Mikrocontroller
muss der Bootloader
[3] LCR-Meter 2013, Teil 3,
geflasht werden, mit Hilfe
www.elektor.de/130093
dieses Moduls.

Download: Software, Platinenlayout


und Dokumentation
- Software (Bootloader, Firmware und
PC-Programm)
- Platinenlayouts 1 und 2
Bild 9.
- Bestckungsplne Oberseiten Platinen 1 und 2
Das Fenster mit dem Symbol
- Bestckungsplan Unterseite Platine 1 des offenen Messkreises ist
- Erweiterte Stckliste (BOM) das Zeichen dafr, dass das
LCR-Meter ordnungsgem
- XL-Version des Schaltbilds arbeitet.

www.elektor-magazine.de | Mai 2013 | 33


Projects

PICo PROto
Wie testet man schnell einen neuen Sensor? Und wie probiert man eine neue Idee
aus, ohne jeweils ein komplexes und teures Entwicklungs-Board konfigurieren zu
mssen? Diese Frage stelle ich mir oft, und getreu der Regel, dass man gerade auf
die einfachsten Dinge am hufigsten zurckgreift, habe ich PICo PROto entwickelt,
ein minimalistisches Prototyping-Tool

Von
Michel Kuenemann
(F)

Neue Technologien sind besitzen einen Verbinder im 2,54-mm-Raster und


Technische Eigenschaften faszinierend. Vor allem sind 1:1 mit den Anschlssen des eigentlichen
passend fr SO28- und der Einsatz von neuartigen Bausteins verbunden.
SSOP28-Gehuse Bauteilen, hauptschlich im Ich setze laufend verschiedene Mikrocontroller
minimale Kosten und Platzbedarf MEMS-Bereich (microelectro- aus der PIC18-Familie von Microchip im 28-Pin-
maximale Flexibilitt mechanical systems) inter- Gehuse ein. Der Wechsel zwischen den ver-
krzeste Aufbauzeit essiert mich. Diese werden schiedenen Typen ist einfach, da Microchip die
im Allgemeinen mit 3,3 V hervorragende Idee hatte, die Anschlsse dieser
betrieben und liefern ihre Bausteine zu standardisieren. Auerdem wer-
Daten ber Analogausgnge oder einen IC-Bus, den die Bausteine im traditionellen DIP-Gehuse
seltener via SPI. angeboten, so dass sich auf Experimentierpla-
Viele der modernen Sensoren werden in winzigen tinen vllig ohne Lten Versuchsaufbauten her-
Gehusen gefertigt, welche nicht per Hand gel- stellen lassen. Allerdings haben die Steckbretter
tet werden knnen. Glcklicherweise haben die drei groe Nachteile: erstens lassen Gre und
Hersteller dieser Wunderwerke ein Herz fr Ent- Gewicht den Einbau etwa in Flugmodelle nicht zu.
wickler, die sie einsetzen sollen, und bieten hierfr Zweitens ist die Qualitt der Verbindungen eher
oft kleine Entwicklungsplatinen mit aufgeltetem mau und drittens kann man die Schaltung selten
Sensor an. Diese so genannten Breakout-Boards lange so belassen, da das wertvolle Breadboard

34 | Mai 2013 | www.elektor-magazine.de


PICo PROTo

Geeignet fr alle PIC16/PIC18 in 28-poligen Gehusen

dringend fr den nchsten Einsatz bentigt wird. geringe Gre von 28 x 42 mm kann der Proto-
Sie haben Recht, wenn Sie hier einwenden, dass typ sowohl in einem Flugzeugmodell oder einem
Microchip viele bezahlbare Evaluation-Boards kleinen Roboter als auch in greren Aufbauten
anbietet, die nur auf meine Ideen gewartet haben, verwendet werden. Der Zwang zum Platzsparen
aber fr den Groteil meiner Versuche sind diese hat auch sein Gutes, da der Entwickler sich auf
Boards in punkto Anschlsse, Platzbedarf und den eigentlichen Zweck konzentrieren muss und
Preis deutlich berdimensioniert. nicht in Versuchung kommt, die Schaltung mit
Ich habe daher eine minimalistische doppel- berflssigem zu berfrachten.
seitige Platine entworfen; fr PIC16 und PIC18
im SO28-Gehuse auf der einen Seite und im Das Schaltbild
SSOP28-Gehuse auf der anderen. Auch ist Platz Keine berraschungen, es ist die Einfachheit
fr einige SMD-Bausteine. Auen herum ist ein selbst. Sogar die Bezeichnung Schaltbild (Bild 1)
Feld mit quadratischen Ltpads im 2,54-mm- ist etwas hoch gegriffen, da keinerlei Bauteile
Raster fr bedrahtete Bauteile und den unver- enthalten sind. Somit kann man direkt zur Praxis
zichtbaren (Programmier-)Anschluss, der den bergehen. Nebst den SO28- beziehungsweise
Prototyp mit der Auenwelt verbindet. Durch die SSOP28-Pads fr den Controller (bitte immer nur

1 8
1 28
2 SO8 7
2 27
3 footprint 6
3 26 (1.27 mm pitch)
4 5
4 25
5 24
6 23 1 8
7 SO28 footprint 22 2 7
(1.27 mm pitch)
SO8
8 21 3 footprint 6
(1.27 mm pitch)
9 20 4 5
10 19
11 18
1 8
12 17
2 SO8 7
13 16 TOP SIDE footprint
3 6
14 15 (1.27 mm pitch)
4 5

1 10
1 28
2 9
2 27 MSOP10
BOTTOM SIDE 3 8
3 26 footprint
4 (0.5 mm pitch) 7
4 25
5 6
5 24
6 23
1 8
7
SSOP28 footprint 22
(0.635 mm pitch) 2 MSOP8 7
8 21
3 footprint 6
Bild 1.
20
9
10 19
4
(0.635 mm pitch)
5 Dies ist kein normales
11 18 Schaltbild, da es keine
1 8
12 17
2 MSOP8 7 Bauteile aufweist, sondern
13 16
footprint
14 15
3
(0.635 mm pitch)
6 nur Ltpads. PICo PROto ist
4 5
kompatibel mit allen 8-Bit-
120137 - 11
PICs im 28-poligen Gehuse.

www.elektor-magazine.de | Mai 2013 | 35


Projects

einen montieren!) wurden Ltflchen fr SO8-


und MSOP8-Bausteine vorgesehen.
Dies zeigt die Vergrerung der doppelseitigen
Platine in Bild 2 genauer. Bild 3 zeigt Vorder-
und Rckseite zweier PICo PROto. Das Layout
weicht noch ein wenig von der endgltigen Ver-
sion ab; links ohne Bauteile, rechts die Rck-
seite mit einem TSSOP28-Baustein. Und bitte
Bild 2.
keine hsslichen Kommentare zur Qualitt der
Die doppelseitige und
durchkontaktierte Ltarbeiten!
Leiterplatte auf 150 %
vergrert. Einsatz von PICo PROto
Zuerst lten Sie den Controller Ihrer Wahl auf - je
nach Bauform - Vorder- oder Rckseite. Lten Sie
danach eine 5-polige Stiftleiste im 2,54 mm-Raster
ein, gegebenenfalls gewinkelt. Diese erlaubt den
Anschluss des notwendigen PICkit- oder ICD-Pro-
grammers, um Ihre Programme zu flashen und zu
debuggen. Verbinden Sie Stiftleiste und Control-
ler wie in Bild 4 dargestellt. Prfen Sie jetzt, ob
Ihre Entwicklungsumgebung MPLAB den Baustein
erkennt. Verbinden Sie dazu den Programmer mit
der Platine und Ihrem Entwicklungsrechner. Star-
ten Sie MPLAB, whlen Sie im Menu Programmer
Ihr Tool und prfen Sie, ob die Verbindung aufge-
baut wird. Angenommen, Sie verwenden PICkit3,
dann wird MPLAB jetzt folgenden Fehler anzei-
gen: You must connect to a target device to use
PICkit. Dies liegt daran, dass der C noch nicht mit
Spannung versorgt wird. Gehen Sie zu Program-
mer settings Power, prfen Sie, ob die fr
Ihre Anwendung passende Spannung eingestellt
Bild 3.
ist und klicken das Kstchen Power target circuit
Ein PICo PROto mit
unbestckter Vorderseite from PICkit3 an. Falls MPLAB eine Fehlermeldung
und einem Bauteil im SO28- wie Target Device ID (00005b60) does not match
Gehuse auf der Rckseite. expected DeviceID (00005960) ausgibt, dann ist

36 | Mai 2013 | www.elektor-magazine.de


PICo PROTo

das ein gutes Zeichen, falls Target Device ID von


VDD
Null verschieden ist. Whlen Sie unter Configure
Select device exakt den eingesetzten Controller-
Typ aus und alles sollte in Ordnung sein. Damit R1
C1
ist der handwerkliche Teil beendet!

10k
20
Falls Sie mit Ihrem Controller ber den USB K1
VDD
100n

1 1 21
kommunizieren wollen, nehmen Sie doch ein- MCLR RB0
2 22
RB1
fach den BOB-FT232 [2] zu Hilfe. Nach Einlten Pickit3 3
RB2
23
ICD2, ICD3
und Anschlieen von Verbinder K2 kann die Ver- 4 28
RB7/PGD RB3
24
5 27 25
bindung hergestellt werden; BOB-FT232 ber- RB6/PGC RB4
26
RB5
nimmt auch die Stromversorgung Ihrer Platine ICSP PIC16F/18F
(im Bild 4 unten ist die Verbindung PICo PROto 2
RA0 RC0
11
R2
3 12
RA1 RC1
mit BOB zu sehen). In diesem Fall mssen Sie vor 4 13

330R
RA2 RC2
dem Anschluss von BOB in MPLAB das Kstchen 5
RA3 RC3
14
6 15
Power target circuit from PICkit3 deaktivieren. 7
RA4 RC4
16 K2
RA5 RC5
Auch am BOB muss vorher mittels Jumper JP1 10
OSC2 RC6/TX
17 1

die fr Ihre Schaltung passende Versorgungs- 9


OSC1 RC7/RX
18 2
BOB
3 FT232
D1
spannung ausgewhlt werden. GND GND
4
8 19
Falls Ihnen das Blinken einer LED als Anzeige fr RUN
UART
den korrekten Programmablauf im Betrieb aus-
reicht, dann sollten Sie direkt eine rote LED wie
K2 K2
im Schaltplan dargestellt anschlieen.
1 1
Ein gestandener Elektroniker sollte den TX
2 2
VCCIO
RX TX
PICo PROto in weniger als einer Stunde aufge- VDD
3 3
RX
4 4
baut haben. Der Freiraum auf der Platine steht GND
5
GND
CTS
nun fr eigene Versuche zur Verfgung. PICo Proto
Abschlieend noch zwei Beispiele (Bild 5) fr BOB FT232 120137 - 12

den Einsatz von PICo PROto:


Test eines barometrischen Sensors mit ange- Bild 4.
schlossenem BOB. Anschlussschema eines PICo
Test eines Verfahrens zur Sprachsynthese mit Weblinks PROto.
einem PIC18F27J13 auf der Rckseite und einem [1] www.elektor.de/120137
Klasse-D-Verstrker mit einem SSM2301 auf der [2] USB-Seriell-Adapter BOB-FT232R,
Vorderseite. Elektor September 2011,
(120137) www.elektor.de/110553

b c

Bild 5
a - Testaufstellung mit
Luftdrucksensor (und BOB).

b - Rckseite mit
PIC18F27J13 im SSOP28-
Gehuse.

c - Auf der Vorderseite sitzt


ein Klasse-D-Verstrker
SSM2301.

www.elektor-magazine.de | Mai 2013 | 37


Industry

Tools fr
Vektor-Motorsteuerungen
MotorMind & SigmaBoard

Von In der letzten Elektor-Ausgabe


Roland Gehrmann,
Consumer- und Industrie-ICs, wurde das Konzept
Toshiba Electronics Europe
einer Motor-
steuerung
vorgestellt,
welche
auf der
Grundlage
von Toshibas
TMPM37x-Familie
spezieller ARM-
Cortex-M3-Controller
besondere, Firmware-
basierte Funktionen
bietet. Nun wird gezeigt,
wie Software dabei hilft,
BLDC-Motoren effizient, pr-
zise und leise bei einstellbaren
Geschwindigkeiten zu betreiben. Bild 1. Ober- und Unterseite des SigmaBoards.

Neben PMD-Funktionen (Programmable Motor ter-Kits und auch von Third-Party-Tools durch-
Drive) bieten diese Mikrocontroller eine VE (Vec- aus relevant. Besonders dem letzten Punkt wird
tor Engine), wodurch der Umgang mit dem kom- Rechnung getragen, wenn man Mikrocontroller
plexen Gebiet der FOC (Field Oriented Control) mit nichtproprietren Architekturen whlt. Da
erleichtert wird. Die Mikrocontroller-Hardware ist die Toshiba-Controller auf einem ARM-Cortex-
nur ein (wichtiger) Aspekt fr eine gut funktio- M3-Kern basieren, setzt man damit auf einen
nierende Steuerung. Selbst mit speziell an die Defacto-Industriestandard, fr den viele Firmen
Aufgabe angepasster Hardware bleibt eine intel- wie Atollic, IAR oder Keil Untersttzung anbieten.
ligente Motorsteuerung eine Herausforderung.
Die Verfgbarkeit guter Support-Tools spielt eine Entwicklungs-Hardware
groe Rolle bei einer erfolgreichen System-Imple- Man ist nicht nur auf Third-Party-Tools ange-
mentierung. Es muss also nicht nur das System wiesen, da die Hersteller von Mikrocontrollern
an sich passen, sondern auch das Support-ko- zunehmend in den Support investieren und ihre
system stimmen. Fr das Prototyping sind Punkte eigene Entwicklungs-Software und Hardware
wie die Verfgbarkeit von Referenz-Designs, Star- anbieten. Ein Beispiel ist das neue, preiswerte

38 | Mai 2013 | www.elektor-magazine.de


Motorsteuerung

SigmaBoard (Bild 1) von Toshiba. nungen sinnvoll, hilft aber auch beim Testen von
Dieses komplette kleine Entwicklungs-Board misst Antrieben fr E-Bikes im realen Einsatz.
nur 2,5 x 5 cm und dient nicht nur als Starter-Kit, Mit MotorMind kann man alle relevanten Motor-
sondern fungiert gleichzeitig als Referenz-Design. Parameter konfigurieren. Man kann z.B. die Dreh-
Man kann damit sehr gut FOC- bzw. Vektor-Steu- zahl ndern und dabei die Reaktion auf dem
erungen fr brstenlose Gleichstrommotoren bis grafischen Display in Form von Ziel-Drehzahl,
zu 36 V / 2 A realisieren. Auf der digitalen aktuelle Drehzahl und Drehmoment in Echtzeit
Oberseite sitzt ein TMPM373-Mikrocontroller verfolgen. Die Software bietet sogar bestimmte
von Toshiba, ein USB/seriell-Wandler mit einem DSO-Funktionen (Digital Storage Oscilloscope)
Durchsatz von 115 kbit/s, eine USB-Buchse mit erweiterten Trigger-Mglichkeiten.
zum Anschluss an einen PC, eine RGB-LED zur Mit MotorMind ist ein angepasstes Setup eines
Anzeige der Motorphase, die High-Side-MOSFETs Motors in einer Stunde machbar. Einmal konfigu-
sowie ein U-, V- und W-Anschluss fr den Motor. riert kann das SigmaBoard dann als fertige Motor-
Auf der unteren analogen Seite befinden sich steuerung ohne PC fungieren. Fr einen kompletten
die Gate-Treiber, die Strom-Sensorik mit einem
50-m-Shunt-Widerstand und zugehrigem
Verstrker, ein berstrom-Komparator und die
Low-Side-MOSFETs.
Beim TMPM373 handelt es sich um einen 48-poli-
gen SMD-Chip mit stromsparendem, 32-bittigen
Controller, der bei einer Betriebsspannung von
5 V mit einer Taktfrequenz von bis zu 80 MHz
betrieben werden kann. Der Controller enthlt
die schon angesprochenen VE- und PMD-Funktio-
nen. Seine Peripherie-Funktionen sind speziell auf
die Anwendung in Motorsteuerungen optimiert.
Der auf dem SigmaBoard bestckte Controller
ist schon mit der Motorsteuerungs-Firmware von
Toshiba versehen, was die Entwicklung speziel-
ler Software berflssig macht. Der Flash-Spei-
cher des Chips untersttzt Rapid Programming.
Zustzlich vereinfacht eine OFD-Einheit (Oscilla-
tion Frequency Detection) die Kompatibilitt zu
den Sicherheitsstandards nach IEC 60730.
Fr maximale Flexibilitt gibt es auch noch
Anschlsse zur Ansteuerung einer zustzlichen Antrieb reicht daher die Kombination von Motor, Bild 2.
Leistungs-Platine auf dem SigmaBoard, so dass Stromversorgung und SigmaBoard. ber ein exter- Anzeige von Werten
man mit der gleichen Firmware und derselben nes analoges Signal kann man dann die Drehzahl der Motorsteuerung in
MotorMind.
Logik auch Motoren grerer Leistung ansteu- einstellen. Es gibt noch einen PWM-Speed-Eingang,
ern oder andere Anwendungen erschlieen kann. Fehler-Erkennung und Anzeige und auerdem kn-
nen auch Tachosignale angeschlossen werden, was
Software-Support aber nicht unbedingt erforderlich ist.
Das SigmaBoard wurde fr den Einsatz mit
Toshibas MotorMind-Software konzipiert. Diese MotorMind-Fhigkeiten
freie Software luft auf einem PC oder einem Mit MotorMind lassen sich Motor-Parameter wie
Android-System und stellt eine intuitive und daher Pol-Paare, Strom, Drehrichtung, Beschleunigung
einfach zu bedienende GUI zur Verfgung. Bei und Encoder-Details eingeben und auf das Sigma-
einem Android-Smartphone oder Tablet erfolgt Board laden. Es gibt Einstellungen fr PI-Regler
die bidirektionale Kommunikation ber eine Blue- (Proportional-Integral) und System-Parame-
tooth-Verbindung mit dem Board. Das ist nicht ter wie Totzeit, PWM-Frequenz und Shutdown/
nur hoch flexibel, sondern impliziert gleichzeitig Restart-Verhalten alles schn grafisch mit GUI.
eine galvanische Trennung. Dies ist vor allem Es knnen auch Einstellungen vom SigmaBoard
beim Ausprobieren von Motoren fr hhere Span- gelesen werden.

www.elektor-magazine.de | Mai 2013 | 39


Industry

Werte bei nderungen einzelner Parameter in


Echtzeit reagieren. Es lassen sich so gut Betriebs-
arten wie Beschleunigen und Bremsen beurteilen.
Parameter knnen leicht in eine Header-Datei
exportiert werden, die dann nachfolgend in die
Firmware eingebunden werden kann. Die Funkti-
onen zum Sichern und Einlesen von Parametern
erlauben die Verwendung der Software auch mit
unterschiedlichen Motor-Anwendungen.
Last not least: Der Wettbewerb [2] von Toshiba
und Elektor zu Motorsteuerungen luft noch.
Machen Sie mit!
(120725)

Weblinks
[1] Support:
http://forum.toshiba-components.com/fo-
rum.php
[2] Toshiba-Wettbewerb:
www.elektor-labs.com/M370-contest
Bild 3. Die Software hat diverse Fenster, darunter sogar [3] Demo-Video zu MotorMind:
Die Vector Engine des eine Anzeige, die ber die Auslastung des Cont- www.youtube.com/watch?v=iqhsvtEMMEk
Mikrocontrollers. rollers informiert. Dann gibt es noch ein Fenster
zur Motor-Konfiguration, das neben einem Start/
Stopp-Knopf einen Schieberegler zur Einstellung
der Drehzahl enthlt. Auerdem gibt es noch
zwei grere Fenster: eines mit einer aktuellen
Anzeige von Drehzahl, Drehmoment und Strom Design-Wettbewerb mit Toshibas M370
relativ zur Zieldrehzahl sowie das DSO-Display. BLDC-Motor-Controller mit M370 -
Die DSO-Funktion erfasst Signale mit einer Auf- attraktive Preise zu gewinnen
lsung bis zu 50 s bei einer PWM-Frequenz von Seit dem 26. Februar 2013 luft ein
20 kHz. Bis zu acht VE- und Firmware-Parameter hochinteressanter Schaltungswettbewerb von
aus einer Liste von 32 mglichen Signalen kn- Toshiba in Kooperation mit Elektor. Prmiert
nen gleichzeitig dargestellt werden. Darunter sind werden innovative Steuerungen fr BLDC-
die Spannungen und Strme der Pole, Strme Motoren auf der Basis des SigmaBoards. Wir
fr d- und q-Achsen, Proportionalkoeffizienten sind sehr gespannt auf neue Ideen!
und andere interne Signale der integrierten VE
(siehe Bild 2). Man kann wie bei einem richti- Es gibt interessante Sachpreise zu
gen DSO die Trigger-Quellen und Trigger-Bedin- gewinnen:
gungen wie fallende oder ansteigende Flanken, 1. Preis: Toshiba Multimedia-Notebook der
mittlerer oder linksseitiger Trigger und die Trig- Spitzenklasse mit 15-Display
ger-Schwelle einstellen (siehe Bild 3). Zustz- 2. Preis: Toshiba Tablet AT-300
lich ist es noch mglich, jeden n-ten Event zu 3. Preis: 60 GB SSD PC Upgrade Kit
loggen. Mit n 256 knnen damit auch lngere Interface SATA 6.0 Gbit/s, Size 2.5-inch
Abschnitte aufgezeichnet werden. Die Tick-Dauer (6,4 cm)
und die gesamte Aufzeichnungszeit werden unten 4. Preis: 8 GB Flash-Air-SD-Card
am Fenster eingeblendet. 5.-10. Preis: 64 GB USB-Stick

Fazit Der Wettbewerb wird bis zum 31. Juli 2013


Generell untersttzt MotorMind einen Entwickler dauern. Mehr Infos zum Wettbewerb gibt es
besonders dadurch, dass man beobachten kann, unter: www.elektor-labs.com/M370-contest
wie Controller-Auslastung, Motorverhalten und

40 | Mai 2013 | www.elektor-magazine.de


UNSER WICHTIGSTES
WERKZEUG
LEITERPLATTEN WEITER GEDACHT.

SCHNELLE
VIELFALT IST
BESSER!

llen.
Online

ste
be
lk

ka
uli e
eren. Onlin

RECHNEN SIE MIT BESTEM SERVICE

Wir denken weiter. Als lsungsorientiertes Unternehmen mchten wir unsere an-
spruchsvollen Kunden immer wieder mit neuen Ideen und sinnvollen Innovationen
begeistern. Als ein fhrender Online-Anbieter von Leiterplatten bieten wir erst-
klassige Leistungen in den Bereichen Service, Fairness, Technologie, Auswahl,
Komfort, Geschwindigkeit und Zuverlssigkeit. Unsere Webseite bietet eine
enorme Auswahl an Lsungen in der Online-Kalkulation sowie weiterfhrendes Wis-
sen, Informationen und Entwicklerwerkzeuge. Und sollte einmal etwas sehr Aus-
gefallenes gefordert sein, finden wir gerne Ihre persnliche Lsung. Sie knnen bei
LeitOn immer mit bestem Service rechnen.

www.leiton.de Info-Hotline +49 (0)30 701 73 49 0

Workshop-DVD Android
Programmierung und Hardware-Steuerung

Konnten Sie aus zeitlichen Grnden nicht an unserem ElektorLive-


Live-
Seminartag am 20.10.2012 in Dortmund teilnehmen und haben so-
mit auch die beiden populren Android-Seminare verpasst!? Kein Pro-
blem! Mit dieser neuen DVD-Video sind Sie jetzt trotzdem live dabei!

Entwickler und Buchautor Stefan Schwark stellt in seinem Seminar


die Grundlagen der Programmierung eigener Android-Applikationen
dar. Anhand von kurzen Programmen erklrt er den Umgang mit der
Entwicklungsumgebung Eclipse und dem Android SDK. Der Schwer-
punkt liegt hierbei auf Android-Apps, die einfache Funktionen ausfh-
ren und so auch fr den Anfnger nachvollziehbar sind. Das Spektrum
reicht von einfachen Rechenprogrammen ber Applikationen zur Ab-
frage der Hardware des Android-Gertes bis zu Programmen fr die
Kommunikation ber das Internet.

Im zweiten Seminar zeigt Bernhard Wrndl-Aichriedler (Entwickler


des AndroPod-Moduls) in einem Crash-Kurs, wie Sie Ihr Android- ISBN 978-3-89576-272-7
Gert als Schaltzentrale in eigenen Projekten benutzen knnen. &+)

Weitere Infos & Bestellung unter


www.elektor.de/android-dvd

Naamloos-7 1 08-04-13 09:45


Labs

Sorry about my English


Von Clemens Valens Haben Sie sich schon einmal verzweifelt durch Online-Diskussionsgruppen zum
(Elektor .Labs)
Thema Elektronik gekmpft, auf der Suche nach dem goldenen Tipp, der ihre
nicht funktionierende Schaltung zum Laufen bringen knnte? Wahrscheinlich sind
Sie dann nach dreiviertel der siebten Seite auf einen Satz wie sorry about my
english oder hnliches gestoen. Ich habe so etwas auch schon fter auf der
Elektor.Labs-Seite gesehen.

Dear Poster, let me tell you this, as the moderator of the .labs site I dont give a []
[] about your English, you just saved my [] day, maybe my [] job (sorry for
my English ;-). Also: Posten Sie weiterhin interessante Sachen und machen Sie sich
keinen Kopf ber Grammatik oder Interpunktion. Ich bin sicher, dass die meisten
Menschen Sie verstehen, wenn Sie ber spannende Dinge schreiben

Mutiger Elektronik-Ingenieur verhindert Bahnkrieg

EDITORS
We i l z w e i k o n k u r r i e r e n d e
Fahrdienstleiter nur widerwillig

CHOICE
die Kontrolle des jeweils anderen
Zuges bernehmen und dies
zu groben Unhflichkeiten
zwischen den Parteien fhrt,
beschloss Elektroniker waltro,
dass damit Schluss sein msse.
Statt die andauernden Feindseligkeiten
zu ignorieren, fand er, dass es an der Zeit
sei, dagegen etwas zu tun. Eines Nachts, als
beide verfeindeten Parteien schliefen, brach
unser tapferer Ingenieur in die Zge ein und
ersetzte ihre alten Kontrollsysteme durch
eine clevere Eigenproduktion. Am nchsten
Morgen war der Frieden dank der Multi-
Channel-Fhigkeiten der neuen Regelung
hergestellt. Well done, waltro!
www.elektor-labs.com/node/3020

42 | Mai 2013 | www.elektor-magazine.de


elektor labs

Perfektes Projekt vom schlechten Titel ermordet!


OP BifrostDevGrp hatte glcklich die Entwicklung einer kleinen und cleveren mobilen
geregelten batteriebetriebenen 3,3 V / 5 V-Stromversorgung einschlielich eines Multi-
Source-Laders abgeschlossen, deren 950 mAh-Li-Ion-Zelle mit einem Steckernetzteil,
von einem USB-Anschluss und sogar drahtlos geladen werden konnte. Und jetzt die
Katastrophe: Der OP beschloss, seinem Projekt einen gar zu lustigen Namen zu
geben und es auf der Elektor.Labs-Webseite zu posten. Er ahnte nicht, was
er da angerichtet hatte. Wenn doch wenigstens die ersten Zeilen seiner
Beschreibung fesselnder gewesen wren... Aber so geriet das Projekt in
Vergessenheit. Zum Glck halten wir Ausschau nach solchen Projekten
und konnten es gerade noch retten!
www.elektor-labs.com/node/2969

Der beste Low-Power-Rhrenverstrker aller Zeiten


Leidenschaft (und manchmal auch Geld) ist der Schlssel
zu groen Dingen. OP Ken hat eine Passion fr High-end-
Audio und startete ein Projekt, um den optimalen Low-Power-
Rhrenverstrker zu entwerfen. Der OP hat eine Menge
Vorarbeit geleistet und eine Auswahl von Teilen und Materialien
getroffen, aber noch nicht alle Details geregelt. Dazu braucht
er nun Ihre Hilfe. Spren Sie auch den Audiophilen in sich?
Mchten Sie auch ein Teil des Besten aller Zeiten sein? Seien
Sie ehrlich, wer wrde das nicht? So teilen Sie Ihre Meinung zu
Trafos, Kondensatoren und anderen, den Klang bestimmenden
Bauteilen mit!
www.elektor-labs.com/node/2949

Mllkalender zu kompliziert
Ich habe bisher nie einen Mllkalender meiner Stadt gebraucht, ich
wusste fast instinktiv, welche Tonne an welchem Tag vor die Tr gestellt
werden musste. Jetzt hat sich das Schema gendert und ich komme
nicht mehr klar. Was ich brauche, ist eine Gedchtnissttze!
MarkDonner hat eine Idee fr eine solche Vorrichtung auf .Labs gepostet.
Und dann schloss sich Amigaman an und berichtet von einem TTL-Grab
aus den 80ern, das die gleiche Funktion zur Verfgung stellte. Ich
entdeckte, dass ich nicht allein bin. Es gibt noch andere Leute mit der
gleichen Erkrankung und jetzt haben wir auch unsere eigene Support-
Gruppe. Sind Sie auch auf der Suche nach Hilfe? Dann begleiten Sie
uns und arbeiten mit am elektronischen Mllkalender!
www.elektor-labs.com/node/2946
(130090-I)

www.elektor-labs.com
Anmerkung: OP steht fr Original Poster, der Person, die ein Online-Projekt oder eine Diskussion beginnt. OPs, die die Chance wahren wollen, dass ihr Projekt in Elektor
verffentlicht wird, sollten immer darauf achten, dass ihre E-Mail-Adresse fr den Zugang zu Elektor.Labs korrekt ist. Nur so knnen wir auch Kontakt mit Ihnen aufnehmen.

www.elektor-magazine.de | Mai 2013 | 43


Labs

Fallstricke in der Platinenproduktion


Von Thijs Beckers Reflow- oder Wellenlten ist eine Technik, die in Pro- Schwanz in die Bewegungsrichtung der Lot-
(Elektor-Redaktion) duktionslinien komplette Leiterplatten sehr schnell Welle. Dieser Effekt kann auch am SMD-Wider-
verzinnt. Dabei wird die Platine ber eine Welle stand ganz links beobachtet werden. Offenbar
von flssigem Lot bewegt, wodurch alle Pads und bewegte sich die Lotwelle von links nach rechts.
Bauteile auf einer Seite der Leiterplatte sehr schnell Unglcklicherweise fhrt dies zu einigen Beschrn-
verzinnt werden. Das Internet zeigt in tausenden kungen beim Entwurf des Platinenlayouts. Schauen
von Bildern und kurzen Videos, wie das in der Pra- Sie einmal auf die zweite Aufnahme der Platine.
xis funktioniert. Dieser Prozess wird in der Indus- Die Ltrichtung ist die gleiche wie bei der ersten.
trie seit vielen Jahren verwendet und sollte seine Haben Sie schon das Problem erkannt?
Praxistauglichkeit ausreichend bewiesen haben. Auf der linken Seite der Induktivitt (obere
Aber es gibt einige Dinge, die beim Reflow-Lten schwarze Komponente) und des Kondensators
einfach nicht vermieden werden knnen. Wer- (beige Komponente darunter) sieht man die
fen Sie einen genauen Blick auf das erste Bild. miteinander durch das Platinenlayout verbun-
Das Lot am linken Ende des SMD-Kondensators denen Pads. Aber auf der rechten Seite gibt es
weist eine viel steilere Rampe als das am anderen einen offensichtlichen Kurzschluss zwischen den
Ende auf. Und das nicht nur, weil sich an einem Pads, wodurch die Bauteile nutzlos werden und
Ende eine Durchkontaktierung und folglich kein die ganze Schaltung nicht mehr funktionieren
Ltstopplack befindet. kann (in diesem Fall durch einen massiven Kurz-
Wenn sich die Leiterplatte durch die Ltmittel-Welle schluss der Spannungsversorgung nach Masse).
bewegt, gelangt in der Bewegungsrichtung etwas Wie konnte das passieren? Sicher, es gibt eine
weniger Lot auf die vordere und etwas mehr auf Ltstoppmaske zwischen den Pads, die nun unter
die Rckseite des Bauteils. Genau wie ein Kome- einem Klumpen von Lot begraben ist. Aber dies hat
tenschweif in Richtung der Sonne zeigt der Lot- nicht den Kurzschluss verhindert. Denn hier zei-
gen sich nmlich die Grenzen des Reflow-Ltens.
Alles wre gut gewesen, wenn der Kondensator
nicht direkt neben der LC-Entkopplung platziert
wre, die wie eine Wand fr die Ltwelle wirkt
und eine Falle fr das Ltzinn zwischen diesen
drei Bauteilen darstellt. Kein Ltstopplack wrde
dies verhindern! Die einzige Lsung besteht darin,
die Platine so zu routen, dass die Bauteile aus-
reichend weit voneinander entfernt sind. Oder
Sie wechseln zu einem alternativen Ltverfahren
(Ltkolben?). Natrlich wre es am besten, wenn
der Platinendesigner von vornherein wsste, mit
welchem Verfahren die Platine geltet werden
wird, so dass er diese Art von Fallstricken ver-
meiden knnte.
Und wenn Sie sich fragen, was diese rtlichen
Ausbuchtungen zu bedeuten haben, die unter den
Bauteilen hervorquellen: Klebstoff, der die Kompo-
nenten whrend des Ltvorgangs in Position hlt.
Die Platinenoberflche, die Sie auf den Bildern
sehen, ist eigentlich die Unterseite. Whrend des
Reflow-Ltens stehen die SMDs immer auf dem
Kopf. Wenn man sie nicht auf die Platine kleben
wrde, so verschwnden sie in der Ltwelle. Doch
keine Sorge, die Mitarbeiter an der Platinenbest-
ckungsanlage kmmern sich darum ;).
(130027)

44 | Mai 2013 | www.elektor-magazine.de


Von den Machern von Elektor!

Oder frei Haus unter www.elektor.de/roehren9 bestellen!

Roehren9 full page.indd 1 28-03-13 09:00


Labs

Keramikkondensatoren voll daneben!


Von Thijs Beckers 250

(Elektor-Redaktion)

200

150

100

50

0
0 50 100 150 200 250 300 350 400 450 500

Immer ist was los im Elektor-Labor! Bei der Mon- Werte vor der groen Hitze durchweg zwischen
tage des Prototyps unseres brandneuen 500 ppm 170 pF und 180 pF lagen, aber danach waren
LCR-Meters lernte mein Kollege Jan schmerz- sie deutlich gesunken, fast genau auf den rich-
lich eine oft bersehene Eigenschaft von Kera- tigen Sollwert. Zum Beispiel wurden aus 178 pF
mikkondensatoren kennen. Es passierte, als er 156 pF, aus 173 pF 152 pF.
keramische Kondensatoren mit einem Wert von Bis zur Deadline fr diesen Artikel ist es uns
150 pF bentigte. Taufrisch kamen sie aus dem nicht gelungen, das Phnomen zu erklren, aber
Verpackungsmaterial auf den Labortisch und wur- wir vermuten, dass das Dielektrikum dabei eine
den mit unserer bewhrten SMD-Rework-Station entscheidende Rolle spielt. Wenn Sie eine Idee
auf die Platine geltet. Aber spter, whrend des haben, was der genaue Grund sein knnte, sch-
Kalibriervorgangs, traten Probleme auf und Jan reiben Sie bitte an editor@elektor.com (Betreff:
konnte das LCR-Meter nicht korrekt abgleichen. ceramicz). Als Belohnung fr Ihre Bemhungen
Jan ist es gewohnt, dass Bauteile nicht das tun, und eine sinnvolle Antwort halten wir ein mbed
was man von ihnen erwartet, und berpfte LPC11U24 Kit [1] von NXP bereit und verffentli-
den Keramikkondensator, der fr die Kalibrie- chen Ihre Klarstellung in einer spteren Ausgabe.
rung eingesetzt wurde. Und er ma einen Wert Viele unserer Leser sind ja erfahrene Ingenieure
von 157 pF statt der versprochenen 150 pF. Dies und wissen, dass bestimmte (Erhitzungs-)Pro-
erwies sich bei der Kalibrierung als zu hoch. Dann tokolle in den Produktionsprozess eingebunden
hat Jan ein paar weitere Kondensatoren aus der sind, aber wenn Sie ein Newbie sind und/oder
Lieferung vermessen: Der Nennwert wurde weit keinen Zugriff auf professionell abgeglichenes
berschritten, alle gemessenen Kondensatoren Baumaterial haben: Achten Sie auf temperatur-
wiesen Werte zwischen 168 pF und 183 pF statt kritische Komponenten und schenken Sie ihnen
150 pF 5% auf. die erforderliche Aufmerksamkeit!
Dies veranlasste uns zu einem kleinen Test. Wir (130118)
haben eine Reihe von Kondensatoren dem Stan-
dard-Verfahren - Reflow-Lten im SMD-Ofen [1] http://mbed.org/handbook/
ausgesetzt und die Werte vor und nach dem Erhit- mbed-NXP-LPC11U24
zen verglichen. Es stellte sich heraus, dass ihre

46 | Mai 2013 | www.elektor-magazine.de


ECD 7 Bauteilbibliothek mit
ber 75.000 Komponenten

Diese CD-ROM bietet Ih-


nen acht Datenbanken
fr ICs, Germanium- und
Silizium-Transistoren,
FETs, Thyristoren, Triacs,
Dioden und Optokopp-
ler. Weitere elf Anwen-
dungen zur Berechnung
von Vorwiderstnden bei
LEDs, Spannungsteiler,
Ohmsches Gesetz sowie
Farbcodeschlssel fr
Widerstnde und Induk-
tivitten etc. runden das
Programmpaket ab.

Jede Datenbank zeigt fr (fast) jedes Bauelement eine Gehu-


seskizze, die Anschlussbelegung, die technischen Daten (soweit
bekannt) und verfgt ber eine Suchroutine nach Bauteil-
Parameter.

Alle genannten Datenbank-Anwendungen sind interaktiv, d. h.


Sie knnen Bauteile hinzufgen, ndern oder ergnzen.
ISBN 978-90-5381-298-3 29,50 CHF 36,60

Weitere Infos &


Bestellung unter
www.elektor.de/ecd7

ARM-Mikrocontroller 2
30 Projekte in C fr Fortgeschrittene
Die Projekte in diesem Buch sind fr Einsteiger in C und ARM-Mikrocontroller
ausgelegt. Das heit nicht, dass diese Projekte einfach sind. Sie sind aber
einfach zu verstehen. Es wird beispielsweise die USB-Verbindung zur
Kommunikation benutzt, eine Methode, die im mbed-Board so einfach
integriert ist, dass sie sich auch fr ein Einsteiger-Buch eignet.

Der mbed NXP LPC1768 nutzt Cloud-Technologie, ein revolutionres Konzept


in der Software-Entwicklung. Es bedeutet, dass man keinerlei Software
auf seinem PC installieren muss, um den mbed zu programmieren. Das
Einzige, was Sie brauchen, ist ein Webbrowser mit Internetzugang und
einen freien USB-Anschluss an Ihrem PC. Sie knnen von jedem beliebigen
Ort der Welt auf Ihr Projekt zugreifen und daran weiterarbeiten. Wenn Sie
fertig sind, gengen ein paar einfache Mausklicks, um Ihr Programm auf
das mbed-System zu bertragen. Natrlich knnen Sie die Projekte auch
auf Ihren eigenen PC laden und dort speichern.

Die Quelltexte zu den Beispielprogrammen stehen gratis unter 243 Seiten (kart.) Format 17 x 23,5 cm
www.elektor.de/arm-buch2 zum Download bereit. Das zum Buch gehrige ISBN 978-3-89576-271-0
Hardware-Starterkit kann unter www.elektor.de/arm-kit2 geordert werden.
39,80 CHF 49,40

Weitere Infos & Bestellung unter


www.elektor.de/arm-buch2

Naamloos-7 1 08-04-13 09:49


Projects

Von BASIC nach Python (1)


Ein Erfahrungsbericht

Auf dem ersten PC des Autors aus den 80er Jah-


Von
Jean-Claude Feltes ren war zuflligerweise QuickBASIC ins-
(LU) talliert. Dies fhrte zu einer intensiven
Beschftigung mit der Programmierung.
Spter kam das allseits bekannte Visual
Basic ins Spiel. Mit der Hinwendung zu
Linux musste dann ein guter Ersatz fr
BASIC her. Und das wurde ein richtiger
Umstieg, denn Python ist schn knapp und
klar, aber auch anders

Vielleicht fragen Sie sich, was die Besprechung Schnittstelle ansprechen will. Fr kleinere Hacks
einer Programmiersprache in Elektor zu suchen kann man leicht ganz auf aufwendige Benutzer-
hat. Nun, Python eignet sich z.B. gut zur hard- schnittstellen verzichten und Variablenwerte
warenahen Programmierung kleiner Rechnersys- direkt im Code setzen. Bei interpretiertem Code
teme wie z.B. Raspberry Pi. Python und Elekt- kann man sogar zur Laufzeit Funktionen definie-
ronik gehen da eine durchaus enge Verbindung ren, um beispielsweise einen Funktionsplotter zu
ein. Ursprnglich brachte mich ein Kollege auf programmieren.
Python. Diese Programmiersprache und ihr
Konzept gefielen mir sofort, obwohl es recht Python ist sehr stark objektorientiert. Wenn es
groe Unterschiede zu Visual Basic gibt. Ein um einfache Programme geht, dann ist das weni-
Python-Quelltext beeindruckt durch Knappheit ger wichtig. In der Literatur und den Beispielpro-
und Klarheit er kommt ganz ohne Klammern grammen wird davon aber gerne und ausgiebig
und Strichpunkte aus, die zumindest mich bei Gebrauch gemacht. Man wrde Vieles nicht ver-
Pascal, C und Java schon immer gestrt haben. stehen, wenn einem das objektorientierte Kon-
Doch es gibt noch weitere Unterschiede. zept fremd bleibt.

BASIC versus Python Gewhnungsbedrftig (aber praktisch) ist der


Ein wichtiger Punkt ist: Python ist eine reine Minimalismus: Code-Blcke werden nicht durch
Interpreter-Sprache, es gibt keinen Compiler Klammern oder begin bzw. end gruppiert,
dafr. Dies ist sowohl Vorteil als auch Nachteil. sondern durch schlichte Einrckung des Quell-
Ein Python-Programm ist zunchst einmal lang- textes. Wie der Vergleich im Kasten C, BASIC
samer als ein compiliertes Programm, doch die und Python zeigt, fhrt dies zu sehr bersicht-
leistungsstarken Bibliotheken bewirken, dass lichem und kurzem Code.
man davon nicht viel sprt. Weiter erfordern
Python-Programme, dass auf dem Zielsystem Weitere Unterschiede: Im Gegensatz zu BASIC wird
der Interpreter plus eventuell bentigte Module zwischen Gro- und Kleinschreibung unterschie-
installiert sein mssen. den. Schn fr Elektroniker ist, dass Python mit
Von Vorteil ist, dass ein Programm schnell gen- komplexen Variablen umgehen kann. Es gibt pas-
dert werden kann, wenn man z.B. eine andere sende Interpreter fr Windows, Linux und OS X.

48 | Mai 2013 | www.elektor-magazine.de


Programmiersprachen

C, BASIC und Python


C Quick/Visual Basic Python
#include <math.h> Print Hello world! print "Hello world!"
#include <stdio.h> For x = 1 To 10 for x in range(0,11):
If x Mod 2 = 0 Then if x % 2 == 0:
int main(int argc, char *argv[]) Print x; ^2 = ; x^2 print x, "^2 = ", x**2
{ Else else:
printf ("Hello World\n"); Print x; ^3 =; x^3 print x, "^3 = ", x**3
int i; End If
int x; Next x
for ( i=0; i<11;i++)
{
if(i%2==0) Bei VB muss Print durch Debug.Print
{ x = pow(i,2); ersetzt werden, und der Code muss z.B.
printf ("%d ^2 = %d \n",i,x);} in einem Sub Form_Load() stehen.
else
{ x = pow(i,3);
printf ("%d ^3 = %d \n",i,x);}
}

return 0;
}

Installation sind interessante Module nebst Download-URLs


Wenn man sich den fr das eigene OS passenden aufgelistet.
Interpreter installiert, dann nimmt man dabei am Die Windows-Varianten verfgen ber bequeme
besten auch einige sinnvolle Zusatzmodule mit. Installer. Auf anderen Systemen geht man wie
Es stellt sich die Frage: Python 2.x oder 3? Fr folgt vor:
Version 3 fehlen leider noch wichtige Bibliotheken. Download (Archiv) in ein temporres Verzeich-
Hinzu kommt, dass es einen Backport von Ver- nis entpacken
besserungen in Version 2.7 gab, weswegen man in die Kommandozeile eingeben: python
auch ganz gut damit leben kann. In Tabelle 1 setup.py install

Tabelle 1: Module und Download-Links


Python 2.7 www.python.org/download/
Interpreter Auf Linux-Systemen ist Python schon installiert.
Numpy
http://pypi.python.org/pypi/numpy
Wissenschaftliche Zahlenverarbeitung etc.
Matplotlib
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/
Diagramme
PySerial
http://sourceforge.net/projects/pyserial/files/
Zugriff auf die serielle Schnittstelle
PyParallel
http://sourceforge.net/projects/pyserial/files/
Zugriff auf die parallele Schnittstelle
PyUSB
http://sourceforge.net/projects/pyusb/
USB-Modul
WxPython
www.wxpython.org/download.php
Erstellung von GUIs
Geany
www.geany.org/
Editor mit Syntax-Highlighting

www.elektor-magazine.de | Mai 2013 | 49


Projects

Daraufhin kopiert das Python-Script die erforder-


lichen Dateien in ein dem Interpreter bekanntes
Unterverzeichnis. Dieses ist vom Betriebssystem
abhngig (/usr/lib/python2.7 fr Ubuntu oder
\Python27\Lib fr Windows XP).

Bild 1. IDE oder Nicht-IDE?


Der freie Editor Geany. Zu Anfang habe ich eine IDE wie die von VB sehr
vermisst. Doch konnte ich mich ganz gut an das
Fehlen eines direkten quivalents gewhnen. Fr
einfache Programme gengt ein guter Editor. Ein
Beispiel ist der von mir bevorzugte Geany, der
als Freeware fr Windows und Linux verfgbar
ist. Er bietet automatisches Syntax-Highlighting,
wenn man die Datei mit der Extension .py
sichert. Schn ist auch sein Code-Folding und
dass man ein Script direkt aus dem Editor her-
aus starten kann.
Selbst bei OS X muss man nicht lange suchen,
denn die Apple-eigene Programmierumgebung
Xcode kapituliert auch nicht vor Python. Man muss
lediglich das 1,65 GB groe Paket kostenlos aus
dem Apple-App-Store laden. Der Xcode-Editor
stellt .py-Dateien auf Doppelklick hin korrekt dar.
Bild 2.
Die pythonisch korrekte Ein erstes Programm
Einrckung um 4 Programme knnen mit beliebigen Editoren
Leerzeichen. geschrieben werden. Bild 1 zeigt, wie so etwas
in Geany aussieht. In Python ist Einrckung des
Quelltextes sehr wichtig: Es knnen entweder
Tabulatoren oder Leerzeichen verwendet wer-
den - Mischen ist nicht erlaubt. Pythonisch kor-
rekt sind vier Leerzeichen. Bild 2 zeigt, wie
man das bei Geany einstellt. Fr das praktische
Programmieren empfehlen sich noch die Anzeige
von Markierungsrand, Zeilennummern und Ein-
rckhinweisen wie in Bild 3.
Bild 3.
Wenn man das Minimal-Testprogramm von Bild 1
Weitere Einstellungen in
startet, dann sieht das Resultat unter Windows so
Geany.
aus wie in Bild 4. Falls man das Programm nicht
direkt aus dem Editor starten will oder kann, ist
das auch ber die Sequenz python test.py per
Kommandozeile mglich. Bei GUI-Scripts funk-
tioniert eventuell auch ein Doppelklick auf die
.py-Datei, doch bei Textprogrammen wie test.
py schliet sich nach der Ausgabe sofort wieder
das Fenster, so dass man nichts erkennen kann.
Wenn das Programm unter Linux benutzt werden
soll, gehrt es zum guten Ton, vor dem eigentli-
chen Quellcode noch die beiden Zeilen:
Bild 4.
Resultat des Testprogramms #!/usr/bin/env python
unter Windows. # -*- coding: utf-8 -*-

50 | Mai 2013 | www.elektor-magazine.de


Programmiersprachen

einzufgen. Die erste Zeile informiert das


Listing 1: ScanSerial.py
Betriebssystem ber den zu verwendenden
Interpreter und die zweite ber den Zeichensatz. import serial
BASIC-Programmierer mssen sich auerdem an def scan_serial():
ein paar Python-typische Eigenheiten gewhnen, """ Scans for available serial ports """
portnames = []
die im Kasten Python-Spezialitten zusam-
# Windows
mengefasst sind.
for i in range(256):
try:
Die Python-Shell
name = "COM"+str(i)
Startet man Python von der Kommandozeile
s = serial.Serial(name)
(DOS-Box bei Windows bzw. Terminal bei Linux
s.close()
oder OS X), dann bekommt man ein Prompt portnames.append(name)
>>>. Nun kann man Befehle interaktiv ein- except:
geben und auf diese Weise diejenigen auspro- pass
bieren, die man noch nicht kennt: # Linux
for i in range(256):
>>> s = hello try:
>>> s.upper() name = "/dev/ttyS"+str(i)
HELLO s = serial.Serial(name)
s.close()
In der Shell kann man auch Bibliotheksmodule portnames.append(name)
importieren: except:
pass
import time # Linux USB
for i in range(256):
Hilfe zu diesen Modulen erhlt man per try:
help(<Modul>), bzw. eine Liste der Objekte name = "/dev/ttyUSB"+str(i)
und Methoden mit dir(<Modul>). s = serial.Serial(name)
s.close()
portnames.append(name)
Anfnger-Fehler
except:
Wer an andere Programmiersprachen gewhnt ist,
pass
dem passieren leicht typische Fehler. Ein schnell
return portnames
fabrizierter Fehler betrifft die Einrckung, die ja
#------------------------------------------------------------
bei Python besonderes Gewicht hat. Wenn der
# main
Interpreter Unexpected indent meldet, klemmt portnames = scan_serial()
es genau daran. Eventuell ist dann ein Leerzei- for p in portnames:
chen zu viel bzw. zu wenig vorhanden, oder aber print p
Tabs und Leerzeichen wurden gemischt. Noch-
mals: Python-Standard sind vier Leerzeichen.
Man muss genau auf Integer- und Float-Zahlen
Listing 2: ReadSerial.py
und -Variablen achten, denn 3/5 = 0 und nur
3.0/5.0 = 0.6! """Read and print serial data from COM1 (9600baud)"""
Unter Python-Formalia fllt, dass fr jedes Unter- import serial
programm bzw. jede Methode eine Klammer zum # init serial port COM1 / ttyS0
Abschluss bentigt wird. Zum Schlieen der seri- sCOM1 =serial.Serial(0)
ellen Schnittstelle wre also s.close falsch und sCOM1.setBaudrate(9600)
nur s.close() wird akzeptiert. if sCOM1.isOpen()==False:
sCOM1.open()
# read lines of data until user presses <Ctrl-C>
Externe Hardware
while(1):
Das Ansprechen externer Hardware ist fr Elekt-
line = sCOM1.readline()
roniker ein entscheidender Aspekt einer Program-
print line
miersprache. Fr Python gibt es fertige Module
sCOM1.close()
zum Ansteuern von PC-Schnittstellen: pyUSB,

www.elektor-magazine.de | Mai 2013 | 51


Projects

Bild 5.
Python eignet sich auch
sehr gut, um ElektorBus-
Nachrichten mit Messwerten
zu verarbeiten.

pySerial, pyParallel und pyI2C. den auch virtuelle USB-Ports erfasst.


Als einfaches Beispiel zunchst die serielle Listing 2 zeigt, dass es recht einfach ist, Daten
Schnittstelle: Zur Kommunikation wird dem ber die serielle Schnittstelle zu empfangen, die
Port eine Instanz des Serial-Objekts im Modul z.B. von einem Mikrocontroller stammen kn-
serial.py zugeordnet. Serielle Ports knnen nen. Nach der Zuordnung des Objekts sCOM1 zu
ber ihre Nummer oder ihren Namen (COM1 Port COM1 wird die Baudrate angegeben (Parity-
bei Windows oder /dev/ttyS0 bei Linux) ange- und Stop-Bits haben hier Default-Werte) und der
sprochen werden. Port geffnet. Beim Experimentieren passiert es
gerne, dass sich das Programm mit geffnetem
Die einfachste Methode nach vorhandenen Ports Port verabschiedet. Beim nchsten Programm-
zu suchen besteht darin, sie versuchsweise zu start lsst sich dann der Port nicht ffnen. Bes-
instanziieren (siehe Listing 1). Nur wenn das ser ffnet man einen Port also nur dann, wenn
gelingt, existiert der jeweilige Port auch. So wer- er nicht schon geffnet war.

Das Programm luft etwas unschn in einer End-


Python-Spezialitten losschleife, bis es mit <Ctrl-C> abgebrochen
Variablen werden implizit durch Zuweisung deklariert: x = 5.0 wird. Eleganter wre die Abfrage einer Taste
Es gibt keine For-NextSchleife wie bei anderen zur Beendigung des Programms. Dies ist zwar
Programmiersprachen. Allerdings kann eine Iteration ber mglich, aber nicht ganz so einfach, da sich hier
Teilobjekte eines Objekts durchgefhrt werden, z.B. ber die die Betriebssysteme unterscheiden. Die Funktion
Zeichen eines Strings oder die Zeilen einer Datei. Als Ersatz fr das raw_input() sollte nicht benutzt werden, da sie
klassische For-Next kann man for i in range verwenden. stur auf die Eingabe von <Enter> wartet. Wenn
for i in range (0,5): man ein Programm mit GUI gestalten will, gibt
print i es z.B. mit wxPython einfache Mglichkeiten auf
Dies ist eine Iteration ber alle Bestandteile des Objekts Tastendrcke und andere Events zu reagieren.
range(0,5), d.h. ber die Liste [0,1,2,3,4]. Achtung: Der Endwert Mit der kleinen Programmerweiterung von Lis-
(hier 5) ist nicht mehr Teil der Liste! ting 3 kann man schon Daten loggen. Zwecks
Arrays (Listen) knnen unterschiedliche Objekte enthalten: bersichtlichkeit wurden Unterprogramme
x = [0, 3.14, Ham , Eggs] benutzt. Diese werden am Anfang mit def...()
Funktionen knnen mehrere Werte als Tupel zurckgeben: definiert und erst am Ende kommt das Haupt-
(x, y, z) = myfunction(v) programm. Zunchst wird in show_log() nach-
Es gibt keine SUBs - nur Funktionen, wie in C. Diese werden mit gesehen (try / except) ob schon eine LOG-Datei
def...() deklariert und knnen bei Bedarf mehrere Werte oder existiert, in diesem Fall wird ihr Inhalt gelesen
Objekte zurckgeben. und ausgegeben. Schn ist, dass der ganze Text
mit file.read gelesen werden kann. Dann wird

52 | Mai 2013 | www.elektor-magazine.de


ACADEMY
the school of electronics

Linux Debugging (2-tgiges Seminar)


Das Ziel dieses Kurses ist es, einen grundlegenden berblick ber Debugging / Tracing / Profiling Mglichkeiten unter GNU/Linux
zu geben. Hands-on-bungen geben Ihnen die notwendige praktische Erfahrung, um das richtige Tool fr Ihre Debugging-Anfor-
derungen auswhlen zu knnen.
Hands-on-Sessions werden auf Ubuntu durchgefhrt. Der gesamte Workshop ist konzipiert, um Sie schnell up-to-speed zu brin-
gen. Erfinden Sie das Rad nicht neu, sondern lernen Sie von einem erfahrenen Trainer und nehmen Sie dieses Wissen mit nach
Hause, um diese neu erworbene Fhigkeit bei eigenen Entwicklungen effektiv zu nutzen.

Referent: Robert Berger - Teilnahmegebhr: 995,00 (inkl. MwSt.)

Echtzeitbetriebssysteme in Theorie und Praxis (3-tgiges Seminar)


Das modular aufgebautes Seminar ist je nach Interesse und Wissenstand konzipiert, so dass Sie beliebig einsteigen knnen.
Tag 1 Was ist Echtzeit? Was ist FreeRTOS? Installation von Werkzeugen, tasks, scheduling, queues,...
Tag 2 Interrupts, Nebenlufigkeit (concurrency), gegenseitiger Ausschluss (mutual exclusion), Speicherverwaltung,...
Tag 3 allgemeine Methoden zur Vermeidung von Fehlern, Wie kann man die Fehler, die man nicht vermeiden konnte, finden (mit Schwerpunkt
Echtzeitbetriebssysteme)?
Ziel des Kurses ist es, Ihnen die grundlegenden Konzepte eines Echtzeitbetriebssystems und dessen Handhabung zu vermitteln.
Was sind zum Beispiel Vor- und Nachteile? Wie kann man diverse Programme auf einem PC erstellen/kompilieren und auf einem
eingebetteten System ausfhren? Eine Kombination aus Theorie und praktischen bungen wird es Ihnen ermglichen, das neu
erworbene Wissen bei Eigenentwicklungen einzusetzen.

Referent: Robert Berger - Teilnahmegebhr: fr alle 3 Seminar-Tage: 1.799,00 (inkl. MwSt.)


fr 2 Seminar-Tage: 1.250,00 (inkl. MwSt.)
fr 1 Seminar-Tag: 650,00 (inkl. MwSt.)

Arduino - Programmierung und Projektentwicklung (Tagesseminar)


Nach einer kurzen Einfhrung und der Inbetriebnahme des Arduino-Boards erfolgt eine systematische Einfhrung in verschiedene
Themengebiete. Dabei wird neben den erforderlichen theoretischen Grundlagen stets grter Wert auf eine praxisorientierte Aus-
richtung gelegt. So werden wichtige Techniken wie AD-Wandlung, Timer oder Interrupts anhand von Praxisprojekten ausfhrlich
erlutert. Den Abschluss des Seminars bildet eine Einfhrung in die eigenstndige Entwicklung von Projekten und Systemen. Der
Seminarteilnehmer wird damit in die Lage versetzt, auch komplexe eigene Ideen in praxistaugliche Gerte umzusetzen.

Referent: Dr. Gnter Spanner - Teilnahmegebhr: 349,00 (inkl. MwSt.)

Workshops * Seminare * Kurse * Weiterbildungen SEHR GU


9 von 1 T
ACADEMY
werden 0 Seminaren
Top-Fachleute aus der Branche referieren vo
Teilneh n unseren
sehr gu mern mit
the school of electronics ber ein faszinierendes Thema! t bewer
tet.

Embedded Linux Arduino Programmierung und Multi Core / Parallel Programming


in Theorie und Praxis Projektentwicklung 10. bis 12.09.2013 Mnchen
16. bis 18.09.2013 Hanau 05.09.2013 Dortmund
09. bis 11.12.2013 Mnchen 07.11.2013 Zrich (CH)
L
INK US
I VE

Linux Debugging Echtzeitbetriebssysteme


06. + 07.06.2013 Hanau in Theorie und Praxis
19. + 20.09.2013 Dortmund 13. bis 15.05.2013 Online (Webinar)
ze

rt
t

12. + 13.12.2013 Mnchen 03. bis 05.06.2013 Hanau ifika

Weitere Infos & Anmeldung: www.elektor.de/events

Elektor-Verlag GmbH | Ssterfeldstr. 25 | 52072 Aachen www.elektor.de


Tel. 0241/88 909-16 m.debeij@elektor.com

E-Academy 05-2013.indd 53 08-04-13 09:55


Projects

der serielle Port geffnet. Jede empfangene Zeile


Listing 3: ReadSerial2.py
wird angezeigt und in die Datei geschrieben.
"""Read and print serial data from COM1 (9600baud)"""
import serial Fazit & Ausblick
Wenn Sie nun Geschmack an Python gefunden
def show_log(): haben, dann sollten Sie jetzt in der Lage sein, sich
""" show result of last logging""" den Interpreter und einige Bibliotheken zu instal-
try:
lieren und auf Anhieb einige einfache Programme
file = open("test.log", "r")
zu schreiben. Alle Listings finden Sie auch unter
text = file.read()
[1]. Im zweiten Teil dieser Serie wird es dann
file.close()
um fr Elektroniker interessante Feinheiten wie
print "CONTENTS OF LAST LOG FILE:"
Diagramme und Fourier-Synthese sowie die Aus-
print text
stattung mit einer schnen Benutzerschnittstelle
print "END OF LOG FILE"
except:
gehen. Und im dritten Teil wirds praktisch. Wir
print "NO LOG FILE FOUND" arbeiten mit einem kleinen Mikrocontrollerboard,
pass das ber den ElektorBus Messwerte an den PC
sendet (siehe Bild 5).
def open_port_log(port): (110483)
""" open serial port and LOG file"""
# init serial port COM1
Weblinks & Literatur
sCOM =serial.Serial(port-1)
sCOM.setBaudrate(9600) [1] Listings etc.:
if sCOM.isOpen()==False: www.elektor.de/110483
sCOM.open() [2] Homepage des Autors:
file = open("test.log", "w") http://staff.ltam.lu/feljc/home.html
return sCOM, file
[3] Doku zu Python:
https://pypi.python.org/pypi/RPi.GPIO
def receive(sCOM, file ):
""" read lines of data until user presses <Ctrl-C>""" [4] Python-Tutorials:
while(1): www.awaretek.com/tutorials.html
line = sCOM.readline() [5] Referenz:
print line Michael Weigend: Python gepackt
file.write(line)
[6] Einfhrung:
J.M. Hughes: Real World Instrumentation
port=1
with Python
show_log()
ok = raw_input("NEW LOG (y/n) ?") [7] Python fr Elektroniker:
if ok== "y": Andrew Pratt: Python Programming and GUIs
s, f=open_port_log(port) for Electronic Engineers
receive(s, f) www.elektor.de/python-programming

# file and port closing done by interpreter at <Ctrl-C>

ber den Autor


Jean-Claude Feltes unterrichtet als
Diplom-Ingenieur fr Elektronik am
Lyce Technique des Arts et Mtiers in
Luxemburg. Diese Berufsschule fr Technik
und Kunst fhrt zum Gesellen, Techniker
oder BTS-Abschluss. Er beschftigt sich
auch in seiner Freizeit viel mit Elektronik
und Programmierung (siehe [2]).

54 | Mai 2013 | www.elektor-magazine.de


Alle Elektor-Artikel der
70er-Jahre auf DVD!

Ein Muss
fr jeden
Elektor-Leser! ISBN 978-3-89576-263-5
&+)

Jetzt unter
www.elektor.de/70-79
bestellen!

NOVA advert page.indd


DVD 1970-1979 1
full page.indd 1 08-02-13
30-01-13 10:20
08:45
Projects

Bauen Sie Ihren Chip! (4)


250.000 Gatter laufen Probe
Von Clemens Valens Auf dem Weg zum einsatzfhigen FPGA ist die Simulation eine wichtige Zwischen-
(Elektor .LABS)
station. Solange die Anwendung aus nur wenigen Gattern besteht, bedarf es
normalerweise keines Probelaufs. Doch das ndert sich, wenn die volle Leistung
gefordert ist und die Anwendung in einer Hard-
ware Description Language (HDL) geschrieben
wird. Zum Testen der Anwendung vor der FPGA-
Implementierung bleibt dann nur die Simulation.
In diesem Teil des Beitrags zeigen wir, wie die
Anwendung aus der letzten Folge simuliert werden
kann.

Wenn nach Implementieren einer FPGA-Anwen- den Beweis fr die generelle Tauglichkeit des
dung Komplikationen auftreten, muss dies nicht Konzepts erbringen. Allein gengt das natrlich
an mangelnden Fhigkeiten des Entwicklers lie- nicht, vor der Produktreife sind noch unzhlige
gen. Dafr knnen auch die Chip-Architektur Hrden zu nehmen. Jeder Schritt bedeutet, dass
oder ein Bug in der Entwicklungs-Software ver- weitere Fehler eingeschleust werden knnen, die
antwortlich sein. Insbesondere FPGAs mit sehr eine nachfolgende Simulation ans Licht bringen
hohen Taktgeschwindigkeiten neigen bisweilen kann. Wenn nach dem letzten Feinschliff die letzte
zu unerklrlichem Verhalten. Die Gefahr steigt, Simulation erfolgreich bestanden wurde, kann
wenn die Signalwege und Signallaufzeiten inner- der Entwickler davon ausgehen, dass ihm sein
halb des Chips ein gewisses Ma bersteigen. Der Werk gelungen ist. Natrlich ist dieses viel ver-
FPGA-Entwickler trgt dem Rechnung und simu- sprechende Omen noch keine Garantie, auch die
liert das Produkt entwicklungsbegleitend, begin- ausgefeilteste Simulation bleibt eine Nachahmung
nend in einem frhen Stadium. Verhlt sich der der Realitt.
FPGA wie erwartet? Produziert der FPGA Neben-
effekte, die kritisch sein knnten? Simulator ffnen
Simulationen werden in unterschiedlichen Sta- Wir haben uns zum Ziel gesetzt, den zweistelli-
dien der Produktentwicklung durchgefhrt. Den gen BCD-Aufwrts-Abwrts-Zhler aus der letz-
Anfang macht die funktionale Simulation, sie soll ten Folge zu simulieren. Zuerst erstellen wir eine

56 | Mai 2013 | www.elektor-magazine.de


FPGA

Kopie jenes Projekts, das wir part3 genannt hat- die Signale hnlich einem Logic-Analyser darstellt
ten (siehe Teil 3 der Artikelreihe, [3]). Unser (Bild 1). Auf der Konsole unten im ISim-Fens-
neues Projekt, um das es jetzt geht, hat folgerich- ter werden Sie darauf hingewiesen, dass Sie im
tig den Namen part4. ffnen Sie das neue Projekt Modus Lite arbeiten, weil Sie (noch) keine Vollli-
in ISE, bevor Sie an dieser Stelle weiter lesen. zenz erworben haben. Auerdem steht dort, dass
Den ISE-Simulator finden Sie oben im Tab Design, die Auflsung der Simulation 1 ps (Picosekunde)
dort wo View angegeben ist. In der letzten Folge betrgt. Rechts oben sehen Sie die Information,
war die Implementation View (Ansicht) aktiviert, dass die gesamte Simulation ein Zeitintervall von
jetzt muss die Simulation View gestartet werden. 1 s (Mikrosekunde) umfasst.
Wenn Sie die Funktion aktivieren, indem Sie auf
Simulation klicken, ndert sich der Inhalt des Schrittweises Simulieren
Fensters Processes. Wahrscheinlich haben sie Klicken Sie auf die Schaltflche Restart (blau mit
auch bemerkt, dass oben im Fenster Hierarchy eckigem Pfeil, Restart ist auch ber das Men
ein Element hinzugekommen ist, das die Bezeich- Simulation erreichbar). Klicken Sie in der Sig-
nung Behavioral trgt. Da die Ausgangsbasis ein nalliste mit der rechten Maustaste auf das Sig-
nicht compiliertes Projekt war, enthlt das Fenster nal ce. Dieses Signal ist doppelt vorhanden, der
Processes nur eine einzige Zeile: Design Utilities. Mausklick ist beliebig. Sie knnen auch auf die
In der Hierarchie whlen Sie top, so dass im Pro- grafische Darstellung dieses Signals klicken. Ach-
zessfenster der Prozess ISim Simulator erscheint. ten Sie darauf, dass gleichzeitig nur ein Signal
Klappen Sie diese Zeile mit einem Klick auf das ausgewhlt ist. In dem nun erscheinenden Men
Pluszeichen aus. Whlen Sie den Prozess Simu- whlen Sie Force Constant, denn es handelt sich
late Behavioral Model und klicken Sie links auf die um ein quasi konstantes Signal, verglichen bei-
Schaltflche unter der grnen Pfeilspitze. Alter- spielsweise mit einem Taktsignal. ISim ffnet dar-
nativ knnen Sie auch mit der rechten Maustaste aufhin das Dialogfenster Force Selected Signal,
auf die Zeile klicken und im Kontextmen Run in das mehrere Parameter eingetragen werden
whlen, oder auch auf die Zeile mit der linken knnen. Tragen Sie in das Feld Force to Value die
Maustaste doppelklicken. ISE macht sich nun ans Zahl 1 und in das Feld Cancel after Time Offset
Werk, und nach kurzer Zeit erscheint (hoffent- die Zeit 1 ms ein. Die brigen Parameter kn-
lich) im Fenster Console die Meldung, dass der nen unverndert bleiben. Klicken Sie auf OK. Das
Prozess completed successfully wurde. Nach Signal ce wird 1, sobald die Simulation startet,
erfolgreichem Verlauf ffnet sich neben dem ISE- es behlt diesen Zustand fr 1 ms bei. Wieder-
Hauptfenster ein zustzliches ISim-Fenster, das holen Sie die Prozedur fr das Signal up_down

Bild 1.
ISim glnzt hier mit
seiner Funktionalitt.
Noch ruht das Geschehen,
denn die Definitionen der
auslsenden Events fehlen.

www.elektor-magazine.de | Mai 2013 | 57


Projects

Sie noch die Simulationsdauer in das daneben


befindliche Feld eingeben, beispielsweise 10 ms.
Jeder Klick auf Run lst dann ein Simulationsin-
tervall von 10 ms aus.
Wenn die Simulation stoppt, weil sie beendet ist
oder abgebrochen wurde, knnen Sie die Sig-
nale betrachten (Bild 3). Sie knnen die Sig-
nale grer oder kleiner zoomen und durch die
Signale scrollen. Die Reihenfolge und Gruppie-
Bild 2. rung der Signale ist durch Ziehen mit der Maus
Zahlenwerte ohne nderbar. Falls dies ausnahmsweise nicht mglich
Einheiten sind im Fenster sein sollte, kann ein Blick auf die Eingangssig-
Define Clock Zeiten in nale weiter helfen. Falls sie nicht grn, sondern
Picosekunden. orange dargestellt sind, kann dies daran liegen,
dass die Signaldefinitionen fehlen.
und anschlieend mit dem Force to Value-Wert 0 Nachdem der passende Zoomfaktor eingestellt
fr das Signal clr. ist, knnen Sie das Taktsignal oder andere vern-
Fr das Signal clk_in fhren Sie eine identische derliche Signale beobachten. Signale auf Bussen,
Prozedur durch, doch statt Force Constant wh- also Multi-Bit-Signale wie q[7:0] erscheinen mit
len Sie hier Force Clock. Das Dialogfenster Define ihren aktuellen Werten in binrem Format. Das
Clock, das jetzt erscheint, gleicht dem Fenster Darstellungsformat knnen Sie ber die Option
Force Selected Signal, doch es gibt Unterschiede. Radix in dem Popup-Men ndern, in dem auch
Tragen Sie die Werte aus Bild 2 ein und klicken Force Constant steht. Links neben der grafischen
Sie auf OK. Diese Werte haben zur Folge, dass Signaldarstellung werden die Signalwerte an der
das Taktsignal mit einer Vorderflanke zur Zeit 0 Position des gelben Cursors angezeigt.
startet, whrend 1 ms aktiv bleibt, den Duty-Cycle
50 % hat und die Periode 125 betrgt. Gemeint Auf dem Prfstand
sind 125 ps, denn die vorgegebene Zeiteinheit ist Das beschriebene schrittweise Simulieren einer
die Picosekunde. Diese Zeiteinheit gilt, solange FPGA-Anwendung ist zwar anschaulich, aber im
keine andere Einheit angegeben wird. Die Takt- Verlauf der Entwicklungsarbeiten wenig praktisch.
frequenz auf dem FPGA-Board betrgt 8 MHz, Lstig ist auf die Dauer, dass die Signale jedes
die Periode ist hier 125 ns. Deshalb tragen Sie Mal ber Dialogfenster neu definiert werden ms-
nicht 125, sondern 125 ns ein. sen. Falls Sie flinke Finger auf der PC-Tastatur
Die Eingangssignale sind nun definiert, Sie kn- haben, knnen Sie stattdessen textorientierte
nen die Simulation starten. Nach einem Klick Kommandos in die Konsole eingeben. Allerdings
auf die Schaltflche Run All (oder ber das Men mssen Sie sich zuvor die Kommandos und ihre
Simulation) luft die Simulation so lange, bis neue Bedeutungen zu eigen machen. Das Dokument
Events nicht mehr auftreten oder bis ein Break- plugin_ism.pdf, das auf der Website von Xilinx
point die Simulation anhlt. Da kein Breakpoint verfgbar ist, gibt darber Auskunft. Eine effizi-
definiert ist, endet die Simulation erst, wenn die entere Vorgehensweise, die auch Xilinx empfiehlt,
auslsenden Signale wegfallen, also nach 1 ms. ist das Automatisieren der Simulation mit einer
Ein Taktsignal erzeugt natrlich fortlaufend neue so genannten test bench (sinngem: Prfstand).
Events. Mit einem Klick auf die Schaltflche Break Eine solche test bench (oder auch test fixture)
(Pausensymbol) knnen Sie die Simulation jeder- ist eine Datei, die zum ISE-Projekt hinzugefgt
zeit unterbrechen. Bitte beachten Sie: Nach einem werden muss, whrend die Simulation View aktiv
Abbruch ffnet ISim eine Datei mit einem VHDL- ist. Das geschieht wie gewohnt ber New Source,
Quelltext (meistens top.vhd), die waveform- aufrufbar durch einen rechten Mausklick in das
Ansicht befindet sich dann dahinter, was am Tab Hierarchy-Fenster. In dem New Source Wizard,
wcfg erkennbar ist. Klicken Sie auf den Tab, um der jetzt erscheint, whlen Sie VHDL Test Bench.
ihn in den Vordergrund zurckzuholen. Vergeben Sie einen Namen, zum Beispiel test_
Sie knnen die Simulation auch schrittweise aus- bench, vergewissern Sie sich, dass Add to project
fhren, indem Sie die Schaltflche Run neben der angehakt ist, und klicken Sie auf Next. Jetzt ms-
Schaltflche Run All anklicken. Vorher mssen sen Sie die Test-Bench einer Source-Datei zuord-

58 | Mai 2013 | www.elektor-magazine.de


FPGA

Test-Bench in Verilog
hnlich den zahlreichen Computer- CLK_IN = 0;
Programmiersprachen existieren mehrere #62.5;
Sprachen fr FPGA-Implementierungen. Im end
Text haben wir uns mit VHDL beschftigt,
denn ISE scheint hauptschlich fr diese Darin muss clk_in nicht initialisiert werden.
Sprache konzipiert zu sein. Damit Verilog, Die Initialisierung der auslsenden Events
eine andere wichtige Sprache nicht zu kurz wird in einem so genannten initial-Block
kommt, bauen wir die Test-Bench hier noch vorgenommen, er wird ein Mal zu Beginn der
einmal in Verilog. Simulation ausgefhrt. Die Struktur ist der
Das Taktsignal wird in Verilog mit dem VHDL-Struktur hnlich, auch hier steht am
Kommando always generiert (Achtung: Anfang eine Pause von 100 ns:
Anders als in VHDL werden in Verilog Gro-
und Kleinschreibung unterschieden!). Dank initial
des Invert-Operators ! umfasst dies nur begin
eine Zeile. Die Frequenz wird mit dem Delay- #100;
Symbol # bestimmt, hier sind es 62,5 ns. CLK_IN <= 0;
Zeiteinheit ist in Verilog die Nanosekunde, die CE <= 1;
Auflsung betrgt trotzdem 1 ps. CLR <= 0;
UP_DOWN <= 1;
always end
#62.5 CLK_IN = !CLK_IN;
Anstelle von <= kann auch = geschrieben
Der logische Zustand des Signals clk_in werden. Vollstndigkeitshalber ist clk_in
wird in Abstnden von 62,5 ns invertiert. initialisiert, was zwar nicht notwendig ist, aber
In Anlehnung an VHDL ist auch folgende auch nicht schadet.
Schreibweise mglich: Die Blcke always und initial ersetzen
gemeinsam den Block ifdef auto_init
always endif, unten in der von ISE generierten
begin Verilog-Test-Bench.
CLK_IN = 1;
#62.5; Ist alles klar? Dann bitte simulieren!

Bild 3.
Das Signalfenster nach
einer Simulation. In diesem
weiten Zoom wird das
Signal clk_in lediglich als
Schraffur dargestellt. Der
Wert des 8-bit-Bussignals
kann in unterschiedlichen
Formaten angezeigt werden.

www.elektor-magazine.de | Mai 2013 | 59


Projects

nen. Da die gesamte Implementierung getestet korrekten Zeiten. Zum Testen unseres Aufwrts-
wird, binden Sie die Datei an top. Klicken Sie Abwrts-Zhlers mssen wir in VHDL oder Veri-
auf Next, so dass die bliche Zusammenfassung log die Vorgnge reproduzieren, die wir oben
erscheint. Aus der Zusammenfassung geht her- schrittweise durchgefhrt haben. Auer einem
vor, dass der Dateiname die Erweiterung .vhd Taktsignal bentigen wir einige quasi-konstante
erhalten hat. Dieses Indiz deutet auf eine VHDL- Signale. Mit den konstanten Signalen wollen wir
Datei hin. Klicken Sie auf Finish, um den Vorgang beginnen.
abzuschlieen. Der Rahmen unserer VHDL-Test-Bench hat fol-
Wichtig ist hier, dass Sie test_bench nicht in der gende Gestalt, die reservierten VHDL-Kommandos
Implementation View, sondern in der Simulation sind in Grobuchstaben geschrieben (was nicht
View hinzufgen mssen. Eine eventuell falsche zwingend notwendig ist!):
Zuordnung knnen Sie korrigieren, indem sie in
den Dateieigenschaften (Source Properties) die tb : PROCESS
View Association auf Simulation setzen. BEGIN
Das Hinzufgen der Test-Bench hat weiter rei- WAIT;
chende Auswirkungen als vielleicht erwartet. Im END PROCESS;
Hierarchie-Fenster erscheint zwischen dem Chip
und top eine weitere Zeile, die den zunchst kryp- Dies ist gewissermaen die Test-Bench-Hauptrou-
tischen Text top_top_sch_tb enthlt. Der Eintrag tine, oder besser, der Prozess. Unser Prozess mit
top ist zu UUT - top geworden, wobei UUT ein dem Namen tb ist lediglich eine Warteschleife. Ein
Krzel fr Unit Under Test ist. Aus der Hierar- Prozess sieht hnlich einer Subroutine in einem

Prozesse werden parallel ausgefhrt: Ein ideales Multitasking


chie geht folglich klar hervor, was und durch wen Programm aus, doch im Gegensatz zu Subrouti-
getestet wird. Die Datei test_bench.vhd wurde nen werden Prozesse nicht sequentiell, sondern
inzwischen im Editor geffnet, wie Sie sehen, ist parallel, also gleichzeitig ausgefhrt. Auerdem
der Inhalt unverndert. werden Prozesse fortlaufend wiederholt, solange
Wir wollen noch eine zweite Test-Bench hinzu- sie nicht unterbrochen werden, wie zum Beispiel
fgen, diesmal jedoch nicht in VHDL, sondern hier durch die unendliche Warteschleife WAIT.
in Verilog. Das geschieht in gleicher Weise wie In diesen Prozess fgen wir die Signale ce, clr
beschrieben, doch diesmal whlen wir Verilog und up_down ein und ordnen ihnen logische
Test Fixture als Source-Typ. Nach Hinzufgen Zustnde zu:
der zweiten Test-Bench ist im Hierarchie-Fens-
ter offensichtlich eine zweite Hierarchie dazu- tb : PROCESS
gekommen. Daraus lsst sich schlieen, dass BEGIN
im gleichen Projekt mehrere Test-Benchs ein- WAIT FOR 100 NS;
setzbar sind (das ist uns allerdings bisher noch ce <= 1;
nicht gelungen!). ISE ist vermutlich so konzipiert, clr <= 0;
dass die VHDL-Test-Bench den Vorzug hat. Der up_down <= 1;
Name der Verilog-Datei trgt die Erweiterung WAIT;
.v, und das Icon der Verilog-Datei unterscheidet END PROCESS;
sich vom Icon der VHDL-Datei. Da Verilog- und
VHDL-Dateien unterschiedliche Namenerweiterun- Bevor der Prozess in die Warteschleife mn-
gen haben, kann der gleiche Dateiname an beide det, werden die Signale ce und up_down auf 1
Test-Benchs vergeben werden. Ob dies wirklich gesetzt, clr wird 0. Diese Kommandos werden
sinnvoll ist, sei dahingestellt. nicht nacheinander, sondern gleichzeitig ausge-
fhrt, die Reihenfolge im Prozess ist beliebig. Das
Und nun: VHDL Kommando WAIT FOR 100 NS hlt den Prozess
Die Test-Bench enthlt lediglich ein Gerst, was fr 100 ns an, um das Ende des Reset-Signals
noch fehlt, ist das Aktivieren der Signale zu den abzuwarten. In der Hilfe zu ISim wird diese Ma-

60 | Mai 2013 | www.elektor-magazine.de


FPGA

nahme empfohlen.
Das Erzeugen des Taktsignals ist etwas komple-
xer, es ist ein eigener Prozess ntig, der gleich-
zeitig mit dem Prozess tb ausgefhrt wird:

clock : PROCESS
BEGIN
clk_in <= 1;
WAIT FOR 62500 PS;
clk_in <= 0;
WAIT FOR 62500 PS;
END PROCESS;

Dieser Prozess endet nicht mit der


unendlichen Warteschleife WAIT,
er kann nicht unterbrochen
werden und wird deshalb
stndig wiederholt. In
diesem Prozess wird
zuer st c l k _ i n
auf 1 gesetzt,
gefolgt
von einer
62,5 ns
langen
Pause,
clk_in
wird auf 0
gesetzt, es
folgt eine wei-
tere 62,5 ns
lange Pause, und
schlielich beginnt
der Prozess von vorn. Das Ergeb-
nis ist ein Signal mit der Frequenz 8 MHz und
dem Duty-Cycle 50 %. Da der Duty-Cycle 50 %
betrgt, kann die Pause als Konstante geschrie- WAIT FOR clock_half_period;
ben werden, wir hngen sie an die Liste SIG- END PROCESS;
NAL an:
Die Test-Bench ist nun vollstndig, die Simulation
CONSTANT clock_half_period : TIME := kann gestartet werden. Whlen Sie in der Hierar-
62500 PS; chie die Test-Bench, damit der ISim-Prozess sicht-
bar ist. Wenn Sie die Zeile ausklappen, stehen
Die Konstante clock_half_period ist vom Typ zwei Optionen zur Wahl: Behavioral Check Syn-
TIME, wir knnen sie zusammen mit dem Kom- tax und Simulate Behavioral Model. Fhren Sie
mando WAIT verwenden. Jetzt sieht der Prozess die erste Option aus, um sicher zu gehen, dass
wie folgt aus: Ihnen keine Tippfehler unterlaufen sind. Fahren
Sie fort, wenn hier ein grner Haken erscheint.
clock : PROCESS
BEGIN ffnen Sie mit einem rechten Mausklick auf Simu-
clk_in <= 1; late Behavioral Model die Simulationseigenschaf-
WAIT FOR clock_half_period; ten und haken Sie die Option Run for Specified
clk_in <= 0; Time an. Damit haben Sie festgelegt, dass die

www.elektor-magazine.de | Mai 2013 | 61


Projects

Bild 4.
Zeitintervalle sind mit
Markern messbar. In
dieser Simulation hat die
Taktperiode die Lnge
250 ps. Nach dem Anklicken
ist der weie Marker
der Bezugspunkt. ISim
berechnet die zeitlichen
Abstnde zu den anderen
Markern. Die Zeiteinheit
lsst sich nach Rechtsklick
auf die Zeitachse einstellen.

Simulation nach dem Start bis zum Ablauf der vorholen, die fr Sie von Interesse sind (Bild 4).
vorgegebenen Zeit luft, oder so lange, bis Sie auf Die Reihenfolge der Signale in der grafischen Dar-
Break klicken. Schlieen Sie das Eigenschaften- stellung entspricht der Reihenfolge in der Liste
Dialogfenster und whlen Sie Simulate Behavi- SIGNAL. Organisieren Sie diese Liste so, dass
oral Model. Das ISim-Fenster ffnet sich, doch die Darstellung optimal ist (achten Sie auf die
es geschieht zunchst nichts. Wenn Sie auf die Kommas!). Vergessen Sie nicht, das ISim-Fenster
Schaltflche Run All oder auch auf Run (for-the- zu schlieen, immer wenn Sie eine modifizierte
time-specified-on-the-toolbar) klicken, beginnt oder neue Test-Bench verwenden. ISE gibt eine
die Simulation. Lassen Sie die Simulation so lange Fehlermeldung aus, falls das ISim-Fenster geff-
laufen, bis in der Zeitleiste die gewnschte Dauer net bleibt.
erscheint. Klicken Sie auf Break, um die Simu-
lation zu stoppen. Jetzt knnen Sie wie bei der Das wars!
schrittweisen Simulation die Signale betrachten. Wir sind ans Ende unserer Einfhrung in die Simu-
Falls die Zeitachse auf einen sehr kleinen Mastab lation der FPGA-Implementierungen gekommen.
eingestellt ist, scheinen die Signale statisch zu Sie sollten nun in der Lage sein, einfache Simu-
sein. Mit einem Klick auf die Schaltflche Zoom lationen selbststndig durchzufhren. Weil viele
to Full View holen Sie die Simulation vollstndig wichtige Details nicht einmal gestreift werden
ins Bild, so dass auch langsame Signale sichtbar konnten, empfehlen wir Ihnen, die Fachlitera-
sind. Anschlieend knnen Sie die Signalteile her- tur ebenso wie einschlgige Webseiten zu Rate
zu ziehen. Eine Implementierung zu simulieren,
ist zunchst vergleichsweise einfach. Die effizi-
ente, aussagekrftige Simulation setzt jedoch
Das FPGA-Experimentierboard, vollstndig aufgebaut und solide Kenntnisse ber programmierbare Logik-
getestet, ist ber Elektor fr 59,95 plus Versandkosten bausteine, Hardware-Programmiersprachen und
erhltlich. zugehrige Entwicklungs-Tools voraus.
(130065)gd
Auf www.elektor.de/120099 steht Nheres!

Weblinks
[1] Teil 1: www.elektor.de/120099
[2] Teil 2: www.elektor.de/120630
[3] Teil 3: www.elektor.de/120743
[4] Teil 4: www.elektor.de/130065

62 | Mai 2013 | www.elektor-magazine.de


NOVA advert page.indd 1 08-02-13 10:12
ADuC841 Microcontroller Design Manual:
From Microcontroller Theory to Design Projects
If youve ever wanted to design and program with the ADuC841
microcontroller, or other microcontrollers in the 8051 family, this is the book
for you. With introductory and advanced labs, youll soon master the
many ways to use a microcontroller. Perfect for academics!

Now
Just
$35.00

Buy it today!
www.cc-webshop.com
Naamloos-2 1 27-12-12 14:30
Dreieck-Generator

OTA-basierter
Dreieck-Generator
Mehr tun mit einem Transkonduktanz-Verstrker
Viele Anwendungen von OTAs wurden schon beschrieben, eine Basisschaltung zur
Erzeugung eines nicht-sinusoidalen Signals drfte aber schwer zu finden sein. Die-
ser Beitrag beschreibt einen kombinierten Dreieck/Rechteckgenerator, der auf zwei
OTAs beruht.

Ein Operational Transconductance Amplifier Wie es funktioniert Von Libor Gajdok


(OTA), im Deutschen auch als Transkonduktanz- Die Schaltung des Generators in Bild 1 zeigt zwei (Tschechien)
Operationsverstrker bekannt, ist ein wunder- OTAs. OTA1 mit seiner Kapazitt C bildet einen
volles elektronisches Bauteil. Es verwandelt eine Integrator. Die Kapazitt C wird von OTA1 mit
(Differenz-)Spannung an seinen Eingngen in einem Konstantstrom I02 geladen. VC ist linear
einen proportionalen Strom an seinem Ausgang. abhngig von der Zeit t. OTA2 mit den Wider-
Seine Parameter knnen leicht durch Einstellen stnden R1 und R2 arbeitet als Schmitt-Trigger.
des Biasstroms Iabc gendert werden, ohne dass Der Ausgangsstrom I02 ist fr die Triggerspan-
andere Bauteile angepasst werden mssten. In nung VR2 ber dem Widerstand R2 verantwortlich.
der Literatur [1], [2] und [3] und in anderen Wenn die Spannung VC den Schwellwert erreicht,
Bchern und Artikeln wurden Unmengen von kippt der Ausgang von OTA2 in den entgegen-
OTA-Anwendungen beschrieben, wir fgen jetzt gesetzten Zustand, wodurch der Ausgangsstrom
dieser Sammlung mit einer Generatorschaltung seine Richtung zu -I02 und die Ausgangsspannung
ein weiteres Kapitel hinzu. V2 ihre Polaritt ndert. Durch die Gegenkopp-

www.elektor-magazine.de | Mai 2013 | 65


Projects

reich des OTAs verlsst. Dieser Bereich ist in


der Regel klein und liegt bei 20...50 mV. Ist die
R3 R4 R5
Triggerspannung VR2 viel hher als die Eingangs-
spannung fr den linearen Bereich, kann diese
Iabc1 Iabc2 Eingangsspannung ignoriert werden. Der OTA-
Eingang besteht aus einem Differenzverstrker, so
dass beide Eingangsstrme als gering und damit
I 01 als gleich angesehen werden knnen.
1 I 02 Innerhalb einer Periode T wird die Kapazitt von
2 t=0 und VC=0 bis zum Zeitpunkt t=t1 geladen,
wobei VC den Maximalwert VCm erreicht. In einer
R1 Gleichung:
V2
t1
I
R2
C 1
VC VR2 VCm = I 01 dt = 01 t1 (1)
C0 C
120058 - 11 Dieser Wert VCm entspricht der Triggerspannung
VR2, so dass man schreiben kann:
I 01 R2
t1 = V2 ( 2)
C R1 + R2
Bild 1. lung wird die Ausgangsspannung U2 dem Ein- Da sich V2 aufgrund des Stroms I02 ber den
Basiselemente zum Aufbau gang des Integrators zugefhrt. Dessen Ausgang Widerstnden R1 und R2 abbildet, ist auch dies
des Generators. ndert seinen Zustand zum entgegengesetzten richtig:
I01 (durch die Spannung V2) und die Kapazitt
sinkt, bis der neue Wert VR2 erreicht ist. Dieser V2 = I 02 ( R1 + R2 ) ( 3)
Vorgang wiederholt sich ad infinitum. (3) wird in (2) eingesetzt und die Zeit t1 kalkuliert:
Die Funktionsweise des Generators basiert auf der CR2 I 02
Tatsache, dass unter den gegebenen Betriebsbe- t1 = (4)
Bild 2. I 01
Rechteckige und dreieckige dingungen der Ausgangsstrom des OTAs positive
Wellenformen, vom OTA- und negative Sttigungswerte erreicht, wenn die Es wird davon ausgegangen, dass negativer und
Generator produziert. Eingangsspannung den linearen Spannungsbe- positiver Ausgangsstrom des OTAs gleich sind.
Da die Dreieck-Wellenform eine teilweise lineare
Funktion und sowohl horizontal als auch vertikal
symmetrisch ist, ist die Gesamtdauer der Schwin-
gungen T gleich 4t1. Fr die Frequenz f ist die
folgende Formel erfllt:
1 I 01 I abc1
f = = ( 5)
T 4CR2 I 02 4CR2 I abc 2
Fr Sttigung und Bias-Strme haben wir:

I 01 I abc1 und I 02 I abc 2 (6)


Da der Spannungsteiler am Ausgang nicht belas-
tet ist, gilt die folgende Beziehung fr die Amp-
litude VCm des Dreiecksignals:
R2
VCm = V2 = I 02 R2 I abc 2 R2 ( 7)
R1 + R2
Die vereinfachte Herleitung der Formeln ist zwar
nicht 100%-ig richtig, aber sie kann fr eine
ungefhre Abschtzung der Frequenz und der
Spannung verwendet werden.

66 | Mai 2013 | www.elektor-magazine.de


Dreieck-Generator

In der Praxis Quellen


Die Messungen wurden mit dem OTA LM13700,
[1] T. Parveen, Operational transconductance
R1=820 , R2=2 k und C=1 nF durchgefhrt.
amplifier and analog integrated circuits,
Die Bias-Strme wurden mit den Widerstnden
New Delhi, India, I.K. International Publishing
zwischen Bias-Eingang und Masse eingestellt. Fr
House, 2009.
Iabc1 wurden R3=1 M und R4=10 k eingesetzt,
[2] R.L. Geiger und E. Sanchez-Sinencio,
fr Iabc2 wurde R5=15 k durchgehend verwen-
Active filter design using operational trans-
det, um einen konstanten Wert von V2 und VCm
conductance amplifiers: A tutorial,
fr alle Messungen zu erhalten. Die Versorgungs-
IEEE Circuits Devices Magazine, vol.1, pp.20
spannung betrug 10 V.
- 32, Mrz 1985.
Der Ausgangsstrom I 01 lag zwischen 14 A
und 0,87 mA, die Frequenz zwischen 3,6 kHz [3] W.R. Grise. (Oktober 1998).
und 160 kHz. Als Ausgangsstrom I 02 wurde Operational Transconductance Amplifiers
0,57 mA gemessen. Bild 2 zeigt die gemesse- (OTA) for synthesis of voltage-controlled
nen Wellenformen. active-filter tuned oscillators. TECHNOLOGY
(120058) INTERFACE: The Electronic Journal for Engi-
neering Technology. Online verfgbar:
http://technologyinterface.nmsu.edu/fall98/
electronics/grise/griseota.html

Anzeige

Batronix ELEKTOR SONDERPREIS AKTION

100 Mhz, 1 GSa/s,1 Mpts,


Bestseller, FFT, USB, LAN,
automatische Messungen,
3 Jahre Garantie

2 Kanle, 60 - 160 MHz,


500 MSa/s, voll arbitrr,
16 kpts, Bestseller, 3 Jahre
Garantie

- 70 bis 200 MHz, 2 GSa/s, 14 Mpts bis 56 Mpts


- Neue, extrem rauscharme Eingangsstufen
- Automatische Messungen mit Statistik
- Umfangreiche mathematische Funktionen
- Professionelle serielle Trigger
9 kHz bis 1.5 GHz, - 3 Jahre Garantie
intuitive Bedienung,
unschlagbares Preis-
Leistungs-Verhltnis Jetzt die Batronix Sonderpreisaktion fr Batronix
Elektor-Leser nutzen und modernste
Labortechnik zum Sparpreis bestellen:
www.batronix.com/go/23
*****
* Alle Preise sind bereits inkl. MwSt. und kostenlosem Versand in alle EU Lnder. Diese Sonderpreise gelten exklusiv fr Elektor Leser und bis zum 10.06.2013.
Projects

Flexible Bedienung
Programmierung
von Mens fr Text-Displays
Auch auf einem kleinen Display lassen sich viele Parameter und Einstelloptionen
eines Projekts anzeigen, wenn man geschickt eine Menfhrung programmiert.
Voraussetzung fr eine bequeme Bedienung sind Taster, die sinnvoll neben dem
Display angeordnet sind. Das Linux-Extension-Board bietet genau dies. Nun ben-
tigt man nur noch passenden Code.
Von
Benedikt Sauter [1]

Struktur des Mens


Auf dem Linux-Extension-Board [2] findet
man ein 2x16-Zeichen-Display, direkt darunter
Smart- befinden sich drei Taster (siehe Bild 1). Das
phones und Tablets Erweiterungsboard eignet sich also ideal als Hard-
bertrumpfen sich mit immer ware-Basis fr unser Beispiel.
feiner aufgelsten Displays, doch an
Bild 1. vielen anderen Gerten findet man immer noch Zuerst mssen wir eine Liste mit den Menpunk-
Das Linux-Extension-Board einfache Text-Anzeigen. Bei etlichen Druckern, ten erstellen, die ber diese Bedieneinheit ein-
bietet ein Text-Display und Faxgerten, NAS-Servern oder Mobiltelefonen stellbar beziehungsweise einsehbar sein sollen.
drei sinnvoll angeordnete kann man hier mit Tastern durch einfache Mens Ein einfaches Men knnte wie folgt aussehen:
Taster.
navigieren, Einstellungen vornehmen beziehungs-
weise interne Statusinformationen abrufen. Konfiguration
In diesem Artikel wird an einem Beispiel gezeigt, Minimum-Temperatur
wie man eine solche Lsung fr das eigene Pro- Maximum-Temperatur
jekt umsetzen kann. Tglicher Startzeitpunkt

68 | Mai 2013 | www.elektor-magazine.de


Projects

#$ '#

Bild 2.
Beispiel fr eine
Menstruktur.

Maximale Dauer Nachdem festgelegt ist, was der Benutzer sehen


Netzwerkkonfiguration soll, bentigt man eine entsprechende Logik, die
IP-Adresse: Dynamisch oder Statisch das Men inklusive der Unterpunkte und der Akti-
IP-Adresse onselemente realisiert. Solche Aktionselemente
Netzwerk-Adresse knnen sein:
Gateway Statische Ausgabe
DNS-Server Auswahl zwischen Optionen mit Besttigung
Status fr eine Option
Live-Temperatur Einstellen von numerischen Parametern
Prozessor-Auslastung (Zahlen)
Speicher-Auslastung Einstellen von alphanumerischen Parametern
Laufzeit der Maschine Dynamische Ausgabe (Prozessbalken, Live-
Werte, Uhrzeit u.a.)
Im Men Konfiguration lassen sich wichtige
Einstellungen vornehmen. Die Minimum- und Recht einfach umzusetzen sind die statische Aus-
Maximum-Werte kann man entsprechend setzen, gabe und die Auswahl (zum Beispiel Konfigura-
um etwa Schaltvorgnge oder hnliches auszul- tion der IP-Adresse dynamisch oder statisch).
sen. Fr eine Netzwerkverbindung bentigt man Schwieriger wird es beim Einstellen von Para-
ebenfalls ein paar Konfigurationsparameter. Zum metern und der dynamischen Anzeige von sich
einen muss eingestellt werden, ob die IP-Adresse aktualisierenden Werten.
dynamisch oder statisch konfiguriert wird. Bei der
statischen Konfiguration muss man zustzlich alle Geht man nun allzu naiv an die Sache heran, so
Parameter einzeln eingeben. Gute Software sollte wird das Endergebnis vermutlich ein typischer
natrlich darauf achten, dass nur IP-Adressen Spaghetti-Code sein. Das erfreuliche Gegenteil
in gltigem Format eingegeben werden knnen. wre eine flexible und erweiterbare Lsung, bei
der man spter fast intuitiv neue Menpunkte
Umsetzung des Mens einfgen kann, ohne sich tief in die Software
Bei der Menfhrung kann man sich von Gerten einarbeiten zu mssen.
im eigenen Umfeld inspirieren lassen. Sicher-
lich kennt jeder von uns gelungene und weniger Lsungsvorschlag
gelungene Anstze. Bei der Suche nach einer passenden Lsung sind
zwei Vorschlge entstanden. Einmal die klassi-
In Bild 2 haben wir die Menfhrung skizziert, sche Bibliothek, mit der man solch ein Programm
die wir nun umsetzen wollen. Es ist nicht das umsetzen kann. In Listing 1 ist der entspre-
komplette, oben beschriebene Men dargestellt, chende Pseudo-Quelltext dargestellt. Mit den
aber die restlichen Punkte kann man sich gut Funktionen MainMenu und SubMenu kann man
vorstellen. eine Baumstruktur aufbauen, die einfach erwei-

www.elektor-magazine.de | Mai 2013 | 69


Projects

terbar ist. Wird ein neuer Knoten angelegt, erhlt


Listing 1. Pseudo-Code fr den Aufbau eines Mens.
man eine Referenz auf diesen als Rckgabewert.
configuration = MainMenu(Configuration) Mit einem Verweis auf diesen Wert kann man
network = MainMenu(Network) weitere Unterknoten anlegen. Mit RegisterMenu
state = MainMenu(State) verbindet man die Knoten schlielich noch mit
Funktionen im Code, die bei der Auswahl des
//Menu Configuration
jeweiligen Men-Unterpunkts aufgerufen werden.
Nun kommt die Implementierung dieser Funktio-
mintemp = SubMenu(configuration,Min Temp)
nen an die Reihe. Whlt man einen Unterpunkt
maxtemp = SubMenu(configuration,Max Temp)
wie z.B. das Einstellen der minimalen Tempera-
start = SubMenu(configuration,Start Time)
tur, dann muss ein Men erscheinen, mit dessen
duration = SubMenu(configuration,Duration) Hilfe man einen Zahlenwert einstellen kann. Als
Pseudo-Code knnte das Ganze wie in Listing 2
//Menu Network aussehen.
ipchoose = SubMenu(network,IP-Address: Dyn/Static)
ip = SubMenu(network,IP-Address) In dieser und jeder anderen Funktion zur Einstel-
netaddress = SubMenu(network,Network) lung eines Parameters muss es einen lesenden
gateway = SubMenu(network,Gateway) und schreibenden Zugriff auf eine Konfigurati-
dns = SubMenu(network,DNS-Server) onsdatei oder Datenbank geben ( und
). Die Tastendrcke werden in einer
switch-case-Struktur ausgewertet. Der aktuali-
//Menu State
sierte Temperatur-Wert wird mit dem Befehl Dis-
temperature = SubMenu(state,Temperature)
play angezeigt.
cpu = SubMenu(state,CPU)
ram = SubMenu(state,RAM) Auf der Elektor-Website zu diesem Artikel [3]
uptime = SubMenu(state,Uptime) kann man eine Beispiel-Implementierung in der
Sprache C herunterladen.

RegisterMenu(mintemp,MinTemperature) Alternative
Elegant knnte man ein solches Men auch mit
dem (Linux-)Dateisystem realisieren. Entspre-
chend der Menstruktur legt man einen Verzeich-
nisbaum an. In den Verzeichnissen knnen dann
Listing 2. Pseudo-Code zum
Einstellen eines Parameters. jeweils eigene Mini-Programme liegen, die sich
um die Umsetzung des Men-Unterpunkts km-
Function MinTemperature() mern. Die Ausgabe des Programms wird einfach
{ 1:1 an das Display weitergeleitet.
mintemp = ConfigRead(mintemp)
switch(button)
{
Weblinks
case button_left:
mintemp-- [1] sauter@embedded-projects.net
case button_ok: [2] www.elektor.de/120596
Back() [3] www.elektor.de/130044
case button_right:
mintemp++
}
ConfigWrite(mintemp,mintemp)
Display(%s,mintemp)
}

70 | Mai 2013 | www.elektor-magazine.de


Lesen Sie die neue Elektor ein Jahr lang
in der ultimativen GOLD-Mitgliedschaft und
profitieren Sie von allen Premium-Vorteilen!

Die Elektor-GOLD-Jahresmitgliedschaft
bietet Ihnen folgende Leistungen/Vorteile:
s3IEERHALTEN10 Elektor-Hefte %INZELHEFTE $OPPEL
AUSGABEN*ANUAR&EBRUARUND*ULI!UGUST PNKTLICH
UNDZUVERLSSIGFREI(AUS
sExtra:*EDES(EFTSTEHT)HNENAUERDEMALS0$&ZUM
SOFORTIGEN$OWNLOADUNTERWWWELEKTOR MAGAZINEDE
FR0#.OTEBOOK ODERVIA!PPFR4ABLET BEREIT
sNeu & Exklusiv:3IEERHALTENALLE7OCHENPER% -AIL
EINNEUES%XTRA 3CHALTUNGSPROJEKTFRISCHAUSDEM
%LEKTOR ,ABOR 
sNeu & Exklusiv:7IRGEWHREN)HNENBEIJEDER/NLINE
"ESTELLUNG2ABATTAUFALLEUNSERE7EBSHOP
0RODUKTEnDAUERHAFT
sNeu & Exklusiv:$ER/NLINE :UGANGZUMNEUEN#OMMU
NITY "EREICHWWWELEKTOR LABSCOMBIETET)HNENZUSTZ
LICHE"AUPROJEKTEUND3CHALTUNGSIDEEN
sExtra:$IENEUE%LEKTOR *AHRGANGS $6$7ERT  IST
BEREITSIM-ITGLIEDSBEITRAGINBEGRIFFEN$IESE$6$SCHICKEN
WIR)HNENSOFORTNACH%RSCHEINENAUTOMATISCHZU
sExtra:4OP 7UNSCHPRMIEIM7ERTVON GIBTSALS
$ANKESCHN'2!4)3OBENDRAUF

UMWELTSCHONEND GNSTIG GREEN


-CHTEN3IE%LEKTORLIEBERIMELEKTRONISCHEN&ORMATBEZIEHEN
$ANNISTDIENEUE'2%%. -ITGLIEDSCHAFTIDEALFR3IE
$IE'2%%. -ITGLIEDSCHAFTBIETETABGESEHENVONDEN0RINT
AUSGABEN ALLE,EISTUNGENUND6ORTEILEDER'/,$ -ITGLIEDSCHAFT

Jetzt Mitglied werden unter www.elektor.de/mitglied!

Naamloos-1 1 membership DE 130118.indd 1


Adv Green-Gold 08-02-13
05-02-13 10:13
13:57
Industry

Raspberry Pi:
Ein Jahr und eine Million Computer spter

Im April 2012 berichtete Eben Upton, Grnder der


Interview von Raspberry Pi Foundation in einem Elektor-Interview
Clemens Valens
bersetzung von
[1] vom Produktionsstart des Einplatinencompu-
Rolf Gerstendorf ters. Inzwischen wurden fast eine Million Boards
verkauft. Wir trafen den R-Pi Hardware-Spezia-
listen Peter Lomas auf der Embedded World 2013
in Nrnberg. Eine gute Gelegenheit, mit ihm den
neuesten Stand des Projekts zu errtern.

C: Raspberry Pi, ein Phnomen. Es ist schon C: Neben dieser Komplexitt ist die Tatsache,
erstaunlich, was da passiert ist. dass man in Englisch programmieren muss
P: Das ist es! Viele Leute fragen mich, warum aus [wegen Python, Anmerkung der Redaktion] fr
Raspberry Pi so ein Hype geworden ist, was haben die nicht-englischsprachige Bevlkerung eine wei-
wir anders gemacht als andere? Der erste wichtige tere Hrde. Deshalb ist Arduino so erfolgreich,
Grund knnte sein: Wir hatten einen unserer ers- es machte die Programmierung einfach. Es ist
ten Prototypen in einem UK-Blog. Einer der BBC- nicht nur eine billige Hardware.
Korrespondenten, Rory Cellan-Jones, machte ein P: Es gibt keinen Zweifel, Arduino ist ein genia-
kleines YouTube-Video, das 600.000 Aufrufe erhielt. les Produkt. Und du hast Recht, man kann sehr
leicht ein Hello World aufrufen. Aber auf einem
C: Ich habe einen Blick auf die Webseite von Raspberry Pi schliet du die Kabel an und steckst
Raspberry Pi geworfen und finde, sie ist fr eure die Karte ein und hast ein entsprechendes Hello
Zielgruppe Jugendliche - nicht so einfach zu World, nur bei uns ist das die Scratch-Katze.
verstehen. Es ist nicht wirklich erklrt, was Ras- Sobald du die Scratch-Katze (Bild 1) aufgerufen
pberry Pi genau ist. Es gibt verschiedene Distri- hast, hast du eine Reihe von Mglichkeiten. Man
butionen, man muss Linux kennen und in Python kann Scratch mit einer I/O-Schnittstelle verwen-
programmieren... den, um eine LED zum Leuchten zu bringen; oder
P: Nun, das ist wahr, und auf seltsame Weise ist man kann eine Taste drcken, um die Scratch-
das Teil des Erfolgs, denn du musst tatschlich Katze zu bewegen. Ich habe festgestellt, dass
aktiv werden. Um etwas mit Pi anzufangen, reicht Kinder das Ganze verstehen, solange es nicht
es nicht, es aus einer Hochglanzbox auszupacken, allzu kompliziert ist. Es sind eher die Erwachse-
auf den Tisch zu legen und auf die ON-Taste nen, die da Probleme haben.
zu drcken. Du hast tatschlich einige geistige
Arbeit zu verrichten. Du musst einige Dinge her- C: Ich sah mindestens drei verschiedene Distri-
ausfinden. Und ich glaube, dass es ein Vorteil ist, butionen fr die Boards. Was sind eigentlich die
wenn etwas funktioniert, weil du eine Leistung Unterschiede? Warum gibt es nicht nur eine?
erbracht hast. Du hast etwas getan. Nicht Wir P: Nun, sie alle bieten leicht unterschiedliche
haben etwas getan, DU hast es selbst gemacht Funktionen. Letztendlich fokussiert haben wir uns
und dies ist eine Genugtuung. nur auf Python - das ist es, woher der Name

72 | Mai 2013 | www.elektor-magazine.de


Interview

Pi kommt. Mit den verschiedenen Paketen sind Wir haben unseren guten Ruf auf die Webseite
wir in der Lage different roots von Menschen genagelt und versprochen, dass das Board 35 $
zu untersttzen, die Pi verwenden wollen. Jetzt kosten wrde, da gab es keinen Weg zurck. Aber
haben wir das RISC-OS, das sie verwenden kn- die grundlegenden Zahlen in unserer Kalkulation
nen. Und die Leute sind sogar mit Bare-metal- sahen plausibel aus, wir hatten nur eine Menge
Programmierung beschftigt. Wenn wir nur eine Arbeit, das Ganze mit den Preisen auch wirklich
Distribution htten, wrden wir dies ausschlieen. auf den Punkt zu bringen. Also, ich glaube, wenn
wir einen anderen Weg gegangen wren, vielleicht
C: Okay. Ich habe die Distribution ausgesucht und mit Samsung, htte es das Budget gesprengt.
mchte nun eine LED ansteuern, dann muss ich
einen Treiber oder so etwas ffnen, nehme ich an? C: Hat Broadcom in irgendeiner Weise geholfen?
P: Nun, du hast die Bibliothek und musst nur P: Jeder Halbleiterhersteller half dem Projekt,
einen Bibliotheks-Aufruf ttigen. Wieder ist es indem er die Chips zur Verfgung stellte und dies
aber nicht ganz so einfach: Du musst die Bib- zu einem guten Preis. Denn das groe Problem
liothek suchen und finden und herunterladen. ist, dass man nicht von vornherein das Volumen
Jetzt kommt die Erweiterungsplatine Pi-Face [3] abschtzen kann. Also versuchst du, konservativ
mit einer interaktiven Bibliothek ins Spiel, die zu zu sein und von einigen tausend Boards auszu-
Scratch fhrt. Das Gertboard [4] ist ein weiteres gehen. Schnell waren wir bei 20.000 Boards,
Add-on-Board, mit Treiberbibliotheken und eini- aber nirgendwo in unseren khnsten Trumen
gen dazugehrigen Tutorials. Letztendlich kann hatten wir damit gerechnet, schon am Starttag
man die GPIOs dann genauso einfach wie bei der 200.000 Boards zur Verfgung stellen zu mssen
Bare-metal-Programmierung ansprechen [also und innerhalb eines Jahres eine Million ver-
ohne ein Betriebssystem als Zwischenschicht, wie kaufen zu knnen. Das hat in vielerlei Hin-
bei einem einfachen Mikrocontroller, Anmerkung sicht geholfen, denn es hat den Preis aller
der Redaktion]. Bauteile nach unten getrieben. Ich wrde
nicht behaupten, es htte die Anbieter
C: Ich habe mir einige der Projekte angesehen von Komponenten, die vom ersten
und bin von der Vielzahl der Media-Player ber- Tag an uns glaubten, nicht gefreut,
rascht. Mit dieser Art von Anwendung bewirbt damit etwas Geld zu verdienen.
zum Beispiel RS das Board. Sind Sie davon nicht Wir folgten immer dem Grundprinzip
enttuscht? Raspberry Pi wird von vielen Men- der Nachhaltigkeit, dass die Foundation,
schen nur als eine billige Plattform fr eine Linux- die Community, die die Boards kauft und
Applikation angesehen, mit der sie ein Media- unsere Lieferanten alles tun, damit sich
Center realisieren knnen. das Projekt finanziell trgt. Es wre eine
P: Ich wei genau, was du meinst. Ich sollte ent- totale Katastrophe gewesen, wenn etwa Broad- Bild 1.
tuscht sein, dass einige Leute das Board nur com gesagt htte: Ich sag euch was, Leute, lasst Die Scratch-Katze,
kaufen, um es zu einem Media-Center zu machen euch die ersten 20.000 Prozessoren schenken. eine Multi-Media-
und sonst nichts damit tun. Aber wenn nur fnf Wir htten dem Board allen mglichen Schnick- Programmierumgebung fr
oder zehn Prozent der Menschen, die dies getan schnack hinzufgen knnen und nach dem Ver- Kinder.
haben, denken Na ja, das war aber einfach, viel- kauf der ersten 20.000 Exemplare den Preis um
leicht bekomme ich auch die eine oder andere 12 $ anheben mssen. Ich glaube, das wre das
Anwendung damit hin, dann ist es doch ein Erfolg. Ende von Raspberry Pi gewesen.

C: Kommen wir zu der Hardware auf dem Board. C: Broadcom hlt sich aus irgendeinem Grund
P: Aber gerne! zum Prozessor ziemlich bedeckt. Ich glaube, du
musstest ein NDA (Non-Disclosure Agreement)
C: Also, du hast einen Broadcom-Prozessor aus- unterschreiben, um alle Details zu erhalten.
gesucht, weil Eben bei Broadcom gearbeitet hat? P: Immerhin haben wir es geschafft, die ARM-
P: Er arbeitet immer noch bei Broadcom. Es wre Seite ffentlich zu machen, aber die GPU [Graphi-
schwer fr mich zu leugnen, dass es nicht der Grund cal Processing Unit] musste geschlossen bleiben.
fr diese Entscheidung war, als Eben sagte: Oh
schau mal, hier ist ein phantastischer Chip. Er kann C: Ich nehme an, du hast Zugang zu allen
alles, was wir wollen, warum nehmen wir ihn nicht? Informationen?

www.elektor-magazine.de | Mai 2013 | 73


Industry

tens, wenn der Preisfaktor ins Spiel gekommen

2 wre, wre ich wieder bei unserem Chip gelan-


det, der beinahe ideal zu unseren Anforderungen
passt. Ein Knackpunkt dabei war zweifellos die
HDMI-Untersttzung. Aus technischer Sicht war
eine der Herausforderungen die Leiterbahnfh-
rung unter dem BGA, weil blind vias und buried
vias sehr teuer sind (Bild 2).

1 3 C: Wie viele Layer hat die Platine?


P: Sechs, die Layer-Anzahl ist Standard. Der ein-
zige kleine Trick war, wir haben blind vias nur
Bild 2. Drei verschiedene Vias: 1 normal, 2 - blind; 3 - buried. Stellen Sie sich eine auf die Layer eins und zwei plaziert - so hatten
6-Lagen-Platine mit blind vias zwischen den Layern 1 und 2 vor. Diese beiden Lagen wir zwar eine zustzliche Bohrstufe, aber nur eine
mssen separat als doppelseitige Platine gefertigt und dann mit den anderen vier Layern
Bonding-Stufe. Das hat dann zwei Cents gekostet.
verbunden werden. Diese Anordnung wird dann wieder gebohrt und durchverbunden.
Aber, weil die nchste Ebene darunter eine Mas-
Insgesamt sind zwei Bohr- und Beschichtungsverfahren erforderlich anstelle von nur
einem, wenn keine blind oder buried vias vorhanden sind. seflche war, musste ein Groteil der Anschlsse
aus dem Broadcom-Prozessor nur einen Layer
tiefer gehen. Und das bedeutete, dass ich Raum
P: Wir mssen den Zugang haben. Aber meine darunter zum Routen anderer Dinge hatte.
persnliche Sorge wre auch, wenn wir uns da
durcharbeiten und anfangen, etwa eigene Versi- C: Haben sie nicht Richtlinien bei Broadcom?
onen von Bibliotheken zu verffentlichen, dann P: Oh, klar haben sie Richtlinien! Verwenden Sie
knnten wir am Microsoft-Syndrom erkranken blind und buried vias und vias in Pads. Unser
mit DLLs, die im Konflikt zueinander stehen, was erster Prototyp bercksichtigte all dies, aber die
eine enorme Komplexitt zur Folge htte. Und ich Kosten wren auf 100110 $ gestiegen. Also
glaube auch, der Video-Kern ist das Kronjuwel haben wir die Machete ausgepackt und all die
des geistigen Eigentums von Broadcom. Es gibt Dinge, die wir nicht brauchten, weggehackt. Du
viele andere Halbleiterhersteller, wo dies in Sili- hast alle Funktionen, die du wnschst, die Leis-
zium realisiert ist, und niemand beschwert sich, tung, die du dir vorstellst, aber nichts extra.
nicht genau zu erfahren, wie das Stck Silizium
funktioniert. Ich denke, solange es eine Schnitt- C: Wie viele Versuche hast du bis zum ersten
stelle gibt, die du benutzen kannst, solltest du funktionsfhigen Board gebraucht?
das wie ein Stck Silizium ansehen. Du gibst ihr P: Wir haben Prototypen gebaut. Sie haben nicht
Befehle, sie macht einen Job fr dich und reagiert funktioniert. Wir mussten eine Modifikation vor-
mit einer Antwort. nehmen, um den Broadcom-Chip mit Strom zu
versorgen. Ich glaube, ich hatte das Datenblatt
C: War es fr dich nicht ein Glcksspiel? Hattest missverstanden.
du von Tag 1 an Zugriff auf alles oder musstest
du Broadcom erst berzeugen, dass du Tausende C: Wie bitte? Das Problem war, dass der Chip
von Boards verkaufen knntest, bevor sie mit dir nicht mit Strom versorgt wurde?
reden wrden? P: Wenn der Chip gar nicht versorgt worden wre,
P: Eben und noch einige andere der Jungs, kein Problem. Aber die Hlfte des Chips lief, die
die das Projekt untersttzen, arbeiten ja fr andere nicht, weil es einige interne Spannungsver-
Broadcom. Einige von ihnen haben sogar Teile von sorgungen gibt, die extern versorgt werden ms-
diesem Chip entwickelt und kennen ihn natrlich sen. Ich habe da etwas durcheinander gebracht.
im Detail. Das ist sicherlich immer ein Vorteil. Aber jemand hat entdeckt, dass lediglich eine
Durchkontaktierung mit einer kleinen Kupferfl-
C: Und wenn Eben und die anderen nicht fr che direkt daneben verbunden werden musste.
Broadcom gearbeitet htten...
P: Htten wir einen anderen Chip verwendet? C: Nur ein Klecks Ltzinn?
Nun, ich spekuliere mal, ich wre herumgelaufen P: Es war der sprichwrtliche Klecks Ltzinn. Ein
und htte geschaut und verglichen und sptes- Klecks Ltzinn und alles begann zu leben! Eines

74 | Mai 2013 | www.elektor-magazine.de


Interview

der ersten Videos auf der Website zeigt Eben aber nicht mehr. Wir versuchen, unser Educational-
und mich, wie wir kleine Stckchen Ltstopplack Release zu verbessern. Ich will nicht behaupten,
abkratzen und Ltzinn auf die Stelle klecksen. dass Raspberry Pi perfekt ist. Wir haben nur eine
Modifikation am Board vom Design bis zur Verf-
C: Ich habe Kritik von Unternehmen gehrt, ihr fentlichung und nur einige kleinere nderungen an
ttet das Geschft. Ihre Kunden erwarten jetzt der Version 2 vorgenommen. Einige davon behe-
Boards, die die Hlfte kosten. Wenn Raspberry Pi ben ein paar Unregelmigkeiten, einige andere
nur 25 $ kostet, warum soll ich fr deine kleine Pla- waren ntig, um unserem neuen Produktionspart-
tine dann 100 $ bezahlen? Was denkst du dazu? ner Sony entgegenzukommen. Sony bentigte
P: Nun, meine Antwort darauf wre, ihren Kun- einige geringfgige nderungen an der Platine,
den sagen: Bestellen Sie eine Million Exemplare um sie einfacher fertigen zu knnen.
und Sie knnen es zu diesem Preis haben. Es
ist alles eine Frage der Skalierbarkeit. Wir konn- (130101)
ten wegen der Untersttzung, die wir hatten, so
skalieren. Aber ich glaube nicht, dass wir ernst-
Links & Quellen
haften Schaden im Markt anrichten.
[1] Interview mit Eben Upton:
C: Was denkst du ber die Zukunft von Ras- www.elektor.de/120228
pberry Pi? [2] Scratch: http://scratch.mit.edu/
P: In unserer Branche garantiert Moores Gesetz, [3] Pi-Face: http://pi.cs.man.ac.uk/interface.htm
das alles nach zwei Jahren hoffnungslos veraltet
[4] Gertboard: http://elinux.org/RPi_Gertboard
ist. Also denken wir zwar ber die Zukunft nach,
Anzeige

AVR-Programmierung 4
LCD-Graphik II, verkettete Strukturen II und die Fdelsprache LAX

In diesem vierten Band zur Programmierung von AVR-Mikrocontrol-


lern wird die LCD-Graphik aus Buch 3 weiterentwickelt. Hinzu kom-
men das Fllen von Polygonen, die Zuordnung von Pixelkoordinaten
zu Graphikobjekten und die Verwendung des Displays als Textfenster.
Der Einstieg in die Animationstechniken reicht von einem einfachen
blinkenden Cursor ber die Simulation einer rollenden Billardkugel
und Truchet-Kacheln bis zu einer animierten Sanduhr.
Aufbauend auf der Darstellung der inneren Mechanik von Fdelspra-
chen im vorigen Band wird die Fdelsprache LAX vorgestellt und im-
plementiert. Aufbau, Verhaltensweise und Konstruktion der Sprach-
elemente sind so genau beschrieben, dass eigene Ideen zur Sprach-
gestaltung erfolgreich umgesetzt werden knnen.
Der dritte Teil des Buches setzt die Einfhrung in die Welt der ver-
ketteten Listen fort. Hier werden die Betriebsalgorithmen einiger Lis-
tenvariationen diskutiert und implementiert. Hhepunkt ist jedoch
die Anwendung der vorgestellten Techniken in einem ausfhrlichen 321 Seiten (kart.) Format 17 x 23,5 cm
Beispiel, das die Umsetzung einer Variation der Netzplantechnik in ISBN 978-3-89576-232-1
AVR-Code behandelt. 46,00 CHF 57,10

Weitere Infos & Bestellung unter


www.elektor.de/avr-prog4

www.elektor-magazine.de | Mai 2013 | 75


Magazine

Hexadoku Sudoku fr Elektroniker


Wer seine kleinen grauen Zellen frisch halten will, muss diese regelmig trainieren. Hierfr eignen sich nicht nur die
Elektronik-Projekte in unserem Heft, sondern auch unser Hexadoku. Nun mssen Sie nur noch die richtigen Zahlen
herausfinden. Wer uns die Hex-Ziffern in den grauen Kstchen zuschickt, kann einen von vier Gutscheinen gewinnen.
Die Regeln dieses Rtsels sind ganz einfach zu verstehen: Bei genau einmal vorkommen. Einige Zahlen sind bereits ein-
einem Hexadoku werden die Hexadezimalzahlen 0 bis F verwendet, getragen, was die Ausgangssituation des Rtsels bestimmt.
was fr Elektroniker und Programmierer ja durchaus passend ist. Wer das Rtsel lst - sprich die Zahlen in den grauen Kstchen
Fllen Sie das Diagramm mit seinen 16 x 16 Kstchen so aus, herausfindet - kann wie jeden Monat einen Hauptpreis oder
dass alle Hexadezimalzahlen von 0 bis F (also 0 bis 9 und A einen von drei Trostpreisen gewinnen!
bis F) in jeder Reihe, jeder Spalte und in jedem Fach mit 4 x
4 Kstchen (markiert durch die dickeren schwarzen Linien)

Mitmachen und gewinnen! Einsenden


Unter allen internationalen Einsendern mit der richtigen Lsung Schicken Sie die Lsung (die Zahlen in den grauen Kstchen) per
E-Mail, Fax oder Post an:
verlosen wir einen Eurocircuits/Elektor-PCB-Service- Elektor Redaktion Ssterfeldstr. 25 52072 Aachen
Gutschein im Wert von 100 und drei Fax: 0241 / 88 909-77 E-Mail: hexadoku@elektor.de
Als Betreff bitte nur die Ziffern der Lsung angeben!
Elektor-Bcher-Gutscheine im Wert von je 50 .
Einsendeschluss ist der 31. Mai 2013!

Die Gewinner des Hexadokus aus der Mrz-Ausgabe stehen fest!


Die richtige Lsung ist: 48C57.
Der Eurocircuits/Elektor-PCB-Service-Gutschein im Wert von 100 geht an: Yves Printems (Frankreich).
Einen Elektor-Gutschein ber je 50 haben gewonnen: Torsten Clever, Peter Raue und Arwin Vosselman.
Herzlichen Glckwunsch!

6 F 2 8 C 3 D E 9 0 1 A 7 4 5 B
0 7 9 C F 5 A 1 B 6 4 2 D E 8 3
1 3 D E B 2 4 8 C 5 7 F 0 6 9 A
4 A B 5 6 7 9 0 8 3 D E C F 1 2
A 8 C 9 0 B 1 3 E F 2 5 4 7 D 6
7 D 3 2 4 F C 5 A 8 0 6 1 9 B E
B 0 F 1 7 E 8 6 D 9 3 4 A 2 C 5
E 4 5 6 9 A 2 D 1 7 B C F 0 3 8
2 E 0 4 8 C 3 7 F A 9 D B 5 6 1
3 5 6 F 1 D B 4 7 2 C 0 8 A E 9
8 B 7 D 2 9 5 A 4 E 6 1 3 C F 0
9 C 1 A E 6 0 F 3 B 5 8 2 D 7 4
C 1 A 3 D 8 6 9 0 4 E 7 5 B 2 F
D 2 8 7 A 0 E B 5 1 F 9 6 3 4 C
5 6 E 0 3 4 F C 2 D 8 B 9 1 A 7
F 9 4 B 5 1 7 2 6 C A 3 E 8 0 D
Der Rechtsweg ist ausgeschlossen. Mitarbeiter der in der Unternehmensgruppe Elektor International Media B.V. zusammengeschlossenen Verlage und deren Angehrige sind von der Teilnahme ausgeschlossen.

76 | Mai 2013 | www.elektor-magazine.de


Naamloos-2
Naamloos-2 11 20-04-12 14:31
27-12-12 08:46
Magazine

Von
Reginald Neale (USA) Der Fluch des Sammelns
Fairchild 7050. Dieses Digi-
talvoltmeter benutzte ich in
den 60er Jahren. Als eines der
ersten setzte es auf dual-slope
integration, was zu einem
stabilen Nullpunkt fhrte. Da
die Integrationszeit von der
Netzfrequenz abhngt, werden
Effekte von Netzstrungen schn
unterdrckt. Bild: Marvin Collins.
V-742 Dos
imeter. Das
Skalenbild
wenn man ist das was
das Dosim man sieht,
am andere eter ins Lich
n Ende durc t hlt und
Modell V-74 hs Okular sc
2 ist dazu haut. Das
der Kleidung gedacht, pe
befestigt zu r Clip an
kumulative werden un
Strahlungs d die
ein Dosimet dosis zu er
er wird mit fassen. So
nung gelade einer hohe
n, was die n Span-
zurcksetz Strichliniena
t. Strahlun nzeige
Ladung redu g sorgt daf
ziert wird, r, dass die
dann nach wobei die
rechts wan Anzeige
ment ben dert. Das In
tigt ein Sp stru-
ezialladege
rt.
Klassischer Empfnger fr Funkamateure. Ein Collins
2051 restauriert und fotografiert von Marvin Collins,
W6OQI.
ver-
sem Kon
C o n v e rt er. Bei die a tz vib- Heathkit.
Brown einen S In den USA
h a n d e lt es sich um t in e in em in Sachen ein groer
Name
ter tz Selbstbau-
K o n ta kt e, eingese S ys te m. Labornetzt Elektronik.
rierende r rstrker- eil fr Rh Dieses
ro n e n D etektor-Ve spten 50er ren kaufte
ich in den
synch Jahren.

Weitere virtuelle Museen im Web


Wenn Ihnen das gefllt, interessieren Sie sich vielleicht auch fr diese Seiten:
www.conradhoffman.com
www.oneillselectronicmuseum.com/page10g.html
www.electricstuff.co.uk/
www.tubecollector.org/list.php?L=:
www.unusualmuseums.org/
http://wps.com/archives/tube-datasheets/
www.ieee-virtual-museum.org/
www.seas.upenn.edu/~museum/
http://frank.yueksel.org
www.heathkit-museum.com/
http://semiconductormuseum.com/Museum_Index.htm
http://silicongenesis.stanford.edu
Webseiten ber Webseiten und sie ndern sich natrlich unentwegt. Warnung:
Fluke 1941A Digitalzhler der frhen 70er Jahre mit
Es sind unglaubliche Zeitschlucker aber das wissen Sie vermutlich schon
Nixie-Rhren.

78 | Mai 2013 | www.elektor-magazine.de


Die hier abgebildeten Teile sammelten sich bei mir im Laufe meines Berufslebens als Elektroniker, da ich wohl
unfhig war, irgendetwas Elegantes, Exotisches, Tolles, Merkwrdiges, Ungewhnliches oder etwas von auer-
gewhnlicher Qualitt wegzuwerfen. Dabei spielte es keine Rolle, ob man das jemals wieder gebrauchen knn-
te. Diese Retronik-Ausgabe sei deshalb all jenen gewidmet, die mit einem hnlichen Laster geschlagen sind.

Bcher!
Einige Bcher die sich mit der hier beschriebenen Technik beschftigen:
70 Years of Radio Tubes, John W. Stokes, Vestal Press 1982
Procedures in Experimental Physics, J. Strong, Prentice-Hall 1938
The Amateur Scientist, C. L. Stong, Simon & Schuster 1960
Reference Data for Radio Engineers, Federal Telephone and Radio Corp. 1946

Geigerzhler aus den


spten 40ern. Nach dem
Zweiten Weltkrieg war
die ffentlichkeit von
Atomkraft fasziniert. Es
gab sogar Leute, die mit
solchen Apparaten nach
Uran suchten.
Galvanometer. Dieses Gert von Leeds & Northrup kennt
fast jeder, der frher in einem wissenschaftlichen La-
bor ttig war. Per Lichtstrahl als masseloser Zeiger kann
man damit sehr kleine Strme detektieren. Das Teil ist
etwa 20 cm hoch. Heutige Galvanometer werden haupt-
schlich bei Scannern eingesetzt. Sie sind viel kleiner und
stabiler und um Grenordnungen schneller. Bild: Conrad
R. Hoffman.
Philco-O
szillosk
den 50e op. Es w
r Jahren urde zur
Spannun e ingesetz TV-Repa
t. Weder ratur in
gsbereic Zeitbasis
nisation he sind noch
ist prim kalibriert
itiv. Der . Auch d
lack ist ty graublau ie Synch
pisch fr e Hammers ro-
Marvin C Messgr chlag-
ollins. te aus d
ieser Ze
it. Bild:

Grid-Dipper aus den 50ern. Ein kontaktloses Messverfahren zur Erfassung von Resonanzfre-
quenzen. Die auf das Messgert gesteckte Testspule muss mit der zu messenden Schaltung
gekoppelt sein. Bei der Abstimmung mit dem rechten Drehknopf wird das Zeigerinstrument
irgendwo einen scharfen Ausschlag machen, und dann kann man auf der oberen Skala die
Frequenz ablesen. Fr den Bereich von 0,6...300 MHz sind mehrere Spulen erforderlich.

Multimeter von GE. Mehrbereichs-Labormessgert aus den 50er Jah-


ren. Ein modernes DVM hat eine standardisierte Eingangsimpedanz
Retronik ist eine monat-
von 10 M in allen Messbereichen, was die zu messende Spannungs- liche Rubrik, die antiker
quelle kaum belastet. Ganz anders die elektromechanische Messung: Elektronik und legendr-
Die Impedanz hngt vom Messbereich ab und betrgt hier 200 /V. en Elektor-Schaltungen
Im 7,5-V-Bereich macht das 15 k niedrig genug, um reale Mes- ihre Referenz erweist.
sungen zu beeintrchtigen. Ein weiteres Problem analoger Messge- Beitrge, Vorschlge und
rte: Der Zeiger liegt ber der Skala. Deshalb der verspiegelte Anfragen telegrafieren
Bogen in der Skala. Schaut man so drauf, dass der Zeiger sein Sie bitte an Jan Buiting
Spiegelbild verdeckt, wird der Parallaxe-Fehler vermieden. (editor@elektor.com).

www.elektor-magazine.de | Mai 2013 | 79


Elektor Store

1 2 3

Taschenbuch fr Elektronik und Elektrotechnik bungen fehlen. Hier setzt dieses Buch an. Systematisch Bestcke und getestete Platine
1 Formelsammlung werden Projekte vorgestellt, die in verschiedene Themen- 4 Elektor-Linux-Board
Diese Formelsammlung beinhaltet alle wichtigen gebiete einfhren. Dabei wird neben den erforderlichen Linux luft heutzutage auf den unterschiedlichsten
Details fr Ingenieure, Techniker, Meister und Fach- theoretischen Grundlagen stets grter Wert auf eine pra- Gerten sogar in Kaffeemaschinen. Es gibt daher
arbeiter in der Elektrotechnik und Elektronik, die in xisorientierte Ausrichtung gelegt. viele Elektroniker, die an Linux als Basis fr eigene
Forschung, Entwicklung und Service ttig sind. Die 270 Seiten (kart.) ISBN 978-3-89576-257-4 Controller-Projekte interessiert sind. Eine Hrde ist
logische Gliederung in zehn Kapitel vereinfacht das 39,80 CHF 49,40 jedoch die scheinbar hohe Komplexitt, auerdem
Nachschlagen und Aufsuchen der gewnschten The- sind Entwicklungsboards oft recht teuer. Mit diesem
men. In den einzelnen Kapiteln finden Sie immer die kompakten Modul, das bereits fr modernste Embed-
notwendigen mathematischen und physikalischen Apps programmieren Schritt fr Schritt ded-Projekte fertig bestckt ausgestattet ist, gelingt
Formeln sowie die wichtigsten Tabellen. 3 Android der Linux-Einstieg ideal und preiswert zugleich.
271 Seiten (kart.) ISBN 978-3-89576-251-2 Smartphones und Tablet-Computer mit dem Betriebs- Art.-Nr. 120026-91 64,95 CHF 80,60
29,80 CHF 37,00 system Android finden immer weitere Verbreitung. Die
Anzahl der Anwendungsprogramme die sogenannten
Applikationen oder kurz Apps mit denen sich die Gerte Theorie und Praxis mit WinFACT und Multisim
Schaltungsprojekte fr Profis individuell an die Vorlieben und Wnsche ihrer Benutzer 5 Regelungstechnik
2 Arduino anpassen lassen, steigt tglich an. Man ist bei der In- Die heutige Regelungstechnik hat Verknpfungspunkte
Fr den groen Erfolg der Arduino-Plattform lassen dividualisierung seines Smartphones aber nicht auf fix mit fast jedem technischen Gebiet. Ihre Anwendungen
sich zwei Ursachen finden. Zum einen wird durch das und fertige Applikationen beschrnkt. Es ist einfacher reichen von der Elektrotechnik ber die Antriebstech-
fertige Board der Einstieg in die Hardware enorm er- als man denkt, Android-Gerte selber zu programmie- nik und den Maschinenbau bis hin zur Verfahrens-
leichtert; der zweite Erfolgsfaktor ist die kostenlos ren und eigene Apps zu schreiben. Dieses Buch bietet technik. Will man nun die Regelungstechnik anhand
verfgbare Programmieroberflche. Untersttzt wird eine Einfhrung in die Programmierung von Apps auf der fachlichen Regeln dieser einzelnen Gebiete erkl-
der Arduino-Anwender durch eine Flle von Software- Android-Gerten. Es erklrt leicht nachvollziehbar die ren, so msste man von einem Regelungstechniker
Bibliotheken. Die tglich wachsende Flut von Librari- Funktionsweise des Android-Systems und Schritt fr verlangen, jedes Fachgebiet, in dem er Regelungen
es stellt den Einsteiger vor erste Probleme. Nach ein- Schritt die Programmierung von Applikationen. vornehmen will, fundiert zu beherrschen. Dies ist
fachen Einfhrungsbeispielen ist der weitere Weg nicht 256 Seiten (kart.) ISBN 978-3-89576-252-9 aber bei dem heutigen Stand der Technik nicht mg-
mehr klar erkennbar, weil oft detaillierte Projektbeschrei- 34,80 CHF 43,20 lich. Bei der Regelung einer Antriebsaufgabe, einer

80 | Mai 2013 | www.elektor-magazine.de

Elektor Store DE 05-2013.indd 80 08-04-13 10:04


Die ganze Welt der Elektronik in einem Shop!

6 7

Druck- oder einer Temperaturregelung tauchen Ge- erlutert die Grunddatentypen und die zugehrigen nu- muss, um den mbed zu programmieren. Das Einzige,
meinsamkeiten auf, die man mit einer einheitlichen merischen Grundfunktionen ebenso ausfhrlich wie die was Sie brauchen, ist ein Webbrowser mit Internet-
Vorgehensweise beschreiben kann. Die Grundgesetze elementaren Programmstrukturen. zugang und einen freien USB-Anschluss an Ihrem PC.
der Regelungstechnik gelten in gleicher Weise fr alle 240 Seiten (kart.) ISBN 978-3-89576-253-6 261 Seiten (kart.) ISBN 978-3-89576-262-8
Regelkreise, ganz unabhngig davon, wie verschie- 34,80 CHF 43,20 39,80 CHF 49,40
den sie im Einzelnen auch apparativ aufgebaut sein
mgen. Dieses Buch richtet sich an den Praktiker, der Kompletter Elektor-Jahrgang 2012 auf DVD
grndlicher in die Regelungstechnik eindringen mch- 35 Einsteiger-Projekte in C 8 Elektor-DVD 2012
te, auf ausschweifende theoretische Exkursionen in die 7 ARM-Mikrocontroller 1 Die neue Elektor-Jahrgangs-DVD enthlt alle Artikel des
Mathematik aber gerne verzichten kann. Die Projekte in diesem Buch sind fr Einsteiger in C Jahrgangs 2012. Sie verfgt ber eine sehr bersichtlich
365 Seiten (kart.) ISBN 978-3-89576-240-6 und ARM-Mikrocontroller ausgelegt. Das heit nicht, gestaltete Benutzeroberflche. Mit der Elektor-DVD 2012
49,00 CHF 60,80 dass diese Projekte einfach sind. Sie sind aber einfach knnen Sie Platinenlayouts in perfekter Qualitt drucken;
zu verstehen. Es wird beispielsweise die USB-Verbin- diese Layouts mit einem Zeichenprogramm verndern;
dung zur Kommunikation benutzt, eine Methode, die die Schnellsuchfunktion benutzen, mit der Sie in den ein-
Einstieg in die Praxis im mbed-Board so einfach integriert ist, dass sie sich zelnen Artikeln oder im ganzen Jahrgang nach Wrtern,
6 LabVIEW 1 auch fr ein Einsteiger-Buch eignet. Der mbed NXP Bauteilen oder Titeln suchen knnen; Schaltbilder, Plati-
Das LabVIEW-Programmpaket ist ein international an- LPC1768 nutzt Cloud-Technologie, ein revolutionres nenlayouts, Illustrationen, Fotos und Texte exportieren.
erkannter Standard zur Entwicklung und Gestaltung Konzept in der Software-Entwicklung. Es bedeutet, ISBN 978-90-5381-273-0
von Messgerten und Prozesssteueroberflchen. Seine dass man keinerlei Software auf seinem PC installieren 27,50 CHF 34,10
Universalitt konfrontiert den LabVIEW-Einsteiger aller-
dings mit einer unbersichtlichen Vielfalt von Funktio-
nen, die er ohne fundierte Anleitung kaum berblicken Weitere Informationen zu unseren Elektor-Verlag GmbH
kann. Hier setzt diese neue mehrteilige Lehrbuchreihe Produkten sowie das gesamte Ssterfeldstr. 25
an: Von Grund auf werden in einfach nachvollziehbaren Verlagssortiment finden Sie auf der 52072 Aachen
Schritten der Aufbau, die Struktur und die Verwen- Elektor-Website: Tel. +49 (0)241 88 909-0
Fax +49 (0)241 88 909-77
dung von LabVIEW erklrt, in praktischen Beispielen
dargestellt und mit bungen vertieft. Der erste Band
www.elektor.de/shop E-Mail: bestellung@elektor.de

www.elektor-magazine.de | Mai 2013 | 81

Elektor Store DE 05-2013.indd 81 08-04-13 10:04


Nchsten Monat in Elektor

WLAN-Controller-Board Breitbandiger FM-Sender Lithium-Ionen-Akkulader


Steuerungen fr LED-Beleuchtungen gibt es Der Frequenzbereich dieses kleinen Senders Die Neuverwendung von Li-Ion-Akkus, die aus
bereits in vielen Varianten. Doch auch hier ist das 70-cm-Amateurfunkband. Mit dem veralteten oder defekten mobilen Gerten
mchte Elektor etwas Besonderes beitragen: Sender knnen breitbandig FM-Signale, stammen, ist nicht immer problemlos. Oft ist
Im nchsten Heft erscheint ein Controller- beispielsweise Audiosignale von HiFi-Anlagen die Ladeberwachung im auszumusternden
Board, mit dem ber WLAN beispielsweise oder hnlicher Quellen bertragen werden. System integriert, ein gesonderter Akkulader
ein LED-Strip gesteuert werden kann. Pluspunkte sind nicht nur die hohe bertra- ist nicht vorhanden. Hier hilft der Bau eines
Auch Leistungsrelais, Garagentorantriebe, gungsqualitt, sondern auch die Fhigkeit globalen Laders fr gebrauchte (oder auch
Roboter oder Modellbahnanlagen gehren zum Duplex-Betrieb. Im 70-cm-Band steht neue) Li-Ion-Zellen weiter. Der vorgestellte
zu den potentiellen Objekten. Universell dem breitbandigen Duplex-Betrieb nichts im Li-Ion-Akkulader kommt ohne Mikrocontroller
wird das Board durch den Bootloader im Weg, weil dieses Band einen weiten aus, er arbeitet mit einem speziellen
Mikrocontroller, einen Erweiterungsport Frequenzumfang hat. Auch zwischen meh- Baustein aus dem Sortiment von Maxim. Den
auf der Platine sowie Schutzdioden fr den reren Stationen ist ein gleichzeitiger Duplex- Ladezustand des Akkus signalisiert dieser
Anschluss induktiver Lasten. Betrieb mglich. Baustein ber eine LED-Reihe.

Elektor Juni 2013 erscheint am 22. Mai 2013. nderungen vorbehalten!

Rund um die Uhr und


sieben Tage die Woche

Projekte, Projekte, Projekte:


www.elektor-labs.com
Machen Sie mit!

82 | Mai 2013 | www.elektor-magazine.de


Subscribe Now!

Subscribe now to the leading computer applications magazine


specializing in embedded systems and design!

12 issues
per year for just
Print OR Digital: $50 : : Combo (Print + Digital): $85

www.circuitcellar.com/subscription
Naamloos-14 1 03-04-13 11:26
Unsere Shopsprachen:

ber 40 Jahre Erfahrung ber 40.000 Produkte am Lager


schneller 24-Std.-Versand kein Mindermengenaufschlag

Messtechnik przise & preiswert!


Professionelle Qualitt zu attraktiven Preisen!

Rund 98 % unserer Kunden


sind vom reichelt-Service Digital-Speicher-Oszilloskop
berzeugt*
* Quelle: Shopauskunft.de (21.02.2013) mit hervorragenden Leistungsdaten
und USB-Schnittstelle!
unserE
extra groes Full-Color-Display
BESTSeller 25 MHz Bandbreite
Digital-Multimeter 2 Kanle
mit USB-Schnittstelle

249,00
LC-Display,
LC hintergrund- Abtastrate: 250 MS/s
be
beleuchtet, 6000 Counts Anstiegszeit: <14 ns
Gr
Grundgenauigkeit: 0,5 % Speichertiefe: 25 kpts
Si
Sicherheit: CAT II 600 V, USB-Schnittstelle fr den
C III 300 V
CAT
W
Widerstands-, Frequenz-,
Export der Messergebnisse
K
Kapazitts-, Temperatur-
UTD 2025 CL
s
sowie AC/DC-Strom- &
S
Spannungsmessung

44,95
Handheld- Echteffektivwert-
Digital-Speicher- Digital-Multimeter
UT 61C Oszilloskop hintergrundbeleuchtetes
Verbindet die Funktionalitt LC-Display, 40.000 Counts
Infrarot- eines Oszilloskops mit der Grundgenauigkeit: 0,025 %
Thermometer einer Digital-Multimeters. Sicherheit: CAT III 1000 V,
CAT IV 600 V
Messbereich: 1-Kanal-DSO mit USB-Schnittstelle,
-18 bis 380 C 25 MHz Analogbandbreite inkl. Software
Entfernungs-/Mess- Abtastrate: 200 MS/s (Echtzeit) Datenloggerfunktion: 100 Werte
punktverhltnis: 10:1 hochauflsendes LC-Display, Widerstands-, Kapazitts,
95
Festwertemmission: 0,95 8,89 cm/3,5, 320 x 240 Pixel Frequenz-, Temperatur-
Auflsung: 0,1 C Digital-Multimeter: sowie AC/DC-Strom- und
keit:
Wiederholungsgenauigkeit: 4000 Counts Spannungsmessung
0.5 C oder 0.5 % USB-Schnittstelle,

24,95
Messgenauigkeit: inkl. Software
2 C/ 2 %
UTD 1025 CL 295,95 UT 71C 135,00
UT 300B

Echteffektivwert-
AC/DC-Digital-
Digital-Tischmultimeter
Zangenmessgert
Universalmessgert mit einer Top-Ausstattung und
bis 400A
einer Multifunktionsanzeige mit 40.000 Digits!
Klemme: 28 mm
3 -stelliges 4 -stelliges Dual-Display, 40.000 Counts
LC-Display, Grundgenauigkeit: 0,025 %
3999 Counts Widerstands-, Kapazitts-, Frequenz-, Temperatur-
Sicherheit: IEC 61010, sowie AC/DC-Strom- und Spannungsmessung

179,00
39,95
CAT II 600V, CAT III 300V Dioden- und Durchgangsprfung
Relativwertmessung Datenloggerfunktion
USB-/RS232-Schnittstelle, inkl. Software
UT 203 Sicherheit: CAT I 1000 V, CAT II 600 V UT 804

Jetzt bestellen! www.reichelt.de


Bestell-Hotline: +49 (0)4422 955-333 Neue Katalogausgabe!
e
e!
Kostenlos Jetzt anfordern!
n
n!

reichelt elektronik
Ihr kompetenter Partner fr } Bauelemente Stromversorgung Messtechnik Werkstattbedarf
Haus- & Sicherheitstechnik Netzwerk- & PC-Technik Sat-/TV-Technik
Fr Verbraucher: Es gelten die gesetzlichen Widerrufsregelungen. Alle angegebenen Preise in inklusive der gesetzlichen MwSt., ab Lager Sande, zzgl. Versandspesen fr den gesamten Warenkorb. Es gelten ausschlielich unsere AGB (unter www.
reichelt.de/agb, im Katalog oder auf Anforderung). Zwischenverkauf vorbehalten. Alle Produktnamen und Logos sind Eigentum der jeweiligen Hersteller. Abbildungen hnlich. Druckfehler, Irrtmer und Preisnderungen vorbehalten. reichelt elektronik
GmbH & Co. KG, Elektronikring 1, 26452 Sande (HRA 200654 Oldenburg) Preisstand: 04.04.2013 Tagesaktuelle Preise: www.reichelt.de

reichelt.indd 2 04.04.2013 08:40:54


Naamloos-3 1 04-04-13 10:51

Das könnte Ihnen auch gefallen