Sie sind auf Seite 1von 132

Juli/August 2016 | Nr.

547/548
www.elektormagazine.de

LEARN

DESIGN

SHARE

Software Defined
Radio

Foto-Trspion
mit Raspberry Pi

FledermausDetektor deluxe

d
l
e
i
h
S
s
l
a
o
n
i
u
d
r
A
r
f
:
Ausgabe
r
e
s
e
i
d
In
Projekte
8 LaborProjekte
4 Leserre-Kurse
a
w
t
f
o
S
3
s ...
2 Review
r!
und meh

Windows steuert Arduino Akku-Technologien der Zukunft


Stromtastkopf fr Oszilloskope Fernsteuerung fr Media Player Universeller
I2C-Bus-Isolator und -Pegelwandler PC-Watchdog Mini-Radio NFCTag gehackt Grundlagen: PLL Filter auf dem Red Pitaya Schaltungen
fr Klangeinsteller Neues Display fr Multimeter Assembler Crashkurs:

Wetterstation fr
BBC micro:bit

Speicherinhalt ausgeben Retronik: Audio-Messplatz Web-Recherche:


Media-Player Kodi Recht: Niederspannung, EMV und
RED Bemerkenswerte Bauteile: Magnetspeicher

G3078 E

(D) 14,90 | CHF 27,00 | (A, B, L) 16,00

Unser Produktsortiment in
einem Wort: Tiefenbreite.
Wolfgang Lex, Senior Area Manager Business Supplies, Tekkie seit 1987

Die besten Tekkie-Stories unserer innovativsten


Kunden und Mitarbeiter jetzt auf tekkie.conrad.de
Conrad. Tekkie seit 1923. Ihr Profi-Partner und Berater
fr Lsungen in den Bereichen Bauelemente, Automation,
Gebudetechnik, Werkzeug, Messtechnik, Computertechnik
u. v. m. Mit ber 700.000 Artikeln fr Ihr Business von morgen.

Impressum
47. Jahrgang, Nr. 547/548
Juli/August 2016
Erscheinungsweise: 10 x jhrlich

(inkl. Doppelhefte Januar/Februar und Juli/August)

Verlag
Elektor-Verlag GmbH
Kackertstrae 10
52072 Aachen
Tel. 02 41/955 09 190
Fax 02 41/955 09 013

Kreative Maker
Auf Elektronikmessen gehrt die Vorstellung
unseres Magazins zu meinen Aufgaben.

Technische Fragen bitten wir per E-Mail an


redaktion@elektor.de zu richten.

Vor einigen Jahren besuchte ich mit einer

Hauptsitz des Verlags


Elektor International Media
Allee 1, NL-6141 AV Limbricht

Mittelstndler, dessen Linux-Evalkits

Kollegin aus der Anzeigenabteilung einen


ich sehr interessant fand. Nach kurzem
Blttern durch eine Elektor-Ausgabe verflog
das Interesse unseres Gegenbers. Man

Anzeigen:
Margriet Debeij (verantwortlich)
Tel. 02 41/955 09 174 / Fax 02 41/955 09 013
Mobil: +49 (170) 550 539 6
E-Mail: margriet.debeij@eimworld.com

wolle aufpassen, keine Bastler anzulocken, so der Herr vom Marketing. Diese orderten

Julia Grotenrath
Tel. 02 41/955 09 177 / Fax 02 41/955 09 013
Mobil: +31 6 510 530 39
E-Mail: julia.grotenrath@eimworld.com

zur Maker-Szene. Der Geschftsfhrer genau jenes Mittelstndlers lobte, dass Maker

Es gilt die Anzeigenpreisliste Nr. 46 ab

anderen Herstellers przisiert im selben Artikel: Man muss es den Professional Makern

01.01.2016

immer nur in Einzelstckzahlen, machten aber hufig dem Support viel Arbeit. Wie an
manchen anderen Stnden, die wir besuchten, wurde nicht ausgesprochen, dass man
sich mit Pressearbeit und Anzeigen lieber auf die Fachmagazine konzentrieren wollte.
Neulich bltterte ich in einem solchen Fachmagazin und fand darin interessante Aussagen
angelockt durch Starter-Kits aus Hardware, OS und Tool Chain schon Produkte
mit sehr professionellem Hintergrund auf die Beine gestellt htten. Viele EmbeddedAnbieter reagierten nun darauf mit neuen Vertriebskanlen. Und ein Sales Director eines
sehr einfach machen, an die Muster zu kommen einfach ber das Internet bestellen.
Wie das Fachmagazin dann weiter ausfhrt, wrden junge Talente aus der Szene hufig

Distribution:
IPS Pressevertrieb GmbH
Postfach 12 11, 53334 Meckenheim
Tel. 0 22 25/88 01-0
Fax 0 22 25/88 01-199
Der Herausgeber ist nicht verpflichtet, unverlangt eingesandte Manuskripte oder Gerte zurckzusenden. Auch

Firmen grnden oder eine Karriere in etablierten Unternehmen starten.


Ich kann nur erfreut feststellen: Der frische Wind, der durch die Maker-Szene in
der Branche entstanden ist, hat nun auch die Chefetagen der klassischen Anbieter
erreicht. Offenbar wurde erkannt, dass das kreative Potential von Bastlern nicht zu
unterschtzen ist und dass aus Hobbyisten hufig Professionals werden.
Elektor sieht das genauso brigens schon seit vielen Jahren. In diesem Jahr laden
wir alle Maker ein, sich an unserem Wettbewerb zu beteiligen, den wir zusammen mit

wird fr diese Gegenstnde keine Haftung bernommen.

der Messe electronica veranstalten. In den drei Kategorien Idee, Prototyp und

Nimmt der Herausgeber einen Beitrag zur Verffentlichung

Start-up gibt es wertvolle Preise zu gewinnen siehe Seite 40.

an, so erwirbt er gleichzeitig das Nachdruckrecht fr alle


auslndischen Ausgaben inklusive Lizenzen. Die in dieser
Zeitschrift verffentlichten Beitrge, insbesondere alle Auf-

Jens Nickel

stze und Artikel sowie alle Entwrfe, Plne, Zeichnungen

Chefredakteur Elektor

einschlielich Platinen sind urheberrechtlich geschtzt. Ihre


auch teilweise Vervielfltigung und Verbreitung ist grundstzlich nur mit vorheriger schriftlicher Zustimmung des
Herausgebers gestattet. 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 Schutzrechtsinhabers 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 gesetzlichen Bestimmungen hinsichtlich Bau, Erwerb und Betrieb von Sendeund Empfangseinrichtungen und der elektrischen Sicherheit
sind unbedingt zu beachten. Eine Haftung des Herausgebers

Unser Team
Chefredakteur:

Jens Nickel (v.i.S.d.P.) (redaktion@elektor.de)

Stndige Mitarbeiter:

Dr. Thomas Scherer, Rolf Gerstendorf

Leserservice:

Ralf Schmiedel

Korrekturen:

Malte Fischer

Internationale Redaktion: Thijs Beckers, Jan Buiting,


Mariline Thiebaut-Brodier

fr die Richtigkeit und Brauchbarkeit der verffentlichten


Schaltungen und sonstigen Anordnungen sowie fr die Richtigkeit des technischen Inhalts der verffentlichten Aufstze

Elektor-Labor:

und sonstigen Beitrge ist ausgeschlossen.

2016 elektor international media b.v.


Druck: Senefelder Misset, Doetinchem (NL)

Harry Baggen, Ton Giesberts, Luc Lemmens,


Denis Meyer, Jan Visser, Clemens Valens

Grafik & Layout:

Giel Dols

ISSN 0932-5468

www.elektormagazine.de

Juli/August 2016

Inhalt

47. Jahrgang Nr. 547/548

Juli/August 2016

6 Das Elektor-Netzwerk
40 News
42 ElektorBusiness Report

SHIELD FR ARDUINO

Futuristisch-fantastische Akkus

128 Elektor World News


130 Hexadoku

Sudoku fr Elektroniker

LEARN

DESIGN

SHARE

80

Ein Software Defined Radio ist ein universelles


Werkzeug in der HF-Technik, das auch fr
Messungen einsetzbar ist. Die Eigenschaften des
Empfngers werden durch Software definiert.
In unserer heutigen Zeit bietet es sich an, das
Frontend als Arduino-Shield zu realisieren.

WETTERSTATION FR
BBC MICRO:BIT

8 Willkommen bei LEARN


9 Bemerkenswerte Bauteile
Magnetspeicher

10 Ein zweites Leben fr den NFC-Tag (1)


14 Grundlagen: Die Magie der PLL
19 Review: Flowcode7
22 Windows steuert Arduino

ELEKTOR SDR
RELOADED

3 Impressum

ber USB und Bluetooth

IM DOPPEL MIT EINEM ERWEITERUNGSBOARD

Das BBC micro:bit ist ein kleines Kraftpaket voller toller Funktionen und
wird von einer Reihe ausgezeichneter Entwicklungstools und Bibliotheken
untersttzt. Sein Platinensteckverbinder gewhrt Zugang zu allen Features
wie GPIO, analoge Eingnge, IC
und SPI. Wir haben mit
dem micro:bit eine kleine
Wetterstation gebaut.

30 CircuitMaker Tipps & Tricks (3)


32 Niederspannung, EMV und R&TTE

Was gibts Neues?

36 Assembler Crashkurs 2.2


Indirekte Adressierung

LEARN

DESIGN

SHARE
72 iBaxandall

48 Willkommen bei DESIGN

49 Wetterstation fr BBC micro:bit

80 Elektor SDR Reloaded

52 Stromtastkopf fr Oszilloskope
56 Fledermaus-DetektorPLUS

Variationen von Klangeinstellern

SDR-Shield fr Arduino

88 Skip!

Frequenzteilung + Amplitudenerhaltung

Drahtlose Next Track-Taste


fr den Media-Player

67 Filter auf dem Red Pitaya

92 Foto-Trspion mit Raspberry Pi

Teil 1: FIR-Filter

Juli/August 2016

www.elektormagazine.de

49

Besucher-Check ber das Smartphone

magazine
LEARN

DESIGN

SHARE

114 Willkommen bei SHARE


115 Elektormagazine.de/Labs
116 Retronik

Professioneller Audio-Messplatz

121 Aus dem Labor


LCD am Rpi anschlieen

122 ScanaQuad,
der allerkleinste Logic-Analyzer
124 Projekt 2.0

Korrekturen, Updates und Leserbriefe

126 Web-Recherche

iBAXANDALL

VARIATIONEN VON KLANGEINSTELLERN

72

Das kann dabei herauskommen, wenn man als


Elektroniker eben mal schnell einen Klangeinsteller
aufbauen mchte: 1. googelt man nach der
Standardschaltung, 2. fllt einem daran etwas
auf und 3. will man es besser machen und entwickelt folglich eine neue
Schaltungsvariante. Noch schlimmer: Man geht der Sache auf den Grund
und kommt so auf mehrere neuartige Varianten.

Kodi: Medien-Player fr alle

Vorschau
Das nchste Heft ist wie immer randvoll gefllt
mit Schaltungsprojekten, Grundlagen sowie
Tipps und Tricks fr Elektroniker.

Aus dem Inhalt:


OBD mit Raspberry Pi
Lsungen fr die Haus-Automatisierung
Bluetooth-Relais
RasPi steuert Lego
Netzgert
Assembler Crashkurs: SPI und I2C

97 PC-Watchdog

Filter auf dem Red Pitaya: IIR-Filter

Analoger Zufallsgenerator

Automatischer Reset fr durchdrehende PCs

100 My Tiny Radio


Ein Radio - drei Plattformen

105 MAXQ rettet Philips PM2535


Fragen und Antworten: MQTT

Und vieles mehr!

Multimeter vor dem Verschrotten bewahrt

108 Universeller I2C-Bus-Isolator


und Pegelwandler

nderungen vorbehalten.
Elektor September erscheint am 17. August 2016.
Verkaufsstellen findet man unter www.pressekaufen.de.

www.elektormagazine.de

Juli/August 2016

Die Elektor-Community
LEARN

DESIGN

SHARE

Elektor durchbricht die Schranken einer Zeitschrift und wird zur Community aktiver E-Ingenieure vom Anfnger bis zum Profi begierig, berraschende Elektronik zu lernen, zu entwickeln, zu teilen.
Elektor-Shop: 24 Stunden an 7 Tagen der
Woche fr jeden Elektroniker geffnet! Dauerhafter Rabatt von 10% fr alle GOLD- und
GREEN-Mitglieder. www.elektor.de

Elektor-Zeitschrift: 10 Ausgaben pro Jahr


voll gepackt mit Elektronik-Projekten, Artikeln,
Besprechungen, Tipps und Tricks.
www.elektormagazine.de

Elektor-Platinen-Service: Bestellung von Platinen als Einzelstck oder Kleinserie.


www.elektorpcbservice.de

Elektor wchentlich & papierlos:


Wchentlicher digitaler Newsletter.
Kostenlos und aktuell.
www.elektor.de/newsletter

Elektor Academy: Webinare, Seminare, Prsentationen, Workshops, DVDs und mehr =


praxisorientiertes Lernen.
www.elektor.de

Elektor-Bcher & DVDs: Arduino, Raspberry


Pi, Mikrocontroller und vieles andere mehr. Im
Online-Shop mit 10% Rabatt fr Mitglieder!
www.elektor.de/bucher

Elektor.TV: Reviews, Eindrcke,


Unboxings und persnliche Journale.
Anschauen heit Erfahrung sammeln.
www.elektor.tv

Elektor-Labs: Eigene Projekte vorstellen von


Anderen lernen Anderen helfen und mit Anderen teilen. Elektor macht mit und testet Ihre
Ideen! www.elektormagazine.de/labs

Treten Sie dem weltweit grten Elektroniker-Netzwerk bei!


GREEN

1,78 /Woche

2,45 /Woche

GRATIS

Zugang zum Elektor-Archiv

Zugang zum Elektor-Archiv

Zugang zum Elektor-Archiv

10% Rabatt auf Shop-Produkte

10% Rabatt auf Shop-Produkte

10% Rabatt auf Shop-Produkte

10x Elektor jhrlich (Digital)

10x Elektor jhrlich (Digital)

10x Elektor jhrlich (Digital)

10x Elektor jhrlich (Print)

10x Elektor jhrlich (Print)

10x Elektor jhrlich (Print)

Exklusive Top-Angebote

Exklusive Top-Angebote

Exklusive Top-Angebote

Zugang zu

Zugang zu

Zugang zu

Elektor Jahrgangs-DVD

Elektor Jahrgangs-DVD

Elektor Jahrgangs-DVD

www.elektor.de/green-mitglied

GOLD

Juli/August 2016

www.elektormagazine.de

www.elektor.de/gold-mitglied

www.elektor.de/newsletter

79

247031

1034

485

235102

Lnder

Mitglieder

Experten & Autoren

Literatur

Monatliche Besucher

www.elektormagazine.de
Eine ganze Welt
mit Elektronik-News
Elektroniker entdecken eine ganze Welt mit Projekten, News, Videos und mehr auf unserer neu berarbeiteten Website. Rechts oben kann man einfach
die Sprache auswhlen. Zur Wahl stehen Deutsch,
Englisch, Franzsisch und Niederlndisch. Die intelligenten Such-Tools erleichtern das Auffinden von
Artikeln und weiterfhrender Information. Registrieren Sie sich als GREEN- oder GOLD-Mitglied; mit
Ihrem persnlichen Login haben Sie vollen Zugriff
auf den Online-Shop inklusive vieler Extras. Hier
knnen Sie auch Ihren Account berarbeiten und
das gilt auch fr Ihre Mitgliedschaft, das gedruckte
Heft und den Newsletter Elektor.

: wchentlich & papierlos


Ein wchentlicher Newsletter
vollgepackt mit Information
Mehr als 120.000 Elektroniker haben bereits
ein Abonnement unseres kostenlosen ElektorNewsletters. Jede Woche gibt es hier News,
Tipps, Trends und mehr direkt in ihrem digitalen
Briefkasten. Auerdem erhalten Sie so Zugriff auf
weitere exklusive Projekte, Spezialangebote und
Rabatte fr den Online-Shop.
Registrieren Sie sich noch heute:
www.elektor.de/newsletter

www.elektormagazine.de

Juli/August 2016

LEARN

DESIGN

SHARE

Willkommen bei LEARN


Von

Jens Nickel

Bastelkisten-Brse
Eigentlich wollte ich hier wieder etwas ber die Fortschritte auf
meiner Reise in das Internet of Things berichten. Am ziemlich bewlkten Pfingstmontag hatte ich mir vorgenommen, das
bekannte Xmega-Webserver-Board als Pilotplattform fr einen
direkten Anschluss einer Platine ans Netzwerk zu benutzen (ohne
den Umweg ber einen PC als Relaisstation). Doch trotz einer
guten Ausgangslage ich hatte ja
schon Democode und Bibliotheksfiles vorliegen, unter anderem
fr das WIZ820io-Netzwerkmodul wurde
nichts draus.
Router
und (Programmier-)Arbeitsplatz befinden sich in
genau gegenberliegenden Ecken meiner Wohnung; und zu meiner berraschung reichten 10m
Netzwerkkabel nicht aus. Ich brauchte 15m, doch
am Feiertag hatten ja alle mglichen kommerziellen
Bezugsquellen geschlossen. Sicher gab es in Kln noch
den einen oder anderen gleichgesinnten Elektroniker, der
mir htte aushelfen knnen, und eine kleine Fahrt wre mir
nicht zu beschwerlich gewesen. Aber wie denjenigen oder diejenige finden?
Hierber msste man mal nachdenken, denn das Internet bietet ja
inzwischen eine Flle von Mglichkeiten!

Neues aus der Cloud


In der Zwischenzeit geht die Entwicklung in Sachen IoT mit Riesenschritten weiter, man kommt kaum
damit nach, sich alles anzusehen und den eigenen Horizont stndig zu erweitern. Auch der groe
deutsche Distributor Conrad ldt nun potentielle User mit einer eigenen Lsung dazu ein, Daten in die
Cloud hochzuladen und zu visualisieren (https://conradconnect.de).
Und von meinem Ex-Kollegen Jaime (nun beim Berliner Startup Relayr ttig) bekam ich eine Mail, die
ich hier in Auszgen bersetze: Hi Jens! Wahnsinn, wie die Zeit vergeht Ich muss mal wieder bei
euch Jungs vorbeischauen Wir sind gerade dabei, eine App zu launchen, mit dem ein Smartphone
in eine Art Sensorkit verwandelt wird und ich dachte mir, du willst das vielleicht mal ausprobieren?
Die App wird komplett open source sein, alles wird bei GitHub reingestellt
Na das klingt doch alles interessant klar gucke ich mir das mal an. Mehr darber finden Sie in Krze
in unserer Online-Ausgabe unter www.elektormagazine.de!

Arduino ferngesteuert
Und noch mal was gelernt: Profi-Autor und
Software-Spezialist Tam Hanna zeigt in seinem
Artikel, wie man mit einem Windows-Smartphone
oder Tablet einen Arduino fernsteuern kann
ber USB oder kabellos per Bluetooth. Das Firmata-Protokoll kannte ich bisher noch nicht; interessant, dass Microsoft dafr sogar eine eigene .NET-Bibliothek bereitstellt. Mehr darber lesen Sie in diesem
LEARN-Abschnitt.
(160012)

Juli/August 2016

www.elektormagazine.de

grundlagen

kurs

&

tipps & tricks

software

Magnetspeicher
Bemerkenswerte Bauteile
Von Neil Gruending (Kanada)

Heutzutage kennen wir eine Vielzahl von


Mglichkeiten, Informationen auf elektronischem Wege zu speichern: SRAM, DRAM,
Flash und EEPROM. Direktzugriffsspeicher (random access memory RAM) wie
SRAM und DRAM nutzen dazu die Kapazitt, was sie unkompliziert und sehr
schnell macht. Aber ihr Nachteil
ist, dass alle Informationen verloren sind, wenn der Speicher nicht
mit Strom versorgt wird. Nichtflchtige Speicher wie Flash oder
EEPROM erhalten ihre Inhalte,
wenn sie abgeschaltet werden, allerdings auf Kosten der
Geschwindigkeit. Zudem sind
komplexere Zugriffsmethoden
wie Speicher-Paging erforderlich. Magnetspeicher verbinden die positiven Eigenschaften beider Speicherarten.
Eines der ersten Modelle
war in den 50er und 60er
Jahren der Magnetkernspeicher (magnetic core
memory), zu diesen Zeiten
viel schneller als andere
Speichermethoden wie die
Williamsrhre, die auf Kathodenstrahlrhren basierte. Der Name beruht auf den
magnetischen Ringkernen, durch die Drhte
als Schreib und Leseleitungen gefhrt wurden. Jeder Ringkern konnte durch die Steuerung seiner magnetischen Richtung auf 1
oder 0 gesetzt werden. Da aber jeder Lesevorgang die magnetische Orientierung des
Ringkerns lschte, war zum Datenerhalt
noch eine zustzliche Schaltung erforderlich. Der Magnetkernspeicher erwies sich
zwar als sehr zuverlssig und konnte sogar
einem EMP-Impuls widerstehen, war aber
sehr schwierig herzustellen und deshalb
auch ziemlich teuer, so dass er schlielich Ende der 60er Jahre vom SRAM (static
random access memory) abgelst wurde.
Das Computer History Museum in Mountain
View, Kalifornien, zeigt eine feine Sammlung von Magnetkernspeichern auf seiner
Website. Wenn Sie mal im Museum vorbeischauen, sollten Sie im Gift Shop einen
schnen Untersetzer mit einem MM-Bild

erwerben.
Eine moderne Version des Magnetspeichers ist der magnetoresistive RAM-Speicher (MRAM), der in den letzten 30Jahren
entwickelt wurde. Frhe Versionen besaen ferromagnetische Platten mit einer
isolierenden Zwischenschicht. Eine Platte
hatte ein permanentes Magnetfeld, die
andere Platte war magnetisierbar, um
ein Bit zu speichern.

Bit Line
Magnetic Free Layer
Tunnel barrier
Magnetic Pinned Layer
Antiferromagnetic
Write Word
Line
Vdd

Read Word
Line

Ferroelectric
Bit Line
Word Line

Der logische
Zustand der Zelle wurde durch
Messung des Widerstands bestimmt, der
abhngig war von der magnetischen Orientierung der beschreibbaren zur permanenten Platte. Neuere MRAMs nutzen
das Drehmoment des Spin-Transfers von
Elektronen in ihren Speicherzellen und
kommen mit sehr wenig Energie aus.
Eine weitere Variante ist der ferroelektrische RAM-Speicher (FRAM), der gleichzeitig mit dem MRAM entwickelt wurde. Ein
herkmmlicher DRAM-Speicher verwendet
einen Transistor und einen Kondensator
pro Speicherzelle, die in eine FRAM-Zelle
verwandelt wird, wenn ein ferroelektrisches anstelle des normalen dielektrischen
Materials eingesetzt wird. Das ferroelektrische Material ndert das normalerweise
lineare Verhalten der Zelle und fgt eine
magnetische Hysterese hinzu, was gleichbedeutend mit einer nichtflchtigen Eigen-

schaft ist. Das Schreiben der Daten ist


ziemlich einfach, aber um eine FRAM-Zelle
zu lesen, ist ein Transistor ntig, der die
Zelle in einen bekannten Zustand bringt.
Dann wird die Zelle berwacht, um zu
sehen, ob das ferroelektrische Material
einen Stromfluss verursacht. Klar, die
Zelle ist anschlieend gelscht und muss
neu beschrieben werden.
Sowohl MRAMs und FRAMs werden heute
von verschiedenen Firmen hergestellt. Bei
MRAMs liegt der Fokus auf Speicherdichte
und Geschwindigkeit, whrend FRAMs fr
Low-Power-Anwendungen prdestiniert
sind. So oder so, es sind sehr interessante Bauteile!
(160016)
Bilder 1, 2, 3: Wikimedia

Steuern Sie weitere Bauteile hinzu: Mailen Sie an


neil@gruending.net.

www.elektormagazine.de

Juli/August 2016

learn

design

share

Ein zweites Leben


fr den NFC-Tag (1)
Zugang zum Innenleben
Von Patrick Gueulle (Frankreich)

Abo-Mitglieder von Elektor


erhielten mit dem Januar/
Februar-Heft dieses Jahres eine
kostenlose Smartcard mit einem
NFC-Chip ST25TA02K. Der Tag
war mit einer URL programmiert,
die man mit einem Smartphone
lesen konnte, wenn dieses NFC
untersttzt. Hier wollen wir
zeigen, wie die URL gehackt
werden kann, um der Karte mit
dem Standard NFCType4 neues
Leben einzuhauchen.

Von NFC Type1 nach Type4


Nahfeldkommunikation, auf gut Deutsch auch Near Field Communication, verwendet gewhnliche RFID-Technologie, wendet
sie aber etwas intelligenter an. Fast jede Chipkarte, die drahtlose Kommunikation untersttzt, setzt dabei einen NFC-Tag ein.
Die Standards fr NFC werden vom NFC-Forum festgelegt.
Dieses Forum mchte die Austauschbarkeit von Karten und
Techniken so weit wie mglich frdern und hat dazu eine Reihe
von standardisierten Types von NFC definiert.

Deshalb ist es wichtig, dass NFC-Karten diesen Types entsprechen. Es gibt aber gewisse Halbleiterhersteller, die sich wenig
um die Vorgaben des NFC-Forums kmmern und Karten beziehungsweise Tags auf den Markt bringen, die sich nur teilweise
an die Regeln halten.
Eine der ersten nativen NFC-Tags auf dem Markt war der TopazChip von Innovision (Bild1), einer Firma, die mittlerweile zu
Broadcom gehrt. Dieser Tag erfllte vollstndig die Spezifikationen des Type1, besa aber nur 96Byte nutzbaren Speicher

Bild1. Die Topaz-Card von Innovision erfllt die Type-1-Spezifikationen des


NFC-Forums.

Bild2. Mifare Ultralight von NXP ist ein einfach zu konfigurierender NFC-Tag
des Type2.

10

Juli/August 2016

www.elektormagazine.de

grundlagen

kurs

und war deshalb nur fr einfache Anwendungen geeignet. Dann


kam die Mifare Ultralight von NXP (Bild2), eine Type-2-Karte,
die ganz bequem zu konfigurieren ist, aber sogar nur 64Byte
nutzbaren Speicher zur Verfgung stellen konnte.
Natrlich kann man heutzutage modernere Versionen mit mehr
Speicher kaufen (zum Beispiel Tags aus der Ultralight-C- oder
NTAG-Familie), aber die kleineren Pioniere weisen doch noch
einen wichtigen Vorteil auf, nmlich einen sehr niedrigen Preis.
Type3 mit dem Spitznamen Felica taucht eigentlich nur in
Asien auf, so dass wir diese Karten hier auer Acht lassen
knnen. Interessanter ist die populre Familie Mifare Classic
oder Standard (Bild3), die speziell fr NFC formatiert ist
und manchmal auch Type7 genannt wird. Diese Tags haben
einen viel greren Speicher (1024Byte) und entsprechen
auch dem Standard, verwenden aber ein sehr speziell auf
NXP zugeschnittenes Kommunikationsprotokoll. So sind diese
Tags auch nur mit NFC-Chipsets von NXP auszulesen. Wenn
das Smartphone mit einem NFC-Chipsatz eines mit NXP konkurrierenden Herstellers ausgestattet ist, lassen sich die Mifare-Classic-Tags nicht lesen. Aus diesem Grund sind diese Tags
kaum geeignet fr Open-source-Projekte.
Bei Type4 wird ganz anders vorgegangen, was ihn sehr attraktiv fr uns macht. Das Problem mit Type1 und Type2 ist, dass
Leseeinrichtung und Tag auf einem niedrigen Niveau kompatibel sein mssen und das bedeutet, dass die Auswahl an
Leseplattformen recht beschrnkt ist. Type4 erkennt dagegen
vollstndig die APDU-Befehle nach ISO7816-4 (APDU T=CL,
contactless) und wird auch durchweg bei Smartcards eingesetzt, die einen Mikroprozessor an Bord haben.
Die ersten Type-4-Tags wurden fr die beiden Karten DESFire
(Bild4) und JCOP entwickelt. Sie sind zwar nicht billig, aber
die Tags haben einen aktiven Inhalt, so dass ein hherer
Preis doch gerechtfertigt ist. In der Karte steckt eine Firmware,
die komplexe Aufgaben erfllen kann, zum Beispiel eine Ver-

&

software

tipps & tricks

Wie war das nochmal?


ISO14443 betrifft eine Reihe von Normierungen fr
drahtlose Nahfeldkommunikation auf 13,56MHz mit
Identifikations-, kontaktlosen Chip- und NFC-Karten.
Teil 1: physische Eigenschaften
Teil 2: HF-Leistung und Signalschnittstelle
Teil 3: Initialisierung und Konfliktdetektion
Teil 4: bertragungsprotokoll
Das A in der Typbezeichnung ST25TA02K gibt an, dass
dieser NFC-Tag das Protokoll TypeA der Norm 14443-4
verwendet. Allerdings weichen, wie erwhnt, die Hersteller
oft etwas von der Norm ab. Hier einige Beispiele:
Mifare Classic ist ein Markenname von Philips, jetzt
NXP, fr ein Protokoll, das 14443-1, -2 und -3
(Type A) gengt, nicht aber 14443-4, mit oder ohne
Untersttzung des CRYPTO1-Algorithmus.
Mifare Ultralight ist eine Variante von Mifare Classic, die
kein CRYPTO1 untersttzt.
LEGIC RFist eine eigene Norm des Herstellers, die aber
scheinbar auf der ISO14443 beruht. So arbeiten beide
zum Beispiel auf 13,56MHz.
FeliCaist ein herstellereigenes Protokoll, das von Sony
entwickelt wurde.
In dem Artikel haben wir uns mit APDU-Befehlen
beschftigt. APDU steht fr Application Protocol Data
Unit. In diesen Dateneinheiten werden Mitteilungen
zwischen NFC-Tag und Lesegert ausgetauscht. APDU
ist ein standardisiertes Format, beschrieben in der
Norm ISO7816-4 fr Organisation, Sicherung und
Austauschbefehle.
Der Befehl Application Selection ist beispielsweise wie folgt
aufgebaut:
C-APDU of the NDEF Tag Application Select Command
Name

CLA
0x00

INS
0xA4

P1
0x04

P2
0x00

Lc

Data

Le

0x07

0xD27600
00850101

0x00

Class byte
Select instruction code
P1 field
P2 field
Number of bytes of data
Application ID
Le field

(Quelle: Tabelle22 im Datenblatt von STMicroelectronics [3])

Bild3. Mifare Classic verfgt ber 1024Bytes Speicher, aber ist nur
beschrnkt kompatibel.

Der Befehl ist aus einer Anzahl von Feldern einer bestimmten Lnge
(in Bytes) aufgebaut.
CLAheit class byte und gibt an, um welche Art von Befehl es sich
handelt, beispielsweise interindustry fr standardisiertes oder
proprietary fr ein herstellereigenes.
INSsteht fr die Sorte des Befehls wie Lesen oder Schreiben oder
anderes.
P1 und P2sind Befehlsparameter, zum Beispiel Positionen innerhalb
einer Datei.
Lcist die Anzahl der Bytes in diesem Befehl.
Dataist der eigentliche Befehlsinhalt.
Leist die Anzahl der Bytes, die als Antwort erwartet wird (wenn
erforderlich).

www.elektormagazine.de

Juli/August 2016

11

learn

design

share
Rolle, es muss nur ein geeigneter Treiber installiert werden.
Wenn wir ein CCID-kompatibles Lesegert wie den beliebten
ACR122 verwenden, so kann man sogar einen generischen
Treiber verwenden.
Alles, was wir beim NFC-Tag ndern wollen, geschieht mit
Hilfe weniger APDU-Befehle. Ein wichtiger Befehl ist Select.
Alle Befehle werden im 50-seitigen Datenblatt des ST25TA02K
(DM00179392.PDF) erlutert, das man bei STMicroelectronics
herunterladen kann [3].
Wenn wir unseren NFC-Tag an ein Lesegert halten, mssen
wir einen Befehl senden. Dieser Befehl heit NDEF Application
Select command. NDEF steht dabei fr NFC Data Exchange Format. Ein solcher Befehl ist nichts anderes als ein Byte-String,
der hexadezimal notiert ist als:

Bild4. MIFARE DESFire von NXP ist einer der ersten Type-4-NFC-Tags.

00A4040007D2760000850101.
Im Kasten wird kurz erlutert, wie dieser String aufgebaut ist.
Es gibt auch eine Variante des Befehls, die allerdings nicht gut
dokumentiert ist:

00A4040007D2760000850100.
Damit wird der Tag kompatibel mit dem Speicher-Mapping Version1.0, im ersten Fall mit der zurzeit gngigeren Version2.0.
Nach diesem Befehl knnen wir aus folgenden Dateien whlen:
einen Capability Container (CC), der Informationen ber
die Eigenschaften des Tags enthlt,
der Systemdatei (spezifisch fr STMicroelectronics)
oder der NDEF-Datei, die die Nutzlast (payload) des
Tags enthlt.

Bild5. Mit einem kontaktlosen PC/SC-Lesegert an einem PC (und Software,


die frei im Netz verfgbar ist) liest man einen Tag aus.

Die ersten beiden Dateien lassen wir in Ruhe, die dritte ist
dagegen umso interessanter, da sich damit bestens herumspielen lsst.

Spielen mit der URL


schlsselung. So ist es mglich, eine kontaktlose BasicCard
(ZC7.5) mit wirklich sicheren und intelligenten NFC-Funktionen auszustatten. Dabei kommt die grere Speicherkapazitt
natrlich gerade recht.
Der ST25TA02K ist ein NFC-Tag von STMicroelectronics, der
vollstndig mit Type4 kompatibel ist. Er besitzt keinen Mikroprozessor und ist deshalb recht preisgnstig, aber verfgt
ber 256Bype EEPROM-Speicher. Das Konzept erinnert etwas
an den CryptoMemory von Atmel, ein synchroner Kontaktchip ohne Mikroprozessor und deshalb harter Logik, die aber
gehorsam Befehle asynchroner Karten ausfhrt (APDU T=0).
Diese brillante Idee stammt von Gemplus (jetzt Gemalto) und
wurde schon 1998 patentiert, kurz bevor Gemplus die GemClub-Memo-Karte auf der CARTES-Messe in Paris vorstellte.

Dialog aufnehmen
Der ST25TA02K kann von Applikationen auf bestimmten Smartphones gelesen und beschrieben werden. Man kann noch sehr
viel mehr damit anfangen, allerdings ist das Ganze mit ein
paar nicht auflsbaren Problemen behaftet. Darum verwenden
wir lieber eine Alternative: einen kontaktlosen PC/SC-Leser in
Verbindung mit einem Computer. Marke und Typ spielen keine

12

Juli/August 2016

www.elektormagazine.de

Der Befehl zur Auswahl ist 00A4000C020001. Die letzten beiden


Ziffern bilden den Dateinamen 0001h (der Capability Container ist
E103h, die Systemdatei E101h). Ein Lesebefehl besteht aus zwei
Bytes, nmlich einem Klassifizierungsbyte (class byte) gefolgt
von einem Instruktionscode. Der Instruktionscode ist immer
ReadBinary = B0. Das Class Byte lautet 00h fr normales

Lesen (ReadBinary), A2h steht fr extended ReadBinary. Der


Unterschied ist, dass ReadBinary einen Fehlercode zurckgibt
(6282h), wenn man ber das Ende der Nutzlast hinaus liest,
whrend extended ReadBinary den gesamten Speicherraum
fr die Datei von Anfang bis Ende liest, also alle 255 Bytes.
Wenn Sie sich weiter in diese Materie vertiefen wollen, sollten Sie das Datenblatt [3] studieren.
Die ersten beiden Bytes einer NDEF-Datei, die sich mit dem
Befehl 00B0000002 aufrufen lassen, enthalten Angaben ber
die Lnge des Inhalts. Auf der Karte aus dem Wettbewerb
ist 00 24 zu lesen. Es folgen demnach 36 zu lesende Bytes (24
hexadezimal ist 36 dezimal). Mit einem Offset von 2Bytes (02h)
wird der Befehl zu 00B0000224. Mit dem Befehl A2B00002FE
lesen wir die Datei bis an ihr Ende, dann sehen wir auch den
verwendeten Speicherplatz. In beiden Fllen erhalten wir eine
NDEF-Mitteilung mit der URL zur Teilnahme an dem Entwick-

kurs

&

tipps & tricks

software

Anzeige

grundlagen

lungswettbewerb [1], folgendermaen kodiert:

D1 01 20 55 02 65 6C 65 6B 74 6F 72 6D 61 67 61
7A 69 6E 65 2E 63 6F 6D 2F 73 74 6D 69 63 72 6F
2D 6E 66 63
Ab dem sechsten Byte (von 65h bis 63h) ist der Text elektormagazine.com/stmicro-nfc in ASCII-Code zu finden. Das vorlaufende Byte 02h ist die Standard-Abkrzung fr https://www.
Man kann auch http://www (ohne s) mit 01h angeben. Es gibt
noch mehr ntzliche Abkrzungen, wie das Datenblatt zeigt.
Byte 55h ist der groe Buchstabe U, der angibt, dass eine URL
folgt (oder besser gesagt, eine URI). 20h ist die Lnge der
URI, die vier Byte krzer ist als die ganze Mitteilung mit 24h.
Wenn man nur die URL ndern mchte, muss man sich aber
nicht weiter damit befassen. Wenn wir einen Fehler machen, so
wird der Tag nicht antworten, wenn man versucht, ihn mit einem
Smartphone auszulesen. Wenn man die URL beispielsweise in
http://www.elektormagazine.com ndern mchte, muss man
nur drei Bytes anpassen. Man gibt zweimal den Befehl UpdateBinary (00 D6). Mit dem ersten 00D600060101 verndern
wir https in http; mit dem zweiten 00D60000050018D10114
werden die Bytes fr die Lnge gendert. Das Ende der Datei
befindet sich dann genau nach dem com. Der Rest der URL
(/stmicro-nfc) spielt dann keine Rolle mehr, kann aber immer
noch mit dem Befehl extended ReadBinary ausgelesen werden, mit dem ja der gesamte Speicherraum gelesen wird.
Wenn Sie sich gefragt haben, wie im Tatort die Polizei immer
problemlos gelschte SMS auf einer verdchtigen SIM-Karte
lesen kann, dann wissen Sie jetzt die Antwort: Es wird dabei
stets die gesamte Karte gelesen.
Deshalb kann man bei unserer Karte auch die ursprngliche URL mit den beiden Befehlen 00D600060102 und
00D60000050024D10120 wieder herstellen!
Will man berprfen, ob alles gut funktioniert hat, kann man
ein beliebiges PC-Lesegert anschlieen und den NFC-Tag mit
einem Programm auslesen, das unter http://www.nfcwizard.
com/fr/actions-fr/read-fr/ (Bild5) verfgbar ist. Leider ist diese
Website im Moment aus technischen Grnden geschlossen; Sie
knnen es in der Zwischenzeit einmal mit dem Programm probieren, das man von https://gototags.com/products/windowsapp/ downloaden kann.
Funktioniert alles nach Wunsch, kann man anfangen, sich mit
Android zu beschftigen. Doch dies werden wir erst im zweiten
Teil des Artikels machen.

PicoScope 5000 Serie

OSZILLOSKOPE MIT
FLEXIBLER AUFLSUNG
DIE OSZILLOSKOPE DER PICOSCOPE 5000 SERIE MIT
FLEXIBLER AUFLSUNG HABEN EINE AUSWHLBARE
AUFLSUNG VON 8 BIS 16 BIT UND ABTASTGESCHWINDIGKEITEN BIS 1 GS/S.

Moderne elektronische Baugruppen und Gerte erzeugen eine


Vielzahl von sehr schnellen und sehr hochauflsenden
Signalen. Die Fhigkeit, kleine Signale in Gegenwart von
greren aufzuspren und zu charakterisieren ist der Schlssel
zur Prfung elektronischer Designs der nchsten Generation.
Die Przision eines Oszilloskops wird bestimmt durch seine
Auflsung und Genauigkeit. Hier sehen Sie, wie sich
unterschiedliche Auflsungen bei Oszilloskopen auswirken:
Das Signal im Screenshot wurde zunchst mit 8-bit-Auflsung
erfasst; ein 64x-Zoom zeigt die Grenzen der 8-bit-Auflsung.
Das gleiche Signal, erfasst mit einem PicoScope, das auf
12-bit-Auflsung eingestellt wurde, zeigt Details, die im 8bit-Modus nicht sichtbar waren.

(150805)

Weblinks
Zu dem Wettbewerb gehren zwei Elektor-Artikel:
[1] STMicroelectronics NFC-Technologie mit ST25TA,
Elektor Januar/Februar 2016,
www.elektormagazine.de/magazine/elektor-201601/28658
und
[2] Erste Schritte mit den NFC-Tags der ST25TA-Familie,
Elektor Mrz/April 2016,
www.elektormagazine.de/magazine/elektor-201603/28782
[3] Dokumentation der Befehle, STMicroelectronics:
www.st.com/web/en/resource/technical/document/datasheet/DM00179392.pdf

Alle Modelle inkl. Software und 5 Jahren Gewhrleistung. Die Software


umfasst standardmig Messungen, Spektrum-Analyse, erweiterte Trigger,
farbiges Nachleuchten, serielles Decoding (16 Protokolle inkl. 1-Wire, CAN,
Ethernet, IC, IS, LIN, RS-232, SENT, SPI, USB 1.1), Masken, mathematische
Kanle; mit KOSTENFREIEN Updates. Auerdem kostenfreies Software
Development Kit erhltlich.

www.picotech.com/PS469
www.elektormagazine.de

Juli/August 2016

13

learn

design

share

Die Magie der PLL

Stabile frequenzvariable Signale mit VCO und PLL


Von Robert Lacoste (F)

Zauberei ist eigentlich nicht im Spiel, wenn es um eine Schaltungstechnik geht, die Phase Locked Loop
oder kurz PLL genannt wird. Der PLL ging frher der Ruf voraus, hoch kompliziert zu sein. Heute gibt es
unkompliziert nutzbare Tools, die PLLs berechnen und simulieren.

10MHz +/10ppm

122.4MHz +/10ppm

PLL
10MHz +/10ppm, mit Jitter

10MHz +/10ppm, Jitterfrei

PLL

Bild1. Zwei typische Anwendungen der PLL: Erzeugen periodischer frequenzvariabler Signale und Entfernen der Jitters aus periodischen Signalen.

Im vorangegangenen Beitrag zum Thema Schwingquarze [1]


haben wir gezeigt, dass mithilfe von Quarzen hochprzise, frequenzstabile Oszillatoren realisierbar sind. Allerdings sind die
Frequenzen dieser Oszillatoren nicht variabel, sie sind an die
Frequenz des Quarzes gebunden. Dem steht gegenber, dass
zahlreiche Systeme Signale bentigen, die bei hoher Stabilitt
frequenzvariabel sind. Ein Messsender im Laboreinsatz, um
nur ein Beispiel zu nennen, muss stabile Signale im gesamten
berstrichenen Frequenzband liefern. Die Anzahl der Beispiele
liee sich endlos fortsetzen, die Lsung bleibt jedoch gleich: Es
ist die PLL, die Phase-locked Loop, was ins Deutsche bersetzt
so viel wie Phasenverriegelte Schleife heit.
Eine PLL liefert ein frequenzvariables Ausgangssignal, bei
dem die Phase starr an die Phase eines am Eingang liegenden Bezugssignals gekoppelt ist. Dadurch wird erreicht, dass
die Frequenzgenauigkeit und Stabilitt des Ausgangssignals
exakt den Eigenschaften des Bezugssignals entspricht. Wenn
ein Oszillator beispielsweise ein Bezugssignal mit der Frequenz
10MHz und der Genauigkeit 1ppm (part per million) liefert,
hat die Frequenz des PLL-Ausgangssignals auf jeder beliebigen
einstellbaren Frequenz exakt die gleiche Genauigkeit.
Eine weitere wichtige Eigenschaft einer PLL ist ihre Fhigkeit,
sogenannten Jitter aus periodischen Signalen zu entfernen.
Jitter werden die Phasenschwankungen periodischer Signale
genannt, die auf dem Oszilloskop als Zittern der Flanken
in Erscheinung treten. Das Auftreten von Jitter kann sich bei
der bertragung von Daten uerst strend auswirken. Das
PLL-Prinzip ist in Funkempfngern ebenso vertreten wie in Ether-

14

Juli/August 2016

www.elektormagazine.de

net-Schnittstellen-Komponenten oder Bausteinen fr digitale


Audiostreams. In Bild1 sind die klassischen Anwendungen
der PLL dargestellt.

Spannungsgesteuerter Oszillator
Kernstck eines PLL-Systems ist der VCO (Voltage Controlled
Oscillator), ein spannungsgesteuerter Oszillator. Meistens hat
ein VCO die Gestalt eines integrierten Bausteins, um das Innenleben muss sich nur der Hersteller kmmern. Doch es kann
nicht schaden, zumindest das Prinzip etwas nher kennenzulernen. Ein Oszillator entsteht, wenn das Ausgangssignal eines
Verstrkers auf seinen Eingang rckwirkt. Dabei mssen zwei
Bedingungen erfllt sein: Die Verstrkung muss bei der Frequenz des schwingenden Signals grer1 sein, und die Phase
des Eingangssignals muss mit der Phase des Ausgangssignals
bereinstimmen. Wir haben mit dem CAD-Programm Proteus
von Labcenter einen Mini-Verstrker mit lediglich einem Transistor simuliert, er ist in Bild2 dargestellt. Die Verstrkung liegt
im Bereich 250kHz...20MHz ber der 0-dB-Linie, bei ungefhr 13MHz ist das Eingangssignal mit dem Ausgangssignal in
Phase. Mit einer Rckkopplung zwischen Ausgang und Eingang
schwingt die Schaltung auf dieser Frequenz. Die Simulation,
die Bild3 wiedergibt, besttigt den Betrieb als Oszillator. Die
berechnete Frequenz betrgt 14,6 MHz, weil die Rckkopplung
eine nderung der Lastimpedanz herbeifhrt.
Wenn wir diesen Oszillator zu einem VCO erweitern wollen,
mssen wir eine Komponente hinzufgen, die ihren Wert abhngig von einer Spannung variiert. Die gngigste Lsung ist eine

grundlagen

kurs

&

tipps & tricks

+6V

software

S P IC E OP T IONS :

+6V

T MAX=1ns
T S IM=500us -500.2us
INT E G R =T R AP E ZOIDAL

R2

R2

220

220
OUTPUT

OUTPUT

R1
INPUT

C1
1nF

R3
470

L1

C2

C3

470pF

R1

10k

Q1

C1

BF259

1uH

220pF

100pF

10k

C2

Q1

BF259

1uH

470

1nF

C4

L1

R3

220pF

C3

C4

470pF

100pF

Bild2. Die Verstrkung dieser Schaltung hat zwischen 250kHz und 20MHz
positive Werte. Wie die rote Kurve zeigt, ist die Phasenverschiebung bei
etwa 13MHz gleich0.

Bild3. Wenn der Eingang mit dem Ausgang gekoppelt wird, schwingt der
Verstrker, er wird zum Oszillator. Die Frequenz liegt bei 13MHz, in der
Simulation bei 14,6MHz.

Varicap-Diode, sie ist so konstruiert, dass die Kapazitt des


internen pn-bergangs, wie in Bild4 dargestellt, eine definierte Funktion der angelegten Sperrspannung ist. ber Drossel L2, die Signalanteile hoher Frequenzen sperrt, wird an die
Varicap-Diode eine Gleichspannung im Bereich 0...25V gelegt.
Die Simulation besttigt, dass die Phasenantwort und somit
auch die Frequenz des Ausgangssignals von der angelegten
Spannung abhngt: Entstanden ist ein VCO!

Phasenverrieglung

+25V

R5
X

C5

R4

100nF

+6V

VTUNE

Diese Simulation eines VCO hat zwar stark vereinfachenden


Charakter, doch das Prinzip ist deutlich. VCOs in integrierter
Form gehren zur Produktpalette zahlreicher Hersteller wie
Analog Devices und Maxim, integrierte Module werden unter
anderem von Minicircuits und Sirenza gefertigt. Im schon etwas
betagten CMOS-Baustein CD 4046 ist ein VCO integriert, der sich
fr unkritische Anwendungen eignet, und sogar der klassische
Timer 555 ist mit passender Beschaltung als VCO brauchbar.
Die angestrebten Przisionseigenschaften lassen sich nur erreichen, wenn der Filterung des steuernden Signals Aufmerksamkeit gewidmet wird. Jede Art von Rauschen wirkt sich unweigerlich als Frequenzrauschen und folglich als Phasenrauschen
des Ausgangssignals aus. Das Phasenrauschen steht mit der
Bandbreite des Frequenzbereichs in engem Zusammenhang.
Wenn dem steuernden Signal ein bestimmter Rauschanteil
berlagert ist, fhrt dies bei einem VCO mit einer Bandbreite
von nur einigen Megahertz zu vergleichsweise geringem Phasenrauschen. Der gleiche Rauschanteil hat bei einem VCO mit
einer Bandbreite von 1GHz bis 2GHz ein wesentlich hheres Phasenrauschen zur Folge. Ein VCO, der nur ein uerst
geringes Phasenrauschen aufweist, jedoch nur in einem engen
Bereich frequenzvariabel ist, lsst sich mit einem Quarzoszillator
zusammen mit einer Varicap-Diode realisieren. Diese Konstruktion wird Voltage Controlled Crystal Oscillator (VCXO) genannt.

Wir haben zwar einen VCO mit variabler Frequenz konstruiert,


doch die Genauigkeit und insbesondere die Stabilitt lassen
Wnsche offen. Die Frequenz schwankt infolge von Instabilitten
der steuernden Spannung, als Funktion der Umgebungstem-

R2

10k

220

OUTPUT

L2

1mH

INPUT

C1
1nF

R1
L1

R3

C2

D1

FMMV2105

C3

22pF

Q1

BF259

6.8uH

470

10k

220pF

C4

100pF

Bild4. Durch Hinzufgen einer Varicap-Diode wird der Oszillator zum


VCO. In der Simulation wurden durch Variieren des Widerstands R5
unterschiedliche Spannungen an die Varicap-Diode gelegt. Dadurch
wandern der Nullpunkt der Phasenverschiebung und folglich auch die
Frequenz.

www.elektormagazine.de

Juli/August 2016

15

learn

design

ReferenzFrequenz
(Fin )

teilen
durch R

share

Fin /R

Phasendetektor

Fout /N

Filter

VCO

AusgangsFrequenz
(Fout )

teilen
durch N

Bild5. Prinzip einer PLL: Der Phasendetektor vergleicht das vom VCO erzeugte Signal mit einem Bezugssignal und passt die steuernde Spannung des VCOs
an. Die Teiler bestimmen das Verhltnis der Signalfrequenzen.

peratur, der Alterung der Bauelemente und anderem mehr.


Auerdem ndert sich die Frequenz abhngig von der Betriebsspannung und von der Last am Signalausgang.
Das Problem lsst sich durch die Phasenverriegelung lsen, die
das Signal des VCO phasenstarr an ein hochprzises Bezugssignal koppelt. Das Bezugssignal stammt meistens von einem
quarzstabilisierten Oszillator. brigens reichen die Ursprnge
der PLL laut Wikipedia bis in der Jahr 1930 zurck, als im britischen Knigreich die ersten Funkempfnger mit Direktberlagerung (Homodyn-Empfnger) konstruiert wurden. Diese
Empfnger mischen das empfangene HF-Signal mit dem Signal eines lokalen Oszillators, der auf der Empfangsfrequenz
schwingt. Da es regelmig ntig war, die Oszillatorfrequenz
nachzustellen, haben die Konstrukteure schon frh ber eine
selbstttige Regelschleife nachgedacht. Die Historiker vermuten, dass die Idee auf einer wissenschaftlichen Arbeit des franzsischen Physikers Henri De Bellescise beruht.
Doch zurck zur Technik der PLL: Aus dem Funktionsschema
in Bild5 geht hervor, dass die Frequenz des Bezugssignals
Fin (gegebenenfalls geteilt durch die Konstante R) mit der Frequenz des VCO-Ausgangssignals Fout (gegebenenfalls geteilt
durch eine Konstante N) verglichen wird. Das Ausgangssignal
des Phasenvergleichers (Phase Frequency Detector, PFD) wird
gefiltert und anschlieend dem VCO als steuernde Spannung
zugefhrt. Um die Phasen der Signale an den Eingngen des
PFD starr miteinander zu koppeln, mssen sie identische Frequenzen und bereinstimmende Phasenlagen haben, es muss
also gelten:
Fin/R = Fout/N
Wenn die Frequenz des VCO-Signals ansteigt, tritt eine Phasendifferenz zwischen den Eingangssignalen des PFD auf, so dass
an seinem Ausgang ber die Zeit betrachtet Logisch0 verglichen mit Logisch1 berwiegt. Die gefilterte Ausgangsspannung
sinkt, sie stellt die Frequenz des VCO in Richtung niedriger
Frequenz nach. Genau dies ist das Ziel, das erreicht werden
soll. Die Regelung arbeitet natrlich auch in umgekehrter Richtung. Da die Schleife geschlossen ist, wird die VCO-Frequenz
auf NFin/R verriegelt. Die Frequenz Fin/R, bei der die Phasen
miteinander verglichen werden, wird PFD-Frequenz oder kurz
FPFD genannt. Aus den angefhrten Zusammenhngen folgt:
FPFD = Fin/R = Fout/N
Fr das Entwerfen einer PLL ist FPFD ein wichtiger Parameter,
denn es gilt:
Fout = NFin/R = NFPFD.
Wie lsst sich eine PLL schaltungstechnisch realisieren? Die

16

Juli/August 2016

www.elektormagazine.de

Teiler durch N und durch R sind binre Teiler, die unkompliziert


mit digitalen Zhlern und Komparatoren aufgebaut werden knnen. Der PFD erfordert etwas mehr berlegung, doch auch hier
existiert eine wenig aufwendige Lsung: Das logische Exklusiv-Oder-Gatter. Diese logische Funktion liefert eine logische1
am Ausgang, wenn die logischen Zustnde der beiden Signale
an den Eingngen miteinander bereinstimmen (beide0 oder
beide1). Wenn an den Eingngen zwei Rechtecksignale gleicher
Frequenz liegen, erscheint am Ausgang des EXOR-Gatters ein
Rechtecksignal dieser Frequenz, wobei das Impuls-Pause-Verhltnis von der Phasendifferenz der Eingangssignale abhngt.
Zusammen mit einem steilen Tiefpass ist dies ein durchaus
akzeptabler Phasenvergleicher, also ein PFD. Der VCO wird stabilisiert, wenn die Frequenzen bereinstimmen und die Phasendifferenz gegen Null geht. Der einzige Nachteil dieser Lsung
besteht darin, dass dem Ausgangssignal viel unerwnschtes
Rauschen berlagert ist, das bei der Frequenz FPFD und ihren
Vielfachen sein Maximum hat. Effizientere Lsungen benutzen
Ladungspumpen, die einen Kondensator abhngig von den Signalphasen mit positiven oder negativen Strmen laden oder
entladen, das Grundprinzip ist jedoch gleich. Den Lesern, die
sich in dieses Thema vertiefen mchten, empfehlen wir das
Studium der Verffentlichung von Texas Instruments, die am
Schluss dieses Beitrags unter den Referenzen aufgefhrt ist.

Integer-N oder Fractional-N


Wenn eine PLL auf der in Bild5 skizzierten Architektur fut,
wird sie Integer-N-PLL genannt. Aus den oben angegebenen
mathematischen Beziehungen folgt, dass die Frequenz des Ausgangssignals innerhalb der VCO-Bandbreite frei gewhlt werden
kann, solange sie ein ganzzahliges Vielfaches der Frequenz FPFD
ist. Die Frequenz des PLL-Ausgangssignals soll beispielsweise bei
500MHz liegen und in Schritten von 1kHz einstellbar sein, das
Bezugssignal soll die Frequenz Fin= 10MHz haben. Die Lsung
mit einer Integer-N-PLL besteht darin, eine Frequenz FPFD zu
whlen, die gleich der Schrittweite 1kHz ist. Daraus ergibt sich
der Teilfaktor R, in diesem Fall ist R= 10MHz/1kHz= 10000.
Fr N gilt, dass N= 500MHz/1kHz= 500000 ist. Damit betrgt
die Frequenz des Ausgangssignals genau 500MHz. Ist N=
500001, steigt die Frequenz auf 500001MHz, und so weiter.
Integer-N-PLLs haben ein weites Einsatzfeld, sie haben jedoch
zwei Handicaps. Der erste Nachteil ist die Zeit, die vergeht,
bis die PLL einrastet, die Verriegelungszeit. Die Frequenz
FPFD hngt von der Schrittweite, also von der Auflsung des
PLL-Ausgangssignals ab. Wie schon beschrieben, muss das

grundlagen

kurs

&

tipps & tricks

software

Eine PLL ist eine Kombination aus spannungsgesteuertem Oszillator,


Phasenvergleicher und Tiefpass

Ausgangssignal des PFD einen Tiefpass durchlaufen, der den


Mittelwert der Spannung zum Steuern des VCO bildet. Die
Eckfrequenz des Tiefpasses muss wesentlich niedriger als die
Frequenz FPFD liegen, ein Richtwert ist der Faktor10. Im Beispiel ist FPFD= 1kHz, so dass die Eckfrequenz des Tiefpasses
ungefhr 100Hz betragen muss. WennN verndert wird, um
die PLL-Ausgangsfrequenz zu ndern, kann die nderung erst
wirksam werden, nachdem sich der Tiefpass stabilisiert hat. Dies
dauert jedoch eine gewisse Zeit, da es die ureigenste Aufgabe
eines Tiefpasses ist, schnellen nderungen entgegenzuwirken.
Die Integer-N-PLL ist folglich mit zwei gegenstzlichen Parametern behaftet: Entweder ist die Schrittweite klein, oder die
Verriegelungszeit ist kurz.
Das zweite Handicap der Integer-N-PLL hat etwas komplexere Ursachen: Das Phasenrauschen steigt stark an, wenn der
TeilfaktorN zu hohen Werten verschoben wird, denn (vereinfacht beschrieben) wird das Rauschen des PFD-Signals mitN
multipliziert. Integer-N-PLLs mssen jedoch hufig mit hohen
Werten von N arbeiten, um eine hohe Auflsung, also kurze
Frequenzschritte zu realisieren. Das Herabsetzen des Phasenrauschens stt hier an seine Grenzen.
Um den beschriebenen Problemen aus dem Weg zu gehen,
haben findige Entwickler die Fractional-N-PLL ersonnen, bei
der Neinen gebrochenen Wert hat. Die Methode des Phasenvergleichs bleibt bestehen, nun kann jedoch die Frequenz FPFD
einen Wert erhalten, der wesentlich grer als die Schrittweite
ist. Die Verriegelungszeit und das Phasenrauschen werden drastisch reduziert, die Frequenz des PLL-Ausgangssignals hat eine
hohe Auflsung. Ein Beispiel: Beim 500-MHz-Oszillator kann
FPFD beispielsweise auf 100kHz festgelegt werden. Wenn N=
5000 ist, hat das PLL-Ausgangssignal die Frequenz 500MHz,
und bei N= 5000,01 ist sie 500,001MHz. Ein Tiefpass mit
der Eckfrequenz 10kHz gengt, und die Verriegelungszeit ist
verglichen mit einer Integer-N-PLL um den Faktor 100 krzer.
Dies grenzt zwar an Magie, doch auch die Fractional-N-PLL hat
ihre Handicaps. Leider wurde ein perfekter Frequenzteiler mit
nicht ganzzahligem Teilfaktor noch nicht erfunden. Das Teilen
durch eine gebrochene Zahl lsst sich nur mit einem Kunstgriff
erreichen, der darin besteht, dass der Teilfaktor mit bestimmter Frequenz umgeschaltet wird. Beispielsweise lsst sich der
Teilfaktor N= 5000,01 realisieren, indem fr 99% der Zeit
N= 5000 gesetzt wird und fr 1% der Zeit N= 5001 ist. Im
zeitlichen Mittel ergibt sich zwar der angestrebte gebrochene
Teilfaktor, doch es bedarf nicht viel Phantasie, um zu ahnen,
dass die Methode unvollkommen ist. Im PLL-Ausgangssignal
finden sich diverse Anteile wieder, die dort nicht hingehren.
Der Fractional-N-PLL knnen deshalb gravierendere Probleme
anhaften als der Integer-N-PLL. Hinzu kommt, dass die Eigenschaften der verwendeten integrierten Bausteine der freizgigen Gestaltung Grenzen setzen. Auch dies verkompliziert die
Realisierung in nicht zu unterschtzendem Ma.

Entwerfen einer PLL


Wenn Sie ein Signal mit fester Frequenz oder konstanten Frequenzschritten generieren mchten, ohne dass hohe Forderungen an das Phasenrauschen gestellt werden, ist die IntegerN-PLL der richtige Weg. Whlen Sie die PFD-Frequenz bereinstimmend mit der Schrittweite und dimensionieren Sie den
Tiefpass so, dass die Eckfrequenz um den Faktor10 niedriger
liegt. Wenn jedoch eine hohe Frequenzauflsung oder niedriges
Phasenrauschen Prioritt haben, dann sollten Sie im Normalfall
einer Fractional-N-PLL den Vorzug geben. Die PFD-Frequenz
soll dann mglichst hoch sein.
Dies sind die Grundregeln beim Entwerfen einer PLL. Was noch
fehlt, ist das exakte Berechnen der Parameter, unter anderem
des Tiefpasses. Ferner mssen Manahmen getroffen werden,
falls das Bezugssignal nicht sonderlich stabil ist, also starkes
Phasenrauschen aufweist. Das Phasenrauschen einer PLL ist in
der Umgebung der Frequenz des Ausgangssignals fast gleich
dem Phasenrauschen des Bezugssignals. In diesem Bereich
folgt die PLL dem Bezugssignal einschlielich seiner Toleranzen.
Wird der Abstand zur Frequenz des Ausgangssignals grer,
sinkt der Einfluss des Bezugssignals, die Eigenschaften des
VCO gewinnen an Wirkung. Abhngig von der Anwendung muss
mehr oder weniger Aufwand fr den Tiefpass getrieben werden,
was sich letztendlich auf die Wahl der PFD-Frequenz auswirkt.
Dies alles klingt enorm kompliziert, doch zum Glck bernehmen die Hersteller integrierter PLL-Bausteine den Groteil der
Arbeit. Zum Beispiel stellt Analog Devices sein Tool ADIsimPLL kostenlos zur Verfgung, einen Vorgeschmack gibt Bild6.
Nach der Eingabe der unteren und oberen Frequenzgrenze, der
Frequenzauflsung, der Eigenschaften des Bezugssignals und
des VCO sowie einiger anderer Parameter generiert das Tool
auf Mausklick eine wunschgeme PLL-Schaltung und simuliert

Bild6. Simulation einer PLL-Schaltung auf dem Bildschirm mit dem


Programm ADIsimPLL von Analog Devices.

www.elektormagazine.de

Juli/August 2016

17

learn

design

share

Bild7. Das Entwicklungsboard fr den CY22393 von Cypress vereinfacht


den Umgang mit PLLs. Auf dem Chip sind drei PLLs integriert.

Bild8. Das Programm fr die Konfiguration des CY22393 ist denkbar


einfach zu bedienen.

ihre Arbeitsweise. Wen wundert es, dass dem Benutzer nahe


gelegt wird, fr den realen Aufbau Bausteine aus der Produktion des Herstellers zu verwenden...
Ein solches Tool kann das Leben eines Entwicklers enorm erleichtern. Wenn die vom Tool gelieferten Ergebnisse nicht zusagen,
knnen einige Vorgaben modifiziert werden, und das Spiel
beginnt von vorn. Nach mehr oder weniger vielen Simulationen knnen Sie darangehen, den ersten Prototypen zu bauen.
Wenn Sie die allgemeinen Regeln fr den Aufbau hochfrequenter Schaltungen befolgen, werden die tatschlichen Ergebnisse
den Simulationen sehr nahe kommen.

reitung von Signalen und beim Extrahieren aus anderen Signalen unverzichtbare Dienste. Dieser Beitrag kann natrlich
die umfangreiche Literatur zum Thema PLL nicht ersetzen,
die inzwischen Bibliotheken fllt. Unser Ziel war es, den von
Geheimnissen umwobenen Schleier ein wenig zu lften, der
diese Schaltungstechnik umgibt.
Wir empfehlen Ihnen, einen PLL-Simulator wie ADIsimPLL aus
dem Netz herunterzuladen und auszuprobieren. Der Simulator
vermittelt Ihnen ein Gefhl dafr, wie die einzelnen Parameter
einer PLL ineinandergreifen. In einem nachfolgenden Beitrag
werden wir eine andere Methode der Generierung von Signalen betrachten: Die so genannte Direkte Digitale Synthese
(Direct Digital Synthesis, DDS). Wir werden zeigen, dass PLL
und DDS die Voraussetzungen haben, gemeinsam ein starkes
Team zu bilden.

Silizium
Wenn Sie in Ihrem Projekt eine PLL einsetzen mchten, sollten Sie auf einen dafr zugeschnittenen integrierten Baustein
zurckgreifen. Das Angebot des Marktes ist vielfltig, Analog
Devices, Maxim und Texas Instruments sind nur drei Hersteller
von vielen. Manche PLL-ICs kosten weniger als einen Euro, sie
sind fr weniger anspruchsvolle Zwecke bestimmt. Am anderen Ende der Skala rangieren Bausteine, die schlicht Eindruck
erweckend sind. Um nur ein Beispiel zu nennen: Im ADF5355
von Analog Devices sind eine Fractional-N-PLL und ein VCO
mit hoher Bandbreite integriert, so dass Signale mit jeder Frequenz zwischen 54MHz und 13,6GHz generierbar sind. Der
PFD arbeitet mit Frequenzen bis 125MHz!
In der weitlufigen PLL-Familie sind auch clevere Bausteine
vertreten, die mit nur einem Bezugssignal mehrere Ausgangssignale erzeugen. Wenn zum Beispiel in einem Audioprojekt
Signale mit den Frequenzen 10MHz, 25,55MHz, 8,42MHz
und 5,44MHz bentigt werden, gengt ein einziges IC. Der
CY22393 von Cypress (Bild7) vereint drei PLLs mit zugehrigen VCOs, eine Schaltmatrix und mehrere programmierbare
Frequenzteiler auf einem Chip. Ihn gibt es in einem Gehuse
mit 16Anschlssen fr nur wenige Euro! Das Sahnehubchen
ist die Software, mit der sich dieser Baustein hchst einfach
konfigurieren lsst (Bild8).

PLL? Gar nicht schwer!


PLLs drfen im Arsenal des Entwicklers nicht fehlen, denn sie
leisten beim Generieren periodischer Signale, bei der Aufbe-

18

Juli/August 2016

www.elektormagazine.de

(150203)gd
Dieser Beitrag erschien auch in Circuit Cellar Nr. 209 vom Dezember 2008.

Weblinks:
[1] www.elektormagazine.de/150013

Software:
Proteus Design Suite: www.labcenter.co.uk
Tool ADIsimPLL, V3: www.analog.com
CyberClocks und Datenblatt CY22393: www.cypress.com

Referenzen:
Sampled Systems and the Effects of Clock Phase Noise and
Jitter
Application Note AN-756, Brad Brannon, Analog Devices
www.analog.com

Fractional/Integer-N PLL Basics


Technical Brief SWRA029, Texas Instruments
www.ti.com/lit/an/swra029/swra029.pdf
Phasenregelschleife
https://de.wikipedia.org/wiki/Phasenregelschleife

grundlagen

kurs

&

tipps & tricks

software

Das etwas andere Software-Tool


Von Liam Walton,
Matrix Technology Solutions (UK)

Nichts ist bestndiger als der Wandel.


Das gilt auch fr Matrix. Unser
Kerngeschft sind Produkte rund um
die Entwicklung mit Mikrocontrollern.
Im Moment ndert sich dieser Markt
in atemberaubendem Tempo. In
diesem Artikel geht es um diese
nderungen und wie sie die
Entwicklung von Flowcode, unseres
wichtigsten Produkts, beeinflusst.

Single-Chip-Mikrocontroller werden nun


schon seit fast 40 Jahren fr Consumerund Industrieprodukte eingesetzt. Doch
erst in letzter Zeit sind die Stckzahlen
so angestiegen, dass man ber deren
Preis/Leistungs-Verhltnis nur noch staunen kann. Einfache 8-Pin-Mikrocontroller
sind schon fr wenige Cent zu haben.
Selbst komplexe 32-bit-Typen mit ber
40Pins gibt es mittlerweile fr wenige
Euro, ja sogar fr kaum mehr, als man fr
8-bit-Ausfhrungen mit gleicher Pin-Zahl
berappen muss. Die Kosten fr Gehuse
und Verpackung bersteigen die fr das
Silizium, da immer mehr Transistoren auf
die gleiche Flche passen.

Kostenlose Soft- und Hardware


Halbleiterfirmen haben realisiert, dass
heute etliche Innovationen aus der Maker-

ADVERTORIAL

und Hobby-Szene kommen. Deshalb gibt


es komplette Entwicklungs-Kits fr weniger als 15. Bei Matrix haben wir krzlich ein Entwicklungs-Kit fr ARM-Controller von ST mitsamt 6-LCD fr gerademal 40 gekauft. Und direkt aus China
bekommt man ein komplettes Bluetooth-Modul fr unglaubliche 3$. Dank fehlender Zollgebhren bei kleinen Betrgen
und stagnierendem Heimatmarkt haben
chinesische Lieferanten den direkten
Weg zum Kunden in Europa entdeckt.
Alibaba-Express und eBay spielen hier
eine groe Rolle. Die Hardwarekosten fr Embedded-Systeme gehen also
(fast) gegen Null. Oder wie schafft es
die RPi-Foundation, ein Board fr gerade
einmal 5 herstellen zu lassen und zu
vermarkten?
Passend dazu haben Arduino und RPi den

Vergleichsmastab fr Entwicklungsumgebungen hoch gesetzt. Die Arduino-IDE


ist einfach, leistungsfhig und praktisch.
Doch was bedeutet das fr uns? Diesen
Sommer kommt die Version7 von Flowcode heraus ein grafisches Entwicklungssystem fr Mikrocontroller-Systeme
(Bild1). Das berraschende: Flowcode
verkauft sich besser als je zuvor! Arduino
und die Maker-Bewegung haben diesem
Markt viele ambitionierte Kunden zugefhrt, doch fremdeln diese mit C und finden die Einfachheit von Flowcode interessant. Flowcode ist zu vielen Mikrocontrollern kompatibel: V7 untersttzt nun
sogar die leistungsfhige PIC32-Serie
von Microchip. Diese Chips bieten extrem viel Leistung fr geringe Kosten. Und
das Beste: Die bisherigen Flowcode-Programme kann man einfach zur neuen

www.elektormagazine.de

Juli/August 2016

19

learn

design

share
Soft- und Hardware kaum noch etwas
kostet: Zeit ist wertvoll. Flowcode und
die Matrix-Hardware sparen Zeit.

Weder Elektronik noch Mechanik:


Mechatronik und Robotik
Falls es noch nicht aufgefallen ist: Robotik verlsst ihren Inkubator in Form der
Auto-Fabriken und beginnt unser Alltagsleben zu tangieren. Man denke nur an
Kennzeichenerkennung, automatische
Parkschranken, Passerkennung und
biometrische Zugangskontrollen. Auch
3D-Drucker haben damit zu tun. Roboter werden (bald) iRobot-hnliche, humanoide Funktionen erhalten. Und da der
3D-Druck mehr und mehr mechanische
Probleme lsen hilft, werden sie in unserem Leben eine grere Rolle spielen.

Bild1. So begrt Sie Flowcode7 (auch Deutsch lsst sich als Sprache einstellen).

Plattform transferieren. Damit steht nun


32-Prozessor-Power fr mathematische
und rechenintensive Funktionen wie etwa
die Sprach-Synthese zur Verfgung.
Und wir haben auch Hardware im Programm. Sie ist etwas teurer wie die der
groen Halbleiter-Firmen, da wir keine
so groen Stckzahlen erreichen und

Bild2. Ganzheitliche Entwicklung bei einem Autositz.

20

Juli/August 2016

www.elektormagazine.de

auch Matrix von etwas leben muss. Dafr


haben unsere Produkte eine zeitsparende
Debug- und Mess-Elektronik an Bord, die
auf den schnen Namen Ghost hrt.
Dazu gehrt ein Datenrekorder, ein Oszilloskop, ein Logik-Analyzer, ein Paket-Decoder sowie Tools fr das In-Circuit- und
In-System-Debugging. Auch wenn viele

Dazu der Trend in der Industrie: In


der Ingenieur-Ausbildung finden zwei
groe Disziplinen zusammen: Elektronik
und Mechanik. Das gilt fr Frankreichs
renommierte Ausbildungen der Lycees
Technique genauso wie fr angehende
britische Ingenieure des BTEC National
oder fr die technischen Unis und Fachhochschulen in deutschen Landen. Daher
hat die Industrie Bedarf an breiter ausgebildeten Ingenieuren mit Kenntnissen
in mehreren Disziplinen. Moderne Ingenieure haben eher ein Tablet in der Hand
als einen Ltkolben oder einen Schraubendreher. Jeder angehende Ingenieur
braucht heute Programmierkenntnisse.
Er muss eher Mikrocontroller programmieren statt Anwendungsprogramme fr
PCs, denn diese kleinen Chips stecken
einfach berall.
Welche Folgen hat das fr uns? Flowcode
Version6 enthielt eine Simulation von 2Dund 3D-Systemen. Das hat einige Kunden
verwirrt. Warum sollte man Mikrocontroller-Verhalten in 3D simulieren? Die Antwort: Ingenieure programmieren nicht
nur Mikrocontroller, sondern sie konstruieren ganze Systeme mit Mikrocontrollern.
Wenn ein Entwicklungsingenieur aber
Elektronik und Mechanik eines Systems
zugleich simulieren kann, vereinfacht das
die Entwicklung und verkrzt die erforderliche Zeit, was Kosten reduziert. Wenn
man also Studenten eine Umgebung in
die Hand gibt, mit der sie sogar elektrochemische, chemische oder produktionstechnische Systeme kombiniert simulieren
knnen, hat das ein vertieftes Lernen zur
Folge. Um dies weiter zu forcieren, ver-

ADVERTORIAL

grundlagen

kurs

fgt Flowcode7 ber eine neue, verbesserte 3D-Simulation sowie die Mglichkeit
zur Verbindung mit CAD-Paketen anderer Hersteller wie etwa Solidworks und
DesignSpark Mechanical. Bild2 zeigt,
wie Ingenieure in der Automobilindustrie
jetzt mit Anwendungen und in Flowcode
enthaltenen Beispielen elektronischer
Komponenten von Autositzen umgehen
knnen und dabei lernen, wie Mikrocontroller funktionieren.

ADAS und Automotive


Die grte technische Revolution der
nchsten Jahre drften mit ADAS
(Advanced Driver Assistance Systems)
ausgestattete Autos sein. Das wird unser
bisheriges Leben verndern. Ab 2025
laut Experten der spteste Zeitpunkt
ihrer Einfhrung fahren autonome
Autos auf den Straen. Nicht erst seit
heute haben die Auto-Hersteller sowie
Google funktionierende Prototypen. Und
interessant ist, dass viele unserer Kunden heute schon Technik fr Fahrzeuge
mit unseren Produkten entwickeln. Zwar
nicht gerade Motorsteuerungen fr die
groen Marken, aber doch viel Zubehr
wie etwa Displays, Technik fr Wohnwagen, ferngesteuerte Schalter oder Testumgebungen. Wichtig ist, dass vernetzte
Mikrocontroller zum Einsatz kommen.
Der CAN-Bus ist dabei der etablierte
Kommunikations-Standard.
Was bedeutet das fr uns? Der Schwerpunkt liegt hier eher auf Entwicklungssystemen als auf bloen Mikrocontroller-Schaltungen, denn es geht um Systeme mit mehreren Mikrocontrollern.
Flowcode7 bringt viele Funktionen fr
solche Systeme mit und kann mehr als
einen Mikrocontroller gleichzeitig simulieren. Tatschlich kann man ein System von
bis zu zehn Instanzen mit Flowcode auf
einem PC oder einem Netzwerk von PCs
realisieren, die alle miteinander kommunizieren. Die System-Protokolle knnen
dabei auf Tabellen basieren. Auf diese
Weise kann man Software entwickeln und
viele Mikrocontroller untersttzen, aber
die Daten fr das Verhalten der Mikrocontroller knnen extern vorliegen. Dies
vereinfacht das Design von Multi-Mikrocontroller-Systemen betrchtlich. Nicht
zuletzt macht der Injector von Flowcode7 den Test und das Debugging sehr
einfach: Man kann eine Simulation mit
den Signalen erstellen, auf die das System reagieren soll, und dabei sicherstel-

ADVERTORIAL

&

len, dass das Programm korrekt auf die


ankommende Kommunikation reagiert.

Fazit
Es ging hauptschlich um drei Aspekte
von Vernderung und die Art, wie wir darauf reagieren. Noch zu erwhnen wren
die Themen:
Internet of Things. Auch hier gibt es
schnelles Wachstum. Flowcode7 ist
dank der Untersttzung von Bluetooth und WLAN/Internet fr IoT
bereit.
Touchscreen-PCs und Tablets. Sie
sind mittlerweile weit verbreitet. Flowcode untersttzt sie mit
greren Icons passend fr die
Touch-Bedienung.
Enge auf Bildschirmen. Flowcode7
kommt dem entgegen, indem weniger Flche bentigt wird.
Microchip-Templates. Die PIC-Familie wchst und Flowcode ermglicht
die Programmierung mit fertigen

tipps & tricks

software

Templates der bekannten Entwicklungs-Kits wie dem der Low-PinCount-Demo des PICkit und seinem
44-Pin-Demo-Board.
Flowcode7 ist vollgepackt mit neuen
Funktionen, die das Entwickeln vereinfachen: Neue und schnelle Microchip-XC-Compiler (bei den PIC-Versionen), Code-Profiling (Bild3) mit der
Angabe der Hufigkeit, mit der auf Icons
bei Simulation und Debugging zugegriffen
wird, Offline-Hilfe mit schnellem Zugriff
sowie ein neues grafisches User-Interface, und mehr.
Flowcode7 ist ab Juni 2016 ber den
Elektor Store unter der URL www.elektor.
de/flowcode erhltlich.
(160050)

Bild3. Neu in Flowcode 7: Code-Profiling.

www.elektormagazine.de

Juli/August 2016

21

learn

design

share

Windows
steuert Arduino
ber USB und Bluetooth

Windows-Smartphones haben mittlerweile einen betrchtlichen Marktanteil. Das neue


Betriebssystem Windows Mobile 10 bietet einige Mglichkeiten, ein Windows-Handy oder
-Tablet als Steuerzentrale in eigenen Projekten einzusetzen. ber USB oder Bluetooth kann
man zum Beispiel mit einem Arduino-Board kommunizieren. Von Microsoft wird hierfr
sogar eine eigene Bibliothek bereitgestellt.

Von Tam Hanna

Unter Windows Mobile 10 stehen Entwicklern verschiedene


Mglichkeiten zur Kommunikation mit externer Hardware offen.
Naheliegend ist die Verbindung ber ein USB-Kabel. Microsoft

22

Juli/August 2016

www.elektormagazine.de

macht die Nutzung des USB-Treiber-APIs unter Windows Mobile


10 wieder fr Drittentwickler zugnglich. Fr Kleinserien und
den Hobby-Bereich ist eine Programmierung gegen das komplexe API allerdings nicht wirklich effizient. Microsoft bietet
aber alternative Programmierschnittstellen an, die Entwicklern das Verbinden von Hardware und Smartphone erleichtern.

grundlagen

kurs

Ferngesteuerter Arduino
In der Arduino-Welt ist ein als Firmata bezeichnetes Protokoll populr [1]. Mit dem Protokoll, das interessanterweise
vom MIDI-Protokoll abgeleitet ist, lassen sich zum Beispiel
bestimmte Portpins auf High oder Low setzen. In die andere
Richtung kann der Arduino Messwerte bermitteln, die an

&

tipps & tricks

software

einem analogen Eingang erfasst wurden.


Microsoft bietet mit Windows Remote Arduino ein dafr geeignetes Spezial-API an, das sich auch unter Windows Mobile 10
einsetzen lsst.
Mit den hier enthaltenen Funktionen kann der Anwendungsentwickler dann zum Beispiel ein Kommando zum Setzen eines

www.elektormagazine.de

Juli/August 2016

23

learn

design

share
Arduino-Pins senden, ohne Details des Protokolls kennen zu
mssen:
myArduino.digitalWrite(13, Microsoft.Maker.RemoteWiring.
PinState.LOW);

Wie wir sehen (und ausprobieren) werden, lsst sich das API
sowohl fr die Kommunikation ber ein USB-Kabel als auch
via Bluetooth einsetzen.
Es ist keine schlechte Idee, sich vor der Lektre des folgenden
Artikels noch einmal die kleine Artikelserie Windows auf dem
RasPi (Elektor ab November 2015 [2]) anzusehen; es wird
dort zum Beispiel der Umgang mit Visual Studio und .NET-Objekten beschrieben. Anfngern empfehlen wir wie immer, den
folgenden Code erst einmal 1:1 zu benutzen und sich dann
mit kleinen Abwandlungen weiter vorzuwagen. Der gesamte
Quellcode kann von der Webseite zu diesem Artikel heruntergeladen werden [3].

USB-Kabel

Bild1. Dieses Telefon wei mit USB OTG nichts anzufangen.

Bild2. Welche Variante darf es sein?

Bild3. VID und PID identifizieren ein USB-Gert eindeutig.

24

Juli/August 2016

www.elektormagazine.de

Probieren wir die Kommunikation ber USB einmal aus. Fr


die Arbeit per Kabel ist ein Windows Phone 10 notwendig, das
vollwertigen USB-Support bietet. Dies lsst sich in der Einstellungen-Applikation prfen: Klicken Sie auf Settings, wechseln
Sie in die Rubrik Devices und suchen Sie den Eintrag USB.
Auf nichtfunktionierenden Gerten erscheint daraufhin die in
Bild1 gezeigte Fehlermeldung.
Die Vorlage Windows Universal Blank App (Universal
Windows) erzeugt in Visual Studio 2015 ein Projekt, das sowohl
auf dem Handy als auch auf einem PC lauffhig ist. Unser Programmbeispiel liee sich auch am PC ausfhren, wenn Sie den
Arduino mit ihm verbinden und Windows 10 als Hostbetriebssystem verwenden.
Visual Studio fragt in manchen Fllen (wie in Bild2 gezeigt)
nach der zu verwendenden Version der Universal Windows
Platform. Whlen Sie in diesem Fall die niedrigste Version aus.
Microsoft bietet fr Visual Studio mit NuGet seit einiger Zeit
eine Paketverwaltung an, aus der hufig verwendete Bibliotheken direkt in das aktive Projekt heruntergeladen werden.
Windows Remote Arduino gehrt dazu: Klicken Sie auf Tools
-> NuGet Packet Manager -> Packet Manager Console, um
das Verwaltungswerkzeug zu ffnen. Geben Sie im daraufhin erscheinenden Fenster das Kommando Install-Package
Windows-Remote-Arduino ein, um die notwendigen Pakete
aus dem Internet herunterzuladen und in Ihr Projekt zu integrieren. Fr die Kommunikation mit Hardware ist unter Windows
10 eine Permission erforderlich, die von Hand einzupflegen ist.
Klicken Sie die Datei Package.appxmanifest rechts an, und
whlen Sie die Option View Code aus. ndern Sie den Inhalt
der Manifestdatei dann folgendermaen:
<Capabilities>
<Capability Name=internetClient />
<DeviceCapability Name=serialcommunication>
<Device Id=any>
<Function Type=name:serialPort/>
</Device>
</DeviceCapability>
</Capabilities>

grundlagen

kurs

Bitte achten Sie darauf, dass eine mit dem DeviceCapability-Attribut ausgestattete Manifestdatei nicht mehr mit dem
grafischen Editor bearbeitet werden kann: Ein Microsoft bereits
bekannter Bug fhrt in diesem Fall zur Korrumpierung des
Inhalts.
Damit sind die Vorbereitungshandlungen abgeschlossen.
Beschaffen Sie ein zu Ihrem Telefon passendes USB-OTG-Kabel, das den Mini-USB-Kombiport Ihres Telefons in einen normalen USB-Hostport umwandelt. Zum Test des Kabels bietet
sich ein USB-Stick an wird dieser erkannt, so knnen Sie
problemlos einen Arduino anschlieen.

&

software

tipps & tricks

void setup()
{
Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION,
FIRMATA_MINOR_VERSION);
. . .
Firmata.begin(115200);
. . .
}

Windows-Code
Falls Sie keinen originalen Arduino Uno verwenden, dann sollten Sie das Board allerdings zuerst mit einem PC verbinden,
denn Sie mssen noch die VID und PID des Boards herausbekommen. ffnen Sie den Gertemanager und suchen Sie
den Arduino in der Rubrik Anschlsse bzw. Ports. Ein Rechtsklick ermglicht das ffnen der Eigenschaftenseite, unsere
gewnschten Parameter finden sich unter Details Hardware
Ids. Bei einem Arduino Uno prsentiert sich das Fenster wie
in Bild3 gezeigt.

Arduino-Code
Auf Seiten des Arduinos knnen wir auf Standard-Firmata-Software zurckgreifen, die unter Datei Beispiele Firmata
StandardFirmata zur Verfgung steht. Zur Steigerung der
Systemperformance wollen wir lediglich die Kommunikationsbandbreite verdoppeln. Firmata arbeitet von Haus aus mit sehr
konservativen 57600bps, die nur bei vergleichsweise hoher
Zusatzbelastung des Prozessrechners oder bei Nutzung der
I2C-Funktion notwendig sind (siehe auch [4]).
Listing1. Pins steuern ber USB.
public sealed partial class MainPage : Page
{
UsbSerial myUSB;
Microsoft.Maker.RemoteWiring.RemoteDevice myArduino;
public MainPage()
{
this.InitializeComponent();
myUSB = new UsbSerial(VID_2341, PID_0043);
myArduino = new Microsoft.Maker.RemoteWiring.
RemoteDevice(myUSB);
myUSB.ConnectionEstablished +=
MyUSB_ConnectionEstablished;
myUSB.ConnectionFailed += MyUSB_ConnectionFailed;
myUSB.begin(115200, Microsoft.Maker.Serial.
SerialConfig.SERIAL_8N1);
}
private void MyUSB_ConnectionFailed(string message)
{
TxtStatus.Text = Connection failed;

}
private void MyUSB_ConnectionEstablished()
{

ffnen Sie im nchsten Schritt die Layout-Datei des Visual-Studio-Projekts, um sie um ein Label, das Text anzeigen kann,
zu ergnzen:
<Grid Background={ThemeResource ApplicationPageBackgrou
ndThemeBrush}>
<TextBlock Name=TxtStatus/>
</Grid>

Die Windows Remote Arduino-Programmierumgebung ist mehrschichtig aufgebaut. Im Fall einer Verbindung per USB sieht
der notwendige Code so wie in Listing1 aus.
Alle Funktionen, die zu Anfang des Programms ausgefhrt werden mssen, stehen im Konstruktor der MainPage MainPage().
Zuerst wird ein Objekt der Klasse UsbSerial erzeugt, und jetzt
sieht man, fr was wir die VID und PID des Arduino-Boards
bentigen. Beim Erzeugen des Objekts myArduino wird dieses
USB-Objekt namens myUSB als Parameter mitgegeben.
Bei einer fehlgeschlagenen Verbindung soll eine entsprechende
TxtStatus.Text = Connection to Arduino!;
runner();
}

async private void runner()


{
await Task.Run(() => innerRunner());
}
void innerRunner()
{
myArduino.pinMode(13, Microsoft.Maker.RemoteWiring.
PinMode.OUTPUT);
for (;;)
{
myArduino.digitalWrite(13, Microsoft.Maker.
RemoteWiring.PinState.LOW);
myArduino.digitalWrite(13, Microsoft.Maker.
RemoteWiring.PinState.HIGH);
myArduino.digitalWrite(13, Microsoft.Maker.
RemoteWiring.PinState.LOW);
myArduino.digitalWrite(13, Microsoft.Maker.
RemoteWiring.PinState.HIGH);
}
}
}

www.elektormagazine.de

Juli/August 2016

25

learn

design

share
Meldung im Label ausgegeben werden. Das ist beim ersten
Programmstart aber kein Grund zu Panik, beim nchsten Programmstart sollte es dann klappen.
Scheitert die Verbindung nicht, dann geben wir die Erfolgsmeldung im Label aus und starten mit runner() einen eigenen Thread. In ihm wird der Pin13 abwechselnd auf High und
Low gesetzt, um ein Rechtecksignal auszugeben. Das Ganze
funktioniert hinter den Kulissen mit Kommando-Bytes, die zum
Arduino geschickt werden. Das muss den Anwendungsentwickler aber nicht interessieren. Die in Windows Remote Arduino
implementierte API ist eng mit der normalen Arduino-API verwandt, die Funktionen sehen hnlich aus wie in einem ganz
normalen Arduino-Sketch.

Bild4. Das Rechtecksignal ist vergleichsweise stabil.

Win10 only!
Auch wenn die Dokumentation zu Windows Remote Arduino
anderes verspricht: Zuverlssig funktioniert das Produkt
nur unter Windows 10. Der Autor rt aus schmerzhafter
eigener Erfahrung von Experimenten mit Windows 8.1
als Zielplattform ab. Als Hostplattform fr Visual Studio
lsst sich Win 8.1 bei Vorhandensein eines physikalischen
Windows Phone 10 aber problemlos einsetzen.

Et tu, Yun?
Ein Arduino Yun ist ob seines WLAN-Funkmoduls die
bequemste Methode zur Nutzung von Windows Remote
Arduino. Leider sind hierzu Konfigurationsarbeiten
notwendig, die unter [7] im Detail beschrieben sind.

Windows Mobile-Gerte nehmen nur dann Programme an,


wenn sie unter Einstellungen Updates&Sicherheit-> Fr
Entwickler in den Developer Mode versetzt werden. Deployen
Sie das Steuerprogramm sodann auf das Telefon und achten
Sie dabei darauf, im Feld Architektur die passende Zielplattform auszuwhlen.
Beim Start des Programms gibt der angeschlossene Arduino
ein Rechtecksignal aus. Auf einem MDA (Modulation Domain
Analyzer) des Autors entstand das in Bild4 gezeigte Bild.

Bluetooth fr den Arduino


Bluetooth funktioniert auf so gut wie jedem Windows Phone,
und lsst sich dem Arduino durch ein bei AliExpress preiswert
erhltliches Modul der Bauart HC-06 beibringen. Die Verbindung ist so primitiv, dass das in Bild5 gezeigte Schaltbild
eigentlich gar nicht erforderlich ist.
Ob einer kleinen Inkompatibilitt ist an dieser Stelle ein Downgrade der Firmatabibliothek notwendig. ffnen Sie den Bibliotheksmanager der Arduino-IDE, und installieren Sie die Version
2.4.4 um den unter [5] dokumentierten Fehler zu umgehen.
Danach mssen Sie den Code nur noch an die Baudrate des
Moduls anpassen, die von Haus aus 9600bps betrgt:
void setup()
{
Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION,
FIRMATA_MINOR_VERSION);
. . .
Firmata.begin(9600);

5V

. . .

Win10

ARDUINO

Bluetooth unter Windows

USB

GND

1=TX

RXD

0=RX

TXD

Bild5. Der Arduino ist einfach um Bluetooth zu erweitern.

26

Juli/August 2016

www.elektormagazine.de

VCC

Unter Windows Phone ist eine neue Bibliothek notwendig, die


den Zugriff auf Bluetooth ermglicht. Ihre Einpflegung in die
Datei Package.appxmanifest sollte ebenfalls von Hand erfolgen,
da der Editor die inneren Capabilities nicht korrekt deklariert:

HC-06
GND

<Capabilities>
<Capability Name=internetClient />
<DeviceCapability Name=bluetooth.rfcomm>
<Device Id=any>
<Function Type=name:serialPort/>

grundlagen

kurs

Listing2. Verbinden ber Bluetooth.


BluetoothSerial myBTSerial;
Microsoft.Maker.RemoteWiring.RemoteDevice myArduino;
public MainPage()
{
this.InitializeComponent();
btScanner();
}

async public void btScanner()
{
var radios = await Radio.GetRadiosAsync();
var bluetoothRadio = radios.FirstOrDefault(radio =>
radio.Kind == RadioKind.Bluetooth);

if (bluetoothRadio != null && bluetoothRadio.State ==


RadioState.On) {
TxtStatus.Text = Scan!;

</Device>
</DeviceCapability
</Capabilities>

Unser auf dem Windows Phone laufende Rechenprogramm


[3] ruft im Rahmen des Konstruktors MainPage() die Funktion btScanner() auf (siehe Listing2). Statt des bisher verwendeten UsbSerial-Objekts nutzen wir nun eine Instanz von
BluetoothSerial, die fr die Kommunikation ber Kurzstreckenfunk vorgesehen ist.
Die Funktion btScanner dient mehreren Herren: Im ersten
Schritt verwenden wir die GetRadiosAsync-Methode, um eine
Liste aller im vorliegenden Telefon verbauten Funkmodule zu
erhalten. Sofern das Standard-Funkmodul vorhanden und eingeschaltet ist, stoen wir im nchsten Schritt den Scanprozess
an. Das von GetRadiosAsync zurckgelieferte Objekt radios
ist insofern interessant, als es im Debugger berhaupt keinen
Inhalt zeigt. Seine Inhalte lassen sich nur durch Enumeration auf den Bildschirm holen - wir beschrnken uns im Code
darauf, das erste Modul auszuwhlen und eine Verbindung zu
ihm aufzunehmen.
Vor der Ausfhrung des Programms mssen Sie das Modul mit
dem Windows Phone 10 pairen. Die in Windows Remote Arduino
implementierte Suchengine findet nur jene Funkmodule, die
schon eine Pairingbeziehung aufweisen. Die im Rahmen des
Pairings erforderliche ID lautet bei einem im Auslieferungszustand befindlichen Modul 1234.
Microsofts Bluetooth-Stack weist die eine oder andere Eigenheit auf, die im Zusammenspiel mit den oft nicht sonderlich
stabilen Firmwares der Funkmodule zu Lustigkeiten fhrt. Ihre
Bekmpfung erfolgt im ersten Schritt durch einen Reboot des
Moduls. Ist dies nicht zielfhrend, so sollte ein Neustart des
Telefons folgen.
Der Rest des Windows-Programms ist gleich wie bei USB; wir
schalten den Pin13 auf dem Arduino hoch und runter.
Bild6 zeigt die entstehende Wellenform aus Sicht eines MDA.
Es ist deutlich erkennbar, dass die kabellose Verbindung mit
greren Latenzproblemen zu kmpfen hat.

&

tipps & tricks

software

DeviceInformationCollection aColl = await


BluetoothSerial.listAvailableDevicesAsync();
TxtStatus.Text += \n Result: + aColl.Count().
ToString();
if (aColl.Count() > 0){
myBTSerial = new BluetoothSerial(aColl[0]);
myArduino = new Microsoft.Maker.RemoteWiring.
RemoteDevice(myBTSerial);
myBTSerial.ConnectionEstablished +=
MyBTSerial_ConnectionEstablished;
myBTSerial.ConnectionFailed +=
MyBTSerial_ConnectionFailed;
myBTSerial.begin(9600, Microsoft.Maker.Serial.
SerialConfig.SERIAL_8N1);
}
}
else {
TxtStatus.Text = No BT-Module!;
}
}

Alles roh!
Firmata mag fr Informatik-unerfahrene Entwickler eine groe
Erleichterung darstellen. Wer die maximale Leistung aus der
Hardware herausholen will, kommt um die Implementierung
eines eigenen Protokolls nicht herum. Wir wollen diesen Schritt
hier kurz ansprechen.
Zur Motivation und zur Schaffung von Problembewusstsein wollen wir hier ein per SPI ansprechbares OLED-Display verwenden.
Aufmerksame Leser der Elektor kennen das 0,96Zoll groe
Display aus Elektor April 2015 [6] als alten Bekannten. Schlieen Sie es an den (schon mit dem Bluetooth-Modul verbundenen) Arduino an, was zur in Bild7 gezeigten Schaltung fhrt.
Ob der komplexeren Aufgabenstellung erzeugen wir an dieser
Stelle ein weiteres neues Projekt. Sein Konstruktor ruft wie in
den vorigen Codebeispielen auch dieses Mal die asynchrone
Methode runner() auf, die fr die eigentliche Verarbeitung der
Datenkommunikation zustndig ist (Listing3).

Bild6. Bluetooth ist latenzanflliger als verkabelte Verbindungen.

www.elektormagazine.de

Juli/August 2016

27

learn

design

share

Listing3. Zeichen senden vom Smartphone aus.


public sealed partial class MainPage : Page
{
RfcommDeviceService myService;
StreamSocket mySocket;
DataWriter myWriter;
public MainPage()
{
this.InitializeComponent();
runner();
}
async void runner()
{
DeviceInformationCollection dIC = await
DeviceInformation.FindAllAsync(RfcommDeviceService.
GetDeviceSelector(RfcommServiceId.SerialPort));
myService = await RfcommDeviceService.
FromIdAsync(dIC[0].Id);
DeviceInformation a = dIC[0];
mySocket = new StreamSocket();
try

{
await mySocket.ConnectAsync(myService.
ConnectionHostName, myService.
ConnectionServiceName);
byte[] thisChar = { (byte)1, (byte)H, (byte)e,
(byte)l, (byte)l, (byte)o, (byte)0 };
myWriter = new DataWriter(mySocket.OutputStream);
while (1 == 1)
{
myWriter.WriteBytes(thisChar);
Task<UInt32> aTask = myWriter.StoreAsync().
AsTask();
await aTask;
await Task.Delay(250);
}
}
catch (Exception e)
{
e = e;
}
}
}

Listing4. Zeichen empfangen mit Arduino.


#include
#include
#include
#include

case 0: //Warte auf LOS


if(Serial.available())
{
char val=Serial.read();
if(val==1){
mode=1;
readCtr=0;
}
}
break;
case 1: //Lese und speie aus
if(Serial.available())
{
char val=Serial.read();
if(val==0){
//Ende

<SPI.h>
<Wire.h>
<Adafruit_GFX.h>
<Adafruit_SSD1306.h>

#define OLED_MOSI
9
#define OLED_CLK
10
#define OLED_DC
11
#define OLED_CS
12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_
DC, OLED_RESET, OLED_CS);
char mode=0;
char readCtr=0;
char myField[32];

myField[readCtr]=val;
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(myField);
display.display();
readCtr=0;
mode=0;

void setup() {
Serial.begin(9600);

display.begin(SSD1306_SWITCHCAPVCC);
display.clearDisplay();
delay(2000);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(Online!);
display.display();

void loop() {
if(Serial.available())
{
switch(mode)
{

28

Juli/August 2016

www.elektormagazine.de

}
else
{
myField[readCtr]=val;
readCtr++;
}
}
break;
}
}
}

grundlagen

kurs

Nach dem nun etwas anders aussehenden Scanprozess ffnen wir einen StreamSocket. Diese Klasse ist in der Universal
Windows Platform auch fr serielle Verbindungen zu externer
Hardware zustndig.
Nach dem erfolgreichen Aufbau der Verbindung erzeugen wir den
zu sendenden Bitstrom, der daraufhin ber eine DataWriterKlasse in den zum Arduino zeigenden Socket geschrieben wird.
Diese auf den ersten Blick berkomplex aussehende Vorgehensweise ist notwendig, da das Einschreiben der von WriteBytes
entgegengenommenen Daten erst im Rahmen der Abarbeitung
des von StoreAsync zurckgegebenen AsyncTasks erfolgt.
Im nchsten Schritt warten wir 250 Millisekunden, um dem
Arduino etwas Zeit zur Entgegennahme der angelieferten Daten
zu geben. Dies ist insofern notwendig, als es sonst zu berlastungen des Puffers kommt sie uern sich durch das in
Bild8 gezeigte Schirmbild.
Am Ende des Codes findet man noch eine kleine Spitzfindigkeit
in Sachen .NET. Das Setzen von e = e erleichtert die Platzierung eines Breakpoints, mit dem wir eine eventuell angelieferte
Exception analysieren knnen.

&

software

tipps & tricks

= SPI CLK

10

5V

D0

D1

13

RES

11

DC

12

CS

ARDUINO

USB

GND

5V capable
0.96 OLED
128 x 64

1=TX

RXD

0=RX

TXD

VCC

HC-06
GND

Bild7. SPI und serielle Schnittstelle im Doppelteam.

Arduino-Sketch
Damit knnen wir uns dem auf dem Arduino Uno laufenden
Sketch zuwenden. Die fr das Display bentigte Treiberbibliothek steht im Bibliotheksverwalter unter dem Namen Adafruit
SSD1306 zum Download bereit. Aus Grnden der Bequemlichkeit wollen wir zudem auf die Adafruit GFX Library zurckgreifen, die grafische Primitiva bereitstellt.
Im Rahmen von setup() weisen wir die display-Bibliothek
dazu an, eine Verbindung zu unserem Display aufzunehmen
(Listing4).
Die eigentliche Intelligenz findet sich derweil in der loop-Methode, die einen kleinen Zustandsautomaten realisiert. Dazu
etwas Erklrung: Ein Zustandsautomat ist ein Programm, das
zwischen mehreren definierten Betriebszustnden hin und her
wechselt. In unserem Fall ist dies entweder das Warten auf
das Startbit 1 oder das Entgegennehmen von Bits, die anzuzeigen sind.
Damit ist auch diese Version des Programms ausfhrbar. Fehler der Bauart No more data is available. (Exception from
HRESULT: 0x80070103) lassen sich durch einen Neustart des
Telefons und/oder des Funkmoduls beheben.

Bild8. Hier wurden zu viele Daten bertragen.

Weblinks
[1] www.arduino.cc/en/Reference/Firmata
[2] www.elektormagazine.de/150465
[3] www.elektormagazine.de/150763
[4] https://sourceforge.net/p/firmata/mailman/
message/22824115/

Fazit

[5] https://github.com/ms-iot/remote-wiring/issues/80

Die schlechte Reputation von Windows Mobile 10 ist unverdient,


die Kommunikation per Bluetooth funktioniert im Groen und
Ganzen problemlos. Dieser Artikel beschrnkte sich auf das Senden von Informationen vom Telefon zum Arduino. In beiden Fllen ist natrlich auch das Entgegennehmen von Daten mglich.

[6] www.elektormagazine.de/150520
[7] https://create.arduino.cc/projecthub/mohanp/
windows-remote-arduino-yun-wifi-and-networkserial-b3290a

(150763)

Es geht nicht!

Zu langsam!

Wenn eine auf Windows Remote Arduino basierende


Applikation partout keinen Kontakt zum Arduino aufnehmen
mchte, knnen Sie das korrekte Funktionieren von
Hardware und Telefon sowie die Korrektheit der FirmataVersion mit dem im App-Store bereitstehenden Programm
Windows Remote Arduino prfen.

Das HC-06-Modul arbeitet von Haus aus nur mit


9600bps. Wer mehr Geschwindigkeit haben mchte,
muss ein diesbezgliches AT-Kommando an das Modul
senden. Weitere Informationen hierzu finden sich in der
Dokumentation.

www.elektormagazine.de

Juli/August 2016

29

learn

design

share

Tipps & Tricks (3)


von Neil Gruending (kanada)

Seit der letzten Folge ist klar, wie man ein Projekt
anlegt und einen Schaltplan hinzufgt. Nachfolgend
wird demonstriert, wie man eine Platine erstellt
und Gerber-Dateien erzeugt.
Platine erstellen
Will man eine Platine zum Projekt hinzufgen, so fhrt der erste
Schritt ber das Men Home AddnewPCB. Man wird nach
einem Dateinamen gefragt, danach wird eine Platinen-Datei
fr das quadratische Standardma von 100100mm wie in
Bild1 erzeugt.
Diese Gre passt natrlich selten, weshalb man via Home
Board BoardShape RedefineBoardShape oder
EditBoardShape andere Mae festlegen kann. Doch die bevorzugte Methode ist das Zeichnen der Platinen-Umrisse im Layer
Keepout mit den Tools line und arc. Auf diese Weise wird der
Keepout-Bereich auch bei der Platzierung der Bauteile und
beim Routing der Leiterbahnen wirksam. Wenn man den Pla-

tinen-Umriss gezeichnet hat, kann man alle Elemente im Layer


Keepout via Home Clipboard SelectAllonLayer selektieren; danach geht man ins Board-Shape-Men und macht diese
Elemente mit DefineFromSelectedObjects zum wirksamen
Platinenumriss.
Wenn dieser Punkt erledigt ist, geht es darum, die Bauteile aus
dem Schaltplan auf die Platine zu transferieren. Dies erfolgt
mit Home Project UpdatePCBDocument. CircuitMaker
wird dann automatisch alle Schaltungsdokumente scannen um
deren Hierarchie zu bestimmen und die Verbindungsinformationen zu generieren. Dann sucht das Comparator-Tool nach
etwaigen Unterschieden zwischen Schaltung und Platine. Aus
den gefundenen Unterschieden wird dann wie in Bild2 eine
ECO-Liste (Engineering Change Order) erstellt, mit der man die
aufgelisteten nderungen der Platine validieren und anwenden
(execute) kann. Man kann die Anwendung von nderungen
auch verhindern, indem man den entsprechenden Haken in
der Spalte Enable vor der jeweiligen Zeile wegnimmt.
Anschlieend sind alle Bauteile auf der Platine vorhanden und
die Netzliste erfhrt ein Update. Wenn man nun die Bauteile
auf der Platine platziert, kann man mit den in der letzten Folge
erwhnten Tastatur-Shortcuts viel Zeit sparen. Z.B. ist es viel
einfacher, ein Bauteil mit der Leerzeichen-Taste zu rotieren
statt mit der Maus. Wenn alle Bauteile platziert sind, geht es
weiter mit dem Routing.

Platinen-Routing

Bild1. Standard-Platine mit 1010cm.

Bild2. Fenster Engineering Change Order.

30

Juli/August 2016

www.elektormagazine.de

CircuitMaker verfgt ber einige interaktive Routing-Tools. Mit


dem Tool Interactive Routing kann man eine Leiterbahn verlegen, wobei CircuitMaker dafr sorgt, dass anderen Leiterbahnen und sonstigen Hindernissen ausgewichen wird. Das
Tool Differential Pair dient zum gleichzeitigen Verlegen beider
Bahnen differentieller Leiterbahnen. Mit dem Tool Interactive
Multi-Routing kann man gleich eine ganze Gruppe von Leiterbahnen wie etwa bei einem Bus gemeinsam verlegen.
Bei Verlegen von Leiterbahnen gibt es via Shortcut Shift+R
mehrere Optionen:
Ignore: Damit kann
man berall Leiterbahnen
verlegen.
Stop at first obstacle: Hier
wird das Verlegen beim ersten Hindernis gestoppt.
Push: Es wird versucht,
andere Leiterbahnen zu verschieben (siehe Bild3).
Autoroute on current
Layer: Ein einfacher Autorou-

Advertorial

grundlagen

kurs

&

tipps & tricks

software

ter schlgt beim Auftreten eines Hindernisses eine optimale


Route vor.

Weblinks

Der interaktive Router von CircuitMaker berprft permanent


die gerade verlegte Leiterbahn auf Verste gegen die Design
Rules. Jedes neue Projekt erhlt zunchst einen Standard-Satz
an Design-Regeln, die mit dem entsprechenden Editor per Home
Design Rules DefineDesignRules gendert werden knnen.
Bild4 zeigt die Regel fr die Clearance. Man kann CircuitMaker
beispielsweise anweisen, normalerweise einen Bahnabstand von
0,25mm zu verwenden, der bei bestimmten Bauelementen auf
0,15mm reduziert wird. Das Regel-System erlaubt auch das
Gruppieren von Bauelementen und Netzen in Klassen, auf die
dann Design-Regeln angewendet werden knnen.

[2] http://documentation.circuitmaker.com/display/CMAK/
From+Idea+to+Manufacture+-+Driving+a+PCB+Design+through+CircuitMaker

[1] http://documentation.circuitmaker.com

Gerber- und STEP-Dateien


Nach dem Routing muss man die fr die Produktion der Platine erforderlichen Dateien generieren. Diese sind zwar durch
den Platinen-Fertiger bedingt, doch meistens wird das Gerber-Format untersttzt. Gerber-Dateien haben ein recht einfaches Format, bei dem fr jeden Layer der Platine eine Datei
erzeugt wird, die alle notwendigen Daten fr die Belichtung
und die Bohrungen enthalten.
Bild3. Interaktives Routing.

Doch bevor man diese Dateien exportiert, empfiehlt sich ein


Lauf des DRC via Outputs Reports DesignRuleCheck,
weil der Echtzeit-DRC whrend des Routings aus Geschwindigkeitsgrnden nur eine Teilmenge der Design-Regeln prft. Der
anschlieende Batch-Lauf beim Klick auf RunDesignRuleCheck
ist viel sorgfltiger. Nach der berprfung werden die Fehler
in einer HTML-Datei ausgegeben. Klickt man einen Fehler bei
den Messages an, wird die entsprechende Stelle auf der Platine
markiert und eine Fehlerbeschreibung erscheint.
Hat man eventuelle Fehler behoben, kann man die Gerber-Dateien via Output Fabrication Gerber exportieren. Jetzt
erscheint das Gerber-Setup-Fenster, in dem man die Einheiten,
die Przision und die zu konvertierenden Layer angeben kann.
Man kann hier auch die Bohrungen und deren Durchmesser
konfigurieren. CircuitMaker generiert als Standard Dateien im
RS274X-Format, bei dem diese Angaben in jeder Gerber-Datei zustzlich enthalten sind, statt sie in einer eigenen Datei
zu bndeln. Ein Klick auf Ok erzeugt alle Gerber-Dateien und
verpackt sie in einem ZIP-Archiv, das man dann sichern kann.
Was jetzt noch zu tun bleibt ist die Inspektion dieser Dateien
mit einem Gerber-Viewer.
Man kann mit Outputs Export Step auch STEP-Daten der
Platine generieren. Diese enthalten alle relevanten Bauteile-STEP-Daten der CircuitMaker-Library, weshalb man so mit
Hilfe eines MCAD-Programms zum Beispiel testen kann, ob
die Platine gut in ein bestimmtes Gehuse passt. Auerdem
kann man mit dem integrierten 3D-Viewer per View View
Switchto3D das Aussehen der Platine wie in Bild5 betrachten.

Bild4. Editor fr Design-Regeln.

Mehr CircuitMaker
Diese dreiteilige Serie zu CircuitMaker konnte natrlich nur die
Oberflche streifen. Sehr hilfreich ist die Dokumentation unter
[1] und dort speziell der Platinen-Kurs von [2], der sehr viel
mehr ins Detail geht. Die Lektre lohnt sich. Viel Erfolg mit
CircuitMaker!
(160017)

Advertorial

Bild5. Integrierte 3D-Ansicht von Platinen.

www.elektormagazine.de

Juli/August 2016

31

learn

design

share

Niederspannung,
EMV und R&TTE
Was gibts Neues?
Elektronische Gerte entwickeln
sich stets weiter. Sie sind, wie zum
Beispiel Gerte mit Fernbedienungen,
nicht nur miteinander verbunden,
sondern gleichzeitig auch Sender und
Empfnger von Daten - eine Tatsache,
die den Gesetzgeber permanent vor
neue Anforderungen stellt und ein
Grund, warum sich im Jahre 2016 die
Niederspannungsrichtlinie, die Richtlinie
zur elektromagnetischen Vertrglichkeit
EMV sowie die Richtlinie fr
Funkanlagen und TK-Endeinrichtungen
ndern.
Von Mariline Thiebaut-Brodier

EU Konformittsdeklaration
Zur Erinnerung: Wenn Sie Gter innerhalb des europischen Marktes verkaufen mchten, sind Sie fr die Prfung der
Konformitt der Produkte verantwortlich
und unter anderem auch einer Reihe von
Verpflichtungen unterworfen, zu der auch
die Anforderungen hinsichtlich der Rckverfolgbarkeit gehren ganz gleich, ob
Sie auerhalb der EU oder innerhalb eines
Mitgliedsstaates ansssig sind.
Vor dem Vertrieb eines Produktes muss
dessen Hersteller
1. eine Konformittsbewertung durchfhren oder durchfhren lassen und
das Produkt gegebenenfalls einer berprfung seitens Dritter berlassen. In
der Regel handelt es sich dabei um
eine sogenannte Notifizierte Stelle
(oder Benannte Stelle). Letztendlich
bernimmt der Hersteller die volle Verantwortung fr das Produkt.
2. eine technische Dokumentation
erstellen.

32

Juli/August 2016

www.elektormagazine.de

3. eine EU-Konformittsdeklaration zur


Verfgung stellen.
4. dafr sorgen, dass das Produkt mit
den entsprechenden Sicherheitshinweisen ausgeliefert wird, die in einer
fr den Konsumenten und fr weitere
Endverbraucher leicht verstndlichen
Sprache verfasst sind.
5. die technische Dokumentation und
die EU-Deklaration gem den Rckverfolgungsanforderungen fr 10
Jahre aufbewahren und eine Serienbzw. Typennummer auf dem Produkt
anbringen zusammen mit dem eingetragenen Warenzeichen und der
Firmenbezeichnung.
6. das Konformittszeichen anbringen (CE = Den Richtlinien der Europischen Gemeinschaft [Communaut
Europenne] entsprechend)
7. sicherstellen, dass die Serienproduktion konform bleibt.
8. gegebenenfalls die Zertifizierung des
Produktes und/oder des Qualittssystems selbst durchfhren.
Die EU-Konformittsdeklaration ist das
Dokument, das einem Produkt best-

tigt, den geltenden Erfordernissen einer


oder mehrerer europischen Richtlinien zu
gengen. Diese Richtlinien definieren die
grundlegenden Anforderungen hinsichtlich Sicherheit, Gesundheit und Umwelt.
Auch die Bewertungsverfahren werden
durch die Richtlinien definiert.
Auch wenn ein Produkt mehreren Richtlinien unterworfen ist, muss nur eine einzige Erklrung erstellt werden, die Teil
des Produktes ist. Die EU verffentlicht
regelmig eine Liste der anzuwendenden Normen, um den unterschiedlichen
Anforderungen der einzelnen Richtlinien
zu begegnen.
Die Bezeichnung CE fr die EU-Konformittserklrung wird brigens in einigen
europischen Lndern nicht mehr verwendet, da sie irrefhrend auch fr China
Export genutzt wird. In Frankreich wurde
sie zum Beispiel in UE umbenannt.
Das CE-Zeichen ist ein Indikator (aber
kein Beweis) dafr, dass sich ein Produkt mit der europischen Gesetzgebung
in Einklang befindet und innerhalb der
Grenzen des europischen Marktes frei

grundlagen

kurs

bewegt werden darf ganz gleich ob es


innerhalb des europischen Wirtschaftsraumes, in der Trkei oder in einem beliebigen anderen Land hergestellt wurde.
Nhere Informationen finden Sie im
Blauen Leitfaden unter dem Thema:
Umsetzung der EU-Produktregulierung
[1].

&

keit (EMV) und die Richtlinie fr Funkanlagen und TK-Endeinrichtungen (R&TTE)


sind fr elektronische Produkte gedacht.
Die unten stehende Tabelle gibt einen
berblick ber die wichtigsten nderungen seit Jahresbeginn. Die Niederspannungs- und EMV-Richtlinie wurden gendert. Die R&TTE-Richtlinie wurde revidiert
und in RED umbenannt.

Niederspannung
Die Niederspannungsrichtlinie, die Richtlinie zur elektromagnetischen Vertrglich-

Die genderte Niederspannungsrichtlinie enthlt einige Paragrafen, die nicht

tipps & tricks

software

ganz unproblematisch sind (wir fassen


den Wortlaut sinngem zusammen, die
Richtlinie kann man im Volltext unter [2]
abrufen):
(4) Die aktuelle Richtlinie bezieht sich
auf elektrisch betriebene Produkte
zur Anwendung innerhalb bestimmter
Spannungsgrenzwerte, die seit ihrer
Einfhrung neu auf dem EU-Markt
sind. Mit anderen Worten: Es handelt
sich entweder um ein Produkt mit

Richtlinie

Alte Richtlinie
Revidierte
Richtlinie

Niederspannung

Elektromagnetische
Vertrglichkeit (EMV)

Funk (R&TTE)

2006/95/CE

2004/108/CE

1999/5/CE (R&TTE)

annulliert 19.04.2016

annulliert 19.04.2016

gltig bis: 13.06.2016

2014/35/EU

2014/30/EU

2014/53/EU (RED)

Pflicht ab: 20.04.2016

Pflicht ab: 20.04.2016

Pflicht ab: 13.06.2016

Die EMV-Konformittsdeklaration wurde umbenannt, zum Beispiel in Frankreich von CE in UE.


Die Importeure mssen ihren Namen auf den Produkten bzw. der Verpackung angeben.
Die Verantwortlichkeiten bezglich der Vermarktung von Produkten (vor allem die Forderung der
Rckverfolgung und der berwachung) wurden fr die Hersteller, Importeure und Hndler przisiert und
weiter ausgebaut.
Wichtigste
nderungen

Telekommunikations-Endgerte
gehren nicht mehr zum
Anwendungsbereich der
RED-Richtlinie.
Rundfunk- und Fernsehgerte
werden in den Anwendungsbereich
der RED-Richtlinie aufgenommen.

Was wurde
nicht verndert

Folgen

CE-Zeichen
Anwendungsbereich und grundlegende Anforderungen an Gesundheit und Sicherheit

Da die EU-Konformittserklrungen der berarbeiteten Richtlinie


die CE-Konformittserklrungen ersetzen, mssen sie auch in allen
Lagern der Hersteller bei allen Produkten vor dem 20.04.2016
ersetzt werden.

Beide Richtlinien sind fr ein


Jahr lang fr Produkte gltig, die
unter die Richtlinie R&TTE fielen
und die weiterhin zur Richtlinie
RED gehren.
Seit dem 13.06.2016 muss auch
gelagertes Material den REDAnforderungen gengen.

Das bei einem Hndler oder Anwender gelagerte Material ist so zu betrachten, als wre es schon auf dem
Markt: Die revidierte Richtlinie gilt hier nicht.

bergangsperiode

Es gibt keinen bergangszeitraum, in welchem die alten und die


revidierten Richtlinien gleichzeitig anwendbar sind. Die Umstellung
fand am 20.04.2016 statt.

Es gibt eine bergangsperiode


whrend der die beiden
Richtlinien R&TT sowie RED
gleichzeitig angewendet werden
drfen. Diese bergangszeit
endet am 13.06.2017.

www.elektormagazine.de

Juli/August 2016

33

learn

design

neuen elektrischen Komponenten,


dessen Hersteller in der EU ansssig ist, oder um ein Produkt, das neu
oder gebraucht sein kann und aus
einem Drittland importiert wurde.
(5) Die vorliegende Richtlinie sollte
sich auf alle Arten von Lieferungen
beziehen, auch auf den globalen
Verkauf.
Die Unterscheidung zwischen neu und
gebraucht tauchte zuvor nicht auf auch
nichts, was den Versand eines Produkts
betrifft: Wenn Sie ein elektronisches
Gert kaufen, das vom anderen Ende dieses Planeten stammt, muss der Verkufer
eine EU-Konformittserklrung anbieten.
Das wird kompliziert werden.
(9) Der Hersteller ist auf Grund seiner detaillierten Kenntnisse bezglich
der Konzeption und des Verlaufs der
Produktion am besten geeignet, das
Bewertungsverfahren umzusetzen.
Die Konformittsbewertung sollte
daher auch weiterhin die ausschlieliche Verpflichtung des Herstellers
bleiben.
Diese Richtlinie sieht kein Bewertungsverfahren vor, das den Eingriff
einer notifizierten Stelle erfordert.
Die notifizierten Stellen (solch eine notifizierte Stelle [bzw. ein Labor] ist ein
Gremium, das nach gewnschten Vorgaben durch die ffentlichen Behrden
eines EU-Mitgliedsstaates dazu bestimmt
wurde, die Konformittsbewertungen von
Produkten durchzufhren) scheinen langsam aus der Liste der mglichen Institutionen, die Konformittsbewertungen
durchfhren knnen, zu verschwinden.
Ein Risiko besteht hier eindeutig beim
Vermarkten nicht konformer Produkte.
(18) Die relevanten, harmonisierten
Normen fr die existierende Richtlinie
sollten auch die die UN-Konventionen bezglich der Rechte Behinderter
beachten.
Im Anhang zur internen Fertigungskontrolle: Die technische Dokumen-

share
tation sollte eine Analyse
und eine entsprechende
Bewertung der Risiken
enthalten.
Das ist neu und macht die
Arbeit nicht gerade leichter.
Wird es wirklich gelingen,
dabei an alle Mglichkeiten
einer falschen Anwendung
zu denken ganz gleich, ob
Behinderte oder Nicht-Behinderte im Spiel sind?
Enden wir schlielich bei
einem Dokument, das an
einen Medikamenten-Beipackzettel mit seiner endlosen Liste unerwnschter
Nebeneffekte erinnert?

EU Declaration of Co

We

Company name:
Postal address:
Postcode and City:
Telephone number:
E-Mail address:
declare that the DoC

is issued under our

Apparatus model/P
roduct:
Type:
Batch:
Serial number:

of

The following harm

ibed

onised standards and

Title

[2] Richtlinien im Volltext: http://eur-lex.europa.eu/homepage.html?locale=de


In Suchmaske eingeben: 2014/35/EU bzw. 2014/30/EU bzw. 2014/53/EU.

www.elektormagazine.de

and belongs to the

following product:

in

technical specication
s have

been applied:

Artikel 6 Verpflichtungen der Hersteller


(8) Hersteller, die
a
4 digit notied body
Kenntnisse darnumber:
ber oder Grund zur
Annahme haben, dass
Signed for and on beha
lf of:
ein von ihnen auf den
Place of issue
Markt gebrachtes ProDate of issue
Name, function, signa
ture
dukt fr den Elektrobereich nicht der
aktuellen Richtlinie entspricht, unterEin Importeur muss zum Beispiel die
nehmen, wenn notwendig, unverzgtechnische Dokumentation eines Prolich die notwendigen Manahmen zur
duktes 10 Jahre lang aufbewahren, seiHerstellung der Konformitt oder zur
nen Namen und seine Adresse auf dem
Rcknahme bzw. zum Rckruf.
Produkt anbringen, sich vergewissern,
dass das Produkt mit einem Handbuch
Die Verantwortlichkeit der Hersteller
und den entsprechenden Sicherheits-Hinwurde erhht: Sie mssen nachweisen
weisen versehen ist und er muss mit
knnen, dass sie auf die vom Kundenden Behrden kooperieren. Auerdem
service aufgezeigten Probleme reagieren.
Der nachfolgende Artikel7 zeigt, dass
muss er kontrollieren, dass seine Prosie mit den Behrden zusammenarbeidukte vorschriftsmig gelagert sind und
ten mssen, um die Konformitt ihres
Lithium-Ionen-Akkus zum Beispiel nicht
Produktes zu belegen.
monatelang hinter groen Glasfenstern
In diesem Zusammenhang gibt es eine
aufbewahrt werden.
weitere, groe Neuigkeit: Die Importeure
Schlielich gibt es auch einige Produkte,
und ganz allgemein alle im Handel ttidie nicht unter die Niederspannungsrichtgen Personen (Hndler, Bevollmchtigter)
linie fallen. Dazu zhlen in erster Linie die
unterliegen denselben Verpflichtungen
sogenannten Evaluation-Kits zum auswie der Hersteller, wenn es um die Konschlielichen Einsatz in Forschungs- und
formitt geht. Auch wenn dies schlssig
Entwicklungseinrichtungen.
klingt, war dies in der vorhergehenden
(160094)
Version der Richtlinie nicht klar definiert.

[1] Blue Guide (Blauer Leitfaden), http://ec.europa.eu/DocsRoom/documents/16210?locale=de

Juli/August 2016

sole responsibility

Object of the declarati


on (identication of
apparatus allowing
sucient clarity whe
traceability; it may
re necessary for the
include a colour imag
identication of the
e of
apparatus):

Links:

34

nformity (DoC)

LEARN

DESIGN

SHARE

lektor PCB Service


Powered by

Platinen Prototypen Multilayer Kleinserien


Kostengnstig!

Top-Qualitt!

Zuverlssig!

PCB proto:
Ideal fr Privatleute, die schnell und gnstig maximal 2 Leiterplatten nach vordefinierten Spezifikationen
bentigen.

STANDARD pool:
Diese Option ist fr Firmen konzipiert, die ihre Kleinserie nach den am hufigsten verwendeten Spezifikationen
produzieren lassen wollen.

RF pool:
Wenn Ihre Entwicklung sehr anspruchsvolle Spezifikationen erfordert, ist 100-m-Technologie die beste Wahl.

IMS pool:
Bei dieser Option werden Aluminiumkern-Leiterplatten verwendet, um eine hohe Wrmeabfuhr zu gewhrleisten.

Bestellen Sie Ihre Platinen jetzt unter:

www.elektorPCBservice.de

learn

design

share

Assembler
Crashkurs 2.2
Indirekte
Adressierung
In der letzten Folge unserer zweiten Assembler-Crashkurs-Serie haben wir die Ansteuerung eines LEDDisplays im Multiplexverfahren behandelt. Dank eines modernen Mikrocontrollers mit fortgeschrittenen
Adressierungsarten vereinfacht sich dabei die Programmierung. In dieser zweiten Folge werden wir
zustzlich die indirekte Adressierung kennenlernen.
Von Miroslav Cina

miroslav.cina@t-online.de

Die modernere PIC-Mikrocontroller-Familie PIC1xF18xx bietet mit der indirekten Adressierung ein Feature, das sich sehr
gut nutzen lsst. Groer Vorteil ist, dass man so vllig linear
auf Speicher zugreifen kann und die zum Teil umstndliche
Behandlung segmentierter Blcke umgangen wird. Damit sind
diese Mikrocontroller hnlich einfach zu handhaben, wie es
bei richtigen 8-bit-Mikroprozessoren wie etwa dem in den
1980ern populren Z80 mglich war.

Register INDFx
In der letzten Folge wurde die direkte Adressierung mit Hilfe
des Registers BSR beschrieben. Alle Mikrocontroller der
PIC1xF18xx-Serie beinhalten mit INDF0 und INDF1 zwei wei-

Bild1. Speicherorganisation von Mikrocontrollern der Serie PIC12F18xx.

36

Juli/August 2016

www.elektormagazine.de

tere Spezial-Register, mit denen linear auf den Arbeitsspeicher


zugegriffen werden kann. Noch besser: Man erhlt so auch
einen linearen Zugriff auf den Programmspeicher. Bei dieser
Zugriffsmethode wird der Gesamtspeicher aus RAM und Flash
(aber nicht EEPROM!) des Mikrocontrollers als ein einziger
Speicherblock mit 64KB dargestellt.
Fr einen Adressraum von 64KB sind Adressen mit 16bit
erforderlich. Solche Adressen sind in den Registerpaaren FSR0
(FSR0H | FSR0L) und FSR1 (FSR1H | FSR1L) enthalten. Diese
Register-Paare wurden schon als Bestandteil der Core-Register
beleuchtet. Was jetzt noch fr die indirekte Adressierung ntig
ist, sind zwei weitere Assembler-Befehle. Bei der Beschreibung
wird dann auch klar, zu welchen Zwecken sich die Register
INDF0 und INDF1 eignen.
Das RAM befindet sich gleich zweifach im 64-KB-Adressraum.
Zunchst liegt es im Bereich 0000h bis 0FFFh als herkmmlicher Arbeitsspeicher. Der Zugriff auf diese Adressen mittels
FSRx entspricht weitgehend der direkten Adressierung via
BSR. Das RAM ist dann nochmals im Adressbereich 2000h bis
29AFh verfgbar hier aber linear. Dies ist dann relevant, wenn
man beispielsweise elegant auf ein Datenfeld bzw. eine Tabelle
zugreifen mchte. Doch warum endet der Adressbereich bei
29AF und nicht bei 2FFF? In diesem Speicherbereich werden
die Blcke zu je 80Byte aus den einzelnen Speicherbnken
gespiegelt. Die Bank0 mit dem Adressbereich 020h bis 06Fh
findet man hier im Bereich 2000h bis 204Fh, Bank1 entsprechend bei 2050h bis 20AFh usw. Die letzte gespiegelte Bank
(Bank30) endet daher bei der Adresse 29AFh.
Der Zugriff auf den Flash-Programmspeicher erfolgt ber die
Adressen 8000h bis FFFFh. Es ist evident, dass nicht alle Speicherpltze tatschlich belegt sind. Zum Beispiel stecken die
8KWords Flash des PIC16F1829 im Bereich 8000h bis 9FFFh.
Die lediglich 2KWords des PIC12F1822 hingegen passen in
den Bereich 8000h bis 87FFh. Der nicht genutzte Rest ist zwar
adressierbar, doch macht dies keinen Sinn.

grundlagen

kurs

Typisch fr diese PIC-Mikrocontroller sind 8bit breite RAM-Zellen, doch der Programmspeicher ist in 14-bit-Worten organisiert. Die Frage ist nun, wie diese 14-bit-Worte in den Adressbereich gepackt wurden. Die Lsung ist verblffend einfach:
Man kann direkt nur auf das Byte mit den acht LSBs (Least
Significant Bits) zugreifen. Vor der Beschreibung des Zugriffs
mit dem Befehl MOVIW empfiehlt sich zunchst ein Blick auf
die Speicherorganisation von Bild1. Hier ist zu sehen, dass
der Programmspeicher eine Breite von 14bit hat. Auf dessen
hherwertige sechs Bits hat man keinen Zugriff, weswegen
dieser Bereich grau dargestellt ist. Der Befehl MOVIW kopiert
den Inhalt der Speicherzelle der im Registerpaar FSR0 stehenden Adresse in das W-Register. Dabei werden lediglich die
acht niederwertigen Bits kopiert.

&

tipps & tricks

software

Tabelle 1.
Syntax

Bedeutung

moviw ++FSRn

Preincrement
Inkrementierung vor Lesezugriff

moviw --FSRn

Predecrement
Dekrementierung vor Lesezugriff

moviw FSRn++

Postincrement
Inkrementierung nach Lesezugriff

moviw FSRn--

Postdecrement
Dekrementierung nach Lesezugriff

MOVIW
Der Befehl dient prinzipiell zum Transport des Inhalts von Register INDFn in das W-Register (MOVe Indfn to W). INDFn kann
entweder INDF0 oder INDF1 sein. Und jetzt der Trick: Das
Register INDFn existiert nicht. Beim Zugriff auf INDF0 wird
immer auf die Speicherposition mit der in FSR0 enthaltenen
Adresse zugegriffen (bei INDF1 gilt entsprechend die Adresse
von FSR1).
Es gibt zwei Verwendungsvarianten: Bei einer Variante wird
auch der Pointer angepasst (inkrementiert oder dekrementiert)
und bei der anderen nicht. Hier geht es um die erste Variante,
da sie oft bei Zugriffen auf Datenfelder verwendet wird.
Fr die erste Variante gibt es noch die vier Subtypen nach
Tabelle1, die sich darin unterscheiden, ob der Pointer vor
oder nach dem Zugriff gendert und ob er inkrementiert oder
dekrementiert wird. Auerdem kann n die Werte 0 oder
1 (Verwendung von Register FSR0 oder FSR1) haben.
Auer dem beschriebenen Befehl MOVIW gibt es mit MOVWI
auch dessen Gegenteil: Mit diesem Befehl wird der Inhalt des
W-Registers in die jeweils adressierte Speicherzelle geschrieben. Das funktioniert natrlich nur in dem Bereich, in dem sich
RAM befindet. Wenn man den Inhalt des Flash-Speichers ndern
will, so bentigt man andere Techniken. Dies sollte auerdem
mit Vorsicht genossen werden, da sich selbst modifizierender
Code so seine Tcken hat.

Programmspeicher anzeigen
Da mit dem LED-Display aus der letzten Folge schon eine Hardware zur Anzeige von Werten zur Verfgung steht, wird sie nun
dazu benutzt, nach und nach den Inhalt des Flash-Speichers
ab der Adresse 1000h anzuzeigen. Dazu muss lediglich das
Hauptprogramm der Software des Mikrocontrollers gendert
werden. Ansonsten wird der Display-Treiber aus der letzten
Folge leicht modifiziert weiterverwendet. In der Hauptroutine
steckt diesmal kein Zhler, sondern der Code zum Auslesen
der Daten des Programmspeichers.
Das Prinzip: In einer Schleife werden Daten aus dem ProListing 1.
;------------------------;old decimal character set
;------------------------wm_char_set brw

Bild2. Anzeige eines Bytes in hexadezimaler Form auf dem LED-Display


von Folge1.

grammspeicher gelesen und auf dem Display angezeigt. Das


Programm liest hierzu byteweise Daten ab der Adresse 1000h.
Jedes gelesene Byte wird fr eine kurze Zeit angezeigt, und
dann ist das nchste an der Reihe. Die Schleife wird beendet,
wenn der Wert FFh aus dem Speicher gelesen wurde. Alles
beginnt dann wieder neu mit der Adresse 1000h.
Da es sich hierbei um Bytes handelt, bentigt man zur Darstellung nicht nur normale numerische, sondern hexadezimale
Zeichen. Die Anzeige eines Bytes im Hex-Format bentigt auf
dem Display lediglich zwei Stellen. Genutzt werden hierfr
die beiden linken Display-Stellen LD0 und LD1. LD2 bleibt
leer und auf der vierten Position LD3 steht dauerhaft ein h.
Der dezimale Wert 122 wird dann wie in Bild2 zu sehen als
7Ah angezeigt

nderung am Display-Treiber
Wie schon erwhnt, muss das Display nun hexadezimale Zeichen
darstellen knnen. Anders als beim Code von Folge1 gengt
es nicht mehr, nur die Ziffern 0... 9 und das Zeichen -
darzustellen. Jetzt sind auch noch die Buchstaben A... F,
das Leerzeichen und das kleine h erforderlich. Das erfordert
nderungen am Display-Treiber. Damit kann man dann alle
dezimalen Werte von 0 bis 255 hbsch hexadezimal darstellen.
Der Zeichensatzgenerator in der Routine wm_char_set muss
also etwas wachsen. Der Unterschied zwischen der alten dezimalen Version von Listing1 zur neuen hexadezimalen Version
in Listing2 hlt sich allerdings in Grenzen. Dieses Beispiel zeigt
zudem, wie einfach es ist, den Display-Treiber zu erweitern,
falls dies erforderlich ist. Ein Zeichen wird in einer Assembler-Zeile definiert. Damit sind alle erforderlichen nderungen
an der Anzeige selbst schon erledigt.

retlw B'00111111' ;00h


retlw B'00000110' ;01h
retlw B'01011011' ;02h
retlw B'01001111' ;03h
retlw B'01100110' ;04h
retlw B'01101101' ;05h

->
->
->
->
->
->

0
1
2
3
4
5

retlw B'01111101' ;06h


retlw B'00100111' ;07h
retlw B'01111111' ;08h
retlw B'01101111' ;09h
retlw B'01000000' ;0Ah

www.elektormagazine.de

->
->
->
->
->

6
7
8
9
minus

Juli/August 2016

37

learn

design

share

Hauptprogramm
Jetzt geht es weiter mit dem Hauptprogramm, das aus den
folgenden drei Teilen besteht:
Auslesen der Daten aus dem Flash-Speicher mit Subroutine f_get_data.
Konvertierung der Bytes in zweistelliges Hex-Format mit
Subroutine calc_hex_disp.
Struktur der endlosen Hauptschleife.
Flash auslesen
In diesem Programmteil wird der Einsatz der indirekten Adressierung demonstriert. Die komplette Konstanten-Deklaration als
Daten fr den Flash-Speicher und der zugehrige Lesezugriff
kann sehr einfach implementiert werden, wie Listing3 zeigt.
Die auszulesenden Daten sollen im Programmspeicher ab
Adresse 1000h abgelegt werden. Dies wird mit der Direktive
ORG1000 erzwungen (siehe step3). Auerdem wird der
Anfang der Daten als c_data1 gekennzeichnet. Prinzipiell
knnte man auch andere Speicherbereiche verwenden. Dabei
gibt es zwei Einschrnkungen: Der Speicherbereich muss sich
beim verwendeten Mikrocontroller auf physikalisch vorhandenen
Flash-Speicher beziehen, und die Deklaration darf nicht aus
Versehen mit dem eigentlichen Programm-Code kollidieren.
Der hier verwendete Mikrocontroller PIC16F1829 hat 8KWords
Programmspeicher, weshalb die hchstmgliche Speicherzelle
die Adresse 1FFFh hat. Falls man also fehlerhafterweise die
Adresse 2000h verwendet, wird auf Adresse 0000h zugegriffen, was nicht klug ist.
Deklariert man den Speicherbereich fr die Daten mit der
ORG-Direktive auf eine zu niedrige Adresse, gibt es beim
Assemblerlauf Fehlermeldungen. Diese hngen davon ab, wo
man im Programmspeicher landet. Fr jedes regelwidrig berschriebene Byte hagelt es gleich zwei Fehlermeldungen, wie
das folgende Beispiel zeigt:

Listing 2.
;----------------------------;new hexadecimal character set
;----------------------------wm_char_set brw
retlw B'00111111' ;00h -> 0
retlw B'00000110' ;01h -> 1
retlw B'01011011' ;02h -> 2

Listing 3.
;--------------------;declare and read data
;--------------------;step 1
f_get_add clrf BSR
movlw LOW c_data1
movwf FSR1L
movlw HIGH c_data1
movwf FSR1H
return

38

Juli/August 2016

www.elektormagazine.de

Error[118]
C:\...\05_TEST.ASM
Overwriting previous address
Error[118]
C:\...\05_TEST.ASM
Overwriting previous address

339 :
contents (0051)
339 :
contents (0051)

Warum gleich zwei Meldungen pro Byte? Weil der Programmspeicher Worte zu 14bit enthlt. Folglich ist also eine Deklaration HAB identisch mit H00AB. Eine solche Deklaration
berschreibt also eigentlich gleich zwei Bytes deswegen zwei
Meldungen. Der erste Teil des Worts kann nur Werte von 00h
bis 3Fh haben. Da man aber auf die ersten sechs Bits mit dieser Methode sowieso nicht zugreifen kann, kann man hier die
Deklaration auch gleich in Kurzform vornehmen.
Man htte die Direktive ORG1000 auch komplett weglassen
knnen, doch dann wren die Daten gleich nach der Subroutine
f_get_data im Flashspeicher abgelegt worden. Gelegentlich ist
es aber wichtig, den exakten Speicherort zu kennen, denn ohne
ORG-Direktive ndert sich die Position sonst ja mit dem Code.
Die Routine f_get_data (step2) liest ein Byte aus dem
Flash-Speicher und bentigt hierfr nur vier Zeilen Code. Wie
zuvor beschrieben kopiert der Befehl MOVIW den Wert in das
W-Register. Anschlieend wird der Wert noch in die Puffer-Variable v_value fr eine sptere Verwendung gesichert, und
das wars auch schon. Da hier die Postincrement-Variante des
Befehls zum Einsatz kommt, wird der zugehrige Pointer nach
dem Lesen inkrementiert. Beim nchsten Aufruf der Subroutine
wird daher automatisch das nchste Byte ausgelesen.
Noch ein Wort zur Initialisierung der Pointer in diesem Fall
zum Registerpaar FSR1: Um die Daten von der richtigen Stelle
zu lesen, muss hier die jeweilige Adresse stehen. Dies erledigt
die Subroutine f_get_add (step1). Dabei wird die Adresse mit
den Direktiven LOW und HIGH aufgeteilt und in die passenden Registerhlften geschrieben. Die Zeile
movlw

retlw B'01001111' ;03h


retlw B'01100110' ;04h
retlw B'01101101' ;05h
retlw B'01111101' ;06h
retlw B'00100111' ;07h
retlw B'01111111' ;08h
retlw B'01101111' ;09h
retlw B'01110111' ;0Ah

LOW c_data1

->
->
->
->
->
->
->
->

3
4
5
6
7
8
9
A

retlw B'01111100' ;0Bh


retlw B'00111001' ;0Ch
retlw B'01011110' ;0Dh
retlw B'01111001' ;0Eh
retlw B'01110001' ;0Fh
retlw B'01000000' ;10h
retlw B'00000000' ;11h
retlw B'01110100' ;12h

;
;step 2
f_get_data clrf BSR
moviw FSR1++
movwf v_value
return
;
;step 3
ORG 1000
c_data1 da H'01', H'02', H'03', H'04'
da H'AB', H'CD', H'EF'
da H'FF'

->
->
->
->
->
->
->
->

b
C
d
E
F
minus
space
h

grundlagen

kurs

kopiert zunchst das niederwertige Byte der Adresse von c_


data1 in das W-Register hier also der Wert 00h (von 1000h).
Anschlieend kopiert die Zeile
movlw

HIGH c_data1

&

tipps & tricks

software

register f

Bild3. Die Vorgnge beim Bit-Shifting durch den Assembler-Befehl LSRF.

das hherwertige Byte 10h (von 1000h) in das W-Register.


Eigentlich ist das nicht ganz richtig, denn aufgrund der indirekten Adressierung ist der Flash-Speicher ja erst ab Adresse
8000h zu finden. Der Speicherplatz 0000h befindet sich deswegen im FSR-Adressraum auf Adresse 8000h. Das Datum von
c_data1 ist also an der Adresse 9000h zu finden. Deswegen
landet bei der vorigen Code-Zeile der Wert 90h im W-Register
und nicht 10h.
1 Byte in 2 Nibbles
Diese Routine hat zwar nichts mit der indirekten Adressierung
zu tun, ist aber notwendig, wenn man ein Byte hexadezimal
ausgeben mchte. Zum besseren Verstndnis wird zunchst
mit LSRF (Logical Shift Right) ein neuer Befehl beschrieben.
Der Befehl gehrt in die Kategorie Byte-Oriented File Register Operations und schiebt einfach alle Bits im Register nach
rechts. Die Syntax ist:

Bild4. Beim Bit-Shifting mit LSRF wird der Inhalt nach rechts verschoben.
Das vorherige LSB landet im Status-Register und links wird mit einer 0
als MSB aufgefllt.

lsrf f

wobei f das behandelte Register ist. Das Bit ganz rechts bzw.
das sogenannte LSB landet im Orkus, der hier durch das CarryBit des Status-Registers reprsentiert wird, denn hier wird es
aufgehoben. Ganz links kommt eine binre 0 als MSB (Most
Significant Bit) ins Register. Bild3 veranschaulicht das Geschehen. Steckt im F-Register zunchst der Wert 7Ah, ndert sich
dieser durch die Anwendung von LSRF in 3Dh (siehe Bild4).
Der Vollstndigkeit halber sei erwhnt, dass es mit LSLF einen
Befehl mit entgegengesetzter Wirkung gibt.
Der Code zur Aufteilung eines Bytes in seine hherwertigen und
niederwertigen vier Bits (4bit = 1Nibble = 1Halbbyte) steht
in Listing4. Zunchst wird das gelesene Byte ins W-Register
kopiert (step1) und dank AND-Befehl mit 1111b werden die
vier MSBs auf 0000b gesetzt. Das Resultat wird in Variable
v_lsb geschrieben. Dann wird das Byte nochmals ins W-Register kopiert (step2) und mit der vierfachen Anwendung des
Shift-Befehls LSRF werden die vier LSBs entfernt. Die daraus
folgenden vier LSBs enthalten dann den Wert der vier vorigen
MSBs. Bild5 veranschaulicht das Verhalten dieses Codestcks.
Die beiden Variablen v_lsb und v_msb enthalten anschlieend
die Werte, die direkt fr die Anzeige des Bytes in hexadezimaler Form verwendet werden knnen.

Ausblick
Mit dem Auslesen eines Bytes und der Aufbereitung seiner hexadezimalen Anzeige ist nun die zweite Folge der zweiten Serie
des Assembler-Crashkurses zu Ende. Der komplette Code steht
auf der Webseite zu diesem Artikel[1] zum Download bereit.
In der nchsten Folge wird es um die serielle Kommunikation
via I2C bzw. SPI gehen, der bei Mikrocontrollern und ihren Peripherie-Chips besondere Bedeutung gleichkommt. Anschlieend
wird demonstriert, wie man ber eine solche serielle Schnittstelle sehr einfach einen Port-Expander ansteuern kann. Darber hinaus geht es noch um den Einsatz des LED-Displays als

Bild5. Byte-Split in zwei Nibbles, die dann hexadezimal angezeigt werden.

Uhr oder U/I-Messgert, wozu jeweils ein externer Chip und


etwas Firmware erforderlich ist.
Fr Fragen zum Code und diesem Beispiel stehe ich Ihnen
ber meine E-Mail-Adresse miroslav.cina@t-online.de gerne
zur Verfgung.
(160018)

Weblinks
[1] Download: www.elektormagazine.de/160018

Listing 4.
;----------------;byte in 2 nibbles
;----------------;step 1
calc_hex_disp
movf v_value,0
andlw B'00001111'
movwf v_lsb

;step 2
movf v_value,0
movwf v_msb
lsrf v_msb,1
lsrf v_msb,1
lsrf v_msb,1
lsrf v_msb,1
return

www.elektormagazine.de

Juli/August 2016

39

Wir sind auf der Suche nach den innovativsten Ideen, Projekten und Start-ups weltweit!
Der electronica fast forward Start-up Award powered by Elektor verbindet erstmalig den weltweiten Elektronikmarkt, innovative Technologien sowie eine internationale Medienprsenz und ist damit Garant,
dass Ihre Start-up-Idee in den richtigen Kpfen das Meiste bewirkt.
Start-ups und kreative Entwickler aus der ganzen Welt sind aufgerufen, sich bis zum 15. Juli 2016 ber die Webseite www.elektor.com/
electronica-startup-award mit ihrer Idee zu bewerben.
Eine Jury, bestehend aus Redakteuren des Magazins Elektor und Ingenieuren des Elektor-Labors, wird Ihre Einsendung sichten und bewerten. Die besten Ideen, Projekte und Start-ups drfen sich auf der
electronica 2016 die Weltleitmesse fr Komponenten, Systeme und
Anwendungen der Elektronik in Mnchen prsentieren und final
messen.
Als Teilnehmer in einer der Award-Kategorien Idee, Prototyp und
Start-up haben Sie die einmalige Mglichkeit, Teil der electronica
fast forward Start-up Platform powered by Elektor zu sein und so
weltweite Kontakte zu knpfen.
Profitieren Sie auf der electronica von persnlicher Beratung, Kontaktvermittlung und einer Vielzahl von Messe-Events. Wir nehmen uns
Ihrer Start-up-Idee an und beraten Sie auf der Messe zu Business-Plnen. Wir ermglichen Ihnen die Prsentation Ihrer kreativen Idee vor

Intelligentes IoTGateway-Starter-Kit
Von ADLINK gibt es jetzt mit dem
XE-202i eine echtzeitfhige M2M-Automatisierungslsung auf der Basis von
Intels IoT-Gateway-Technologie und der
DDS (Data Distribution Services) von
Vortex. Motion-Tracking triggert einen
an MXE-202i angeschlossenen Bewegungssensor, wodurch dann die via DDS
an die Robotik verteilten Daten bernommen werden um die entsprechenden Arme zu aktivieren. Die MXE-200iSerie ist ein intelligentes und robustes
Embedded-System, das die Anwendungs-Entwicklung und einen einfachen Service in der Industrie-Automation untersttzt. Die intelligente Platt-

40

Juli/August 2016

www.elektormagazine.de

internationalen, strategischen Partnern und zuknftigen Kunden.


Unter den Finalisten auf der Messe wird eine internationale Jury drei
Gewinner aussuchen. Seien Sie einer dieser drei Gewinner des electronica fast forward Start-up Awards, der im Rahmen der electronica
am 11. November 2016 verliehen wird. Prmiert werden die Gewinner
mit internationaler PR, Consulting und Marketing im Gesamtwert von
150.000 Euro sowie einem nachhaltigen Zugang zum internationalen
Elektor-Netzwerk mit ber 250.000 Mitgliedern weltweit.
Der Gesamt-Sieger wird mit einer internationalen Elektor
Cross-Over-Marketing-Kampagne im Wert von 75.000 sowie einem
Messestand auf der electronica 2018 ausgezeichnet, Platz 2 erhlt
eine Elektor Media-Kampagne im Wert von 50.000 und der Drittplatzierte darf sich ber eine Elektor Medienprsenz im Wert von 25.000
freuen.
Neugierig? Weitere Informationen zu den Teilnahmebedingungen und
den Bewerbungsunterlagen finden Sie unter

www.elektor.com/electronica-startup-award

form zur Datenverteilung von Vortex


ermglicht eine einfache Distribution
der Daten zwischen Gerten an sich
sowie zwischen Gerten und der Cloud.
Das zugehrige IoT-Gateway-Starter-Kit dient als komplette Lsung
zur Verkrzung von Entwicklungszeiten und der schnellen Anwendung in
jeder Anwendungsumgebung. Das
Starter-Kit enthlt das intelligente
IoT-Gateway MXE-202i, EdgePro fr
das IoT-Device- und Sensor-Management, einen Licht-Sensor, einen Sirenen-Ausgang, ein Modbus-TCP-Modul
sowie Zubehr. Das IoT-Gateway-Starter-Kit und EdgePro erlauben die einfache Konfiguration mit einem benutzerfreundlichen Interface und Dashboard.
www.adlinktech.com

ADVERTORIAL

Advertorial
Die Rubrik ElektorBusiness in Elektor ist der Ort fr Artikel, Neuigkeiten und andere
Beitrge von Firmen und Institutionen, die im Bereich Elektronik ttig sind.
Redaktion ElektorBusiness: Jan Buiting
Beitrge nimmt er gerne entgegen unter newsdesk@elektor.com.

Wie die Mailbox von Prinz Philip gehackt wurde


Unterlagen zu einem Hack, der in die Rechtsgeschichte in Grobritannien einging, wurden
jetzt von Robert Schifreen, einem sogenannten white hat im Zentrum der Kontroverse
der 1980er Jahre, dem TNMOC (The National
Museum of Computing) bergeben.
Das Archiv enthlt die Geschichte von Schifreens
zwei Jahre dauerndem Leidensweg, der seinem
Hack von Prestel, dem Online-System der British Telecom aus der Pr-Internet-ra, folgte. Er
demonstrierte damals die Mglichkeiten, Zugriff
auf die Prestel-Mailbox von Prinz Philip zu erlangen. Zu dieser Zeit gab es noch keine Gesetze,
die das Hacken betrafen. Das Archiv enthlt die
Details der Folgen dieses Tests, der ber drei
Gerichte schlielich 1987 zum Freispruch durch
das House of Lords fhrte.
Ebenfalls enthalten ist das Hacker-PasswortBuch von Schifreen aus den 1980ern sowie
Transkripte seiner Verhre durch die Polizei,

juristischer Schriftwechsel, Akten und etliches


Pressematerial. Mit diesem Archiv erlutert
Robert Schifreen fr TNMOC-Interessierte den
Kontext der 1980er-Hacks. Im Jahre 1985 gab
es ja noch kein Internet und selbst die damals
so genannten Heim-Computer waren noch am
Anfang. Es gab die ersten ffentlichen OnlineDienste, doch noch kein Bewusstsein bezglich
Computer-Sicherheit und auch kein Gesetz,
welches explizit das Hacken unter Strafe gestellt
htte. Schifreen war damals erst 22 Jahre alt
und Teil einer talentierten Hacker-Gruppe, die
Benutzernamen und Passwrter aus Datenbanken klaubte, die nicht fr die ffentlichkeit
bestimmt waren. Er erklrte: Hacker haben
damals nie vor 18:00 Uhr losgelegt, denn tagsber waren die Whlverbindungen fr die verwendeten Modems einfach zu teuer. Auerdem
war 18:00 Uhr ein guter Start, da um diese
Zeit die Sicherheits-Crew von Prestel schon

nach Hause gegangen war. Die automatischen


Meldungen, dass es gerade drei erfolglose Versuche gegeben hatte, sich bei Prestel einzuloggen, blieben also ohne Folgen. Ich habe die Meldungen aber gelesen und dann gelscht, um
meine Spuren vor dem Auftauchen des Sicherheits-Teams am nchsten Morgen zu verbergen.
Ich hatte effektiv die Rechte eines System-Managers von Prestel. Mir gelang sogar der Zugriff
auf die Mailbox von Prinz Philip und es war mir
auch mglich sie zu ffnen.
www.tnmoc.org

5A aus nur 2mm hohem Power-Modul


Mit den Abmessungen von 10x 6x 2mm ist das Gehuse von Microchips neuem Schaltregler MIC45404 besonders platzsparend. Es bietet
eine point-of-load-Wandlung fr Anwendungen in der Telekommunikation, der Industrie und SSDs.
Das thermisch optimierte Gehuse enthlt einen Controller, MOSFETs, Feedback und einen PWM-Schaltregler. In diesem Modul ist eine
besonders dnne Spule sowie Bootstrap- plus HF-Eingangs-Kondensator auf einem thermisch optimierten Trger montiert. Dadurch wer-

den strende EMI und externe Bauteile


vermieden, was das Layout der Platine
erleichtert. Mit dem Evaluations-Kit
MIC45404YMP-EV kann ein DC/
DC-Konverter realisiert werden.
www.microchip.com/EUMIC45404

Dreikanal PMIC fr Low-Power-FPGAs und -SoCs


Beim XR77103 handelt es sich um ein universelles PMIC (Power
Management IC) mit drei integrierten synchronen MOSFET-Leistungsstufen. Trotz des nur
4 x 4mm groen ICs stellt es eine einfach
anzuwendende Power-Management-Lsung
fr viele FPGAs, SoCs, DSPs und Video-Prozessoren dar. Das PMIC XR77103 verfgt
ber ein I2C-Interface zur Steuerung der Ausgangsspannung
(0,8 bis 6V), der Schaltfrequenz
(0,3 bis 2,2MHz), des Power-Sequencing und der Strombegrenzung. Es untersttzt eine neue Ver-

ADVERTORIAL

sion der Design- und Konfigurations-Software PowerArchitect4.


Das XR77103 arbeitet mit Versorgungsspannungen von 4,5 bis 14V.
Alle drei Ausgnge sind fr einen Laststrom von 2A mit Spitzenwerten bis zu 3A ausgelegt. Da der Chip ber eine Strom-Steuerungsarchitektur verfgt, knnen mehrere davon einfach parallel fr Ausgangsstrme bis 5A geschaltet werden, wodurch man damit Low-Power-Prozessoren versorgen kann. Ein schaltbarer PSM (Pulse Skipping
Mode) ermglicht einen erhhten Wirkungsgrad bei geringer Last, was
fr effektives Standby-Management und eine mglichst groe Batterielaufzeit unerlsslich ist. Die Typen XR77103ELB, XR77103ELB-A0R5
und XR77103ELB-A1R0 sind im platzsparenden 4x4-QFN-Gehuse (RoHS
compliant und Halogen-frei) erhltlich.
www.exar.com/products/power-management/universal-pmics

www.elektormagazine.de

Juli/August 2016

41

ElektorBusiness Report

Futuristischfantastische Akkus
Geladen in Sekunden
Energie fr Monate

Aus allen Universitten drngen sie und aus allen


Forschungseinrichtungen kommen sie: neuartige
Akkukonzepte. Technologiefirmen und Autohersteller
pumpen aktuell sehr viel Geld in die Entwicklung neuer
Akkutypen. Dennoch steckt leider noch nichts Neues in unseren
Mobilgerten und die Welt wartet noch immer auf den groen Wurf
zum Ersatz bekannter Lithium-Technik.
Zusammenstellung von Jan Buiting

Trotz all der Unsicherheiten: Der Wunderakku der Zukunft knnte schneller kommen, als man vermuten wrde.
Viele der in diesem Artikel vorgestellten
Technologien htten das Zeug dazu, und

auerdem blht uns sicher auch noch die


eine oder andere berraschung. Daher
immer schn das MIT und die Fraunhofer Gesellschaft im Auge behalten! Zwar
haben einige der hier beschriebenen Kon-

zepte durchaus etwas (Science-)Fiktionales, doch wurden manche davon schon


in Beitrgen von Elektors wchentlichem
E-Zine vorgestellt.

Oberko: Bioo Akkulader rein pflanzlich


Bioo existiert tatschlich und kann sogar schon gekauft werden [1].
Im Prinzip ist das ein Blumentopf, der Tablets oder Smartphones per
Fotosynthese laden kann (siehe Bild1). Bioo kann im Laufe eines Tages
bis zu drei Ladungen produzieren und liefert 3,5V bei 0,5A durch einen
als Stein getarnten USB-Lader.
Der Topf nutzt organisches Material der Fotosynthese betreibenden
Pflanze, das mit Wasser reagiert. Utopische Plne gehen sogar soweit,
dass Bioo-Wlder ganze Stdte zu 100% mit grner Energie beliefern
und so den besten Grund darstellen, Pflanzen und Wlder zu schtzen.
Bild1. Bioo: Strom aus Fotosynthese.

Goldig: Nanowire-Akkus
Entwickelt von der University of California @ Irvine knnen Nanowire-Akkus extrem viele Ladezyklen berstehen. Eigentlich
wurde hier der ewige Akku entwickelt.
Tausendmal dnner als ein menschliches Haar haben diese Nanodrhte wohl ein groes Potential fr die Akkus der Zukunft. Ein
Problem war, dass sie beim Entladen kaputtgehen, doch Drhtchen aus Gold in einem gelfrmigen Elektrolyten verhindern das
jetzt. Prototypen wurden in drei Monaten schon ber 200.000 Mal geladen und zeigten auch dann noch keine Erschpfung. Das
sieht nicht nur perfekt fr Elektroautos aus, sondern auch Smartphones brauchen damit nie mehr wieder neue Akkus.

42

Juli/August 2016

www.elektormagazine.de

Leicht: Brennstoffzellen fr Handys & Drohnen


Leichtgewichte von Brennstoffzellen knnten dazu fhren, dass man sein Smartphone
nur noch einmal pro Woche betanken muss. Drohnen wrden damit ber eine
Stunde in der Luft bleiben (siehe Bild2). Porser, rostfreier Stahl mit DnnfilmElektrolyt und Elektroden mit kleiner Wrmekapazitt sind die Zutaten. Das Ergebnis
ist ein Akku-Ersatz, der lnger hlt als alles aus Lithium. Demnchst wird es neue
Modelle fr Smartphones, Drohnen und vielleicht sogar Elektroautos geben, und dank
der Forschungsanstrengungen in Sdkorea werden wir diese Technik demnchst wohl
in einem Samsung Galaxy S8 entdecken.
Bild2. Drohne mit Brennstoffzellen-Versorgung (BBC).

Lasergefertigt: Mikrosupercaps

Aus der Rice University kommt eine Meldung ber einen Durchbruch in Sachen
sehr kleine Superkondensatoren (siehe Bild3). Momentan ist die Herstellung
noch sehr teuer, doch das knnte sich blitzartig ndern. Werden bei den
Mikrosupercaps Elektrodenmuster per Laser in die Kunststofffolien gebrannt,
senkt das die Fertigungskosten und den Aufwand massiv. Das Ergebnis ist ein
Energiespeicher, der 50 Mal schneller als aktuelle Akkus geladen werden kann
und eine geringere Selbstentladung als moderne Supercaps hat. Auerdem:
Selbst nach ber 10.000 Biegungen funktionieren die Prototypen noch.
Bild3. Mikrosupercap (Rice University).

Pros: Schaum-Akku
Mit 3D-Strukturen im Sinn hat die Firma Prieto einen
funktionsfhigen Akku auf der Basis von Kupferschaum
entwickelt (siehe Bild5). Diese Akkus sind dank nicht
entzndlichem Elektrolyt nicht nur sicher, sondern leben
lnger und lassen sich schneller laden.
Bild5. Kupferschaumsubstrat bei Akkus von Prieto (Prieto).
Weitere Vorteile sind die fnffache Energiedichte, geringe
Fertigungskosten und letztlich kleinere Abmessungen
als konventionelle Produkte. Daher sollen die Prieto-Akkus zunchst sogar in Wearables eingesetzt werden. Sie sind auch fr
Smartphones und mglicherweise sogar fr Elektroautos hochskalierbar.

Die Hrte: Festkrper-Akkus


Forscher des MIT und von Samsung MIT haben Festkrper-Akkus entwickelt, die LiIonTypen schlagen. Diese Akkus (siehe Bild6) sollen sicherer sein, lnger leben und
mehr Leistung bieten. Konventionelle Lithium-Akkus basieren auf dem Ionentransport
durch einen flssigen Elektrolyten. Letzteres macht den Akku nicht nur entflammbar,
sondern sorgt auch fr die Kapazittsabnahme und so fr eine begrenzte Lebensdauer.

Bild6. Nichts schwappt, nichts fliet:


Festkrper-Akkus sind sehr haltbar (MIT).

Laut MIT halten die neuen Akkus hunderttausende Ladezyklen durch, bevor
die Kapazitt merklich abnimmt. Auerdem haben sie eine 20...30% hhere
Leistungsdichte und sind aufgrund ihrer Sicherheit sehr gut fr Elektroautos geeignet.

Eieiei: Nano-Eier mit dreifacher Kapazitt


Ebenfalls aus dem MIT stammt die Meldung ber einen Akku, der bei dreifacher
Kapazitt schon in sechs Minuten voll geladen ist was etwa der durchschnittlichen
Aufmerksamkeitsspanne eines Teenagers entspricht. Auerdem altert so ein Akku
nicht so schnell, was ihn recht stabil macht.Besonders interessant sind die niedrigen
Herstellungskosten und die einfache Skalierbarkeit. Bild7 zeigt das Prinzip. Alles klar?
Bild7. Nano-Eier-Akku (MIT).

www.elektormagazine.de

Juli/August 2016

43

ElektorBusiness Report
Schneller: Aluminium-Graphit
Vermutlich in Konkurrenz zum MIT haben die Wissenschaftler der Stanford University
einen Aluminium-Graphit-Akku entwickelt, mit dem man ein Smartphone in nur einer
einzigen Minute laden knnte (siehe Bild8). Dieser Akku ldt nicht nur unglaublich
schnell, sondern ist auch flexibel und langlebig. Ein bisschen strend ist, dass seine
Energiedichte nur etwa halb so gro wie bei einem Lithium-Akku ist. Man kann nicht
alles haben: Dafr ist er wirklich extrem fix geladen.
Bild8. Aluminium-Graphit-Akku: Kann angeblich in 1Minute geladen werden (Stanford University).

Durstig: Alfa-Batterie braucht alle 14 Tage Wasser


Die Alfa-Batterie bietet die 40-fache Kapazitt eines LiIon-Akkus und stellt wohl einen
Durchbruch in der Alu/Luft-Technologie dar. Alle zwei Wochen muss frisches Wasser
nachgefllt werden, das aber auch Salzwasser sein kann. Die neue Batterie von
Bild9 soll laut Hersteller Fuji Pigment mit einer Wasserfllung bis zu 14 Tage lang
Strom liefern knnen. Sie soll wohl zunchst in Elektroautos eingesetzt werden und
schon Ende des Jahres lieferbar sein. Das Alu-Luft-Konzept ist mit seinen 8,1kW/kg
die theoretisch zweitbeste Lsung (Lithium-Luft kommt auf 11,4kWh/kg), braucht
aber kein teures Lithium. Dennoch leistet sie sehr viel mehr als die klglichen
120...200Wh/kg konventioneller LiIon-Technik.

Bild9. Die Alfa-Batterie basiert auf der AluLuft-Technik (Fuji Pigment).

Anschmiegsam: Flexibler Akku


Forscher der Arizona State University haben ein flexibles Lithium-Akkukonzept
entwickelt, das an die japanische Kunst des Kirigami erinnert. Ein flexibler StreifenAkku wie in Bild10 wrde kleinere Smartwatches ermglichen, die zudem lnger mit
einer Ladung laufen. Zum Test wurde ein Samsung Gear2 damit ausgestattet. Der
Akku ist so flexibel, dass er sogar ins Armband eingebaut werden kann und trotzdem
stabil funktioniert. Dies wird in Zukunft den Bau von dnneren und damit fr viele
Nutzer akzeptablere smarte Uhren ermglichen.
Bild10. Der flexible Akku der Arizona State University erinnert an Kirigami.

Dnn & fest: Faltbarer Akku


Die biegbaren Akkus J.Flex von Jenax (siehe Bild11) sind sogar papierdnn, wasserfest und
lassen sich falten. Diese Eigenschaften macht diese Akku-Variante ideal fr Wearables. Auerdem
sind mit der entsprechenden Display-Technik dann Tablets denkbar, die man nach Gebrauch
zusammenfalten und in die Hosentasche stecken kann.
Die Akkus gibt es schon und getestet wurden sie auch: Nach ber 200.000 Faltungen haben
sie immer noch keine
Bild11. Der faltbare Akku von Jenax eignet sich super fr Wearables.
Kapazittseinbuen.

Feucht: Energie aus Tau


Vom MIT, aber noch im Embryonalstadium: Spezielle Metallplatten produzieren aus
dem Tau der Luft Energie (siehe Bild12). Erste Tests brachten immerhin schon
messbare Leistungen von 15pW. Dies soll angeblich bald auf mindestens 1W
gesteigert werden. Das scheint wenig zu sein, doch koffergroe Anordnungen knnen
mit reichlich Zeit dann immerhin 2Smartphones/Tag aufladen.

Bild12. Tau am Morgen befreit von Akkusorgen.

44

Juli/August 2016

www.elektormagazine.de

Ausdauernd: Aluminium-Luft fr Elektroautos


Bei einem Test erzielte das kleine Auto von Bild13 die beeindruckende Reichweite
von 1800km dank einer Hochleistungs-Alu-Luft-Batterie. Da hier der Luftsauerstoff die
Rolle der Kathode bernimmt, ist so eine Primrzelle auch besonders leicht.
Bei der Entladung wird das Aluminium zu Aluminiumhydroxid umgewandelt, das nach
erschpfter Batterie wieder zu neuem Batteriematerial recycelt werden kann. Dafr
muss man beim Auto dann alle paar Wochen die Batterie wechseln. Dafr ist die
Batterie aber auch viel preiswerter als Lithium-Technik.
Bild13. Die Alu-Luft-Batterie hat vor allem bei Elektroautos groes Potential. Ein Prototyp erzielte eine Reichweite von 1800km.

Non olet: Stromerzeugung mit Urin


Mit Untersttzung der Bill Gates Foundation hat das Bristol Robotic Laboratory eine
Batterie entwickelt, die mit Urin betrieben wird (Bild14).
Ihre Leistung reicht aus, ein Smartphone zu laden. In dieser mikrobiologischen
Brennstoffzelle spalten Kleinstlebewesen vereinfacht gesagt den Harnstoff und
produzieren daraus Strom. Fr ein Smartphone bentigt man mehrere Zellen,
denen man den Urin in Schluchen zufhrt. Eine prima Zweitverwertung von schon
Verwertetem...
Bild14. Eine mikrobiologische Brennstoffzelle verwandelt Urin in Elektrizitt. Vespasian htte daran seine Freude gehabt.

Nachwachsend: Organische Flusszelle


Laut einer Entdeckung des MIT kann man demnchst ein weiteres organisches
Verfahren zur Stromerzeugung nutzen, das wahrhaft nachhaltig und also voll korrekt
ist. Die getestete organische Flusszelle (siehe Bild15) ist mit 27$/kWh gegenber
Metallausfhrungen mit bis zu 700$/kWh sehr preiswert. Man spart damit potentiell
also 97% der Kosten ein. Verwendet wurden Chinon-Molekle, wie sie etwa in
Rhabarber vorkommen. Das Resultat ist nicht nur hnlich leistungsfhig wie metallene
Ausfhrungen, sondern ebenfalls hoch skalierbar.
Bild15. Falls Sie noch nichts von Chinonen gehrt haben: Man kann sie zur nachhaltigen Stromerzeugung nutzen.

Preiswert: Natrium ist das neue Lithium


Japanische Wissenschaftler prognostizieren fr Natrium-Akkus eine siebenfache Effizienz verglichen mit
konventioneller Technik. Dazu ist Natrium berall verfgbar und sehr preiswert.
Beim Versuch das teure Lithium zu ersetzen wird schon seit den 1980er Jahren am NaIon-Akku geforscht.
Bild16 zeigt die Vorstellung eines Knstlers. Salz ist der sechsthufigste Stoff auf der Erde und wird
niemals knapp werden. Bei zunehmender Elektrifizierung von Autos gehen Experten von einer deutlichen
Verknappung des eh schon teuren Lithiums aus. Deshalb werden wohl in den nchsten 5...10 Jahren
sowohl Smartphones als auch Autos mit Natrium-Akkus ausgestattet sein.
Bild16. Irgendwann wird die Natrium-Technik bei Akkus das Lithium verdrngen.

Fazit
Diese Auflistung bietet eine Auswahl an
Akku- und Batterietechniken, die sich
in unterschiedlichen Stadien der Entwicklung befinden. Darunter sind auch
bereits greifbare und sogar schon fertige Produkte wie zum Beispiel Upp [2].
Letztere erfreuen sich aber noch keiner
groen Akzeptanz durch Kunden. In den
Warterumen von Flughfen oder im Zug

wird man kaum eine Brennstoffzelle, sondern normale Steckerlader und hchstens
gelegentlich externe Akku-Packs sehen.
In der nchsten Zeit wird Lithium also
kaum aussterben.
Dennoch ist bei Akkus gerade sehr viel
los und auch das nichttechnische Publikum ist aufmerksam, da das Thema
Energie wichtig ist und man dank seiner
Gewinnung aus Kartoffeln, der mensch-

lichen Haut, Muskelkraft, Straenlrm,


Zwiebeln, Peptiden oder Gedankenkraft
(okay: weniger) durchaus Ungewhnliches zu Gesicht bekommt.
(160013)

Weblinks
[1] Bioo: www.bioo.tech/
[2] Upp: www.beupp.com/

www.elektormagazine.de

Juli/August 2016

45

Offen fr alle und zu jeder Zeit


Jeder Besucher von elektormagazine.de/
labs kann nicht nur die Projekt-Beschreibungen lesen, sondern auch Dateien herunterladen, an den Projekten teilnehmen,
Kommentare verffentlichen und sogar neue
Projekte erstellen. Die einzige Voraussetzung ist eine (kostenlose) Elektor-ID, die
man selbst anlegen kann. Das Elektor-Archiv mit dem Download von Elektor-Artikeln
bleibt Elektor-GREEN- und GOLD-Mitgliedern vorbehalten.

Ihr Profil verbindet!


Die Elektor-ID mit ihrem eindeutigen Login
(einer einzigartigen Kombination von
E-Mail-Adresse und Passwort) stellt eine
Verbindung zwischen elektormagazine.
de/labs und Ihren anderen Elektor-Accounts her. Von Ihrer Profilseite aus haben
Sie Zugriff auf alle Dienste, die mit Ihrer
ID verbunden sind. Nach einem Klick auf
Meine Projekte wird eine Liste aller Projekte angezeigt, die Sie verwalten und/
oder denen Sie folgen. Von hier aus knnen Sie ein Projekt ffnen, um es zu
betrachten oder zu bearbeiten.

Anpassen eines Projekts


Ein Projekt wird nun ber Projekt
aktualisieren aktualisiert. Damit wird
jede Aktualisierung oder nderung
eines Projekts bersichtlich dargestellt, so dass alle Projektmitglieder
stets auf dem Laufenden bleiben.
Die Hauptprojektseite (Beschreibung)
kann nur im Entwurfsmodus (draft
mode) bearbeitet werden. Sobald
das Projekt verffentlicht ist, kann

es nicht lnger modifiziert werden. Nur als Projektinhaber


knnen Sie Projekt-Updates hinzufgen, die in chronologischer
Reihenfolge rechts neben der Hauptprojektseite angezeigt werden. Beitrge von Followern und anderen Lesern werden als
einfache Kommentare angezeigt.

Ein neues Projekt starten...


... ist ganz einfach. Sie beginnen mit dem roten Neues Projekt-Button (oben auf der elektormagazine.de/labs-Homepage) und geben dann einen aussagekrftigen (!) Titel ein,
einen Teaser und eine Beschreibung. Der Teaser ist das, was
spter auf den Projektbersichtsseiten erscheint, also halten
Sie ihn klar, prgnant und auf 150Zeichen beschrnkt. Das
Hochladen einer Projektillustration ist sehr zu empfehlen. Wenn
Sie noch keine haben, keine Sorge, man kann sie auch spter hinzufgen. Es ist auch mglich, herunterladbare Dateien
(Fotos, Software, CAD-Dateien, und so weiter) zum Projekt
anzufgen, indem Sie den Downloads-Knopf drcken. Man
kann die Anhnge einem Typ zuordnen, so dass sie in bestimmten Bereichen der Seite angezeigt werden.

Entwrfe im Draft-Modus
Projekte im draft mode sind fr den Rest der Menschheit nicht
sichtbar und knnen beliebig oft gendert und auch gelscht
werden. Dieser Entwurfsmodus ist ntzlich, wenn Sie ein abgeschlossenes Projekt in einem einzigen Beitrag prsentieren
mchten. Basteln Sie so lange an der Projektbeschreibung,
bis Sie zufrieden sind, und verffentlichen Sie das Projekt erst
dann. Aber Vorsicht, es gibt keinen Weg zurck. Ihr Projekt ist
nach der Verffentlichung fr alle Welt sichtbar!

Suchen und Filtern


Viele Projekte und Informationen zu haben, ist zwar schn,
aber wenn man sie nicht auf effiziente Weise durchsuchen
kann, ist alles ziemlich nutzlos. Deshalb stehen auf elektormagazine.de/labs mehrere Such- und Filterwerkzeuge zur
Verfgung. Die Suchfunktion ist mit Tags und mehrfachen Sortieroptionen versehen, so dass Sie blitzschnell finden knnen,
was Sie suchen.
(150818)

www.elektormagazine.de/labs

www.elektormagazine.de

Juli/August 2016

47

Willkommen bei DESIGN

LEARN

DESIGN

SHARE

Von Clemens Valens, Elektor-Labor

Andr-Marie Ampre (1775 1836)


Andr-Marie Ampre ist nie zur Schule gegangen. Geboren in
Lyon, Frankreich, lernte Andr-Marie, von seinen Freunden nur
AM genannt, alles ber die gut ausgestattete Familienbibliothek.
Im Alter von zwlf Jahren interessierte er sich fr Mathematik
und gab schon ein Jahr spter sein erstes Werk heraus. Whrend
der Franzsischen Revolution, als er 16Jahre alt war, machte er
sich fr ein neues Dezimal-Messsystem stark. Mit 18 verlor er
seinen Vater, weil dieser seinen Kopf unter der Guillotine verlor.
Die Familie war ruiniert. AM widmete sich dem Studium der Botanik, er erfand wissenschaftliche Instrumente und beobachtete
die Sterne; er lernte Griechisch und Italienisch und schaffte eine
universelle Sprache. Er studierte lateinische Dichtung und schrieb
sogar eine Tragdie, in der er Christopher Columbus kritisierte.
Man knnte annehmen, dass er seine Aufmerksamkeit nicht auf
ein Gebiet konzentrieren konnte, aber als echtes Universalgenie entdeckte er daraufhin die Chemie im Allgemeinen und die
Kohlenstoffoxide im Besonderen. Im Alter von etwa 25Jahren
besuchte er nun endlich die Schule, aber nicht
als Schler, sondern als Lehrer.
Im Jahr 1820 entdeckte der dnische Physiker
Hans Christian rsted, dass eine Magnetnadel
durch einen nahebei flieenden elektrischen
Strom abgelenkt wird. Zu dieser Zeit lebte AM
in Paris und arbeitete an spekulativer Philosophie und ihrer Anwendung auf andere Gebiete
der Wissenschaft. Auch ohne Twitter verbreitete sich die Nachricht von rsteds Entdeckung
schnell und kam AM Anfang September 1820
zu Ohren. Aufgrund dieser aufregenden Nachrichten lie er alles andere stehen und liegen
und machte sich daran, rsteds Experimente
zu wiederholen. Er erkannte schnell, dass ein
stromdurchflossener Draht sich wie ein Magnet
verhlt. Daraus schloss er, dass zwei parallele
Drhte sich anziehen oder abstoen sollten, je
nachdem, ob die Strme in der gleichen Richtung flieen oder nicht. Er schlussfolgerte, dass ein solcher
Draht auch durch das Magnetfeld der Erde beeinflusst werden wrde, genau wie eine Kompassnadel.
Schon eine Woche spter prsentierte er seine ersten Ergebnisse. AM war jetzt so richtig in Fahrt,
denn nach einer weiteren Woche hektischer Arbeit gab er ein zweites Papier heraus, in dem er den
Begriff electrical current prgte. In den folgenden Wochen erfand er Techniken zur Messung solcher
Strme und zur Magnetisierung von Stahl. Ende des Jahres 1820 hat er all seine Erkenntnisse zu
Papier gebracht und das Forschungsgebiet der Elektrodynamik war geboren. In den folgenden Jahren
setzte AM seine Experimente mit Elektrizitt und Magnetismus fort und entwickelte die Hypothese,
dass elektrischer Strom aus einer Art von Elektro-Moleklen besteht, die durch einen Leiter geschoben werden. Im Jahr 1827 verffentlichte er sein Hauptwerk, Memoir on the Mathematical Theory of
Electrodynamic Phenomena, Uniquely Deduced from Experience als erste grundstzliche Abhandlung
zum Thema der Elektrodynamik. Als SI-Basiseinheit ist Ampres Name heute hauptschlich mit dem
elektrischen Strom verbunden, sein wissenschaftliches Werk geht aber weit darber hinaus. Er hat
wichtige Beitrge zur Mathematik und Physik geleistet und eine wichtige Rolle bei der Entdeckung von
Chlor, Fluor und Jod gespielt. Andr-Marie Ampre war einer dieser wirklich groen Geister, die der
Wissenschaft einen groen Schub nach vorne gaben.
(160015)

48

Juli/August 2016

www.elektormagazine.de

labor-projekt

leser-projekt

Wetterstation fr

BBC micro:bit
Doppel mit einem
Erweiterungsboard
Von Clemens Valens
(Elektor-Labor)

Das BBC micro:bit ist


ein kleines Kraftpaket
voller toller Funktionen
und wird von einer
Reihe ausgezeichneter
Entwicklungstools und
Bibliotheken untersttzt.
Sein Platinensteckverbinder
gewhrt Zugang zu allen
Features wie GPIO, analoge
Eingnge, IC und SPI. Wir haben mit dem micro:bit eine kleine Wetterstation gebaut.

Menschen lieben es zu messen. Gib einem Kind ein Lineal


und schon wird es alles in seinem Blickfeld vermessen. BBCs
micro:bit, ursprnglich fr Kinder ausgedacht, besitzt zwei
Sensoren, einen 3D-Beschleunigungssensor (MMA8653), der
Beschleunigungen auf drei Achsen ermittelt, und ein 3D-Magnetometer (MAG3110), das ebenfalls auf drei Achsen Magnetfeldstrken misst. Letzteres erfasst auch die Temperatur
und gibt sie als weiteres Messergebnis aus. Diese Sensoren
dienen der Orientierung, Bewegung und Gestenerkennung. Um
die Sensorik zu komplettieren, fgten wir den kombinierten
Feuchte-, Druck- und Temperatursensor BME280 von Bosch
Sensortec hinzu. Typische Anwendungen dieses Sensors sind
die Oberflchenerkennung und die vertikale Navigation, aber er
lsst sich auch prima als Wettersensor einsetzen. Er liefert sehr
przise Werte fr Feuchtigkeit, Luftdruck und Temperatur ber
einen IC- oder SPI-Bus. Die Leistungsfhigkeit dieses Sensors
verwandelt den micro:bit in eine hochgenaue Umwelt-Messeinheit (IMU). Oder eine Funkwetterstation, wenn Sie zustzlich
die Bluetooth-Fhigkeit des micro:bit verwenden.

Hardware
Die Schaltung des Add-on-Boards ist ziemlich einfach (Bild1):
ein Sensor (IC1, Bild2), eine LED, drei Widerstnde und ein
Kondensator. Die einzige Schwierigkeit ist die Beschaffung des
Verbinders K1 zum micro:bit. Im brigen gibt es nicht viel ber
eine so einfache Schaltung zu erzhlen.

Wir haben das CSB-Signal von IC1 (Pin2) mit VIO verbunden
(der Pin ist an VCC angeschlossen). Damit ist die IC-Schnittstelle
ausgewhlt. Wre CSB Low, wrde das IC nach dem Abtasten
des Pegels im Drei- oder Vierdraht-SPI-Modus arbeiten. Wenn
Sie aus irgendeinem Grund die I2C-Schnittstelle mit einem
externen Signal anwhlen wollen, muss dieses Signal schon
vor dem Zurcksetzen des ICs auf VIO-Pegel sein.
Die SPI-Schnittstelle ist kompatibel mit SPI-Modus 00 (CPOL=
CPHA= 0) und Modus 11 (CPOL= CPHA= 1). Die Modus-Auswahl erfolgt automatisch und wird vom Pegel des SCK-Pins
nach der fallenden CSB-Flanke bestimmt. Ob Drei- oder Vierdraht-Betrieb, darber entscheidet das Bit SPI3W_EN in der
Software. SDI ist die Datenleitung in Dreidrahtmodus, SDO
wird in diesem Fall nicht verwendet.
Da wir das Gert im IC-Modus verwenden, haben wir die Mglichkeit vorgesehen, die Pullup-Widerstnde (R2, R3) an den
Bus zu schalten. Wenn Sie die Erweiterungskarte ausschlielich
mit dem micro:bit verwenden, knnen Sie auf diese Widerstnde verzichten, da Pullups bereits auf dem Controllerboard
vorhanden sind.
Wenn sich der BME280 in IC-Modus befindet, bestimmt SDO
(Pin5) die Slave-Adresse, bei GND ist dies 0x76 und bei High
0x77. SDO darf nicht schweben!
LED1 ist die Power-Anzeige, hilfreich, weil die LED auf dem
micro:bit verdeckt wird, wenn das Controllerboard in Stecker
K1 eingesetzt ist. LED1 bleibt dagegen immer sichtbar.

www.elektormagazine.de

Juli/August 2016

49

design

learn

share

BBC

22

21

20/SDA

19/SCL

18

17

16

15/SCK

14/MISO

13/MOSI

12

11/BUT-B

10

4/BUT-A

micro:bit

3V

GND

K1
1

K2

P3 / analog in / LED col 1


P4 / button A
P5 / analog in / LED col 2
P6 / LED row 1
P7 / LED row 2
P8
P9 /LED row 3
P10 / analog in /LED col 3
P11 / button B
P12
P13 / MOSI
P14 / MISO
P15 / SCK
P16
3V
GND
P19 / SCL
P20 / SDA

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

2
3

VCC

VCC

4
5

R1

680R

P2 / analog in

7
8

LED1

9
10
11

VCC

12

VCC

13

C1

14
15

R2

16
17
18

100n

R3
10k

P1 / analog in

10k

P0 / analog in

8
VDD

19
20

21

IC1

SCK
SDI

CSB
VIO
SDO

2
6
5

BME280

VCC

copyright

GND

GND

7
150652 - 11

Bild 1. Schaltung der Wetterstations-Erweiterung fr den BBC micro:bit.

K2 ist eine (optionale) Stiftleiste, die fr eine Verbindung zu


einem Steckbrett sorgen kann. Die Reihenfolge der Pins von
K2 ist die folgende: Die Anschlsse 0, 1 und 2 entsprechen
den breiten Bananenstecker-Anschlusslchern, die anderen den
Anschlussnummern 3...21 des micro:bit (LED-Matrix oben,
Randverbinder an der Unterseite).

Software
Damit der Mikrocontroller mit dem BME280 kommunizieren

Bild 2. In der Mitte der Platine thront IC1, ein Metallgehuse mit drei
hochprzisen Sensoren.

50

Juli/August 2016

www.elektormagazine.de

kann, haben wir einen Treiber dafr geschrieben. Als wir damit
beschftigt waren, war der micro:bit noch nicht unters Volk
gebracht und all die netten Bibliotheken noch nicht verfgbar. Allerdings war das Board schon bei mbed [1] als Plattform
bekannt, und so wurde der Treiber als mbed-Projekt geschrieben. Mittlerweile haben wir auch einen Arduino-Sketch erstellt,
so dass Sie den Sensor auch mit einem Arduino-kompatiblen
Board betreiben knnen. Die Downloads finden Sie unter [2]
und [3].
Bosch Sensortec bietet zwar auch einen Treiber fr den BME280
auf GitHub [4] an, aber dieser ist ziemlich kompliziert, nicht
nur, weil er angeblich auf allen Arten von Plattformen arbeiten
kann (64-bit, 32-bit, 16-bit, mit oder ohne Fliekommauntersttzung FPU), sondern auch, weil er jedes kleine Detail
des Chips untersttzt. Fr unsere einfache Anwendung einer
Wetterstation brauchen wir das alles nicht, und da es ziemlich
lehrreich ist, einen Treiber selbst zu schreiben, haben wir das
auch getan. Unser Treiber [2] kann zwar auch das allerhinterste Bit im Sensor aufspren, aber Sie mssen das Datenblatt studieren, um herauszufinden, was wohin geschrieben
und woher gelesen werden kann. Und da C++ es uns erlaubt,
ein API im Arduino-Stil zu schreiben, haben wir genau diese
Programmiersprache verwendet.
Die Anwendung unseres Treibers ist kinderleicht. Er beginnt
mit dem BME280-Objekt und ruft dann seine begin-Funktion

labor-projekt

leser-projekt

auf, so wie es blich geworden ist, seit Arduino die Welt regiert:

#define BME280_ALLOW_FLOAT

BME280 bme280;

Dies macht die ausfhrbare Datei grer und langsamer, aber


es hngt von Ihrer Anwendung ab, ob dies ein Problem darstellt oder nicht. Die Fliekomma-Versionen der Unterfunktionen temperature und humidity bentigen keine Skalierung, die
Angabe bei pressure ist wieder in Pascal. Unser Treiber kann
sowohl mit dem SPI- als auch dem IC-Bus umgehen (obwohl
wir SPI nicht getestet haben) und es liegt in Ihrer Entscheidung,
welche Funktionen Sie verwenden. Der Treiber ruft

bme280.begin(0x77);

Die Funktion (oder Methode, wenn Ihnen das lieber ist) begin
nimmt die IC-Adresse als Argument, die auf unserem Board
fest auf 0x77 verdrahtet ist. Wenn Sie keine Adresse vorgeben,
stellt der Treiber standardmig den SPI-Bus ein. Die Funktion liefert 0, wenn der Sensor am Bus gefunden und seine
Kalibrierungsdaten gelesen werden konnten. Dann wird der
Sensor konfiguriert:
bme280.writeConfigRegister(BME280_STANDBY_500_
US,BME280_FILTER_OFF,0);
bme280.writeControlRegisters(BME280_
OVERSAMPLING_1X,BME280_OVERSAMPLING_1X,
BME280_OVERSAMPLING_1X,BME280_MODE_NORMAL);

Wir haben hier die Grundeinstellungen verwendeten keine


Spielereien, kein High-speed, keine Filterung. Nun knnen Daten
gesammelt werde, indem zunchst die Funktion read aufgerufen wird, um die Daten vom Sensor in den Treiber zu laden.
Dann folgt eine der Unterfunktionen temperature, pressure
and humidity. Normalerweise geschieht dies in einer Schleife,
Pflicht ist das allerdings nicht:
bme280.read();
printf("T=%d degrees C, ", bme280.temperature()/100);
printf("P=%d mbar, ", bme280.pressure()/100);
printf("RH=%d%%\n", bme280.humidity()>>10);

Beachten Sie, wie die erhaltenen Werte skaliert werden. Die


Temperature wird durch 100 geteilt, um Grad Celsius zu erhalten. Pressure wird in Pascal ausgedrckt, aber, damit die Werte
handhabbar sind, werden sie ebenfalls durch 100 geteilt, so
dass die Ausgabe in Millibar erfolgt. Humidity muss durch 1024
geteilt werden (als wenn man den Wert zehn Bits nach rechts
schiebt), um ein prozentuales Ergebnis zu erzielen. Wenn man
im Treiber (oben in der Datei bme280.h) BME280_ALLOW_FLOAT
ungleich 0 setzt, aktiviert man damit die Fliekommaarithmetik:

(1)

i2cWrite() & i2cRead()


spiWrite() & spiRead()

auf, je nachdem, was eingerichtet wurde. Alle vier Funktionen mssen zur Verfgung stehen, auch wenn Sie leer bleiben. Wenn Sie IC verwenden, lassen Sie die SPI-Stubs leer,
gebrauchen Sie dagegen SPI, dann bleiben die IC-Stubs frei.
Beachten Sie, dass in mbed die IC-Adressen 8bit breit sind,
weil das Lese/Schreib-Bit in Bit0 enthalten ist, was bedeutet,
dass sich 0x77 in 0xEE verwandelt. Beim Arduino bleibt die
Adresse 0x77.

Weitere Entwicklungen
Fr K2 kann eine Stiftleiste eingesetzt werden, aber es steht
Ihnen frei, mit den Anschlssen anzufangen, was Sie wollen.
Mit einer Stift- oder Buchsenleiste kann man das Board einfach
mit einem Steckbrett verbinden, besonders, wenn Sie einige
dieser sehr praktischen Breadboard-Drhte verwenden. Wenn
Sie eine horizontale oder vertikale Stiftleiste verwenden, sind
Sie bestens fr unser nchstes micro:bit-Projekt ausgerstet!
Bleiben Sie am Ball!
(150652)

Weblinks
[1] https://developer.mbed.org/platforms/Microbit/
[2] https://github.com/ElektorLabs/bme280-driver
[3] www.elektormagazine.de/150652
[4] https://github.com/BoschSensortec/BME280_driver

Stckliste
Widerstnde:
5%, 50V, 0,1W, 0603
R1 = 680
R2, R3 = 10k

www.elektor-labs.com

Kondensator:
C1 = 100n, 0603

Halbleiter:
IC1 = BME280
LED1 = LED, grn, 0603

Auerdem:
K1 = 2x40-poliger Platinensteckverbinder (PCBto-PCB), Raster0,05 (1,27mm)
K2 = 1x21-polige Stiftleiste, Raster0,1
Platine 150652-1 v2.1

www.elektormagazine.de

Juli/August 2016

51

design

learn

share

Stromtastkopf
fr Oszilloskope

Potentialfreies Messen des Spannungsabfalls


ber Shunt-Widerstnden
Von Alfred Rosenkrnzer (D)

Das Oszilloskop folgt ohne Frage gleich nach dem Multimeter auf Platz2 der Skala wichtiger Messgerte
fr Elektroniker. Es ist nicht nur universell, sondern auch flexibel einsetzbar und imponiert mit der
optischen Anzeige dynamischer Signale bzw. von Spannungsverlufen. Und genau da liegt das Problem:
Gegenber einem Multimeter ist ein Oszilloskop eben nicht von Hause aus auf die Messung von Strmen
vorbereitet. Das kann man mit diesem Tastkopf ndern!
Setzt man ein Multimeter zur Strommessung ein, so wird dabei bekanntlich nicht
etwa der Strom direkt, sondern der Spannungsabfall ber einem (niederohmigen)
Widerstand gemessen, der sich im Multimeter befindet und je nach Messbereich
umschaltbar ist. Das klappt prima, denn
ein Multimeter wird praktisch immer von
Batterien versorgt und ist damit nicht nur
potentialfrei, sondern auch durch sein
Plastikgehuse gut isoliert. Eine noch besser isolierte Variante bieten sogenannte
Stromzangen, bei denen man einen aufklappbaren metallischen Ringkern um
einen Leiter legt und das entstehende
Magnetfeld mittels Hallsensor (oder bei
reinen Wechselstrmen auch ber einer
Wicklung) misst.
Beide Methoden haben aber so ihre Nachteile: Sie erfassen leider nicht den dynamischen Aspekt von sich ndernden Strmen, und gerade Stromzangen eignen
sich eher fr grere Strme durch Kabel
und Litzen - auerdem ist ihr nutzbarer
Frequenzbereich nicht sonderlich gro. In
Schaltungen dynamische Signale zu erfassen ist die Domne von Oszilloskopen
- doch sind sie fr diesen Einsatzzweck
nicht wirklich vorbereitet. Hier muss man
also etwas nachhelfen...

Shunt & Oszilloskop


Oszilloskope fremdeln also bei der Messung von Strmen. In der Regel geht es
bei dynamischen Strmen eher um welche im einstelligen Ampere-Bereich oder

52

Juli/August 2016

www.elektormagazine.de

darunter, und interessant sind vor allem


die Stromverlufe in Schaltungen. Man
mchte in der Regel also sehen, wie sich
der Strom durch ein Bauteil in Abhngigkeit z.B. von einer Spannung an einer
anderen Stelle verhlt oder umgekehrt.
Stromzangen sind hierzu verstndlicherweise nicht ganz so einfach einzusetzen.
Man nutzt daher gerne einen eh schon
vorhandenen Widerstand als Shunt und
misst schlicht den Spannungsabfall an
ihm als Ma fr den Strom, oder man
ltet ein Bauteil einseitig aus bzw. trennt
die Verbindung zu einem Teil einer Schaltung auf und platziert hier einen Shunt
mit geeignetem Widerstandswert und
ausreichender Belastung. Also alles ganz
einfach, oder?
Leider aber haben Oszilloskope ein paar
Einschrnkungen. Etliche Exemplare sind
nicht voll potentialfrei, was den Trick ver-

hindert, den Strom an einem Widerstand


einfach als Differenz der Signale zweier
normaler Oszilloskop-Tastkpfe zu messen. Noch weit problematischer ist es,
wenn man mit Hilfe eines Oszilloskops
mit nur zwei Kanlen gleichzeitig eine
auf die Masse der untersuchten Schaltung
bezogene Spannung messen mchte,
denn dann msste ebenfalls der Shunt
bzw. der stromdurchflossene Widerstand
einseitig an dieser Masse liegen. Irgendwie kommt man also um eine potentialbefreite und differentielle Messung kleiner
Spannungen nicht herum und genau das
kann man mit der folgenden Schaltung
nachrsten.

Differentiell & potentialfrei


Dem aufmerksamen Elektroniker ist das
Prinzip einer mglichen Lsung klar:
Man nehme einen sogenannten Instru-

Technische Daten:
Stromtastkopf fr Oszilloskope
Gleichtaktspannungen:
-- min. 200V bei 5V fr IC1
-- bis zu 600V bei 15V fr IC1
Gleichtaktunterdrckung:
min. 90dB
Messspannungen:
-- bis 4,7V bei 5V fr IC1
-- bis 14,7V bei 15V fr IC1
Eingangsimpedanz:
-- 2M fr Spannung ber Shunt

-- 500k fr Gleichtaktspannung
Bandbreite: 0...130kHz (-3dB)
Verstrkungsfaktor: x 1
Verstrkung:
-- max. 0,001% Fehler
-- max. 5ppm Nichtlinearitt
-- max. 5ppm Drift
Offset-Spannung: max. 1mV
Rauschen:
-- max. 35VSS bei 0,01...10Hz
-- typ. 1,6V/Hz bei 100 Hz

labor-projekt

mentenverstrker. Er misst (in der Regel


hochohmig) einen Spannungsunterschied
unabhngig vom Massepotential. Gngige Schaltungen haben allerdings einen
beschrnkten Gleichtaktspannungsbereich. Da man es aber bei Messungen
an elektronischen Schaltungen durchaus
auch mit hheren Versorgungsspannungen als den blichen 15V von Opamps
zu tun hat, muss man sich etwas anderes
einfallen lassen.
Analog Devices bietet als bekannter Hersteller analoger ICs hierfr eine perfekte
Lsung in Form eines speziellen Operationsverstrkers mit der Typennummer
AD8479 an. Dieser Spezialtyp hat integrierte und per Laser getrimmte Widerstnde. Bild1 zeigt die Prinzipschaltung

leser-projekt

seines Innenlebens. Die Sache funktioniert folgendermaen: Vom negativen und


positiven Gehuseeingang fhrt je ein
1-M-Widerstand zum jeweiligen invertierenden und nichtinvertierenden Eingang des internen Opamps. Anders als
bei normalen Instrumentenverstrkern ist
der Widerstand vom nichtinvertierenden
Eingang auf Masse (Pin5) sehr niederohmig und teilt die Eingangsspannung und
damit auch das Gleichtaktsignal auf 1/60
herunter. Der Widerstand zwischen invertierendem Eingang und Masse (Pin1) ist
ebenfalls niederohmig und so getrimmt,
dass das Gleichtaktsignal sehr gut - laut
Datenblatt [1] um 90dB - unterdrckt
wird. Resultat ist, dass die Differenzspannung genau einfach verstrkt wird und

der Gleichtaktbereich theoretisch auf den


60-fachen Wert steigt.
Es ergibt sich also ein erweiterter
Gleichtaktbereich, wie er in der Grafik von
Bild2 visualisiert wird: Eine Versorgung
mit 5V erlaubt einen Gleichtaktbereich
von deutlich ber 200V (roter Bereich).
Das drfte fr praktische Messzwecke
vllig ausreichend sein, denn Tastkpfe
und Oszilloskope sind normalerweise fr
hnlich hohe Spannungen ausgelegt. Bei
einerVersorgung mit15V erweitert sich
der zulssige Gleichtaktbereich auf bis zu
600V (blauer Bereich) und ist auf diese
Spannung nicht durch die Spannungsteiler im IC, sondern durch den Pin-Abstand
und das IC-Gehuse limitiert.

Tastkopf-Schaltung
Dass im Prinzip schon fast alles im
AD8479 enthalten ist, macht die Schaltung von Bild3 sehr einfach. IC1 wird
lediglich noch mit den ntigen Kondensatoren zur Entkopplung versehen (C1...
C4), und am Ausgang ist mit R1 fr den
Anschluss an ein 50--Koaxialkabel noch
ein Serienwiderstand von 50 eingefgt fertig.

Bild1. Blockschaltbild des AD8479 mit


integrierten Widerstnden.

Bild2. Gleichtaktbereich bei Versorgung mit 5V


(rot) und 15V (blau).

Damit sich die guten Eigenschaften des


Opamps auch in der Praxis zeigen, sollte
man fr eine saubere und ungestrte Ver-

www.elektormagazine.de

Juli/August 2016

53

design

learn

share

+5V

copyright
IC2
+5V

78L05F

D1

D5

1N4148

GND

IC1
IN+

C5

330n
25V

100n

1N4148

C8

C6

D4

330n
25V

100n

1N4148

IN

10u
10V

OUT

R1
49R9

COMP

(Coax)

R3

1
V

GND

D6

AD8479

GND

5V

79L05F

100n
7

D3

9V 1N4148

C2

V+

R2
560R

D3

C7

560R

+9V

C4

IC3

C3

C1

100n

10u
10V

5V

150182 - 11

Bild3. Die Schaltung des Stromtastkopfs samt Spannungsstabilisierung.

mig abfallen und dabei die Verpolung


eines Ausgangs droht.
Wenn die knapp ber 200V Gleichtaktbereich gegenber Masse nicht reichen
sollten, kann man IC1 auch mit hheren
Spannungen versorgen. Schon mit 9V
kommt man auf einen Gleichtaktbereich
von 400V und bei 15V ist der maximale Bereich von 600V erreicht. Man
muss dann allerdings auch sicherstellen,
dass die unstabilisierte Versorgungsspannung jeweils 4V ber bzw. unter der Ausgangsspannung der Spannungsregler ist.
Auerdem mssen dann fr C1 und C2
Exemplare mit einer Spannungsfestigkeit
von 25V verbaut werden. Bei unstabilisierten Spannungen ber 25V sollte die
Spannungsfestigkeit von C7 und C8 auf
35V angehoben werden.

Realisierung
sorgungsspannung die Stabilisierungs-ICs
mit im Tastkopf unterbringen mglichst
nahe am AD8479 versteht sich. Die beiden Spannungsregler-ICs sorgen dafr,
dass man die Schaltung dann mit unstabilisierten 9...25V betreiben kann. Die

Stromaufnahme von IC1 ist minimal,


weshalb SMD-Versionen fr IC2 und IC3
gengen. D1/D2 dienen dem Verpolungsschutz und D3/D4 verhindern einen sogenannten Latchup der Spannungsregler,
falls die beiden Spannungen ungleich-

Stckliste

Alle keramisch
C1,C2 = 10 / 10V*, SMD 1206
C3..C6 = 100n / 50V, SMD 0603
C7,C8 = 330n / 25V*, SMD 1206

Halbleiter:
D1..D4 = 1N4148, DO214AA
D5 = LED, rot, SMD 0805
D6 = LED, blau, SMD 0805
IC1 = AD8479, SOIC-8
IC2 = 78L05F*, SOT89
IC3 = 79L05F*, SOT89

Bild5. So ist das Platinen-Ende des KoaxialKabels korrekt abisoliert und verzinnt.

Juli/August 2016

www.elektormagazine.de

C7

C3
C1

D5
C5
D3

fixing holes

COAX GND

C6
D6

D4

R3

C8

D1

D2

-9 +9

out

R2

GND

R1

IC3

in

Kondensatoren:

54

C2
C4

IC2

Alle SMD 0603


R1 = 50
R2,R3 = 560

IC1

Widerstnde:

Bild4. Bestckungsplan der Platine. Die zwei


Lochpaare rechts dienen zur Fixierung der
Anschlusskabel mittels Kabelbindern.
Auerdem:
Koaxial-Kabel*
Mikrofonkabel*, zweiadrig, geschirmt
Prfspitzen*
Platine
* siehe Text

Bild6. Ein frher Prototyp des Stromtastkopfs,


eingebaut in ein kleines Plastikgehuse. Hier
ist lediglich das Koaxial-Kabel mit Kabelbinder
fixiert.

Mit SMD-ICs ist der Aufbau auf einem


Stck Lochrasterplatine schwierig, auch
wenn die Schaltung selbst in ihrer Einfachheit sehr gut dafr geeignet wre.
Also wurde vom Autor eine geeignete
Platine entwickelt (siehe Bild4), deren
Layout-Dateien kostenlos auf der Elektor-Webseite zu diesem Artikel [2] zum
Download zur Verfgung stehen. Und
wenn schon der Opamp im SMD-Gehuse
daherkommt, knnen auch die anderen
Bauteile als SMDs verwendet werden, was
der Kleinheit der Platine und somit ihrer
Praktikabilitt als Shunt-Tastkopf zugute
kommt. Auch wenn die Schaltung wenig
komplex ist und nicht so viele Bauteile
der Bestckung harren: Beim Lten sollte
man sich Zeit lassen und eine Lupe ist
durchaus hilfreich, denn ein paar Kondensatoren und Widerstnde gehren in
die winzige Kategorie 0603.
Betrachtet man die Platine, so fallen die
zwei Kreise oben auf der rechten Seite
auf. Sie sind Anhaltspunkte fr Bohrungen,
mit denen man mittels schmalen Kabelbindern das Ausgangs-Koaxialkabel fixiert.
Zwar hat der Stromtastkopf durch das IC
AD8479 nur eine beschrnkte Bandbreite
von 130kHz, doch ein Koaxialkabel ist
zwecks guter Signalqualitt und Haltbarkeit durchaus sinnvoll. Dank der begrenzten Bandbreite muss der Oszilloskop-Eingang dafr nicht mit 50 abgeschlossen
sein, sondern kann mit den gewohnten
1M hochohmig bleiben, wodurch das
Signal dann auch nicht halbiert wird.
Fr das Verlten des Koaxial-Kabels direkt
auf der Platine geht man wie folgt vor:
Beim freien Ende werden zunchst 11mm

leser-projekt

der ueren Isolierung entfernt sowie danach das jetzt sichtbare


Schirmgeflecht auf 6mm gekrzt und verzinnt. Die innere Isolierung wird soweit entfernt, dass der blanke Innenleiter 3mm
herausragt. Bild5 zeigt, wie das gemeint ist. Das vorbereitete
Kabelende wird nun auf die passende Stelle der Platine gelegt
und zunchst der Innenleiter angeltet. Danach kommt der
Schirm mit reichlich Zinn an die beiden lnglichen Masse-Pads.
Fr die Stromversorgung eignet sich ein flexibles Mikrofonkabel gut, das aus zwei Innenleitern plus Abschirmung besteht.
Dies wird mit den drei Pads rechts unten verltet. Am Eingang
schliet man handelsbliche Prfspitzen an, die bei kurzen
Leitungen nicht zwingend abgeschirmt sein mssen, da die
Impedanzen der Quellen fr gewhnlich recht niederohmig
sind. Man kann auch die Prfspitzen steckbar machen, z.B.
mit Kelchfassungen im 5,08-mm-Raster.
Nachdem die Platine in ein passendes kleines Kunststoffgehuse eingebaut ist und die Kabel durch die entsprechenden
Lcher gefhrt wurden, braucht das freie Ende des Koaxial-Kabels noch einen BNC-Stecker. Die Steckverbindung fr
die Stromversorgung hngt von der vorgesehenen Spannungsquelle ab. Viel Leistung muss diese nicht liefern, denn einige
mA gengen vollauf.

Sonstiges
Bild6 zeigt einen frhen Prototypen des Stromtastkopfs. Einmal auf- und in ein Gehuse eingebaut steht der Verwendung
nichts mehr entgegen. Man muss nichts einstellen und auch
nichts konfigurieren. Man muss nur beachten, dass man bei
einer Versorgung von IC1 mit 5V bei der einfachen Verstrkung nur Spannungen ber Shunts von bis zu 4,7V messen
kann, da der Ausgangsspannungsbereich genau so gro ist.
Braucht man fr Spezialflle einen greren Spannungshub (was
bei Strommessungen kaum zu erwarten ist), so muss man die
Versorgungsspannung von IC1 wie beschrieben erhhen und
dabei die Spannungsfestigkeit von C1 und C2 im Blick behalten.

Anzeige

labor-projekt

mouser.de
Die neuesten Produkte fr Ihre
neuesten DesignsTM

Die grte
Auswahl
der neuesten
Produkte
Mehr als 4 Millionen Produkte
von ber 600 Herstellern

Alles in allem ist der Tastkopf eine Ergnzung fr jedes Oszilloskop, die dessen Anwendbarkeit um eine unproblematische
Strommessung erweitert. Fr die relativ geringen Kosten erhlt
man also einen vergleichsweise hohen Nutzen.
(150182)

ber den Autor


Alfred Rosenkrnzer arbeitet seit 32 Jahren als
Entwicklungsingenieur, zu Anfang im Bereich der
professionellen Fernsehtechnik. Seit Ende der 1990er Jahre
entwickelt er digitale High-Speed-und Analogschaltungen
fr IC-Tester.

Weblinks
[1] Datenblatt AD8479: www.analog.com/static/imported-files/data_sheets/AD8479.PDF

Autorisierter Distributor fr Halbleiter


und elektronische Komponenten

[2] Elektor-Webseite mit Layout-Dateien zur Platine:


www.elektormagazine.de/150182

www.elektormagazine.de

Juli/August 2016

55

design

learn

share

FledermausPLUS
Detektor
Auf dem Balkon meiner Wohnung in Zypern kann ich jeden Abend Fledermuse vorbeifliegen sehen, die
sich auf dem Weg zu ihren Jagdgrnden befinden. Deshalb wollte ich sie gerne bei ihren Unterhaltungen
im Vorberhuschen belauschen. Aus diesem Wunsch heraus entstand dann ein ausgebuffter FledermausDetektor, wie es ihn in der Form noch nicht in Elektor gegeben hat.
Von Kenneth Horton (UK)

Bekanntlich nutzen Fledermuse sowohl


zum Jagen als auch zur Kommunikation
Ultraschallsignale. Ultraschall ist normaler Schall, nur eben hochfrequenter. Kinder nehmen noch Frequenzen zwischen
20Hz und 20kHz wahr. Die obere Frequenzgrenze sinkt mit dem Alter deutlich. Fledermuse hingegen nutzen mit
20...100kHz quasi einen anderen akustischen Kanal.

56

Juli/August 2016

www.elektormagazine.de

Es gibt viele Fledermaus-Arten und jede


davon hat einen speziellen Ruf. Diese Rufe
bestehen aus einer Serie kurzer Klicklaute. In deren Pausen wird das Echo ausgewertet, um z.B. Beute zu lokalisieren.
Manche Fledermuse senden auf einer
festen Frequenz, whrend andere z.B.
Sweeps von hohen zu tiefen Frequenzen
produzieren. Auch die Dauer und die Wiederholrate sind artspezifisch.
Die meisten Fledermuse erzeugen Signale im Bereich von 30...70kHz, doch es

gibt Ausnahmen: Der Groe Abendsegler (Nyctalus noctula) z.B. singt Bass
bis hinab zu 18kHz, wogegen die Kleine
Hufeisennase (Rhinolophus hipposideros)
immerhin bis 100kHz klickt. Beispiele
gibt es auf dieser Fledermaus-Webseite
[1]. Doch Fledermuse sind nicht die einzigen Tiere, die hochfrequent kommunizieren. Viele kleine Tiere und Insekten
geben Laute von sich, die oberhalb des
menschlichen Hrvermgens liegen. Der
beschriebene Detektor erlaubt natrlich

labor-projekt

leser-projekt

Frequenzteilung +
Amplitudenerhaltung

auch da Erkenntnisse ber diese sonst


verborgene Welt.

berlagerung oder
Frequenzteilung?
Um Fledermuse zu belauschen bentigt man einen Detektor, der ihre Rufe in
fr Menschen hrbare Tne umwandelt.
Die Ergebnisse einer Internetfahndung
lassen sich in zwei Kategorien einteilen:
Eine Gruppe fungiert nach dem berlagerungsprinzip, ganz wie in einem Radio-

empfnger zur Erzeugung der ZF. Der


Nachteil ist, dass man solch einen Detektor abstimmen muss und dass man damit
nur ein kleines US-Spektrum zugleich hrbar machen kann. Die zweite Gruppe teilt
die Frequenz des US-Signals; oft durch
den Divisor 16. Auch wenn so ein groer
US-Bereich erfasst wird, gehen dabei die
Informationen ber Amplitude bzw. Lautstrke des Signals verloren. Mehr zu den
verschiedenen Konzepten (genauer: vier)
findet sich im Kasten Detektortypen.

Ich konnte nur eine einzige Schaltung


finden, welche die Nachteile beider Prinzipien vermeidet. Dieses Konzept von
J. L. Errington und S. Frenehard nutzt
zunchst Frequenzteilung, erfasst aber
gleichzeitig die Amplitude des Rufes und
steuert damit die Audio-Ausgabe. Leider
belieen es die beiden Autoren dabei,
jeden Teil einzeln auf Funktion zu testen. Ein funktionierender Prototyp fehlte.
Dies hat mich aber nicht abgeschreckt,
und so berarbeitete ich Teile der origi-

www.elektormagazine.de

Juli/August 2016

57

learn

design

share

Eigenschaften & Daten


Hybride Analog- und Digitalschaltung
Stromverbrauch: <5 mA im Standby-Modus
Whlbarer Teiler: 16, 17, 23 und 31
Whlbare untere Grenzfrequenz: 8, 15, 18 und 25kHz
Verbesserte Amplitudenrekonstruktion
Sinusfrmige Ausgangssignale
Stummschaltung des Verstrkers ohne Signal
LEDs fr Stummschaltung und Signalerkennung
Testmodus fr Hard-und Software
MEMS- oder Elektret-Mikrofon
Nur 1 SMD

nalen Schaltung und baute daraus einen


prima funktionierenden Detektor. Details
finden sich auf der Webseite von J. L.
Errington [2].
Auch wenn mein Prototyp funktionierte,
so hatte er doch noch einige Probleme:
Der Ruhestrom betrug immerhin
15mA.
Der harmonische Teiler von 16 sorgte
fr unerwnschte Rckkoppelungen.
Am Ausgang lag ein simples, nicht
gut klingendes Rechtecksignal.
Der Detektor war nicht selektiv
genug und reagierte auch auf hohe
Stimmen.
Aus diesen Grnden entwickelte ich
einen neuen Detektor, der diese Schwchen nicht mehr aufweisen sollte. Was er
kann findet sich im Kasten Eigenschaften und Daten.

Schaltungsbeschreibung
Das Blockschaltbild von Bild1 zeigt
insgesamt sechs Funktionsmodule. Das
Netzteil stellt nicht nur die symmetrische
Versorgung der Opamps, sondern auch
den Betrieb des PIC-Controllers mit den
blichen 5V sicher. Der Pegel des Mikrofonsignals wird durch einen dreistufigen

Verstrker angehoben. Sein Ausgangssignal gelangt dann zur Amplituden- und


Frequenzverarbeitung. Die Amplitude
wird mittels eines Przisionsgleichrichters erfasst. Mit einem Schmitt-Trigger
erfolgt die Signalformung zwecks digitaler
Weiterverarbeitung.
Amplitudeninformation und das signalgeformte Rechtecksignal werden dann
von einem Mikrocontroller verarbeitet.
Aus dem Rechtecksignal wird ein Sinussignal generiert, dessen Frequenz im
menschlichen Hrbereich liegt. Anschlieend wird noch die Amplitude des Sinussignals moduliert, so dass der Amplitudenverlauf des Fledermausrufs erhalten
bleibt. Zum Schluss wird das resultierende
Signal verstrkt und kann dann in einen
Kopfhrer oder Lautsprecher eingespeist
werden. Um Energie zu sparen, wird der
Verstrker stumm getastet, wenn keine
Fledermaus zu hren ist.
Nach den Grundfunktionen folgt nun die
Beschreibung der konkreten Schaltung in
Bild2, Abschnitt fr Abschnitt.
Netzteil
Die Schaltung ist so ausgelegt, dass sie
mit einer einzigen 9-V-Batterie betrieben
werden kann. Um eine symmetrische Ver-

Bild1. Die einzelnen Funktionsmodule des Detektors im Blockschaltbild.

58

Juli/August 2016

www.elektormagazine.de

sorgung der Opamps zu realisieren, werden die 9V mit R1 und R2 halbiert und
via Opamp IC1 stromverstrkt zum Nullpunkt (TP1 = 0V). C1...C10 entkoppeln
dabei die Spannungsschienen fr hhere
Frequenzen. C9 und C10 sind zur Unterdrckung von Schwingungen unerlsslich,
die bei der originalen Schaltung aus dem
Internet auftraten.
Der PIC-Mikrocontroller wird mit 5V
versorgt, die vom Spannungsregler IC5
bereitgestellt und mit C22...C24 entkoppelt werden. Der Massepunkt des Mikrocontrollers liegt nicht beim Nullpunkt der
Opamps, sondern bei -4,5V.
Mikrofon-Vorverstrker
Das Mikrofon wird an K1 angeschlossen.
R3, C11 und D3 bieten Optionen, auf die
spter noch eingegangen wird. Das Mikrofonsignal wird ber das CR-Glied C12
und R4 hochpassgefiltert (fg ca. 20kHz)

labor-projekt

leser-projekt

+4V5

47k

BT1
C1

C2

C3

C4

R2
47k

220 100n 100n 100

-4V5

+4V5

4k7

R3

K1

C12
1n
D3

MIC.

3V 0W5

R4
7k5
R5
10k

C11

C5

C6

10

100n

R35
100R

C8

TL061CP

1
8

100n 10

IC2

IC3 IC4

C10

100n 10

TP2

C15

C17

4p7
R6
100k

4p7

4p7

R9
100k

R12
82k

C14
1

IC2A

1n

R7
7k5

C16

R8
10k

IC2B

TP1

0V

3
2

C22

R10
7k5

1n

-4V5

100n 10

R16
10k
D1
C18

R11
10k

IC3A

R13
10k

BAT43

470p R14
10k

R19
36k

IC2, IC3, IC4 = TL062CP

Mod.
TP3

R25

T1

P2
100k

-4V5

16
15
14
13
12
11
10
9

RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7

RA0
RA1
RA2
RA3
RA4
RA5/MCLR/Vpp
RA6
RA7
VSS
5

IC6

PIC
16F1827
-I/P

R29
47k

1
2
3
4
5
6
7
8

R30
R27

LED1
SIGNAL

R28

LED2
MUTE

BC
558B

C20

R34

BC
548B
-4V5

R31

10n

R20
10k

T5

BC
548B

C25

C26

R33
10k

+4V5
1
6
MODE VCC
5
INOUT-

10n
C28

K2

10n
P3

R18

-4V5

T4

T3

IC4B

10n

R32

39k

BC
548B
10k

100k

R23
1M

T2

R24
47k

4k7

R22

+4V5

17
18
1
2
3
4
15
16

10k

IC3B

6
7
8
9
10
11
12
13

10k

10k

14
VDD

10k

S1

C19
10n

BC
548B

-4V5

4k7

R26

+5V_PIC
P1
50k

+5V_PIC

R17
10k

BAT43

-4V5

1n
R21

D2

IC4A

R15

+5V_PIC

C24

C23

-4V5

100n

C21

+5V_PIC

100n

C13

2
3

C9

30k

9V

C7

10k

R1

IC5
+4V5 LP2950ACZ-5.0

47k

IC1

IC7
TDA8541T
/N1

IN+
SVR
2

Line out

10k

OUT+
GND
7

LS1

C27
47

150346 - 11

-4V5

Bild2. Schaltung des frequenzteilenden Detektors mit zustzlicher Amplitudenrekonstruktion.

und von IC2A etwa 13-fach verstrkt. Das


RC-Glied aus C13 und R6 begrenzt die
theoretische Maximalfrequenz auf etwa
300kHz und sorgt so fr eine Unterdrckung von HF-Signalen. Aufgrund des
geringen Stromverbrauchs wurde fr diese
und die folgenden Stufen der Dual-Opamp
TL062 eingesetzt. Dank seines begrenzten Bandbreitenverstrkungsprodukts von
nur 1 MHz (manche Quellen geben auch
2MHz an) ergibt sich aber sowieso eine
Begrenzung der Bandbreite: Bei einer Verstrkung von 13 liegt sie theoretisch bei
77kHz, praktisch aber leicht darber.
Nach der ersten Verstrkerstufe mit IC2A
folgen noch zwei weitere, gleich konfigurierte Stufen mit IC2B und IC3A. Insgesamt ergibt sich eine gut 2.000-fache
Verstrkung. Der Ausgang der Verstrkerkette speist gleichzeitig die Amplitudenextraktion und die Rechteckformung
des Signals.

Amplitudendetektor
Zur Amplitudenvermessung wird ber
den 33-kHz-Hochpass aus C18 und R13
ein Przisionsgleichrichter aus IC4A, R16
und den beiden schnellen Schottky-Dioden D1 und D2 angesteuert. Im Prinzip funktioniert das wie eine Diode ohne
Durchlassspannung. Dies ist notwendig,
da eine normale Diode kleine Nutzsignale gar nicht erst durchlassen wrde. Auf
diese Weise wird daher auch die Amplitude kleiner Signale erfasst.
Ohne Eingangssignal wrde der Przisionsgleichrichter am Ausgang eigentlich
0V liefern und sein Ausgangssignal wre
bei steigendem Eingangspegel positiver.
Doch die weitere Verarbeitung per Mikrocontroller bentigt ein Amplitudensignal,
das auf -4,5V bezogen ist. Um dies zu
erreichen, wird mit R15 und Trimmpoti
P1 der Ausgang einstellbar in den negativen Bereich verschoben.

Der Amplitudenverlauf wird dann mit dem


Integrator aus R17 und C19 (Zeitkonstante = 1ms) geglttet, sodass am Ausgang von IC4B die um den Faktor 4,6 verstrkte Hllkurve anliegt. Dieses Signal
wird dann ber einen zweiten Integrator
aus R20 und C20 gefhrt und durch den
Emitterfolger T1 gepuffert. Resultat dieser
Bemhungen ist, dass an dessen Emitter ohne Eingangssignal eine Spannung
anliegt, die nur 0,3V positiver ist als der
Bezugspegel -4,5V. Auerdem kann das
Hllkurvensignal an TP3 auch bei sehr
groen Eingangspegeln niemals die Versorgungsspannung des Mikrocontrollers
berschreiten. Das ist wichtig, denn mit
dem Signal wird direkt ein Eingang des
PICs (RA3) angesteuert.
Schmitt Trigger
Das Ausgangssignal von IC3A bietet das
zwar verstrkte aber noch rohe Ultra-

www.elektormagazine.de

Juli/August 2016

59

learn

design

share

Listing1. Auszug des PIC-Source-Codes


; We have a valid signal
Mainloop_20
btfss Switch_7 ; Switch 7 - Amplifier inhibit
goto Mainloop_30
Amp_on ; Switch on Amp
Mainloop_30
Set_timer_0 ; Timer 0 is used for low frequency cut-off timing
Signal_LED_on
; NOTE the timing of the remainder of this code is critical
; Do not add to the overall size of the loop.
; The loop will handle input frequencies up to about 150 KHz.
Mainloop_40
movfw Division_ratio ; Number of steps in the sinewave
movwf Count ; Used as sinewave table offset
; Wait for interrupt - PORTB 0 to go High
Mainloop_50
btfsc INTCON,TMR0IF ; Test for Timer 0 timeout
goto Mainloop_10 ; Frequency too low - reject
btfss INTCON,INTF ; Wait for next input INT pin (B0) (Schmitt trigger in)
goto Mainloop_50 ; Go back and wait
movfw Low_cutoff ; Timer 0 is used for low frequency cut-off timing
movwf TMR0 ; Reset timer 0
bcf INTCON,INTF ; clear interrupt on INT pin (B0) (Schmitt trigger in)
movfw Count ; Use count to select entry in sinewave table
addwf Table_pointer,w ; Add in the base of the table
callw ; Get the sign wave amplitude value
movwf INDF0 ; Write to D to A.
; Use indirect addressing so dont need banksel!
decfsz Count,f ; The sinewave is read end to beginning to save time
goto Mainloop_50 ; by having end of loop = 0
goto Mainloop_40 ; Count expired, need to reload

schallsignal der Fledermaus. ber einen


16-kHz-Hochpass aus C21 und R21
gelangt es an IC3B. Dieser Opamp ist
als Schmitt-Trigger geschaltet; seine
Hysterese kann mit Trimmpoti P2 eingestellt werden. Auf diese Weise werden
aus den Fledermaus-Signalen rechteckfrmige Signale mit steilen Flanken generiert. Durch die Hysterese wird verhindert,
dass kleinste Strsignale und Rauschen
zu groen Ausgangssignalen werden, was
falsche Signale provozieren wrde. Mit
T2 wird dann noch dafr gesorgt, dass
die entstehenden Rechtecksignale sich
lediglich zwischen -4,5V bzw. VCC von
IC6 und dessen positiver Versorgung VDD
bewegen knnen, denn auch hier gelangen diese Signale direkt an den Mikro-

60

Juli/August 2016

www.elektormagazine.de

controller-Eingang RB0. Ab hier sind alle


Signale dann sowieso auf -4,5V bezogen.
Mikrocontroller
IC6, der mit 16MHz getaktete
PIC16F1827, ist natrlich das zentrale
Bauteil. Seine wichtigsten Aufgaben sind:
Unterdrckung von Signalfrequenzen
unterhalb einer gewissen Schwelle.
Synthese von Sinus-Signalen mit
passender Frequenz und Amplitude.
Stummschalten des Verstrkers ohne
Eingangssignal.
Ansteuerung von zwei LEDs als
Statusanzeige.
Der Mikrocontroller verarbeitet hierzu
zwei Eingangssignale. Am analogen Ein-

Bild3. Extrem vereinfachtes Flussdiagramm der


Firmware.

gang RA3 liegt die Hllkurveninformation


des Amplitudenverlaufs und am digitalen
Eingang RB0 liegt ein aus dem Fledermausruf geformtes Rechtecksignal an.
ber RB1...RB7 kann der Status von sieben DIP-Schaltern ausgelesen werden.
Damit kann man die Verarbeitung der
Signale beeinflussen.
Am analogen Ausgang RA2 erscheint dann
ein Sinus-Signal im fr Menschen wahrnehmbaren Audiobereich, dessen Frequenz dem frequenzgeteilten Eingangssignal entspricht, und dessen Amplitude
vom Signal an Eingang RA3 abhngt.
Der Ausgang RA1 steuert ber T5 den
Mute-Eingang des Audioverstrkers IC7
und schaltet ihn so stumm, wenn gerade
keine Fledermaus klickt. Die beiden Sta-

labor-projekt
tus-Indikatoren LED1 (SIGNAL) und LED2
(MUTE) werden von den Ausgngen RA6
und RA7 gesteuert.
Audioverstrker
Der analoge Ausgang fr das Audiosignal
RA2 von IC6 kann
keine groen Lasten treiben und
muss deshalb
erst noch gepuffert werden. Der Pegel
der negativen Halbwellen liegt immer bei
knapp ber VSS (-4,5V). Die positiven
Halbwellen erreichen bei leisen Fledermusen lediglich einige hundert Millivolt
darber, whrend sie bei lauten Exemplaren durchaus fast bis VDD kommen knnen. T3, T4, R29 und R30 bilden hierfr
eine Pufferstufe, bei der sich die Emitterspannungen der beiden Transistoren
gegenseitig aufheben. Am Emitter von T4
hngt dann der Spannungsteiler aus R31
und dem Lautstrke-Poti P3. C25 fungiert
als Glttungskondensator fr die digitale
Signal-Synthese.
Das so erzeugte Audio-Signal gelangt
dann ber den Hochpass C26 und R33
an IC7 und wird dort knapp fnffach
verstrkt.
Das IC TDA8541 ist fr Batteriebetrieb

leser-projekt

ausgelegt und verfgt deshalb ber einen


Standby-Modus, ber den die Stromaufnahme gesenkt wird, wenn kein Audiosignal erforderlich ist. Sein Mute-Eingang
wird von RA1 von IC6 ber R32 und T5
angesteuert.

Software
Die Firmware des PIC ist linear, mit nur
ein paar Sprngen geschrieben. Der Source-Code nutzt zur besseren bersicht
einige Makros und kann wie immer kostenlos von der Elektor-Webseite zu diesem Artikel [3] heruntergeladen werden.
Auch die bei der Konfiguration gerne zu
Stirnrunzeln fhrenden PIC-Fuses sind
im Zip-Archiv enthalten. Zum besseren
Verstndnis dieser Beschreibung sollte der
Code vor dem Weiterlesen heruntergeladen und entpackt werden. Ein Ausschnitt
des Codes ist in Listing1 abgedruckt.
Wem PIC-Code Kopfschmerzen bereitet,
der kann stattdessen auch das Flussdiagramm in Bild3 zu Rate ziehen.
Im ersten Programmabschnitt wird die
Mikrocontroller-Peripherie initialisiert.
Darauf folgen die Vorverarbeitung der
DIP-Schalter-Einstellungen und das Speichern des Resultats im RAM, um die nachfolgende Programmausfhrung nicht zu
bremsen.

Das Programm wartet auf ein Signal an


RB0. Dieses wird verarbeitet und danach
wird geprft, ob es auch ber der eingestellten Grenzfrequenz liegt. Falls ja
wird der Verstrker freigeschaltet und zur
Erzeugung der sinusfrmigen Audiosignale verzweigt.
Solange an RB0 ein akzeptiertes, ber der
Grenzfrequenz liegendes Signal anliegt,
wird mit der Erzeugung der vom Eingangssignal abhngigen Sinussignale
fortgefahren. Sobald das Eingangssignal
aber aufhrt, wird die Kontrolle wieder an
die Routine bergeben, die auf ein gltiges Eingangssignal wartet. Falls innerhalb einer kurzen Wartezeit kein neues
Eingangssignal kommen sollte, wird der
Verstrker wieder stummgeschaltet.
Der Teil zur Erzeugung der Sinussignale
verarbeitet Eingangsfrequenzen bis zu
150 kHz. Die untere Grenzfrequenz wird
mit Timer0 realisiert. Timer1 wird zur
Steuerung der Wartezeit fr den Verstrker eingesetzt.
In der Nhe der unteren Grenzfrequenz
knnen sich Jitter-hnliche Phnomene
bemerkbar machen. Wenn die Frequenz
des Eingangssignals in der Nhe dieser
Grenzfrequenz liegt, knnen einzelne
Impulse verlorengehen, da die Eingangsimpulse asynchron auf die Timing-Schleife

Detektortypen
Prinzipiell gibt es vier verschiedene Arten, einen
Fledermausruf zu detektieren:
berlagerungs-Detektoren mischen das Ultraschallsignal mit
einem zweiten Signal, dessen Frequenzunterschied nur gering
ist. Dadurch entstehen ein Summen- und ein Differenzsignal.
Das im fr Menschen hrbaren Bereich liegende Differenzsignal
wird dann verstrkt. Das Prinzip hnelt einem Radioempfnger
nach dem Super-Prinzip. Der groe Vorteil des Verfahrens ist
die Erhaltung von Amplitude und anderen Signalcharakteristika.
Der Nachteil ist, dass man damit nur einen kleinen Teil des
fr Fledermuse relevanten Spektrums auf einmal berwachen
kann. Man muss diesen Empfangsbereich wie bei einem Radio
abstimmen. Bei falscher Bereichswahl hrt man gar nichts.
Frequenzteiler-Detektoren teilen die Frequenz des
digitalisierten Signals in der Regel durch den Divisor 16.
Damit wird das Fledermaus-Signal in den fr Menschen
zugnglichen Hrbereich transponiert. Man kann damit
sowohl die hchsten als auch tiefsten Ultraschallsignale
von Fledermusen gleichzeitig hren. Nachteilig ist, dass
die Amplitudencharakteristik des Rufs verloren geht. Ohne
weitere Signalformung hat man am Ausgang ein unangenehm
klingendes Rechtecksignal.
Zeitexpansions-Detektoren zeichnen kurze Episoden der
Rufe auf und geben sie dann langsamer (etwa um den Faktor

10 gestreckt) wieder. Auch hier bleibt die Rufcharakteristik


voll erhalten, doch whrend der Wiedergabe kann man nicht
aufzeichnen. Deshalb hrt man nur, was etwa in einem 1/10
der Zeit los ist.

Das letzte Verfahren funktioniert nicht in Echtzeit: Moderne


Digitalrekorder wie etwa entsprechende Software auf Laptops
oder Tablets knnen mit einem geeigneten Mikrofon durchaus
Ultraschall aufzeichnen. Allerdings wei man da erst hinterher,
ob man etwas aufgezeichnet hat. Wenn die Fledermuse dann
weg sind, kann man sich die Aufzeichnung zeitlich gedehnt in
Ruhe anhren.

www.elektormagazine.de

Juli/August 2016

61

design

learn

des Programms treffen. Daher kann es


kleine, unterschiedliche Verzgerungen
geben, bevor dann jeder Impuls erkannt
wird. In der Praxis ist das allerdings kein
Problem, denn man kann ja diese Grenzfrequenz niedriger setzen, um die Rufe
der jeweiligen Fledermaus sicher zu
detektieren.
Wie schon erwhnt, lassen sich mit Hilfe
der sieben DIP-Schalter einige Optionen der
Software einstellen. Ihre Funktionen sind

share

im Kasten
DIP-Schalter aufgelistet.
Die Standard-Einstellung mit durchweg offenen Schaltern eignet sich fr
die meisten Flle. Man kann die DIP-Schalter also auch weglassen oder die gewnschten Optionen einfach mit einer Drahtbrcke
auf der Platine hart codieren.
Wichtig zu wissen ist, dass die Einstellung der DIP-Schalter nur einmal beim
Start des Programms abgefragt wird. Bei
nderungen sollte man den Detektor zur
bernahme der neuen Einstellungen also
kurz aus- und dann wieder einschalten.

Aufbau
Bild4 zeigt die vom Elektor-Labor entwickelte Platine nebst der Stckliste.

Die Platine ist an den Ecken so geformt,


dass sie genau in ein BIM-Gehuse von
Camdenboss passt.
In das Gehuse passen auch das Mikrofon
und selbstverstndlich auch die Lautstrke-Einstellung (P3), die zwei LEDs, die
9-V-Batterie und ein kleiner 8--Lautsprecher. All diese Teile werden mit kurzen Litzen an die Platine angeschlossen.
Bild5 zeigt den Labor-Prototypen, der
prima funktioniert. Fr den Anschluss des
Mikrofons eignet sich ein dnnes Kabel
mit Abschirmung am besten.
Falls erforderlich kann man auch noch
einen NF-Ausgang (Line out) zum
Anschluss eines externen Audio-Rekorders (z.B. Laptop oder Smartphone etc.)
mit Hilfe einer 3,5-mm-Klinkenbuchse
(K2) realisieren. Diese Buchse erhlt ihr
Signal vom heien Ende von P3 ber den
Koppelkondensator C28. Wer lieber mit
Kopfhrer lauscht, kann hierfr ebenfalls
eine passende Buchse vorsehen, deren

DIP-Schalter
Der Bat-DetektorPLUS enthlt mit S1 insgesamt sieben wirksame
DIP-Schalter, mit denen er konfiguriert werden kann. Die
Standard-Einstellung ist, dass alle Schalter offen (aus) sind.
Die Schalterstellungen werden nur einmal bei Start der Software
eingelesen.
Schalter1: Amplitudenrekonstruktion
Ein = aktiv
Aus = inaktiv
Schalter2 & 3: Teiler
2 aus | 3 aus = 23
2 aus | 3 ein = 17
2 ein | 3 aus = 16
2 ein | 3 ein = 31
Schalter4 & 5: Untere Grenzfrequenz
4 aus | 5 aus = 25kHz
4 aus| 5 ein = 18kHz
4 ein| 5 aus = 15kHz
4 ein | 5 ein = 8kHz
Schalter6 & 7: Modi
6 aus | 7 aus = Mute nach 1s & lange Signal-Validittsprfung
6 ein | 7 aus = Mute nach 1s & kurze Signal-Validittsprfung
6 aus | 7 ein = Mute dauerhaft (fr Aufzeichnung via Line out)
6 ein | 7 ein = Hardware- und Software-Test
Mit Schalter1 kann man die Amplitudenrekonstruktion
deaktivieren und alle Rufe haben dann die gleiche hohe
Amplitude.
Die Schalter2 und 3 stellen den gewnschten Teiler und
die Anzahl der Schritte bei der Erzeugung des Sinussignals

62

Juli/August 2016

www.elektormagazine.de

ein. Je grer der Teiler desto niedriger die resultierende


Audio-Frequenz und desto genauer die Sinusgenerierung.
Mit hheren Teilern ergeben sich mehr Sttzstellen bei der
Sinus-Synthese.
Der Teiler 16 erhlt die Kompatibilitt mit anderen
frequenzteilenden Detektoren. Besser sind die anderen
Teiler mit Primzahlen, denn sie reduzieren die Gefahr von
Rckkopplungen.
Die Schalter4 und 5 stellen die untere Frequenzgrenze ein,
ab der Rufe erkannt werden.
Schalter6 erlaubt bei offenem Schalter7 die Wahl zwischen
zwei Empfindlichkeiten. Ist Schalter6 offen, wird der
Verstrker nach 1s ohne Signal stummgeschaltet. Es mssen
fnf Zyklen eines neuen Rufs erfasst werden, damit der
Verstrker wieder aktiv wird. Das IC TDA8541 verzgert die
Wiedergabe beim Einschalten etwas, um Einschaltgerusche
zu unterdrcken. Aus diesem Grund knnen einige Rufe
verloren gehen.
Bei geschlossenem Schalter6 bleibt der Verstrker fr 5s
aktiv und es sind nur drei Zyklen eines Rufs erforderlich, um
ihn wieder einzuschalten. Der Detektor bleibt also lnger im
Bereitschaftsmodus, was den Stromverbrauch erhht und
auch eher zu Fehlalarmen fhrt.
Ist Schalter7 geschlossen, ergeben sich mit Schalter6
verschiedene Modi: Bei offenem Schalter6 bleibt der
Verstrker dauerhaft stummgeschaltet. Dieser Modus eignet
sich fr eine stille Aufzeichnung via externem Rekorder ber
Lineout. Hier wird der Lautsprecher nicht bentigt.
Wenn Schalter 6 und 7 geschlossen sind, dann wird der
Test-Modus aktiviert. Hierbei blinken beide LEDs und es
wird abhngig von Schalter1 entweder ein Dauerton
ausgegeben oder aber dieser wird vom Eingangssignal
amplitudenmoduliert.

labor-projekt

leser-projekt

Stckliste Hauptplatine
Widerstnde:
(Standard: 5%, 0,25 W, 250 V)
R1,R2,R24,R29,R34 = 47 k
R3,R30,R32 = 4k7 k
R4,R7,R10 = 7k5, 1%, 0,6W
R5,R8,R11,R13,R14,R16..R18,R20,R21,R25..
R28,R33 = 10 k
RR6,R9,R22 = 100 k
R12 = 82 k
R15 = 30 k
R19 = 36k
R23 = 1 M
R31 = 39 k
R35 = 100
P1 = Trimmpoti 50 k, 10%, 23-Gang
P2 = Trimmpoti 100 k, 10%, 23-Gang
P3 = Poti 10k, 20%, mono, logarithmisch, mit
Schalter
Kondensatoren:
C1 = 220 / 50V, 20%, RM 5mm,
10x16mm
C2,C3,C6..C8,C11,C22,C23 = 100n / 50V,
10%, X7R, RM 0,2
C4 = 100 / 50V, 20%, RM 3,5 mm,
8x11 mm
C5,C9,C10,C24 = 10F 20%, 50V, RM 2mm,
5x11mm
C12,C14,C16,C21 = 1n / 100V, 5%, C0G/
NP0, RM 0,2
C13,C15,C17 = 4p7 2p5 / 500V, NP0,
RM 0,2
C18 = 470 p / 100V, 5%, C0G/NP0, RM 0,2
C19,C20,C25,C26,C28 = 10n /100V, 10%,
X7R, RM 0,2
C27 = 47 / 50V, RM 2,5mm, 6,3x 11mm
Halbleiter:
D1,D2 = BAT43, DO-35
D3 = BZX79-C3V0, 3-V-Z-Diode, 0,5 W, DO-35
LED1 = blau, 3mm, high intensity
LED2 = rot, 3 mm, high intensity
T1,T2,T4,T5 = BC548B
T3 = BC558B
IC1 = TL061CP, DIP-8
IC2,IC3,IC4 = TL062CP, DIP-8
IC5 = LP2950ACZ-5.0, LDO, 5V, 0,1A, TO-92
IC6 = PIC16F1827-I/P, DIP-18, programmiert,
Elektor-Shop 150346-41
IC7 = TDA8541T/N1, SMD SOIC-8, Newark/
Farnell # 1854043

Schaltkontakt dann bei eingestecktem


Kopfhrer den Lautsprecher abschaltet.
Diese Buchsen sind optional.
Wie immer beginnt man bei der Bestckung mit den kleinen Bauteilen, Also erst
Widerstnde und Dioden, dann Kondensatoren und so weiter. Fr die ICs empfiehlt sich die Verwendung von Sockeln.
Lediglich IC7 ist als SMD im SO-8-Gehuse zum direkten Auflten vorgesehen.
Besondere Sorgfalt sollte man beim
Einlten von Dioden, Elkos und Transistoren (Polung) walten lassen. Auch
die ICs mssen richtig herum in die
Fassungen. P1 und P2 sind vertikale
Mehrgang-Trimmpotis.

Bild4. Die vom Elektor-Labor entwickelte Detektor-Platine.

Auerdem:
K1 = 4-pol. Stiftleiste, stehend, RM 0,1
K2,LED1,LED2,LS1 = 2-pol. Stiftleiste, stehend, RM 0,1
BT1 = 2-pol. Schraubklemme, Platinenmontage, RM 0,2
TP1,TP2,TP3 = 1-pol. Stiftleiste, stehend
S1 = 8-pol. DIP-Schalter
BT1 = Batterie-Clip fr 9-V-Batterien mit Litzen

Mikrofone und Verstrkung


Die Auswahl des geeigneten Mikrofons
erfordert berlegung. MEMS- und dreipolige Elektret-Mikrofone haben einen extra
Anschluss fr die Stromversorgung, whrend die zweipoligen Elektret-Typen ber
den Audio-Eingang phantomgespeist werden. Der Anschluss der unterschiedlichen
Typen ist in Bild6 dargestellt.
Das Mikrofon der Wahl ist sicherlich ein
MEMS-Typ (Bild6a), auch wenn dieses
sehr klein ausfllt und die Montage nicht
so einfach ist. MEMS ist das Akronym
von Micro Electro-Mechanical System. Der
Typ SPU0410HR5HPB von Knowles hat
bei Experimenten berzeugt. Doch auch

ABS-Gehuse, 40x65x120mm, Camdenboss


BIM2004/14-BLK/BLK, Newark/Farnell #
2445837
LS1 = Kleinlautsprecher, 8, 0,5W
MIC. = Klinkenbuchse, 3,5mm, stereo,
Frontplattenmontage
Platine = Elektor-Shop 150346-1
Oder Bausatz mit Platine, Bauteilen, Gehuse
und MEMS-Platine: Elektor-Shop 150346-71

viele andere MEMS-Mikrofone sollten gut


funktionieren, da sie auch bei Ultraschall
noch sehr empfindlich sind. Knowles hat
mit dem Typ SPH0641LU4H-1 krzlich
sogar ein speziell fr Ultraschall gedachtes MEMS-Mikrofon herausgebracht. Leider war es nicht rechtzeitig fr die Entwicklung verfgbar.
Auch Elektret-Kondensator-Mikrofone
(Bilder6b und 6c) eignen sich gut. Die
Typen MCE-4000 und EK3132 funktionierten bei Tests ganz ordentlich. Selbst
ein aus einem alten Handy ausgebautes
Exemplar funktionierte zufriedenstellend.
Allerdings zeigte sich bei Tests, dass viele
Elektret-Typen Probleme mit Ultraschall

www.elektormagazine.de

Juli/August 2016

63

design

learn

share

Bild5. Im geffneten Gehuse ist zu sehen, wie die Teile verkabelt sind.

4k7

K1

1
2
3
4

MIC.

C12
1n
D3
3V0 0W5

+4V5

2-wire
electret microphone

R3

K1
R4
7k5

C11

1
2
3
4

C12
1n

R4
7k5

MIC.

100n

+4V5

3-wire
electret microphone

R3

K1

R3
10k

+4V5

10k

a
MEMS microphone

1
2
3
4

C12
1n

R4
7k5

MIC.

- 4V5

- 4V5

150346 - 16

- 4V5

Bild6. Drei Mikrofon-Alternativen: Der empfohlene MEMS-Typ (a) sowie ein zweipoliges (b) oder
dreipoliges (c) Elektret-Exemplar.

Audio Precision
+3

10k

+0
-3

5k

-6
-9
-12

d
B
r
A

2k

-15
-18

1k

-21

H
z

-24
500

-27
-30
-33

200

-36
-39
-42
10k

20k

30k

40k

50k

60k

70k

80k

100k

100

hatten. Man kommt wohl um das


Ausprobieren nicht herum.
Die getesteten Elektret-Typen hatten
bei diesen Tests niedrigere Ausgangsspannungen bei Ultraschall als MEMS-Mikrofone, weshalb bei ihnen eventuell die
Verstrkung durch grere Werte fr R6,
R9 und R12 (120k oder gar 150k)
erhht werden muss. So eine Manahme reduziert aber auch die nutzbare
Bandbreite der TL062-Opamps auf etwa
60kHz bzw. 50kHz. Fr einige Fledermausarten kann das zu gering sein. Falls
das ein Problem sein sollte, kann man
IC2 durch den pin-kompatiblen Typ LF353
ersetzen. Dank dessen hherem Verstrkungs-Bandbreitenprodukt von 4MHz
bertrifft die hchste bertragene Frequenz der ersten beiden Verstrkerstufen
dann jede Fledermaus bei weitem. IC3A
schwcht dann immer noch die hchsten
Frequenzen, doch ein Tiefpass alleine ist
weniger schlimm als drei hintereinander.
Der Nachteil des Dual-Opamps LF353 ist
sein hherer Stromverbrauch.
Der Frequenzgang von Bild7 wurde im
Elektor-Labor mit einem Audio Precision
Analyzer aufgenommen. Es zeigt den
Unterschied zwischen einem Typ TL062CP
(blau) und einem LF353 (grn) fr IC2.
Das Testsignal wurde dabei direkt am
Eingang der Schaltung eingespeist und
bercksichtigt daher nicht den Frequenzgang des Mikrofons.
Die fr Elektret-Mikrofone notwendige
hhere Verstrkung kann bei hheren
Amplituden zu Rckkoppelungen fhren, die das resultierende Ausgangssignal modulieren. Das passiert vor allem
dann eher, wenn fr R6, R9 und R12
150-k-Exemplare bestckt werden. Bei
solch einem Mikrofon sollte daher entweder die Lautstrke gering gehalten oder
ein Kopfhrer verwendet werden.
Das Mikrofon wird ber eine vierpolige
Stiftleiste angeschlossen, wodurch alle
Typen einfach mit der Platine verbunden
werden knnen.

Hz

MEMS-Mikrofon-Platine
Bild7. Frequenzgang mit TL062CP (blau) oder LF353 (grn) fr IC2. Der 100-kHz-Bereich ist lediglich
fr spezielle HF-Fledermuse interessant.

64

Juli/August 2016

www.elektormagazine.de

Speziell fr den Einsatz von MEMS-Mikrofonen wurde eine kleine Platine entwickelt.

labor-projekt
Bild8 zeigt die Schaltung und Bild9 das
Layout. Dank der Platine werden Streukapazitten vermieden. Die Mikrofon-Platine gibt es als fertig bestcktes Modul
im Elektor-Shop (150346-91). Sie ist so
winzig, dass man sie in den Griff eines
3,5-mm-Klinkensteckers einbauen kann
(siehe
Bild10).

Abgleich
Nachdem man die Bestckung geprft
und die Platine auf Ltbrcken etc. untersucht hat, werden alle DIP-Schalter auf
aus gestellt, eine 9-V-Batterie angeschlossen und der Detektor eingeschaltet. Mit einem Multimeter zwischen den
Testpunkten TP1 und TP2 sollte man
etwa die Hlfte der Batteriespannung
messen knnen. Auerdem sollten eine
oder beide LEDs leuchten. Angeschlagene Metallobjekte sollten ein hrbares
Signal im Lautsprecher zur Folge haben.
Ein geschttelter Schlsselbund ist eine
prima Ultraschallquelle.
Nun zu den Trimmpotis P1 und P2. Ihre
Einstellung sollte in einer ruhigen Umgebung (ohne Ultraschall) vorgenommen
werden. Man sollte wissen, dass viele
elektronische Gerte (z.B. wegen Schaltnetzteilen) Ultraschall von sich geben.
Zunchst zu P1, mit dem man den Pegel
fr die leisesten Fledermaus-Signale einstellt. Hierzu schalte man ein Multimeter
zwischen -4,5V und TP3 (Mod.). P1 wird
so eingestellt, dass 0,3V zu messen sind.
Diese Einstellung sollte mit einer schon
gebrauchten, aber noch guten Batterie
erfolgen, denn diese Messung ndert
sich etwas, wenn die Batteriespannung
nachlsst. Dies ist eine erste Einstellung.
Spter kann der Abgleich mit P1 an individuelle Erfordernisse angepasst werden.
Mit P2 wird die Hysterese des Schmitt-Triggers eingestellt. Dazu sollte
DIP-Schalter Nr.6 ausgeschaltet sein.
P2 wird so eingestellt, dass die blaue
SIGNAL-LED gerade ausgeht. Wenn die
LED1 gelegentlich aufblitzt, ist das nicht
problematisch. Testet man den Detektor nun mit einem Schlsselbund, sollte
die rote MUTE-LED erlschen und die
blaue SIGNAL-LED aufleuchten. Wenn
der Schlsselbund nicht mehr geschttelt wird, sollte die MUTE-LED nach etwa
einer Sekunde wieder aufleuchten, da der
Verstrker dann wieder stummgeschaltet
wird. Jetzt wird P2 so eingestellt, bis das

leser-projekt

K1

MIC1 1

C1

100n

2 3

SPU0410HR5H

Bild8. Simple Beschaltung des MEMS-Mikrofons


SPU0410HR5H.

Bild10. Die winzige Mikrofon-Platine passt in


den Griff eines 3,5-mm-Klinkensteckers.

Stckliste MEMS-Mikrofon-Platine
Kondensator:
C1 = 100n / 25V, 5%, C0G/NP0, SMD 1206,
optional
Auerdem:
MIC1 = MEMS-Mikrofon SPU0410HR5H-PB
(Knowles), Mouser # 721-SPU0410HR5H-PB
K1 = Litzenstcke oder 3-pol. Stiftleiste
Klinkenstecker, 3,5mm, stereo,
Kabelmontage

wiederholbar gut funktioniert. Damit ist


der Abgleich abgeschlossen.

Test-Modus
Wen die DIP-Schalter 6 und 7 geschlossen
sind, geht die Software beim Einschalten
des Detektors in den Test-Modus. Nun
blinken beide LEDs und bei einem eingestellten Teiler von 23 kann man ein 1-kHz
Audiosignal hren. Andere Teiler haben
andere Tonhhen zur Folge. Wenn Schalter1 (Amplitude Recovery) offen ist, wird
der Ton vom Mikrofoneingang moduliert.
Ohne Eingangssignal wird der Ton also
nur sehr schwach zu hren sein. Jetzt
kann man P1 so nachregeln, dass auch
sehr leise Fledermausrufe gerade noch
detektiert werden. Wenn das Mikrofon
Ultraschall hrt, wird die Lautstrke des
Audiosignals zunehmen. Bei geschlossenem Schalter1 ist der Ton am Ausgang
in voller Lautstrke zu hren.

Betrieb
Die Inbetriebnahme ist einfach: Man stelle
die DIP-Schalter nach Bedarf ein. Nach
dem Einschalten mit P3 (Poti mit Schalter) kann man dann noch die Lautstrke
einstellen das wars auch schon.
Rckkopplungen vom Lautsprecher zum
Mikrofon sind ein allgemeines Problem
von Fledermaus-Detektoren. Mit dem
empfohlenen MEMS-Mikrofon sollte das
kaum auftreten, doch wie schon erwhnt
kann das mit anderen Mikrofonen bei
hheren Verstrkungen und groen
Pegeln durchaus passieren, und dann

Bild9. Kleine Platine fr das


MEMS-Mikrofon.

Platine Elektor-Shop 150346-2


Bestckte MEMS-Mikrofonplatine Elektor-Shop
150346-91

hrt man besser leise oder mit Kopfhrer.


Bei eingeschaltetem Detektor leuchtet
immer mindestens eine LED. Daher wei
man auch immer, ob der Detektor wirklich eingeschaltet ist. Die LEDs haben folgende Bedeutung:
Mute an / Signal aus
Der Detektor befindet sich im Standby-Modus und wartet auf ein Signal.
Der Verstrker ist zum Stromsparen
stummgeschaltet.
Mute an / Signal an oder blinkend
Es wird zwar ein Signal registriert, aber
dieses wird nicht als Fledermaus-Signal
gewertet. Fr geringen Stromverbrauch
wird der Verstrker stummgeschaltet.
Mute aus / Signal an
Jetzt wurde der Ruf einer Fledermaus
detektiert. Man sollte ihren Ruf im Lautsprecher hren knnen. Die Signal-LED
leuchtet weiter, wenn der Ruf verstummt
ist. Sie erlscht erst, wenn der Verstrker
stummgeschaltet wird.
Wenn eine Buchse fr den optionalen
Line-Ausgang vorgesehen wurde und der
Detektor mit einem Rekorder verbunden
ist, kann der Verstrker auch permanent
stummgeschaltet werden, indem Schalter6 offen und Schalter 7 geschlossen
sind.
Hier nochmals der Hinweis, dass die
Schalterstellungen nur beim Einschalten eingelesen werden und fr die ber-

www.elektormagazine.de

Juli/August 2016

65

design

learn

share

nahme von nderungen der Detektor


aus- und wieder eingeschaltet werden muss.
Das Amplituden-Zeit-Diagramm im
Kasten Detektortypen zeigt typische
Rufe einer Fledermaus. Die erste
Kurve enthlt die typische Abfolge
von Klicks. Die zweite Kurve zeigt
eine zeitliche Dehnung eines Klicks.

allerdings nicht empfohlen.


In der Software knnen einige Parameter gendert werden. Dazu gehren die untere Grenzfrequenz, die
Teiler und die Schwelle, ab der ein
Signal als von einer Fledermaus
stammend erkannt wird. Diese Parameter sind alle als #define-Statements zusammengefasst. Die Software
enthlt auch schon die Tabellen fr
Sinuswerte der Teiler 13, 19, 29 und
37. Experimenten steht also nichts
entgegen.
Speziell die Timing-Loop wurde sehr
sorgsam gestrickt und sollte daher
mglichst nicht gendert werden
(Listing2).
Bild11 zeigt, wie man das Gehuse
des Fledermaus-Detektors grafisch
gestalten knnte.

Modifikationen
Wie schon angesprochen kann es
notwendig sein, die Verstrkung
an das verwendete Mikrofon anzupassen. Auch fr MEMS-Mikrofone
kann eine Anhebung der Verstrkung
durch einen hheren Wert als 100k
fr R12 oder eine Abschwchung z.B.
durch einen Wert von 82k (gegebenenfalls auch fr R6 und R9) erforderlich sein.
Bei einem Elektret-Mikrofon wird
man hchstwahrscheinlich alle drei
Widerstnde R6, R9 und R12 vergrern mssen. Man sollte die Werte
allerdings mglichst klein lassen.
Grere Werte als 150k sind nicht
empfehlenswert und reduzieren die
Bandbreite zu stark. Dann hilft u.U.
der schon erwhnte Ersatz von IC2
durch ein LF353.
Fr minimalen Stromverbrauch werden die LEDs ber 10-k-Vorwiderstnde versorgt. Fr mehr Helligkeit
kann man ihren Wert erniedrigen,
doch man sollte daran denken, dass
man den Detektor eher in der Dunkelheit der Dmmerung einsetzt.
Mit R19 kann man noch die Amplitude der Hllkurve anpassen. Die
Verstrkung ist proportional zu seinem Widerstand. Eine nderung wird

An dieser Stelle mchte ich John


Errington fr sein Konzept danken
und auch dafr, dass er mich bei den
berarbeitungen so gut untersttzt
hat.
(150346)

Weblinks
[1] Fledermausrufe:
www.fledermausschutz.ch/
Fledermaeuse/Rufe.html
[2] Detektortypen:
www.skillbank.co.uk/bat_detectors/
tech.html
Bild11. Gestaltungsvorschlag der Frontplatte des DetektorGehuses. Die Abmessungen betragen 152x 72mm.

[3] Artikel-Webseite:
www.elektormagazine.de/150346

Listing2. #defines der Timing-Loop.


#define Quick_amp_off .10 ; Delay before switching off amp in 1/10 seconds - switch 6 high
#define Slow_amp_off .50 ; Delay before switching off amp in 1/10 seconds - switch 6 low
#define Long_Valid_count .5 ; Number of valid input triggers before taking action - switch 6 high
#define Short_Valid_count .3 ; Number of valid input triggers before taking action - switch 6 low
#define
#define
#define
#define

ratio_a .23
ratio_b .17
ratio_c .16
ratio_d .31

;
;
;
;

Division
Division
Division
Division

#define LF_cutoff_a .25000


#define LF_cutoff_b .18000 ;
#define LF_cutoff_c .15000
#define LF_cutoff_d null ;

66

Juli/August 2016

ratio
ratio
ratio
ratio

switch
switch
switch
switch

2
2
2
2

high & 3 high (13,16,17,19,23,29,31,37)


high & 3 low (13,16,17,19,23,29,31,37)
low & 3 high (13,16,17,19,23,29,31,37)
low & 3 low (13,16,17,19,23,29,31,37)

; Low frequency cut off


Low frequency cut off ; Low frequency cut off
Preset at approximately

www.elektormagazine.de

- switch 4 high & 5 high


switch 4 high & 5 low
- switch 4 low & 5 high
8 kHz - switch 4 low & 5 low

labor-projekt

leser-projekt

Filter auf dem Red Pitaya


Teil 1: FIR-Filter

Von Martin Ossmann (D)

Wenn man FPGAs zur digitalen Signalverarbeitung einsetzt, gehren digitale Filter zu den wichtigen
Standardfunktionen. In Elektor haben wir bereits relativ einfache CIC-Filter zur Dezimation und
Interpolation vorgestellt [1]. Nun sollen Filter an die Reihe kommen, bei denen man das Verhalten
genauer spezifizieren kann.
In diesem ersten Teil werden sogenannte FIR-Filter (Finite
Impulse Response, endliche Stoantwort) vorgestellt, im zweiten werden IIR-Filter (Infinite Impulse Response, Unendliche
Stoantwort) behandelt. Bei beiden Filtertypen gilt es zwei
Probleme zu lsen:
Wie implementiert man so ein Filter mit einem FPGA?
Wie bestimmt man die Parameter des Filters so, dass die
gewnschte Funktion (etwa Tiefpass oder Bandpass) realisiert wird?

addieren. Diese werden in den FPGAs natrlich als Addierwerke


realisiert, wobei die FPGAs oft ber spezielle Blcke verfgen,
damit diese Addierer sehr schnell sind.
Als letztes gibt es Multiplizierer, die in unserem Fall ein Signal
mit einer Konstanten multiplizieren. Wir werden diese Konstante ebenfalls in ein Register legen, damit man zur Laufzeit
mit Hilfe der ARM-CPU die Filterkoeffizienten ndern kann.
Fr schnelle Multiplikationen haben FPGAs ebenfalls oft spezielle Blcke. Im Falle unseres Red Pitaya Boards werden die
zur Signalverarbeitung sehr gut geeigneten DSP48E1-Blcke
[2] verwendet.

Bei der zweiten Aufgabe hilft uns die ARM-CPU des Red Pitaya
Boards, auf der man gut eine einfache Filterdesign-Software
laufen lassen kann. So kann man auf dem Red Pitaya autark Filter entwerfen (ARM-CPU) und mit hoher Abtastrate (125Megasamples/s) laufen lassen (FPGA).

FIR-Filter
FIR-Filter sind so wie in Bild1 aufgebaut. Sie bestehen aus
drei Zutaten: Die mit Z1 beschrifteten Blcke speichern und
verzgern ein Signal jeweils um eine Abtastzeit TS (TS=1/FS
mit FS=Abtastrate). In FPGAs entspricht diesen Blcken blicherweise ein Register, das so viele Bits wie das zu verzgernde
Signal breit ist, in unserem Fall das Eingangssignal.
Dann gibt es Addierer (Kreise mit Pluszeichen), welche Signale

1 Sample Delay

Bild 1. Schematischer Aufbau eines FIR-Filters.

www.elektormagazine.de

Juli/August 2016

67

design

learn

Listing 1. Direkte Implementation in Verilog.


1 parameter sumSize = 38 ;
2 parameter sigSize = 14 ;
3 parameter coeffSize = 18 ;
4 parameter nTaps =32 ;

share
Xilinx DSP-Slices DSP48E1
Im FPGA des Red Pitaya gibt es DSP-Blcke, die besonders fr
Aufgaben der digitalen Signalverarbeitung geeignet sind. Ihr
Aufbau ist (vereinfacht) in Bild2 dargestellt. Im Zynq des Red
Pitaya gibt es davon 80Stck, in greren FPGAs knnen es
schon mal fast 10.000 sein.

5 reg signed [coeffSize-1: 0] bk[nTaps-1:0] ;


6 wire signed [sumSize-1: 0] sk[nTaps-1:0] ;
7 reg signed [sigSize-1: 0] xk[nTaps-1:0] ;
8 assign sk[0] = bk[0]*xk[0] ;
9 generate genvar m;
10 for(m=1 ; m<nTaps ; m=m+1
11 assign sk[m] = sk[m-1]+bk[m]*xk[m] ;

Zuerst einmal sieht man in den Signalpfaden eine Reihe Register. Diese benutzt man zum Beispiel, wenn man Operationen
mit Pipelining beschleunigen will. Man kann all diese Register
aber auch einzeln deaktivieren. Abgesehen von diesen Registern gibt es Recheneinheiten. Man kann beispielsweise die
Eingangsgren A und D (je 25bit breit) addieren. Dieser
sogenannte Pre-Adder wurde eingebaut, damit man symmetrische FIR-Filter effizient realisieren kann.

12 endgenerate
13 integer k ;
14 always @(posedge adc_clk_i) begin
15 if ( firStrobe ) begin
16 xk[0] <= filterIn ;
17 for(k=1 ; k<nTaps ; k=k+1 )
18 xk[k] <= xk[k-1] ;
19 filterOut <= sk[nTaps-1] ;
20 end
21 end

Dann gibt es einen Multiplizierer, der 18-bit-Zahlen mit


25-bit-Zahlen zu 43-bit-Zahlen multiplizieren kann. Dieser
Multiplizierer lsst sich natrlich gut zur Koeffizientenmultiplikation in FIR-Filtern heranziehen. Hinter dem Multiplizierer
ist noch ein 48-bit-Summierer angeordnet, dessen erster Summand blicherweise das Produkt aus dem Multiplizierer ist. Als
zweiter Operand fungiert entweder das C-Eingangssignal oder
der Wert aus dem Ausgangsregister (Preg, 48bit breit) hinter
dem Multiplizierer. Statt des Addierers kann dieser Block auch
logische Verknpfungen realisieren.

DSP-Slice Benutzung via Inferenz


Mit diesem DSP48-Slice kann man also eine Reihe arithmetischer Operationen ausfhren, zum Beispiel:
P = A*B
Preg <= Preg+A*B
P = (A+D)*B+C
P = A+C
Preg <= Preg + A
Preg <= Preg+Mreg , Mreg<=Breg*Areg , Breg<=B , Areg<=A
(Verilog Notation)

Bild 2. Aufbau der DSP-Slices im FPGA des Red Pitaya.

Mit den Registern kann man auch mehrere Operationen gleichzeitig ausfhren; die Trennung erfolgt durch Kommas. Bei der
Implementation eines FPGA-Designs versucht das Entwicklungstool (hier VIVADO) im Quellcode (Verilog oder VHDL)
entsprechende Operationen zu entdecken. Werden solche Operationen entdeckt, wird versucht, diese mit einem DSP-Slice
zu realisieren, da dies meistens die effizienteste Realisierung
ist. Hier wird die Anwendbarkeit des DSP-Slices also aus dem
Quelltext hergeleitet, daher spricht man von Inferenz. Der
Benutzer muss sich gar nicht um die effiziente Realisierung
von Additionen oder Multiplikationen kmmern, das geht automatisch. Alternativ kann man auch ein DSP48-Makro explizit
benutzen, dann spricht man von einer Realisierung per Instanziierung, weil man explizit eine Instanz des DSP48-Slices
anfordert. Damit kann man unter Umstnden noch bessere
Resultate erzielen, wenn die automatische Inferenz nicht die
optimale Lsung fr ein Design findet.

Direkte Implementation
Bild 3. Aufbau des Filters im FPGA (Ausschnitt).

68

Juli/August 2016

www.elektormagazine.de

Als erstes wollen wir ein FIR-Filter wie in Bild1 realisieren.


Der Verilog-Quellcode dazu ist in Listing1 zu sehen.

labor-projekt

leser-projekt

Bild 4. Frequenzgang des defekten Filters.

Bild 5. Frequenzgang bei langsamem Betrieb.

Die in Zeile11 beschriebene Operation wird durch ein DSP48Slice umgesetzt, wobei auch die Register xk (Zeile7 und
Zeile18) der Verzgerungskette in die DSP-Slices absorbiert
werden. Die Koeffizientenregister bk werden durch Flipflops
realisiert. Wenn wir ein FIR-Register mit 32Koeffizienten (Taps)
realisieren, wird ingesamt bentigt: 406LUTs, 786FFs, 32DSPs.
Fr die 32Koeffzienten bk alleine mit je 18bit Genauigkeit
bentigen wir 32*18=576 Flipflops. 32DSP-Slices brauchen
wir fr Multiplizierer, Addierer und xk-Register. Die anderen
Flipflops und Lookup-Tables (LUTs) werden fr weitere Funktionen gebraucht, die in dem Modul untergebracht sind. Lsst
man sich den Schaltplan des FIR-Filtermoduls anzeigen, sieht
er aus wie in Bild3 (Ausschnitt).

klassische Ripple-Carry-Adder: zu viele Stufen hintereinander.


Um diese Tatsache zu verifizieren, lassen wir das Filter einmal
mit 125MHz/8 laufen, indem wir das Signal firStrobe (Listing1)
alle acht Taktimpulse fr einen Takt aktivieren (bei der Rate
von 125MHz war es immer aktiviert). Der sich ergebende Frequenzgang ist in Bild5 dargestellt.

Die groen Rechtecke sind die DSP48-Slices, die kaskadiert


werden. In ihnen ist im Wesentlichen das gesamte Filter untergebracht. Unter den DSP-Slices sieht man die Flipflops, welche
die Koeffizienten bk speichern. Benutzt man diese Implementation bei 125MHz Abtastrate zusammen mit den Koeffizienten eines Tiefpassfilters, so ergibt sich ein Frequenzgang wie
in Bild4 dargestellt.
Dies sieht nun berhaupt nicht nach dem erwarteten Frequenzgang aus, es muss irgendein Fehler vorliegen. Htten wir vorher die Informationen der VIVADO-IDE aufmerksam studiert,
wre uns aufgefallen, dass unser Design timing violations
verursacht, das heit, dass die Logik nicht schnell genug ist.
Mit Hilfe der Timing-Analyse kann man den kritischen Pfad
ermitteln, der eine Lnge von 56ns hat. Die Verzgerung
darf bei einer Taktfrequenz von 125MHz natrlich maximal
8ns=1/125MHz betragen. Unsere Schaltung ist schlichtweg viel zu langsam fr diese Taktfrequenz. Das Problem liegt
darin, dass alle Summierer hintereinandergeschaltet sind. So
muss das Signal vor dem ersten Verzgerer alle 31Summierer
durchlaufen, und das dauert schlichtweg zu lange. Dabei hat
ein einzelner Addierer vermutlich eine Verzgerung von etwa
56ns/32=1,75ns, ist an sich also schon sehr schnell. Die
vorliegende Implementation hat das gleiche Problem wie der

Bei der Interpretation des Bildes mssen wir aufpassen: Die


Abtastrate des Filters ist jetzt 125MHz/8=15,625MHz, der
Filterfrequenzgang wiederholt sich daher alle 15,625MHz. Im
unteren Frequenzbereich (unter 10MHz) sieht man gut den
Frequenzgang eines Tiefpasses mit einer Grenzfrequenz von
ungefhr 2MHz und einer Dmpfung von 50dB im Sperrbereich. Bei 15,625MHz und 31,25MHz sieht man wieder die
Durchlassbereiche, allerdings modifiziert durch die bertragungsfunktion des DAC-Registers, das als Halteglied fr acht
Takte fungiert.
Nun soll gezeigt werden, wie man schnellere Filter realisiert.
Die erste Technik entspricht dem Pipelining bei Rechenwerken. Man kann den kritischen Pfad aufbrechen, indem man
zwischen die Stufen zustzliche Register einfgt, wie in Bild6
dargestellt.
Nun muss ein Signal zwischen zwei Taktflanken maximal einen
Multiplizierer und einen Addierer durchlaufen. Das ist sicher
problemlos mit den DSP48-Slices mglich. Man braucht aber

Bild 6. Pipelining durch Einbau von Zwischenregistern.

www.elektormagazine.de

Juli/August 2016

69

design

learn

1 Sample Delay

share

Multiply-Accumulate (MAC) Block

Bild 7. Transponierte Form eines FIR Filters.

Bild 8. Toleranzschema eines Tiefpassfilters.

zustzlich 2x32=64Register fr die Zwischenergebnisse. Das


Signal kommt zwar 32Taktzyklen spter aus dem Filter, aber
das ist bei vielen Anwendungen kein Problem, weil der Frequenzgang als solcher erhalten bleibt. Diese Form nennt man
oft auch systolisches FIR-Filter oder auch schlichtweg Pipelining. Es gibt aber eine noch bessere Mglichkeit.

Slices mehr verfgbar, werden Multiplizierer und Addierer mit


gewhnlichen Logikblcken realisiert, und davon werden dann
schnell sehr, sehr viele bentigt.
Bei unserem Filter werden die Koeffizienten in Registern gespeichert und knnen von der ARM-CPU des Red Pitaya gesetzt
werden. Nun soll besprochen werden, wie man zu den Koeffizienten kommt.

FIR-Filter: Transponierte Form


Mit intelligentem Hinsehen oder etwas Mathematik kann man
einsehen, dass das in Bild7 dargestellte Filter zu dem aus
Bild1 quivalent ist. Man nennt es gemeinhin die transponierte
Form des FIR-Filters.
Hier fhrt der kritische Pfad vom Eingang durch eine Multiplikation und einen Addierer, ist also sehr kurz. Diese Form ist
daher besonders geeignet fr die Realisierung mit einem FPGA.
Der Verilog-Code dazu sieht aus wie in Listing2 dargestellt.
Die Xilinx-Entwicklungssoftware VIVADO erkennt wieder, dass
Zeile9 komplett durch einen DSP48-Slice realisiert werden
kann. Eine solche Operation (a=a+b*c) wird auch als MAC
(Multiply-Accumulate) bezeichnet. Alle modernen FPGAs stellen effiziente Funktionsblcke dafr zur Verfgung, weil man
damit zahlreiche DSP-Funktionalitten (Filter, FFT, Gleichungssysteme,...) effizient bearbeiten kann.
Die gerade behandelte Form des Filters mit 64Taps (Abzweigungen) werden wir im Folgenden benutzen. Man kann auch
hhere Tap-Zahlen realisieren. Sind allerdings keine DSP48-

Listing 2. Umsetzung der


transponierten Form in Verilog.
1 parameter accuSize = 38 ;
2 parameter coeffSize = 18 ;
3 parameter nTaps =64 ;
4 reg signed [coeffSize-1: 0] bk[nTaps-1:0] ;
5 reg signed [accuSize-1: 0] sumk[nTaps-1:0] ;
6 integer k ;
7 always @(posedge adc_clk_i) begin
8 for(k=0 ; k<nTaps-1 ; k=k+1 )
9 sumk[k] <= sumk[k+1] + filterIn * bk[k] ;
10 sumk[nTaps-1] <= filterIn * bk[nTaps-1] ;
11 filterOut <= sumk[0] ;
12 end

70

Juli/August 2016

www.elektormagazine.de

Filterdesign
blicherweise fngt man beim Filterdesign mit einem Toleranzschema an, in dem die Anforderungen an den Frequenzgang
zusammengefasst sind. In Bild8 ist ein solches Schema beispielhaft fr ein Tiefpassfilter dargestellt. Die Frequenzachse
ist in drei Bereiche A, B und C eingeteilt. Der Durchlassbereich
ist mit A bezeichnet, der Sperrbereich mit C und dazwischen
liegt der B benannte bergangsbereich (Transition Region).
Die Sollverstrkung im Durchlassbereich ist mit D vorgegeben,
die Mindestdmpfung im Sperrbereich mit E. Im Durchlassbereich darf der Frequenzgang eine gewisse Welligkeit (Passband Ripple) aufweisen, sie ist im Bild mit F bezeichnet. Die
Aufgabe besteht nun darin, das Filter so zu entwickeln, dass
der Frequenzgang (schwarze Kurve) sich immer innerhalb der
Toleranzen des Toleranzschemas befindet.
Man sucht dann ein Filter mit mglichst geringer Ordnung
(Tap-Anzahl), das gerade noch die Anforderungen erfllt.
Manchmal gibt man auch die Ordnung vor und versucht ein
Filter mit mglichst hoher Dmpfung zu designen. Auch andere
Aufgaben sind denkbar. Bei FIR-Filtern mit hoher Ordnung
kann man die Designaufgabe nicht mehr von Hand lsen, sondern man braucht Filterdesignprogramme, die zu gegebener
Anforderung ein passendes Filter (also seine Koeffizienten bk)
berechnen.

Iowa Hills FIR-Designer auf dem PC


Ein freies Filter-Designtool gibt es von Iowa Hills. In Bild9
ist die Oberflche zu sehen, auf der man einen FIR-Tiefpass
entwerfen kann. Das Filter hat eine Eckfrequenz von 9,5MHz
bei 125MHz Abtastrate und es sollen 32Taps verwendet werden. Man sieht, dass sich eine Dmpfung von 40dB erreichen
lsst. Die Nullstellen des Filters werden so gelegt, dass der
Frequenzgang im Sperrbereich immer wieder die schlechteste
Dmpfung berhrt. Solche Designs nennt man auch Equi-Ripple-Designs, bei denen man oft auch im Durchlassbereich eine

labor-projekt

leser-projekt

gleichmige Welligkeit erhlt. Diese Equi-Ripple-Filter sind oft


das Beste, was man mit gegebener Ordnung erreichen kann.
Wenn man den bergangsbereich vergrert, lsst sich oft
die Sperrdmpfung weiter verbessern. Der Iowa-Hills-Designer bietet eine ganze Reihe von Mglichkeiten, um Filter fein
abzustimmen. Die Filterkoeffizienten kann man in eine Datei
ausgeben und diese auf die Red-Pitaya-CPU bertragen. Unser
Filtersteuerprogramm kann diese Datei lesen und die Koeffizientenwerte im FPGA entsprechend setzen. Dieser Umweg, dass
man zuerst den PC frs Design benutzt, ist natrlich unpraktisch. Es gibt aber ein einfaches Filterdesignprogramm, das
autark auf dem Red Pitaya luft.

Parks-McClellan-Filterdesign auf dem Red Pitaya


Es gibt eine Reihe von Quellen fr Equi-Ripple-Designs. Die
meisten gehen auf die Originalarbeit mit Fortran-Code [3]
zurck. Wir haben das Java-Programm aus [4] adaptiert, so
dass es auf dem Red Pitaya luft. Damit kann man Hoch- und
Tiefpsse, Bandpass- und Bandstopp- (Notch-) Filter entwerfen. In Bild10 sieht man beispielhaft die Durchlasskurve eines
Bandpasses. Gut erkennbar ist der Ripple im Sperr- und im
Durchlassbereich.
Bei dem Filterdesignprogramm kann man die notwendigen
Parameter in der Kommandozeile angeben. Das Programm
entwirft dann das entsprechende Filter und ldt die Koeffizienten ins FPGA. Dabei wird gleichzeitig durch Skalierung dafr
gesorgt, dass mglichst viele der 18Koeffizientenbits auch
wirklich genutzt werden.
In Bild11 sieht man den Frequenzgang eines Bandstoppfilters. Der Amplitudenabfall zu hheren Frequenzen hin wird
durch das analoge Ausgangsfilter hinter dem DAC des Red
Pitaya verursacht.
Damit haben wir gezeigt, wie man FIR-Filter auf dem Red-Pitaya entwirft und laufen lsst. Die bisher besprochenen Filter
waren immer symmetrisch und deshalb linearphasig. Lsst
man auch Filter mit nichtlinearem Phasengang zu, dann gibt es

Bild 10. Frequenzgang des Bandpass-FIR-Filters.

Bild 9. Oberflche des IOWA Hills Filter-Designers.

fr den Anwender auch die Mglichkeit, IIR-Filter einzusetzen.


Wie man diese auf dem Red Pitaya realisiert, wird Gegenstand
des zweiten Teils dieses Artikels sein.
(150706)

Weblinks und Literatur


[1] Red Pitaya als UKW-Stereo-Radio, Elektor 10/2015,
www.elektormagazine.de/150326
[2] 7 Series DSP48E1 Slice User Guide, Xilinx
[3] T. W. Parks and J. H. McClellan. Chebyshev approximation for
nonrecursive digital Filters with linear phase. IEEE Trans. on
Circuit Theory , 19:18994, March 1972 und
http://michaelgellis.tripod.com/dsp/pgm21.html
[4] http://afni.nimh.nih.gov/pub/dist/src/FIRdesign.c

Bild 11. Frequenzgang des Notch-FIR-Filters.

www.elektormagazine.de

Juli/August 2016

71

learn

design

share

iBaxandall
Variationen von Klangeinstellern
Von Dr. Thomas Scherer (D)

Das kann dabei herauskommen, wenn man als Elektroniker eben mal schnell einen
Klangeinsteller aufbauen mchte: 1. googelt man nach der Standardschaltung, 2. fllt
einem daran etwas auf und 3. will man es besser machen und entwickelt folglich eine neue
Schaltungsvariante. Noch schlimmer: Man geht der Sache auf den Grund und kommt so auf
mehrere neuartige Varianten. Have fun!

72

Juli/August 2016

www.elektormagazine.de

labor-projekt

leser-projekt

www.elektormagazine.de

Juli/August 2016

73

design

learn

share
Standard-Klangeinstellung

C1
330n
R3

R1

R2
2k7

2k7

standard

10k

BASS

2k7

R7

IN

OUT

A1

C2
10n

ideal

TREBLE

R4

R6

R5
1k

1k
10k
C1

L1
150mH

330n

IN

R3

R1

R2

2k7

R6

R4
2k7

R5

2k7

10k

2k7
10k

BASS

TREBLE

A1

A2

A3

OUT

150788 - 12

Google liefert mit den Suchbegriffen Klangeinstellung Schaltung rund eine Viertelmillion Treffer. Mit den anglifizierten
Suchbegriffen sind es gleich mehrere Millionen. Sehr beliebt
im Netz ist dabei die rein passive Standardschaltung, die ich
aufgrund der damit verbundenen Schwchen nicht mal ignorierte. Also aktiv. Mittelt man die vielen aktiven, sich nur marginal unterscheidenden Schaltungsvarianten, kommt in etwa
so etwas dabei heraus, wie es in der oberen Hlfte von Bild1
zu sehen ist. Pro Kanal gengen neben den beiden Potis fr
Hhen und Tiefen ein Opamp, zwei Kondensatoren und fnf
Widerstnde. Fr eine Klangeinstellung in Stereoausfhrung
wrde also ein Dual-Opamp voll ausreichen.
Opamps mit besonders audiophilen Daten wie z.B. der DualOpamp NE5532 [1] oder die Quad-Ausfhrung LM837 [2] gibt
es heute recht gnstig. Wenn man nun noch bercksichtigt,
dass solche Opamps fr niedrigste Rauschpegel mglichst niederohmig, aber fr geringste Verzerrungen eher hochohmig
beschaltet werden sollen, ergibt sich ein optimaler Kompromiss
fr die Belastung des Opamp-Ausgangs im Bereich von etwa
2k bis 10k. Mit einem angepeilten Einstellbereich von rund
12dB und -6-dB-Eckpunkten von 100Hz fr den Bass sowie
5kHz fr die Hhen ergeben sich die in Bild1 aufgefhrten
Bauteilwerte. Soweit, so gut.

Ungereimtheiten

Bild1. Standardschaltung (oben) und idealisierte Variante (unten) eines


Klangeinstellers samt Frequenz- und Phasengang.

Krzlich wollte ich fr eine simple und preiswerte Digitalendstufe


ich wei: des Teufels! eine ebenso simple Klangeinstellung
bauen. Das lsst sich heutzutage leicht ebenfalls digital erledigen, doch fr die Aufgabe war das nicht nur zu aufwndig,
sondern gewichtiger war, dass ich die ntigen ICs nicht in meinen Kleinteile-Magazinen auf Lager hatte. Also analog. Da
braucht man schlielich selbst fr einen Stereo-Verstrker nur
einen Dual-Opamp und ein paar passive Bauteile plus Potis. Die
Standardschaltung hatte ich zwar irgendwo im Hinterkopf, doch
zur Sicherheit habe ich natrlich Google zu Rate gezogen. Was
dabei heraus kam, war wenig berraschend, denn so hnlich
haben nicht nur Sie sich, sondern auch ich mir das gedacht.
brigens lautet die Antwort auf die Frage Wer hats erfunden?
diesmal nicht ein Schweizer, denn die Schaltung wurde schon
1950 von Peter Baxandall, einem Englnder, prsentiert. Hierfr
erhielt er vom Vorlufer der AES (Audio Engineering Society)
immerhin eine Uhr im Wert von 25$ als Preis. Also alles in Butter? Hier meldet sich Radio Eriwan mit Im Prinzip ja, aber...

Eigentlich wre die Geschichte damit zu Ende gewesen, bevor


sie richtig angefangen hat. Die Bauteile waren schon berechnet und ausgewhlt, und mit einem Quad-Opamp htte man
einen rausch- und verzerrungsarmen Stereo-Klangeinsteller
plus Volumen-Poti bekommen. Doch vor der Realisierung einer
Schaltung mit physikalischen Bauteilen legt der moderne Elektroniker einen virtuellen Zwischengang ein: Ich simulierte die
Standard-Schaltung mit verschiedenen Widerstandswerten fr
beide Potis. Fr ein solch einfaches Vorhaben habe ich mich fr
den kostenlosen und sehr simpel zu bedienenden Online-Simulator PartSim entschieden, der vom Distributor Digikey
vorgehalten wird. Enthalten sind ein einfacher Schaltplan-Editor und ein konfigurierbarer Simulator.
In der unteren Hlfte von Bild1 ist der Frequenz- und Phasengang
der Standardschaltung zu sehen. Die Signalquelle hat hier und
in allen weiteren Plots eine Amplitude von 1V. Die Simulationen
mit verschiedenen Stellungen der Potis ergaben, dass sich die
beiden Einsteller fr Bass und Hhen gegenseitig leicht beeinflussen. Dies ist kein Wunder, wenn man bedenkt, dass der invertierende Eingang des Opamps an einem RC-Glied liegt, dessen Frequenzgang ja nicht so scharf zwischen Hhen und Tiefen trennen
kann. Dieses Verhalten ist zwar nicht wirklich toll, doch fr den
Hausgebrauch drfte der genannte Aspekt eine untergeordnete
Rolle spielen. Schwerwiegender ist, dass sich die Lastimpedanz
des Opamps nicht wirklich in den Bereich von 2...10k legen
lsst. Entweder werden nmlich die Potis zu hochohmig oder
aber die Last sinkt deutlich unter 2k. Letzteres gilt brigens
auch fr den Eingang, falls dieser von einem als Puffer oder als
Lautstrkesteller geschalteten weiteren Opamp versorgt wird. Die
angegebenen Werte sind also ein wohl hinnehmbarer, aber doch
leicht fauler Kompromiss. Die Frage ist: Geht es auch anders?

Verbesserungen
Wenn man einmal ber Verbesserungen nachdenkt, dann fhrt

74

Juli/August 2016

www.elektormagazine.de

leser-projekt

labor-projekt

eines zum anderen. Und ganz wie man bei der Software-Entwicklung irgendwann an den Punkt kommt, das Programm komplett neu zu schreiben, drngen sich radikal neue Schaltungen
auf. Dem Impedanzproblem und der gegenseitigen Beeinflussung der beiden Klangeinsteller knnte man z.B. begegnen,
indem man die Einstellung von Hhen und Tiefen separiert.
Die sich daraus ergebende ideale Variante in der unteren
Hlfte von Bild1 verfgt mit A2 noch ber einen Puffer, der
den Ausgang von A1 entlastet.
Wenn man den radikalen Ansatz noch weiter treibt, dann entledigt man sich speziell bei den Hhen dieser Krcke in Form
eines CR-Hochpasses und macht die Sache wenn schon,
denn schon bezogen auf die Frequenz symmetrisch: Man
setzt mit L1 eine Spule dort ein, wo bei den Tiefen mit C1 ein
Kondensator platziert ist. Schaltungstechnisch ist das super
elegant. Doch leider macht hier die Realitt der schnen Idee
einen fetten Strich durch die Rechnung: Der sich ergebende
Wert von 150mH fr L1 ist dermaen praxisfern, dass man die
schne Symmetrie eigentlich gleich wieder beerdigen sollte.
Spulen mit solchen Werten sind Monster bezglich der Abmessungen. Und berhaupt Spulen! Diese elektromagnetischen
Bauteile sind wirklich alles andere als ideal. Sie sind nicht nur
gro, sondern haben nichtideale Serienwiderstnde, fangen
magnetische Einstreuungen auf und sind in der Variante mit
Kern leider nicht so verzerrungsarm, wie sie fr anspruchsvolle

Audiozwecke sein sollten. Modernen Kondensatoren knnen


sie nicht das Wasser reichen.

Gyrator
Was tun? Idee beerdigen? Nicht so schnell: Elektronik bietet
fr (fast) alles eine Lsung! In diesem Fall hrt sie auf den
schnen Namen Gyrator. Dabei handelt es sich um einen
Impedanz-Konverter [4], der quasi das Verhalten eines Kondensators in das einer Spule transformieren kann. Das Schne
daran ist, dass man fr einen Gyrator im Wesentlichen nur
einen (weiteren) Opamp bentigt.
Gedacht - simuliert: Links in Bild2 ist rund um A1 ein Gyrator aufgebaut, der zusammen mit R3 ein RL-Glied, also einen
Hochpass, bildet. Die Schaltung ist sehr simpel und die Berechnung ebenfalls. Mit den angegebenen Werten fr C1, R1 und
R2 kommt man auf eine Induktivitt von 100mH, was voll im
angepeilten Bereich liegt. Auch die Impedanzen von C1 und
R2 sind im idealen Bereich. Der niederohmige Wert von R1
strt nicht, denn die Belastung des Opamp-Ausgangs setzt
sich aus R1 + R3 || (C1 + R2) zusammen. Mit den 2,7k fr
R3 ergibt sich ein schner Hochpass mit einer Grenzfrequenz
fg = R / (2 L) = 4,3kHz.
Doch die Probleme hren nicht auf: Die mit dem Gyrator realisierte Induktivitt weist einen Serienwiderstand auf, der exakt
R1 entspricht. Das ist noch nicht schlimm, denn angesichts des

iGyrator

equivalent

R3

Rx3i
2k7

Rx3

L = C1 * R1 * R2

2k7

2k7

R3

ideal

R1
100R

R1
100R

Cx1

Rx1i

100n

A1
Lx1

Rx2

100mH

100n

A1

R2

Lx1

10k

100mH

Rx1

C1
Lx1i

10k

10k

R2

100R

C1
100n

A2

Lxi
Rx1

100R

Lx

Lx

100R

Rx3

L = C1 * R1 * R2

2k7

real

2k7

Gyrator

150788 - 13

100mH
150788 - 14

Bild2. Der klassische Gyrator im Einsatz als RL-Hochpass (links) nebst


realer (Mitte) und idealisierter Ersatzschaltung (rechts) sowie Frequenzund Phasengngen.

Bild3. Der verbesserte iGyrator im Einsatz als RL-Hochpass (links) mit


quivalenter Ersatzschaltung sowie Frequenz- und Phasengngen.

www.elektormagazine.de

Juli/August 2016

75

design

learn

share

groen Wertes der sich ergebenden Spule sind 100 zu vernachlssigen, und relativ zur Schaltungsimpedanz bzw. dem
Wert von R3 ergeben sich nur vernachlssigbare Fehler im
Frequenzgang. Viel schlimmer ist, dass parallel zur gedachten
idealen Spule zwischen dem Punkt L und Masse noch das
RC-Glied aus C1 und R2 geschaltet ist. Und dies wirkt sich
durchaus merklich auf den Frequenzgang etc. aus.
Um die Verhltnisse zu veranschaulichen, wurde mit PartSim
nicht nur der Frequenz- und Phasengang des RL-Glieds mit Gyrator, sondern auch die Plots seiner real wirkenden (in der Mitte)
und der idealisierten Ersatzschaltung ohne dieses RC-Glied
(rechts) generiert. Wie man sieht, sind Gyrator- und reale
Ersatzschaltung fast identisch. Die Abweichung der Phase bei
hohen Frequenzen ist lediglich dem begrenzten Frequenzgang
des in der Simulation verwendeten Opamps geschuldet und
audiomig nicht ganz so wichtig. Man sieht ebenfalls, dass
sich nur die idealisierte Ersatzschaltung so verhlt, wie sie
soll. Auch dass R1 vernachlssigt werden kann, wird besttigt.

iGyrator, fGyrator & fGyrator2


Fr das neu aufgetretene Problem des strenden RC-Glieds
aus C1 und R2 gibt es ebenfalls eine (elektronische) Lsung.
Man kann das RC-Glied nmlich recht simpel mit Hilfe eines
weiteren als Puffer geschalteten Opamps impedanzmig vom
Punkt L abtrennen. Resultat ist die Schaltung von Bild3.
Da es sich um einen improved Gyrator handelt, habe ich
ihn kurzerhand iGyrator getauft. Wie man sieht, entspricht
die quivalente Ersatzschaltung vllig der idealisierten Ersatzschaltung von Bild2. Frequenz- und Phasengnge von iGyrator
und Ersatzschaltung sind hier im Audiofrequenzbereich weitgehend deckungsgleich und nhern sich mit schnellen Opamps
weiter an.
Doch auch jetzt sind noch nicht alle Probleme gelst, denn der
Gyrator funktioniert ja an seinem Punkt L leider nur auf Masse
bezogen. Wenn man sich aber die idealisierte Schaltung von
Bild1 anschaut, so sieht man, dass die Induktivitt L1 potentialfrei sein muss, wenn man sie wirklich durch einen Gyrator
ersetzen will. Und das kann man tatschlich machen, denn

fGyrator2

2k7

L = C1 * R1 * R2
R2b
10k

100n

200n
C1b
100n

Rx2

2k7
Lx1

100mH
C1b

Lxb

Lb
2k7

R2a
10k

Lx1
R1b
100R

R3b

A1.B

Lb

100mH

R1b
100R

Rx3b
2k7

2k7

R3b

Rx2

Lxb

100n

Rx3b

150788 - 15

Cx1
50n

10k

A1.A

Rx1

A1.A

R2

5k

Lxa

C1a

Cx1

10k

100R

Rx1

A1.B
C1a

R1a
100R

La

Lxa

R1a
100R

100n

Rx3a

Rx3a

L = C1 * R1 * R2

200R

La

equivalent

R3a
2k7

R3a

equivalent

2k7

2k7

fGyrator

150788 - 16

Bild4. Schaltet man zwei Gyratoren antiparallel, ergibt sich der


potentialfreie fGyrator, den man wie eine echte Spule beliebig in einer
Schaltung verwenden kann. Leider erhht sich dadurch die Belastung des
parasitren RC-Glieds gegenber der einfachen Gyrator-Schaltung.

76

Juli/August 2016

www.elektormagazine.de

Bild5. Die zweite Variante fGyrator2 arbeitet mit antiseriellen Gyratoren.


Die Belastung durch das RC-Glied sinkt wieder, dafr steigt der
Serienwiderstand der virtuellen Induktivitt.

leser-projekt

labor-projekt

eine recht simple Lsung besteht darin, einfach zwei gleiche


Gyratoren antiparallel zu schalten. Die Schaltung fGyrator von
Bild4 ist ein floating Gyrator und funktioniert tatschlich,
wie die Simulation zeigt. Die beiden RC-Glieder aus C1a und
R2a sowie C1b und R2b liegen jetzt zwischen den Anschlssen der virtuellen Induktivitt La und Lb. Daraus folgt
aber auch, dass die beiden RC-Glieder parallel zur virtuellen
Induktivitt geschaltet sind. Die Ersatzschaltung bercksichtigt dies, indem Cx1 den doppelten und Rx2 den halben Wert
aufweist. Gegenber iGyrator bietet fGyrator jetzt zwar den
Vorteil, dass die Induktivitt potentialfrei ist, doch dies muss
man mit dem Nachteil bezahlen, dass der Einfluss der beiden
RC-Glieder insgesamt doppelt so stark ist wie beim ursprnglichen Gyrator.
Knnte man die Potentialfreiheit nicht auch noch anders erreichen? Selbstverstndlich geht das, denn statt antiparallel knnte
man die beiden Gyratoren auch schlicht antiseriell schalten.
Bild5 zeigt die resultierende Variante fGyrator2, die sogar mit
einem Bauteil weniger auskommt, da R2 von beiden Gyratoren

ifGyrator

Rx3a

ifGyrator2

2k7

2k7

Um einen potentalfreien Gyrator ohne das Problem des strenden RC-Glieds zu erhalten, muss man beide Prinzipien verheiraten und schon hat man mit dem ifGyrator die Schaltung
eines improved floating Gyrators (Bild6) vor sich. Gegenber seinem nicht verbesserten Vorlufer ist tatschlich der
Einfluss der parasitren RC-Glieder verschwunden und somit
verschiebt sich auch die Kurve des Frequenzgangs nach rechts
in Richtung idealer Werte. Der Preis fr diesen nahezu idealen
und potentialfreien Gyrator ist, dass mit zwei weiteren Puffern
nun ganze vier Opamps erforderlich sind. Das sieht zwar nach

equivalent

L = C1 * R1 * R2
R1a
100R

R3a

Lxa

equivalent
Rx3a

L = C1 * R1 * R2

2k7

La

ifGyrator, fGyrator2 & iTreble

2k7

R3a

zugleich verwendet wird. Das Interessante daran ist, dass sich


dadurch die wirksame Kapazitt von Cx1 bei der Ersatzschaltung gegenber fGyrator viertelt und Rx1 immerhin verdoppelt.
Dafr verdoppelt sich auch der Serienwiderstand der Induktivitt Rx1, was aber nicht so ins Gewicht fllt. Insgesamt ist
fGyrator2 also etwas besser, aber das zur Induktivitt parallel
geschaltete RC-Glied ist leider nicht verschwunden.

R1a
100R

La

A2.A

Lxa

A2.A

100n

Rx1
200R

10k

C1a

A1.A

A1.A

C1a
100n

A1.B

C1b

10k

C1b

R2
10k

Lx1
R2a

Rx1
200R

R2b

100mH

100n

100n

Lx1

A1.B
100mH

A2.B

A2.B

150788 - 17

Bild6. Durch Kombination von iGyrator und fGyrator ergibt sich mit dem
ifGyrator eine Schaltung, die als potentialfreier Gyrator fungiert, der nicht
durch ein parasitres RC-Glied belastet wird.

Lb

R3b

R1b
100R

Lxb

Rx3b

2k7

Rx3b
2k7

Lxb

2k7

R3b
2k7

Lb

R1b
100R

150788 - 18

Bild7. Kombiniert man den antiseriellen fGyrator2 mit dem iGyrator, erhlt
man folgerichtig einen ifGyrator2. Einen Widerstand weniger als beim
ifGyrator erkauft man sich mit einem erhhtem Serienwiderstand.

www.elektormagazine.de

Juli/August 2016

77

design

learn

ifGyroBaxandall

R3a
2k7

share

equivalent

R1a
100R

A2.A

Rx1
100R

Lx1
C1a

150mH

A2.C

100n

P1

10k

Rx3b
2k7
10k

R2b
15k

15k

R2a

Px1

Rx3a
2k7

A2.B

Ax1i

A2.D

C1.b

OUT

100n
R1b
100R

2k7

R3b

A1

OUT
150788 - 19

Sie ahnten es sicher schon: Auch vom ifGyrator gibt es eine


zweite Variante mit antiserieller Grundschaltung. Bild7 zeigt
den ifGyrator2, dessen grter Vorteil gegenber dem ifGyrator ist, dass nur ein einziger R2 erforderlich ist. Dies erkauft
man allerdings durch einen verdoppelten Serienwiderstand,
weshalb sich diese Sparmanahme kaum rechnet. Wenn man
also die Spule L1 in der idealen Schaltung von Bild1 durch
einen Gyrator ersetzen mchte, dann wird man wenn schon,
denn schon eher zum ifGyrator tendieren, denn auf den einen
Widerstand kommt es jetzt auch nicht mehr an.
Wenn man nun also den ifGyrator dazu verwendet, die Induktivitt der Hheneinstellung zu ersetzen, kommt mit iTreble die
verbesserte Hheneinstellung in Bild8 dabei heraus. Wie man
sieht, ist der Frequenzgang bei angehobenen und abgesenkten
Hhen im Audiofrequenzbereich weitgehend deckungsgleich
mit dem der Ersatzschaltung mit echter Spule. Dies ist der
Beweis, dass eine Baxandall-Klangeinstellung mit rein elektronischen Mitteln und ganz ohne reale Induktivitten voll-symmetrisch machbar ist. Auch beim Phasengang halten sich die
Unterschiede bei hohen Frequenzen noch in Grenzen, was sich
mit schnelleren Opamps noch verbessern liee, denn fr die
Simulation wurden Standardexemplare mit einer Bandbreite
von 10MHz verwendet.

iBaxandall

Bild8. Ersetzt man die Induktivitt im idealisierten Hheneinsteller durch


den ifGyrator, so ergibt sich die Schaltung improved Treble. Etwas
Aufwand, aber es klappt.

P2

R16

IC4

bass

treble

R12

0V

R26
R25
P3

C3

Bild10. Die Platine zu iBaxandall bietet die Mglichkeit, der vielen Theorie
praktische Experimente folgen zu lassen.

78

Juli/August 2016

www.elektormagazine.de

RO

C4

LO

C12
R10

IC6
C22

C10
R22

R8 IC2

IC5

R19

R4

P1

-20V

R21
IC3

R15
C8

R11

R6
C2

C20

volume

RI

R9

R24

R2

C21

R20

input

C5
C6

C19

C11

R23

R18

R1

C9

C13

R3

C14

C1

R14

LI

C7

R13
IC1

R17

R7
R5

+20V

viel Aufwand aus, aber hey: Vier Opamps haben in einem einzigen kleinen Quad-Opamp-IC Platz und bei Verwendung von
SMDs fllt auch der Flchenbedarf fr so einen Gyrator relativ
bescheiden aus.

Fasst man die bisher gewonnen schaltungstechnischen Erkenntnisse zusammen, fhrt das zur Synthese der verbesserten
Klangeinstellung iBaxandall von Bild9, bei der sich die Einstellungen von Hhen und Tiefen nicht gegenseitig beeinflussen. Die Schaltung in Stereoausfhrung samt Volumeneinsteller kommt mit Puffer-Opamps (IC1A und IC1C plus IC2A und
IC2C) auf die stolze Zahl von 16Opamps! So extrem ist das
aber auch wieder nicht, denn mit Quad-Opamps kommt man
gerade einmal auf vier ICs (plus die beiden Spannungsregler).
Ob sich der Aufwand lohnt? Diese Frage muss jeder selbst
beantworten. Auf jeden Fall wurde der Beleg erbracht, dass
es auch bei analoger Schaltungstechnik immer noch berraschungen gibt. Ich selbst war sehr erstaunt, wohin mich die
Reise fhrte, als ich versuchte, eine alte Grundschaltung zu
verbessern. Wer mchte, der kann das einfach einmal praktisch ausprobieren, denn auch eine Platine (Bild10) wurde
konzipiert. Mit 92x50mm samt Potis fllt sie recht klein aus.
Mit den angegebenen Bauteilewerten ergibt sich ein Einstellbereich von 12dB bei 40Hz bzw. 10kHz. Die Gesamtverstrkung liegt beim Faktor 2 und kann mit den Verhltnissen
(R3+R5)/R3 bzw. (R4+R6)/R4 angepasst werden. Bei zweifacher
Verstrkung ist auch bei voll angehobenen Tiefen und Hhen
beim Normpegel (0dBm = 775mV) und einer Versorgung mit
15V genug Luft zur Vermeidung von Signalbegrenzungen,
und die Verzerrungen bleiben gering falls die nachgeschalteten Endstufen und die Lautsprecher das berhaupt mitmachen.
R15...R18 wurden zu 15k gewhlt - das ist immer noch eine
rauscharme Auslegung, da jeweils C7...C10 wechselspannungsmig parallel liegen. Diese Werte fhren zu einer Induktivitt
der Gyratoren von 150mH.
brigens wurde vorstzlich auf einen Balance-Einsteller verzichtet. Wenn man Musik in guter Qualitt hren mchte, dann
sollten Sitzposition und Boxenanordnung schon einigermaen
stimmen. Schlielich schaut man auch nicht in einem Winkel von
45 auf einen Fernseher. Wer die besondere Klangeinstellung

leser-projekt

labor-projekt

Weblinks & Referenzen:

bauen mchte, der sollte bei den frequenzbestimmenden Kondensatoren C7...C12 auf gute Qualitt achten. Normale Keramik-SMDs altern ordentlich und ihre Kapazitt ist deshalb nicht
sehr stabil. Wer hierfr groe Folientypen einsetzen mchte,
kann die auf der Elektor-Webseite zu diesem Artikel [5] kostenlos zur Verfgung stehenden Layout-Dateien im Eagle-Format
entsprechend anpassen. Viel Spa beim Experimentieren!

[1] NE5532: www.ti.com/product/ne5532


[2] LM837: www.ti.com/product/LM837
[3] PartSim: www.partsim.com
[4] Gyrator: https://de.wikipedia.org/wiki/Gyrator
[5] Elektor-Webseite: www.elektormagazine.de/150788

(150788)

R19

+15V

IC5

100R

+20V
R7

1u
C17

IC3

11

11

2k7

IC1

C7

R15
15k

15V

10

IC3.C

C1

C9

C5

22k

13

IC3.D

47R

R24

R2

C6
100p

C2

10k

10

IC1.C

R6
4k7

IC2.B

10
R10

IC2.C

R11
2k7

IC2.A

C10

L GND

R26
47R

R GND

IC4.B

100n
R16
15k

C16
4

IC2

IC4

11

11

10k

TREBLE
R8
2k7

1u

IC2 = LM873
IC4 = LM873

15V

C14
220p
R14
2k7

1u

VOLUME

P3.B

13
12

IC2.D

14

13
12

IC4.D

14

GND

C8
3
2

IC4.A

0V

R18

10

P1.B

RO

C4

10k

15k

+15V

C18

R25
47R

BASS

100R

1u

1u

220p

P2.B

R22

1u

330n

10k

LO

C3

10k

C13

C12

R12
2k7

VOLUME

R13
2k7

C11

330n

22k

RI

P3.A

BASS

2k7

R4
4k7

1u

14

IC1.D

47R

R GND

13

P2.A

IC1.B

C19

14

R21
100R

R23

12

R5
4k7

R9

100p
R3
4k7

L GND

IC1.A

2k7

R1

12
7

IC3.B

1u

+15V

1u

100n

LI

R17

5
6

C21

100n

10k

IC1 = LM873
IC3 = LM873

78L15SMD

IC3.A

P1.A

TREBLE

1u

15k

C15

IC4.C

C22

100n

1u

C20

R20
100R

20V

6
7

1u

79L15SMD
IC6

15V
150788 - 11

Bild9. Langer berlegung kurzes Resultat: Die Schaltung einer verbesserten Klangeinstellung nach dem Motto improved Baxandall. Die 16 Opamps
stecken in vier Quad-Opamp-ICs.

www.elektormagazine.de

Juli/August 2016

79

design

learn

share

Elektor SDR Reloaded


SDR-Shield fr Arduino
Von Burkhard Kainka (Deutschland)

Ein Software Defined Radio ist


ein universelles Werkzeug in
der HF-Technik, das auch fr
Messungen einsetzbar ist. Die
Eigenschaften des Empfngers
werden durch Software definiert.
In unserer heutigen Zeit bietet
es sich an, das Frontend als
Arduino-Shield zu realisieren.

Eigenschaften
Betriebsspannung:
5 V und 3,3 V vom Arduino
Frequenzbereich:
150 kHz bis 30 MHz
Empfindlichkeit: 1 V
Gesamtverstrkung: 40 dB
Maximaler Antennenpegel: 10 mV
Dynamikumfang: 80 dB

Auch wenn immer mehr Rundfunkdienste


die AM-Bereiche Lang-, Mittel- und Kurzwelle verlassen, bleibt es interessant, mit
eigenen Empfngern auf die Wellenjagd
zu gehen. Jetzt erst recht, knnte man
sagen, denn viele weit entfernte Stationen
treten nun erst deutlich hervor, weil sie
nicht mehr von deutlich strkeren Signalen verdrngt werden. Oft ist es auf
der Kurzwelle so still, das man meinen
mchte, der Empfnger wre taub. In
manchen Bereichen produzieren dann die
Funkamateure die strksten Signale. Und
man findet immer wieder Neues, von Piratensendern ber SSB-Sprechfunk bis zu
den neuen digitalen Betriebsarten. Das
macht neugierig!
Elektor hat schon viele Radios und Empfnger gebaut. Ein Software Defined
Radio mit USB-Schnittstelle wurde
schon in 2007 [1] vorgestellt. In der

80

Juli/August 2016

www.elektormagazine.de

Zwischenzeit gab es immer mal


wieder berlegungen zu einer Neuauflage. Aber der damals verwendete PLLChip wird nicht mehr gebaut. Deshalb
musste eine neue Lsung her. Sie kam
in Form des Silicon Lab Chips SI5351,
eines CMOS-Clock-Generators von 8kHz
bis 160MHz mit I2C-Bus.
Die ersten Versuche gelangen mit einem
Breakout-Board von Adafruit. Die vorhandenen Software-Beispiele waren fr
den Arduino geschrieben. Und deshalb
wurden auch die ersten Gehversuche mit
dem Arduino unternommen. Der neue
VFO wurde einfach an die alte SDR-Platine angeklemmt und konnte seine Tauglichkeit beweisen (Bild1).
Und so entstand die Idee: Warum nicht
gleich den ganzen Empfnger als Arduino-Shield bauen? Dann ist schon mal
die Stromversorgung geklrt und die

USB-Schnittstelle vom PC
vo r h a n d e n . D e r
Arduino bernimmt die Ansteuerung
des VFO und kann sozusagen im Klartext angesprochen werden (bitte einmal
6030kHz). Und was vielleicht noch wichtiger ist, so hat man sogar eine reelle
Chance, einen Stand-Alone-Empfnger
zu bauen. Die Bedienung knnte relativ
leicht vom PC auf den Arduino wandern.
Und wer wei, vielleicht auch eines Tages
die Dekodierung des IQ-Signals?

Wie funktionierts?
Aber jetzt noch mal ganz von vorn. Was
ist berhaupt ein Software Defined Radio?
Von der Entwicklung der digitalen Elektronik blieben die Radios lange Zeit vllig
unberhrt. Als es schon Homecomputer gab, waren die meisten Radios noch

labor-projekt

leser-projekt

ANT

IMixer

QMixer

Bild 1. Der erste Vorversuch fr einen SDR2: Ein SI5351 PLL-Chip angeschlossen an einen Arduino Uno
und den alten SDR-Empfnger.

Bild 2. Prinzipschaltbild: Das Frontend besteht


aus einem doppelten Direktmischer mit um
90Grad phasenverschobenen Signalen.

analog. Dann setzte allmhlich eine Entwicklung ein, zumindest die Abstimmung
zu digitalisieren. Heutige Radios sind oft
mit einem PLL-Synthesizer ausgestattet,
denn das vereinfacht die Abstimmung
und garantiert ein genaues Einhalten der
Kanalraster. Der Rest der Schaltung ist
aber nach wie vor analog.
Inzwischen ist die digitale Elektronik in
der kommerziellen HF-Technik und im
Amateurfunk angekommen. Immer mehr
analoge Funktionen der Gerte werden
durch Software ersetzt. Meist arbeitet ein
Digitaler Signal-Prozessor (DSP) mit der
passenden Software weitgehend unsichtbar fr den Benutzer und sorgt fr optimale Filterkurven, variable Bandbreite,
Signaldekodierung, Entstrung und vieles
mehr. Die Gerte werden damit insgesamt
besser bei weniger Hardware-Aufwand.
Andere Beispiele fr diese Entwicklung
sind Smartphones und andere mobile
Endgerte. Da sieht man gleich, da kann
kein Hobby-Elektroniker mehr mithalten.
Aber eigentlich muss es gar nicht so
aufwendig sein. Man braucht nur einen
schnellen AD-Wandler direkt an der
Antenne. Das ganze Spektrum wird digitalisiert und dann digital weiter verarbeitet. So etwas gibt es tatschlich schon
fr den ganzen Bereich von 0 bis 30MHz.
Erst die Software filtert bestimmte Frequenzen heraus und demoduliert das
gewnschte Signal. Ganz egal, ob es um
AM- oder DRM-Rundfunksender geht oder
ob SSB-Signale, CW-Morsesender, Fernschreiber, Wetterfax oder anderes empfangen werden soll, alles ist mglich, und
fr alles gibt es die passende Software.
Allerdings ist die Hardware bei einer so
groen Bandbreite recht teuer, und die
Weiterverarbeitung des breiten Spekt-

ein einfacher Direktmischer mit einem


Dioden-Ringmischer oder dem bekannten
NE612. Nur ein stabiler variabler Oszillator (VFO) wird zustzlich gebraucht.
Fr spezielle Anwendungen nimmt man
einen Quarzoszillator. Aber wenn man
den ganzen Bereich abstimmen knnen
mchte, sollte es ein DDS-Generator oder
ein PLL-Baustein ein.
Bei einem IQ-Mischer handelt sich vereinfacht gesagt um einen doppelten Direktmischer mit zwei um 90Grad phasenverschobenen Signalen. Das Oszillatorsignal
liegt immer nahe bei der Empfangsfrequenz. Die Ausgangssignale liegen daher
im NF-Bereich, meist zwischen 0kHz und
24kHz. Die beiden Signale werden mit I
und Q bezeichnet (siehe Bild2). Man gibt

rums stellt hohe Anforderungen.


Einen Ausweg bietet die Soundkarte
moderner PCs. Bei einer heute blichen
Abtastrate von 96kHz kann man bereits
den ganzen Bereich bis 48kHz empfangen. Statt eines Mikrofons schliet man
einfach eine groe Spule als Antenne an,
und schon kann man den VLF-Bereich
empfangen. Da gibt es viele interessante
Signale bis hin zum U-Boot-Sender.
Wenn man die Soundkarte fr hhere
Frequenzen verwenden will, muss man
die Signale zuerst heruntermischen. Der
Aufbau entspricht dann einem Superhet
mit einer niedrigen Zwischenfrequenz. Die
ZF-Stufen, Filterung, automatische Verstrkungsregelung und die Demodulation
bernimmt der PC. Im Prinzip reicht dafr

Bild 3. Das Programm SDR# beim Empfang eines AM-Signals.

www.elektormagazine.de

Juli/August 2016

81

design

3V3

5V

5V

C2
12
7

11

R2

25MHz

K3
SCL
SDA
AREF
GND
IO13
IO12
IO11
IO10
IO9
IO8

XA

IC1

4k7

4k7

X1

10
9
8
7
6
5
4
3
2
1

SCL

XB

SDA

R4
330R

SCL

C15

SI5351A

CLK2

100n

R
13

CLK0
CLK1

R3
330R

IC2B

14

IC2

IC2 = 74AC74

9
4

SDA

IC2A
C
R
1

GND
8

IC3B

5
6

3V3

100n

11

100n

4u7
16V

IC4 = TS914

C3

R10
100k

3V3

IC3A

T1

L1

R6

R8
100R

IC3C

2200uH

12

2x 1N4148

11

R11
6

100n
R13

2n2

IC4B

R15
100k

R14
10k

C10

C11
2n2

R18

C8
100n

R12
100k

K1

100n

100n

IOREF
RESET
3V3
5V
GND
GND
VIN

C7

C12

IC3D

IC4C

K2

100n

2n2

10

C5

C9
8

10

100n
C4

BF545B
D2

R9
10k

8
7
6
5
4
3
2
1

5V

C6

6
ANT
D1

C18

IC3 = 74HC4066

13

L2

GND

100n

C17

2n2

R7
100R

470R

IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0

IC4

10

C19
8
7
6
5
4
3
2
1

C16

100uH

K5

14

IC3

10k

4k7

100n

VDD VDDO
R1

R5
100R

10

4k7

C1
4u7 16V

share

R16
13
12

IC4D

14

IC4A

C14
100n
1
2
3
4
5
6

R17
100k

10k

learn

C13
100n

K4
AD0
AD1
AD2
AD3
AD4
AD5

150515 - 11

Bild 4. Schaltplan des neuen SDR-Empfngers.

sie direkt auf den linken und den rechten Kanal eines Soundkarten-Eingangs.
Der Rest wird dann per Software erledigt.
Ein einfacher Mischer wrde den Bereich

unterhalb und oberhalb der Oszillatorfrequenz in denselben Bereich mischen.


Es gbe also ein Spiegelfrequenz-Problem. Durch die doppelte Mischung mit

einer Phasenverschiebung kann jedoch


die Software die Spiegelfrequenz herausrechnen. So kann ein Bereich zwischen
24kHz und +24kHz empfangen wer-

Stckliste
Widerstnde:
R1,R2,R13,R18 = 4k7, 1%/100 mW, SMD
0603
R3,R4 = 330 , 1%/100 mW, SMD 0603
R5,R7,R8 = 100 , 1%/100 mW, SMD 0603
R6 = 470 , 1%/100 mW, SMD 0603
R9,R11,R14,R16 = 10 k, 1%/100 mW, SMD
0603
R10,R12,R15,R17 = 100 k, 100 mW, SMD 0603

Auerdem:
K1 = Stereo-Klinkenbuchse 3,5mm fr
Platinenmontage
K2,K3,K4,K5 = 1 Satz Steckverbinder, Arduino-kompatibel (16 Pins, 28 Pins, 110 Pins)

X1 = 25-MHz-Quarz (Abracon ABM7)


Platine 150515-1
Oder
Platine mit vormontierten SMDs: 150515-91

Kondensatoren:
C1,C18 = 47/16V, SMD case B
C2,C3,C6,C7,C8,C9,C12,C13,C14,C15,C16,C17
,C19 = 100n/50V, X7R, SMD0603
C4,C5,C10,C11 = 2n2/50 V, X7R, SMD0603

Induktivitten:
L1 = 2200 H (Fastron L-1812AF)
L2 = 100 H (Murata LQH32CN101K23L)

Halbleiter:
D1,D2 = 1N4148WS, SOD-323
T1 = BF545B, SOT-23
IC1 = SI5351A-B-GT, MSOP-10
IC2 = SN74AC74PW, TSSOP-14
IC3 = 74HC4066, SOIC-14
IC4 = TI914IDT, SOIC-14

82

Juli/August 2016

www.elektormagazine.de

Bild 5. Die doppelseitige Platine fr den SDR3-Empfnger ist als Arduino-Shield ausgefhrt.

labor-projekt
den, wenn die Soundkarte eine Abtastrate von 48kHz hat. Bild 3 zeigt, was
ein Programm wie SDR# daraus macht
(siehe auch Textkasten SDR-Software).

Schaltplan
Ein Blick auf den Schaltplan in Bild 4 zeigt
die einzelnen Baugruppen. Der PLL-Generator SI5351 (IC1) liefert das Oszillatorsignal mit der vierfachen Empfangsfrequenz an den Teiler 74AC74 (IC2B).
Dieser teilt die Frequenz durch vier und
liefert die um 90Grad phasenverschobenen Signale an den Mischer 74HC4066
(IC3). Dieser Analogschalter ist wie ein
Umschalter verdrahtet und legt das HF-Signal abwechselnd an den invertierenden und den nicht-invertierenden Eingang des Operationsverstrkers TS914
(IC4B/IC4D). Damit wird das Signal in
den NF-Bereich heruntergemischt. Nach
einer geringen Filterung und Verstrkung
(IC4C/IC4A) gelangt das Signal an den
Audio-Ausgang. Die HF-Eingangsstufe
bildet ein Source-Folger mit dem JFET
BF545B (T1), das SMD-quivalent des
BF245B.
Wer den alten Elektor-SDR kennt, sieht
eine gewisse Vereinfachung im Signalzweig. Am HF-Eingang gab es damals
mehrere umschaltbare Tiefpassfilter. Jetzt
ist der Eingang breitbandig und mit zwei
Dioden gegen berspannung geschtzt.
Das reicht fr den Kurzwellenempfang
mit einer Drahtantenne vllig aus. Der
berspannungsschutz ist der Erfahrung
mit dem ersten SDR geschuldet; bei
einem Gewitter knnen die Eingangsstufen beschdigt werden. Fr besondere
Aufgaben kann man noch externe Filter
und Vorverstrker verwenden. Und die
NF-Verstrkung konnte beim alten Entwurf in drei Stufen eingestellt werden.
Diesmal gibt es nur die mittlere Verstrkung, die sich als allgemein ntzlich erwiesen hat. So ist alles etwas
einfacher geworden und passt nun
problemlos auf das Shield.
Fr die ersten Versuche muss
man einfach nur eine Drahtantenne anschlieen. Ideal ist ein frei
abgespannter Antennendraht mit
einer Lnge ab drei Metern. Wenn
das nicht mglich ist, bringt auch
schon ein lngerer Draht etwas, der
einfach nur irgendwie im Zimmer liegt.
Allerdings zeigen Innenantennen meist
einen schlechteren Strabstand. Der
Bau optimierter Antennen wird noch ein
Thema in Elektor sein.

leser-projekt

Aufbau
Die Platine (Bild 5) ist als Arduino-Shield
ausgefhrt, so dass man sie direkt auf
einen Arduino Uno stecken kann. Da der
Si5351 nur in einem sehr kleinen 10-poligen SMD-Gehuse erhltlich ist, haben
wir uns entschlossen die ganze Schaltung mit SMDs aufzubauen und die Platine bestckt im Elektor-Shop anzubieten [3]. Man braucht nur noch die vier
Arduino-kompatiblen Steckverbinder auf
die Platine zu lten. Wer die Platine lieber
komplett selbst aufbauen mchte, kann
von [3] das Platinen-Layout downloaden oder eine separate Platine im Elektor-Shop kaufen.

Frequenz einstellen
Der Arduino dient hier zusammen mit
dem SDR-Shield als Interface zwischen
Antenne und PC. Seine Aufgabe besteht
allein darin, den VFO abzustimmen. Und
dazu sagt ihm ein PC-Programm, welche Frequenz gerade gewnscht ist. Vom
PC zum Arduino gelangen Informationen
ber die USB-Leitung. Das heruntergemischte Nutzsignal geht dann zur weiteren Verarbeitung ber ein Stereokabel an
den Soundkarten-Eingang. Zwar knnte
man versuchen, auch die Bedienung auf
den Arduino zu verlagern und
vielleicht sogar eine einfache Signalverarbeitung,
aber das wren groe
Aufgaben fr ein
kleines System.
Erstmal reicht

es, wenn der Arduino Kommandos vom


PC empfngt und den VFO einstellt.
Wie man mit dem Arduino umgeht, soll
nicht Thema dieses Beitrags sein. Der
Umgang mit der Arduino-IDE wird vorausgesetzt. Denn zuerst muss ein passendes Arduino-Programm geladen werden.
Was genau in der Software passiert, wird
im Folgenden erlutert. Wer aber lieber
schnell zu den ersten Empfangsergebnissen kommen mchte, kann diese Informationen berspringen und einfach die
Software laden [3].
Die entscheidende Aufgabe besteht darin,
den SI5351 zu berreden, eine passende
Frequenz zu generieren. Das IC hat zwei
interne PLLs und drei Ausgnge (siehe
Blockschaltbild, Bild6). Verwendet wird
hier nur die PLLA und der Ausgang CLK1.
Der Sketch verwendet die Library von
Adafruit, was die ganze Sache erfreulich einfach macht. Bevor man loslegen
kann, muss die Library von [1] geladen
und eingebunden werden.
Der SI5351 hat einen Quarzoszillator
mit 25MHz und zwei PLLs, die zwischen
600MHz und 900MHz eingestellt werden
knnen. Die PLL-Teiler arbeiten mit gebrochenen Teilerverhltnissen, so dass tatschlich eine fast beliebige Auflsung mglich ist. Der folgende MultiSynth-Teiler
verwendet ebenfalls gebroc h e n e Te i l e r ve rhltnisse.

www.elektormagazine.de

Juli/August 2016

83

design

learn

VDD

XA
OSC
XB

SDA
SCL

share

VDDO

Si5351A 3-Output

PLL
A

MultiSynth
0

R0

CLK0

PLL
B

MultiSynth
1

R1

CLK1

MultiSynth
2

R2

CLK2

I2C
Interface

10-MSOP

GND

Bild 6. Blockschaltbild aus dem Datenblatt des Si5351A.

Damit hat man zwei Mglichkeiten, die


Wunschfrequenz zu erzeugen:
Man kann die PLL fest auf z.B.
900MHz einstellen und dann mit
gebrochenen Zahlen herunterteilen.
Man kann die PLL kleinschrittig einstellen und dann ganzzahlig auf die

Bild 7. Ansteuerung des Clock-Generators mit


dem Arduino-Terminal.

Endfrequenz teilen.
Hier zunchst die Methode A. Die
VFO-Frequenz liegt beim Vierfachen der
Mischerfrequenz, die 12kHz unterhalb
der Empfangsfrequenz steht. Das Programm soll die Empfangsfrequenz in kHz
im Textformat empfangen und umset-

zen. Um 3500kHz zu empfangen muss


der Si5351 eine Ausgangsfrequenz von
4(3500-12)kHz= 13952kHz am
Ausgang 1 erzeugen. Der PLL-Teiler wird
auf 36 gestellt (25MHz36= 900MHz),
der Multisynth-Teiler auf 900000/13952
= 64,506. Mit dieser Methode kommt

Listing 1. Programm fr fest eingestellte PLL.


//SI5351_vfo

PLL fixed at 900 MHz (si5351vfo2.zip)

#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <Adafruit_SI5351.h>
Adafruit_SI5351 clockgen = Adafruit_SI5351();
void setup(void)
{
Serial.begin(9600);
Serial.println("Si5351 Clockgen"); Serial.println("");

/* Initialise the sensor */


if (clockgen.begin() != ERROR_NONE)
{
Serial.print("Error");
while(1);
}
Serial.println("OK");
clockgen.enableOutputs(true);
clockgen.setupPLL(SI5351_PLL_A, 36, 0, 1000);
MHz
setfreq (6000);
}
void setfreq (unsigned long freq)
{
unsigned long f2;
unsigned long f3;
unsigned long f4;
unsigned long f5;
unsigned long div2;

84

Juli/August 2016

www.elektormagazine.de

//900

unsigned int Divider2;


unsigned int rdiv;
if (freq > 0)
{
f2=(freq-12)*4;
if (f2<1000) {
rdiv = 16;
f2 = f2 * 16;
}
else {
rdiv = 1;
}
div2 = 900000000/f2;
f4 = div2/1000;
f5=div2-(f4*1000);
clockgen.setupMultisynth(1, SI5351_PLL_A, f4, f5,
1000);
if (rdiv == 16) {
clockgen.setupRdiv(1, SI5351_R_DIV_16);
}
if (rdiv == 1) {
clockgen.setupRdiv(1, SI5351_R_DIV_1);
}
}
}
void loop(void)
{
unsigned long freq;
if (Serial.available()) {
freq = Serial.parseInt();
setfreq (freq);
}
}

labor-projekt
man runter bis 1MHz. Fr noch kleinere Frequenzen wird der zustzliche
R_DIV-Teiler durch 16 eingesetzt. Listing1 zeigt die zugehrige Software fr
den Arduino, Bild7 die Ansteuerung mit
dem Arduino-Terminal.
Die Methode A hat den Vorteil, dass der
VFO quasi kontinuierlich abgestimmt werden kann, d.h. es gibt keine Unterbrechung bei einem Frequenzwechsel.
Die Methode B verspricht dagegen eine
grere Phasenreinheit, die auch fr DRM
ausreicht. Allerdings wird jeder Frequenzwechsel mit einer kurzen Unterbrechung
von etwa einer Millisekunde begleitet,
die als Strsignal im SDR erscheint. Die
Methode erfordert eine Berechnung des
optimalen Nachteilers (Listing2), damit
die PLL immer im Bereich 600MHz bis
900MHz bleibt.
Beide Programme knnen aus einem
beliebigen Terminal heraus angesteuert
werden. Fr eine bequemere Bedienung
wurde jedoch in Visual Studio 2015 ein
VB-Programm geschrieben (SDRshield.
zip, Download unter [3]). Es sendet die
Wunschfrequenz mit 9600 Baud im Textformat (z.B. 3500) an den Arduino. Der
Schieberegler (siehe Bild8) verwendet
im Bereich bis 1,6MHz Schritte von 9kHz
und darber das Raster 5kHz. Zustzlich
kann man eine Wunschfrequenz direkt eingeben oder mit den Bnder-Schaltflchen
auf den Anfang der einzelnen Rundfunkoder Amateurfunkbnder klicken. Achten
Sie darauf, dass beim ersten Gebrauch der
richtige COM-Port gewhlt wird.

SDR-Software
Hier ein berblick der verwendbaren
SDR-Software. Praktisch alle Programme,
die mit dem alten Elektor-SDR verwendet
wurden, funktionieren auch jetzt noch.
SDRadio ist immer noch eine gute
Wahl
SoDoRa kann auch DRM dekodieren
DREAM funktioniert noch, verwendet aber nicht das IQ-Signal und
nutzt den Empfnger wie einen
Direktmischer
HDSDR ist eine aktuelle und sehr
mchtige Software
SDRSharp (SDR#) zeichnet sich
durch einfache Bedienung und gute
Darstellung aus
In einem weiteren Artikel werden wir die
einzelnen Programme und ihre Mglichkeiten detailliert besprechen.

leser-projekt

Bild 8. Ein kleines VB-Programm sorgt fr eine bequeme Bedienung.

Erste Empfangserfahrungen
Wenn keine bessere Antenne in Reichweite ist, kann man fr die ersten Versuche einfach einen Draht von ein bis drei
Metern Lnge an den Antenneneingang
anschlieen. Damit empfngt man problemlos Rundfunksender auf allen Kurzwellenbndern. Die Erfahrung zeigt, dass
am Abend mehr los ist als am Tage. Und
der Schwerpunkt wandert am Abend hin
zu den tieferen Bndern 75m bis 41m.
Auch Amateurfunkstationen lassen sich

bereits mit einer kurzen Drahtantenne


empfangen. Meist hat man im 40-m-Band
am meisten Glck und kann einige CWund SSB-Stationen hren. Die passende
Betriebsart whlt man in der SDR-Software aus, dazu Lautstrke, Bandbreite,
ALC-Einstellungen und vieles mehr. Oft
lsst sich mit den richtigen Einstellungen
mehr herausholen als mit einem teuren
analogen Empfnger lterer Bauart.
Eine grundlegende Eigenschaft aller schaltenden Mischer ist es, das sie auch Sig-

SDR-Software
Die aktuellen Sterne am Himmel der SDR-Software heien SDR# [4] und HDSDR
[5]. Beide Programme folgen dem neuen Trend zu immer hheren Frequenzen und
lassen sich auch mit einfachen DVBT-Dongeln betreiben. Das ist eine gute Wahl,
wenn man sich im VHF-und UHF-Bereich umsehen will. Es gibt auch Versuche,
solche Hardware unterhalb 30MHz einzusetzen. Man kann z.B. einen Up-Mischer
verwenden, der alles um 50MHz nach oben setzt. Dann hat man allerdings einen
Mehrfach-Super mit den bekannten Problemen wie zahlreiche Phantomsignale
und Nebenempfangsstellen sowie eine eingeschrnkte Dynamik. Ein SDR speziell
fr den Bereich bis 30MHz mischt jedoch nur einmal und liefert daher einen sehr
sauberen Empfang ohne Pfeifstellen.
Am PC laufen zwei Programme, nmlich das Abstimm-Programm und die SDRSoftware. Jedes SDR-Programm hat seine eigene Bedienung. Die ersten Schritte
sind aber immer hnlich. Zuerst muss man sicherstellen, dass der richtige
Eingang verwendet wird. Dazu muss die Soundkarte gewhlt werden, und deren
verwendeter Eingang (Line In) aktiviert werden. Dann startet man die SDRSoftware. Dass man den richtigen Eingang ausgewhlt hat, sieht man an einem
deutlichen Anstieg des Grundrauschens, das mit dem Anschluss der Antenne noch
einmal deutlich ansteigen sollte. Meist mssen die Soundkarten-Regler auf eine
reduzierte Lautstrke eingestellt werden, weil der Empfnger Signale bis zu einem
Volt liefern kann.

www.elektormagazine.de

Juli/August 2016

85

design

learn

share

Listing 2. Programm fr variable PLL.


Divider2 = 18;

//SI5351_vfo, variable PLL (si5351vfo3.zip)


}
#include <Adafruit_Sensor.h>

if (f2 < 45000) {

#include <Wire.h>

#include <Adafruit_SI5351.h>

if (f2 < 30000) {

Adafruit_SI5351 clockgen = Adafruit_SI5351();

Divider2 = 20;

Divider2 = 30;
void setup(void)

if (f2 < 20000) {


Divider2 = 45;

Serial.begin(9600);

if (f2 < 15000) {

Serial.println("Si5351 VFO"); Serial.println("");

Divider2 = 60;
}

if (clockgen.begin() != ERROR_NONE)

if (f2 < 10000) {

Divider2 = 90;

Serial.print("Error");

while(1);

if (f2 < 6000) {

Divider2 = 150;

Serial.println("OK");

clockgen.enableOutputs(true);

if (f2 < 4000) {

setfreq (6000);

Divider2 = 220;

}
if (f2 < 2700) {

void setfreq (unsigned long freq)

Divider2 = 330;

unsigned long f2;

if (f2 < 1800) {

unsigned long f3;

Divider2 = 500;

unsigned long f4;

unsigned long f5;

if (f2 < 1500) {

unsigned int Divider2;

Divider2 = 600;

unsigned int rdiv;

}
if (f2 < 1000) {

if (freq > 0)

Divider2 = 900;

f2=(freq-12)*4;

f2=f2*Divider2;

// f2=freq;

f2=f2*1000/25;

if (f2>120000) {

f3=f2 /1000;

f2=120000;

f4 = f3/1000;

f5=f3-(f4*1000);

if (f2<800) {

clockgen.setupPLL(SI5351_PLL_A, f4, f5, 1000);

rdiv = 16;
f2 = f2 * 16;
}
else

clockgen.setupMultisynth(1, SI5351_PLL_A, Divider2,


0, 2);
if (rdiv == 16) {

clockgen.setupRdiv(1, SI5351_R_DIV_16);

clockgen.setupRdiv(1, SI5351_R_DIV_1);

rdiv = 1;
}
if (f2 >= 100000) {

}
}

Divider2 = 6;
}

void loop(void)

if (f2 < 90000) {

{
unsigned long freq;

Divider2 = 10;

if (Serial.available()) {

freq = Serial.parseInt();

if (f2 < 60000) {

setfreq (freq);

Divider2 = 15;
}

if (f2 < 50000) {

86

Juli/August 2016

www.elektormagazine.de

labor-projekt
nale auf ungeraden Vielfachen der
Grundfrequenz heruntermischen. Wenn man ein Signal bei 1MHz empfangen
mchte, knnten Signale auf
3MHz, 5MHz, 7MHz usw.
den Empfang stren. Aus
diesem Grunde verwendet man oft umschaltbare
Tiefpassfilter. Das SDRShield verzichtet darauf,
sodass der Einsatz selektiver Antennen sinnvoll
ist. Trotzdem funktioniert es auch mit einer
breitbandigen Drahtantenne erstaunlich gut.
Das liegt daran, dass
zu bestimmten Tageszeiten starke Signale auf
unterschiedlichen Bndern dominieren und
sich deshalb nicht in die
Quere kommen. Eine Ausnahme ist der
Empfang auf Lang- und Mittelwelle, der
durch Signale aus dem Kurzwellenbereich
beeintrchtigt wird. Aber man kann einfach eine Ferritantenne mit einem Drehkondensator anschlieen, dann ist das
Problem beseitigt.
Das Thema Antennen, Filter und Vorverstrker soll noch genauer behandelt werden. Dabei geht es nicht nur um mglichst
groe Signalspannungen, sondern besonders um den erreichbaren Strabstand. Es
geht nichts ber eine mglichst weit weg
vom Haus aufgehngte, lange Drahtantenne. Aber weil das nicht berall mglich ist, muss man nach Kompromissen
suchen. Und da gehrt die magnetische
Loop-Antenne zu den klaren Gewinnern.
So lassen sich relativ kleine und unauffllige Antennen auch in Innenrumen
betreiben. Aber dazu spter mehr.
Bei den ersten Versuchen mit diesem
Empfnger wird vermutlich eine Frage
besonders interessieren: Sollte nicht der
Arduino selbst Empfangsstrungen verursachen? Immerhin ist er ja ganz nah
dabei. Beim Entwurf der Platine wurde
groe Aufmerksamkeit auf eine gute Entkopplung gelegt. Es gibt eine durchgehende Masseflche auf der Unterseite der
Platine; die Betriebsspannungen 5V und
3,3V werden ber LC-Filter entkoppelt.
Und tatschlich waren diese Manahmen
sehr erfolgreich. Im Normalfall merkt man
nichts vom Arduino.

leser-projekt
breite FM-Modulation und eine weitere
Verstimmung, die zeigt dass der
Resonator eine gewisse Temperaturabhngigkeit hat. Da musste
erst ein SDR her, um dem Arduino
einmal so genau auf den Zahn zu
fhlen!

Arduino belauscht
Aber wenigstens den Taktoszillator bei
16MHz sollte man doch empfangen
knnen. Das geht tatschlich schon, wenn
man berhaupt keine Antenne anschliet.
Das Shield kann dann gleich mal seine
Fhigkeiten als Messgert zeigen. Tatschlich findet man gleich zwei Oszillatoren. Der eine ist der 16-MHz-Quarzoszillator am USB-Chip des Uno mit einer
Abweichung unter 1kHz. Wenn man
von unten die Uno-Platine an der Stelle
berhrt, wo der Quarz eingeltet ist, gibt
es eine kleine Verstimmung. Dann wei
man, dass es das besagte Signal war. Mit
einem Stckchen Draht am Antenneneingang wird das Signal strker, aber auch
das Grundrauschen. Und bei der Gelegenheit sieht man noch eine Besonderheit.
Signale, die ber den Antenneneingang
reinkommen, haben eine gute Spiegelfrequenzunterdrckung. Aber bei Signalen,
die sich ber die Betriebsspannung in den
Signalweg schleichen, ist das anders. Sie
erscheinen doppelt, wenn auch wesentlich schwcher.
Das Taktsignal des Mega328 muss man
erstmal suchen. Er arbeitet nmlich mit
einem Keramik-Oszillator, der Abweichungen bis 50kHz zeigen kann. Und tatschlich, bei 15950kHz war ein schwaches
Signal zu finden, gleich mit einigen Seitenbandsignalen, die der Controller beisteuert. Und wenn man die Arduino-Platine an der Stelle des Keramik-Resonators berhrt, gibt es zustzlich noch eine

Wenn keine Antenne angeschlossen ist, dreht ein SDR im Normalfall seine Verstrkung so weit
auf, dass auch kleinste Strsignale sichtbar werden. Dann sieht
man vor allem um die Mittenfrequenz herum schwache Strungen, die vom USB und vom
Arduino erzeugt werden. Wenn
man unterscheiden mchte,
welche Signale von Arduino
und welche vom USB kommen,
kann man einmal ein Netzteil
an den Arduino anschlieen und
nach der Abstimmung auf eine
Wunschfrequenz im laufenden Betrieb das
USB-Kabel abziehen.
Alle internen Strsignale sind sehr
schwach. Sobald eine Antenne angeschlossen wird, steigt das Grundrauschen
soweit an, dass diese Strungen vllig
berdeckt werden. Das zeigt die hohe
Empfindlichkeit des SDR. Auch Signale
mit nur einem Mikrovolt knnen empfangen werden. Meist ist so viel Empfindlichkeit aber gar nicht ntig, weil der
Rauschpegel an der Antenne wesentlich
hher liegt. Bei langen Antennen kann es
sogar zu einer bersteuerung des Empfngers kommen. Dann muss man bereits
ber einen Eingangs-Abschwcher nachdenken.
(150515)

Weblinks
[1] www.elektormagazine.de/070039
[2] https://github.com/adafruit/
Adafruit_Si5351_Library
[3] www.elektormagazine.de/150515
[4] http://airspy.com/download
[5] http://www.hdsdr.de

www.elektormagazine.de

Juli/August 2016

87

design

learn

share

Skip!

Drahtlose Next Track-Taste fr den Media-Player


Von Luc Lemmens (Elektor-Labor)

Es ist immer schn und lehrreich, wenn


man ein vergangenes (Elektor-)
Projekt mit einer tollen und
interessanten Idee zu einer neuen
Anwendung kombinieren kann.
Hier nutzen wir den Sender
aus dem Drahtlosen Quiz
zusammen mit der cleveren
Hoodloader-Software fr den
Arduino, um mit einer Taste
einen Media-Player auf dem PC
fernzusteuern.
Bild 1. Skip! Die dicke Not-Aus-Taste steuert den
Media-Player.

Zu Hause haben wir alle unsere Audio-CDs auf ein NAS


gerippt und lassen die meiste Zeit den Windows Media Player
oder den VLC-Player (wir sind uns immer noch nicht einig, welcher der beste ist) die Songs in zuflliger Reihenfolge abspielen,
um Hintergrundmusik in unserer Werkstatt zu haben. Aber bei
der riesigen Auswahl an Knstlern und verschiedenen Musikstilen kommt es vor, dass manchmal ein Song zur falschen
Zeit gespielt wird. Das nervt, und man versprt den Drang,
sofort zum Computer zu strzen und den Song zu berspringen. Natrlich ist dies nicht immer einfach oder mglich, wenn
man etwa gerade mit etwas beschftigt ist. Und erreicht man
dann endlich die Next Track-Taste am Computer, ist das Stck
zu Ende und die Mhe war vergebens. Eine Fernbedienung
wre eine Option, aber solche Dinger haben die Angewohnheit, im entscheidenden Augenblick nicht auffindbar zu sein.
Und wenn man sie doch aufsprt, drckt man in der Hektik
den falschen Knopf.

Arduino drahtlos
Wir haben eine Lsung fr dieses Problem gefunden, und zwar
in Form einer Not-Aus-Taste (Bild1), wie man sie von industriellen Anlagen her kennt. Auf dem Flohmarkt haben wir die
Taste, die man anders als eine gewhnliche Fernbedienung
schwerlich bersehen kann, fr einen schlappen Euro erworben
(ok, wenn man sie aus dem Katalog kauft, sind diese Tasten
wirklich teuer). Die Taste habe ich zunchst mit einem kleinen ATtiny85-Board ausgestattet, das den Tastendruck in den
USB-HID-Media-Control-Code fr das Anspringen des nchsten Titels bersetzt.

88

Juli/August 2016

www.elektormagazine.de

Doch dann gab es immer noch


dieses lange und umstndliche
Kabel zwischen der Taste und dem PC. So
wartete ich auf die Zeit, die Stimmung und die
Inspiration fr den Entwurf einer praktischeren drahtlosen
Verbindung. Die Inspiration kam, als ich im Elektor-Labor mit
dem Projekt Drahtloses Quiz [1] im Elektor-Labor beschftigt war und an dessen batteriebetriebener Senderplatine mit
dem nRF24L01-Funkmodul und seinen einfach zu handhabbaren Arduino-Bibliotheken arbeitete.
Kurzerhand habe ich fr den Sender die dicke rote Taste samt
Schaltung aus dem Drahtlosen Quiz 1:1 bernommen. Weder
an der Hard- noch an der Software gibt es irgendwelche nderungen. Der Sender macht nichts anderes, als den Textstring
RED ber eine sogenannte Pipe (einen digitalen Kanal des
nRF24L01) zu senden, wenn der groe rote Knopf gedrckt
wird. Dann kehrt der Controller in einen batterieschonenden
Sleep-Modus zurck.
Der Empfnger hrt diesen Kanal ab und startet nach dem Empfang eines Zeichens R eine Aktion. Das einzige, was fehlte,
war die Verbindung zwischen dem nRF24L01-Empfnger und
einem USB-HID (human interface device), um die Media-Player-Software anzuweisen, zum nchsten Titel zu springen.
Etwa zur gleichen Zeit entdeckte ich Nico Hoods Arduino-Projekt Hoodloader im Internet. Es schien mir geeignet, damit
zu experimentieren und fr die drahtlose SKIP!-Taste einzusetzen. In einer ersten Experimentierversion habe ich einen
Arduino Uno mit einem ELPB-NG-basierten Prototyping-Shield
kombiniert. Nicht die kleinste und eleganteste Lsung, aber es
hat Spa gemacht, es zu bauen und ein Verwendungszweck fr
einen Arduino Uno, der sonst nur im Labor verstauben wrde,
war auch gefunden.

labor-projekt

leser-projekt

Das zweite Herz


+3V3

USB

ARDUINO
ARDUINO
UNO
UNO

SCL
SDA
AREF
AREF
13
13

RESET
RESET
3.3V
5V
GND
VIN

AN1
AN1

AN4
AN4
AN5
AN5

ANALOG IN

AN3
AN3

8
7

~6
~5

AN0
AN0
AN2
AN2

~ 1111
~ 1010
~9
DIGITAL (PWM ~) )

GND

12
12

~3

SCK
MISO

MOSI

K5
MOD1
nRF24L01+

CSN
CE

R1
1k

GND
GND

NC
IOREF

POWER

ber den Arduino Uno brauche ich Ihnen nichts zu erzhlen.


Sie wissen, dass es nach seiner Markteinfhrung im Jahre 2005
zahlreiche Nachfolger und Verbesserungen gegeben hat, aber
das ursprngliche Konzept besitzt einen USB-Anschluss, der
eigentlich nur fr die Programmierung, Stromversorgung und
die UART-Verbindung zu einem Computer gedacht war, nicht
fr echte USB-basierte Anwendungen. Nur wenige Menschen
wissen, dass es nun einen zweiten Mikrocontroller auf dem
Board gibt, der in erster Linie als UART-USB-Brcke zwischen
dem ATmega328 (und seinem Bootloader) und dem Windows/
Linux/Apple-Computer dient.
Dieser Chip, bei den meisten Arduino Unos ein ATmega16U2
kann ebenfalls mit speziellen Hilfsprogrammen wie Atmels
Flip ber USB programmiert werden und verfgt sogar ber
einen eigenen On-Board-ISP-Verbinder, ber den seine Firmware
geflasht werden kann. Es gab bereits andere Firmware-Versionen fr diesen Chip, um dem Uno USB- (meist HID-)Funktionalitt zu verleihen, aber der Nachteil war, dass der Benutzer
immer erst zur originalen Seriell-USB-Firmware zurckkehren
musste, um in der Lage zu sein, einen Sketch ber die Arduino-IDE zum 328 zu bertragen.
Nico Hood entwickelte den Hoodloader, einen speziellen Bootloader fr den 16U2, der einen USB-Stack enthlt und auch zum
normalen Arduino-Modus umschalten kann. Kurz und einfach
gesagt, verwandelt der Hoodloader einen originalen Arduino
Uno in ein Board mit zwei unabhngigen Mikrocontrollern, die
beide mit der gleichen IDE programmiert werden knnen.
Der ATmega328 arbeitet als (normaler) I/O-Mikrocontroller,
whrend der ATmega16U2 die USB-Funktionalitt enthlt. Beide
laufen mit ihren eigenen Sketches mit der einzig mglichen
Interaktion ber die zweidrahtige UART-Verbindung zwischen
ihnen. Das hrt sich gut an und leicht, aber ich muss zugeben,
dass es mir etwas Kopfzerbrechen bereitet hat, herauszufinden,
wie man mit diesem erweiterten Arduino Uno in der Arduino
IDE umzugehen hat. Darber hinaus musste ich eine Art Protokoll implementieren, um die Sketches beider Mikrocontroller
miteinander kommunizieren zu lassen.
Der Sketch des ATmega328 hrt auf einen nRF24L01-Empfnger und sendet einfach ein Byte ber die serielle On-Board-Verbindung zum 16U2, wenn ein gltiges Signal von der Wireless-Taste empfangen wird. Der 16U2 seinerseits lauscht an seinem seriellen Eingang und sendet das Next Track-USB-Paket
zum Computer beziehungsweise zu der Media-Player-Software.
ber das Hoodloader-Projekt gibt viel mehr zu erzhlen als fr
diese einfache Anwendung erforderlich. Aber es ist der richtige
Einstieg in die Materie. Fr weitere Informationen besuchen
Sie bitte die Github-Seite [2].

2
TX 11
TX

LED1

C1

RX 00
RX
100u
50V

150650 - 12

Bild 2. Ein paar Bauteile auf der ELPB-NG-Experimentierplatine als ArduinoShield.

ist doch viel zu sperrig (wie Bild3 beweist) und es ist absolut
bertrieben, zwei Prozessoren fr eine solch simple Anwendung
zu nutzen. Der ATmega16U2 ist aber in der Lage, den nRF24L01
im Alleingang und ohne Hilfestellung des ATmega328 zu steuern. Die 16U2-SPI-Pins sind sogar auf einem ISP-Header auf
der Arduino-Platine zugnglich und einige zustzliche I/O-Pins
sind mit Ltpads gleich neben diesem Anschluss verbunden.
Da der 16U2 die gewnschten Aufgaben (unter Umstnden)
auch alleine schafft, habe ich eine kleine Platine fr den Controller und den nRF24L01 entworfen, die in ein bliches USBStick-Gehuse passt.
Die Schaltung in Bild4 hat verblffende hnlichkeit mit den
entsprechenden Teilen der Arduino-Uno-Schaltung (never
change a winning team): die USB-Schnittstelle, der Prozessor
mit Oszillator, EMC- (L1), berstrom- (F1) und ESD-Schutz
(D1, D2). Die Stromversorgung wird von der USB-Schnittstelle bernommen, +5V ist mit UVCC des Controllers ver-

Klein und bescheiden


Der Hardware-Aufwand fr den Arduino-basierten Empfnger
ist recht gering, wie man in Bild2 und der Stckliste sehen
kann. Auf einer ELPB-NG-Experimentierplatine sind die Steckverbinder und die drei Bauteile in wenigen Minuten bestckt.
Nur noch die Sketches von der Elektor-Projektseite [3] herunterladen, per Arduino-IDE auf das Board bertragen und schon
ist der Empfnger der Skip!-Taste fertig.
Bisher war alles eine schne bung, um mit dem Hoodloader
zu spielen und USB-HID-Gerte ohne umfangreiche Programmierung zu verwirklichen. Aber Hand aufs Herz, diese Lsung

Bild 3. Der Arduino Uno mit aufgestecktem Shield:


funktional, aber sperrig.

www.elektormagazine.de

Juli/August 2016

89

design

learn

share

R1
UCAP
24
F1

K1
USB-A
D
D+
GND

R3
22R

1
2

PB7
PB6

RESET

PB5

IC1

UVCC

PB4
PB3/MISO

30

PB2/MOSI
D

PB1/SCLK
PB0

R4
22R

32

VCC AVCC

500mA

+5V

31

D2

29

D1

2x
PGB1010604

26
25
23
22

L1

ATMEGA16U2
D+

PD7
PD6

PC2

PD5
PD4

PC4

PD3

PC5

PD2

PC6

PD1

PC7

PD0

C1

C2

1u

100n

21

RESET

20
19
18

MOD1

17
16

15
14

12
11
10
9
8
7
6

R2

GND XTAL1 XTAL2 UGND


3
S1

BLM21

C3
22p

X1

16MHz

28
LED1

C4

C5
10u
16V

22p
150650 - 11

Bild 4. Die Schaltung der USB-Stick-Platine entspricht dem ArduinoOriginal.

bunden. Es ist kein zustzlicher Spannungsregler erforderlich,


da der 16U2 ber einen internen 3,3-V-Regler verfgt. Der
Ausgang dieses internen Reglers (UCAP) ist mit den VCC- und
AVCC-Eingangspins verbunden, auerdem bezieht der nRF24L01

Stckliste USB-Stick-Empfnger
Widerstnde:
R1 = 10k, 100mW, 0603
R2 = 220, 100mW, 0603
R3,R4 = 22, 100mW, 0603
Kondensatoren:
C1 = 1, 25V, 0603
C2 = 100n, 16V, 0603
C3.C4 = 22p, 50V, 0603 (C0G/
NP0)
C5 = 10, 16V, 1206
Induktivitten:
L1 = Ferrit (0,4, 200mA,
Murata BLM21BD102SN1D)
Halbleiter:
LED1 = LED rot, 3mm

D1,D2 = ESD-Suppressordiode
(Littelfuse PGB1010603MR)
IC1 = ATmega16U2-AU
Auerdem:
F1 = Rcksetzende PTCSicherung 500mA, 15V
(Bourns MF-MSMF050-2)
X1 = Quarz 16MHz, 5x3,2mm
K1 = USB-A 2.0, gewinkelt
(SMD)
S1 = optionale Reset-Taste
MOD1 = NRF24L01+ 2.4GHz
Wireless-Transceiver-Modul
(150499-91)
USB-Stick-Gehuse (Strabubox
USB1SW)
Platine 150650-1 v1.0

Bild 5. Die kleine Platine des Empfnger-Boards.

90

Juli/August 2016

www.elektormagazine.de

Bild 6. Der Quarz des Funkmoduls wechselt die Fronten...

13

220R

10k

27

daraus seine 3,3-V-Versorgungsspannung. Beachten Sie den


10-F-Kondensator C5 an der Stromversorgung des Funkmoduls. Er ist unbedingt notwendig, um einen ordnungsgemen
Betrieb zu gewhrleisten.
Mit dem aktuellen Sketch blinkt LED1 dreimal beim Einschalten
und zeigt damit an, dass die Applikation luft, dann jeweils
einmal, wenn ein gltiger Skip!-Befehl vom Sender eintrifft.
Das ist alles, was wir zur Steuerung des Media-Players bentigen. Die Lsung ist deutlich eleganter als ein nRF24L01 auf
einem Prototyping-Shield, aufgesteckt auf einem Arduino-Board.
Wenn Sie den Bausatz (siehe Kasten) erwerben, ist die Hoodloader-Firmware schon im ATmega16U2 programmiert. Wir
brauchen fr eine funktionsfhige Skip!-Taste nur noch ein
paar Zeilen Code in einem Arduino-Sketch.
Vergessen Sie nicht das ursprngliche Ziel dieses Projekts:
eine groe Taste, die nicht bersehen werden kann, um zum
nchsten Musiktitel zu springen. Aber der Sketch kann gendert
werden, um eine erweiterte Steuerung fr den Media-Player
zu realisieren. Zum Beispiel um einen anderen Befehl wie Mute
oder Pause ausfhren, wenn die Taste lnger als - sagen wir
eine Sekunde gedrckt wird. Aber machen Sie doch, was Sie
wollen! Und wenn Sie mit dem kleinen 16U2-Board ein anderes Wireless-USB-HID-Gert entwickelt haben, berichten Sie
auf elektormagazine.de/labs davon...

Programmierung des Hoodloaders


Wenn Sie das 16U2-Board (Bild5) von Grund auf neu bauen,
werden Sie wahrscheinlich einen fabrikneuen 16U2-Controller
verwenden, der werksseitig schon mit einem Bootloader ausgestattet ist. Diese Firmware erlaubt dem Anwender, mit einem
PC-Programmiertool wie Atmel Flip eine eigene Anwendung
ber den USB-Anschluss zu programmieren. Dann steht man
aber vor dem Problem, den Hoodloader im Controller unterbringen zu mssen. Das gleiche Problem taucht auf, wenn es
ein wichtiges Update des Hoodloaders gibt oder Sie aus irgendeinem anderen Grund eine neue Firmware auf den Controller
spielen wollen.
Leider ist es nicht mglich, zur (Neu-)Programmierung der Firmware die USB-Schnittstelle des 16U2 zu verwenden. Dazu ist ein
paralleler Programmer mit einer 32-Pin-ZIF-Fassung vonnten
(den Sie wahrscheinlich nicht haben) oder ein AVRISP-artiger
Programmer, der viel preiswerter ist und wahrscheinlich in
vielen (Heim-)Labors vorhanden ist. Allerdings war auf dem
winzigen USB-Stick-Board kein Platz fr einen gewhnlichen
sechspoligen AVRISP-Verbinder, diese Aufgabe bernimmt der
Empfangsmodul-Anschluss MOD1, auf dem alle notwendigen
Signale vorhanden sind mit Ausnahme der RESET-Leitung. Deshalb habe ich einen zustzlichen Reset-Anschluss direkt neben

labor-projekt

leser-projekt
Oberseite der 16U2-Platine, so dass der Quarz auf der Oberflche des Controllerboards liegt. Achten Sie darauf, dass die
beiden Platinen parallel ausgerichtet sind und sich so nah beieinander wie mglich befinden, bevor Sie den Verbinder MOD1
anlten. Verwenden Sie einen kleinen scharfen Seitenschneider, um so viel Material wie mglich von den Pins von MOD1
zu entfernen. Dann setzen Sie die bestckte Leiterplatte in das
Strapubox-Gehuse. Bild7 zeigt, dass es passt!
(150650)

Bild 7. ... damit alles in das USB-Stick-Gehuse passt.

Weblinks
dem MOD1-Verbinder platziert. Sie knnen zur Programmierung statt des acht- einen zehnpoligen Verbinder einsetzen,
das Board mit einer Experimentierplatine verbinden und von
dort die Kabelverbindung zum AVRISP-Programmer aufnehmen.
Vergessen Sie nicht, die richtigen Fuse-Einstellungen zu verwenden! Die HoodLoader2-Fuses lauten: low_fuses=0xEF, high_
fuses=0xD8 (booten zum Bootloader), extended_fuses=0xFC
(kein HWBE), unlock_bits=0x3F, lock_bits=0x0F.
Die Platine ist so gestaltet, dass sie in ein Strapubox-USB1-Gehuse passt. Der zur Verfgung stehende Raum ist ein wenig
beschrnkt, so gibt es einige Dinge bei der Platinenmontage
zu beachten. Zuerst werden alle Bauteile (auer fr das Funkmodul verltet) und dann - wenn notwendig die Hoodloader-Firmware programmiert. Dazu mssen Sie einen Stiftverbinder oder einfach nur einige Stifte oder Drhte auf die Platine
lten, um einer Verbindung zu einem AVRISP-Programmierer
aufnehmen zu knnen. Denken Sie daran, dass diese Verbindungen nach der Programmierung entfernt werden mssen, um
den nRF24L01-Empfnger anzuschlieen, Stellen Sie deshalb
sicher, dass sie leicht entfernt werden knnen.
Die 5-V-Stromversorgung wird am USB-Anschluss K1 angeschlossen (verwenden Sie einfach den USB-Port Ihres Computers). Programmieren Sie die Firmware, trennen Sie das
Programmiergert, ziehen Sie den USB-Stecker und stecken
ihn wieder ein. Wenn alles gut geht, werden Sie nun sehen,
dass Windows den richtigen USB-Treiber installiert. Im Gerte-Manager erscheint der Stick als COM-Port mit dem Namen
Hoodloader oder so hnlich. Wenn nicht, berprfen Sie die
Fuse-Einstellungen und programmieren Sie den ATmega16U2
gegebenenfalls neu.
Das Board verhlt sich jetzt wie ein Arduino Uno (mit dem
Hoodloader anstelle des Standard-Bootloaders), aber ohne den
ATmega328-Mikrocontroller. Es wird von der Arduino-IDE problemlos erkannt, genau wie die ursprngliche Version mit dem
Arduino Uno. Aber jetzt muss nur ein Sketch programmiert
werden: Skip_button_6u2_only.ino (enthalten in Download
150650-11.zip [3]). Dann ziehen Sie wieder den USB-Stecker. Das Board meldet sich selbst als HID-konformes Gert
im Gerte-Manager.
Jetzt sind Hoodloader und der Sketch fr die Skip!-Taste geladen
und laufen. Trennen Sie K1 und entfernen die Verdrahtung, die
fr den Anschluss des AVRISP-Programmers notwendig waren.

Ein Quarz wechselt die Fronten


Nehmen Sie den nRF24L01-Empfnger, lten vorsichtig den
(bedrahteten) Quarz von der Oberseite der Platine und bringen
ihn auf der Unterseite des Funkmoduls an, wie es in Bild6
zu sehen ist. Montieren Sie nun die Empfngerplatine auf die

[1] Drahtloses Quiz im RGB-Stil, Elektor Jan./Feb. 2016,


www.elektormagazine.de/150499
[2] https://github.com/NicoHood/HoodLoader2
[3] www.elektormagazine.de/150650

Stckliste Sender
Widerstnde
Alle Kohlefilm, 5%, 0,25W,
250V
R1 = 10k
R2 = 6k8
Kondensatoren
C1,C2 = 100n, 50V, X7R,
RM5mm
C3 = 100, 50V, RM 3,5mm,
8x11mm
Halbleiter
IC1 = ATtiny85-20PU,
programmiert, Elektor-Shop
150499-42

Auerdem
Bt1 = Batteriehalter fr CR2032
K1 = 2x3-polige Stiftleiste
S1 = Taster mit groer Kappe,
(Sparkfun rot: COM-09181,
grn: COM-11275, blau:
COM-11274)
Platine, Elektor-Shop
150499-2 v1.0
2x4-polige Stift- und
Buchsenleiste, RM0,1 (fr
MOD1)
CR2032 Lithium-Batterie
MOD1 = 2,4 GHz WirelessTransceiver-Modul NRF24L01+
(150499-91)

Stckliste Arduino-Shield
Widerstand:
R1 = 1k
Kondensator:
C1 = 100, 50V,
Raster3,5mm, Durchmesser
8mm
Halbleiter:
LED1 = LED grn, 3mm
Auerdem:
MOD1 = NRF24L01+ 2.4GHz

Wireless-Transceiver-Modul
(150499-91)
K1 = 1x6-polige Stiftleiste,
Raster2,54mm
K,K3 = 1x8-polige Stiftleiste,
Raster2,54mm
K4 = 1x10-polige Stiftleiste,
Raster2,54mm
K5 = 2x4-polige Buchsenleiste,
Raster2,54mm
Platine 150180-1 v1.0
(ELPB-NG)

Im Elektor-Shop
Zu diesem Projekt sind folgende Produkte im Elektor-Shop
und ber die Projekt-Webseite [3] verfgbar
150650-1 Empfnger-Platine in USB-Stick-Form
150650-41 Controller Empfnger
150650-71 Bausatz: Empfnger-Platine in USB-Stick-Form, Platine
Sender (aus dem Projekt Drahtloses Quiz), alle Bauteile inklusive
Funkmodule, Gehuse
150180-1 ELPB-NG-Platine zum Bau des ersten
Empfnger-Prototypen
150499-2 Platine Sender (Drahtloses Quiz)
150499-42 Controller Sender (Drahtloses Quiz)
150499-91 Funkmodul bestckt
Software: www.elektormagazine.de/150650

www.elektormagazine.de

Juli/August 2016

91

learn

design

share

Foto-Trspion
mit Raspberry Pi

Besucher-Check ber das Smartphone


Von Luc Lemmens (Elektor-Labor)

Unerwarteter Besuch kann


herzlich willkommen sein,
doch manchmal stehen
Menschen vor der Tr, die besser
drauen bleiben sollten. Eine Sprechanlage
mit Kamera, installiert an der Haustr, hilft
angenehme und unangenehme Besucher zu
unterscheiden. Doch was ntzt Ihnen die
Anlage, wenn Sie nicht zu Hause sind? Wie
Sie mit den Personen
vor der Tr an
jedem Ort ber
Ihr Smartphone
kommunizieren
knnen und ihnen,
wenn Sie wollen,
sogar die Tr ffnen, das
beschreiben wir hier.

Die Foto-Trsprechanlage, die


wir Ihnen hier vorstellen, haben wir mit
einem Raspberry Pi, einem zugehrigen
Kamera-Modul und einem im Elektor-Labor entwickelten RPi GSM HAT-Board realisiert. Die Anlage schiet ein Foto von
jedem Besucher, der vor Ihrer Tr steht
und den Klingelknopf drckt. Das Foto
wird in einer MMS auf Ihr Smartphone
geschickt, so dass Sie den Besucher in
Augenschein nehmen knnen. Nachdem
Sie dies getan haben, knnen Sie Ihre
Trsprechanlage anrufen. Die Anlage
reagiert darauf, indem sie Mikrofon und
Lautsprecher einschaltet, damit Sie mit
dem Besucher sprechen knnen. Sie knnen an die Anlage eine SMS mit einem
Passwort schicken. Wenn das Passwort
korrekt ist und die Mobilfunknummer des
SMS-Absenders mit Ihrer hinterlegten
Mobilfunknummer bereinstimmt, wird

92

Juli/August 2016

www.elektormagazine.de

der elektrische Trffner bedient.


Unsere Foto-Trsprechanlage erweist
nicht nur dann ihren Nutzen, wenn zwischen Ihnen und Ihrer Wohnung weite
Distanzen liegen. Auch wenn Sie zu Hause
sind, aber vielleicht gerade Krperpflege
in der Badewanne betreiben, mssen Sie
sich nicht erst bekleiden. Vielleicht mchten Sie fr den Besucher, der gerade vor
der Tr steht, auch lieber nicht zu Hause
sein...
Grundlage des Projekts war ursprnglich
das GSM Breakout Board [1], auf dem
ein GSM-Modul M95 von Quectel verbaut ist. Bei der Entwicklung dieses BoB
hatten wir zwar schon das Projekt einer
Smartphone-Trsprechanlage angedacht,
doch das Board ist fr diesen Zweck nicht
mageschneidert. Deshalb hat das Elektor-Labor ein neues HAT-Board fr den
Raspberry Pi entworfen, auf dem auch

zustzliche Hardware fr die Sprechanlage ihren Platz hat.

Schaltung
Der Schaltungsentwurf sttzt sich grtenteils auf das Dokument M95 Hardware Design von Quectel [2]. Die zentrale Komponente der Schaltung in Bild1
ist das GSM-Modul M95 (MOD1) mit der
Antenne (ANT1) und der SIM-Karten-Fassung (SIM1). Die Widerstnde R15...R17,
das Dioden-Array D7 und die Kondensatoren C19...C22 schtzen die SIM-Karten-Leitungen vor ESD-Einflssen. Fr
den Mikrofon-Eingang und den Audioverstrker-Ausgang des M95 haben die
Kondensatoren C6...C17 und die Dioden
D3...D6 vergleichbare Aufgaben.
Der Raspberry Pi ist ber K5 mit dem
UART des GSM-Moduls verbunden, er
steuert das Modul ber AT-Befehle.

labor-projekt

leser-projekt

Bereich 3,3...4,6V liegen. Sobald sich die


Spannung den Grenzen auf etwa 100mV
nhert, gibt das Modul ungefragt und
fortlaufend Warnmeldungen ber den
UART aus. Dadurch wird das Interpretieren erwnschter Meldungen gestrt,
auerdem kann das Modul unvermittelt
abschalten. Die Betriebsspannung ist deshalb mit dem MIC29302 (IC1) auf 4,4V

3V3

MIC29302

OUT
TAB

GND
3
C2

1000u
10V

100n

S1

Bell Button

JP1 1

LED1

POWER
R2

R3

C3

C4

C5

100n

100n

100u
16V

10

D1

R4

TXD

Door
Opener

T4

1N4148

EE2-5NU

R10
100R

R7

K2

RE2

RXD
R6
1k5

Raspberry Pi
R5

R11

2N7002

MIC1P

MIC1N

SPK1N

10

SPK1P

PWR

33p
R9

2N7002

4V4

10p

33p

PGB1010603

AGND

MIC2P

MIC2N

MIC1P

MIC1N

SPK1N

RTS

SPK1P

DCD

LOUDSPKN

RI

LOUDSPKP

VRTC

PWRKEY

10

EMOFF

11

SIM2_DATA

16

SIM2_CLK

17

SIM2_VDD

18

V+

19
TXD

RXD

SIM2_VDD

SIM2_CLK

SIM2_DATA

20

AGND

RF_ANT
SIM1_GND
SIM1_CLK

MIC2N

SIM1_DATA

MIC1P

SIM1_RST

MIC1N

SIM1_VDD

MOD1
SPK1N

RI/PCM_RST

SPK1P

DCD/SIM2_RST

LOUDSPKN

RTS

LOUDSPKP

CTS

PWRKEY

TXD

EMERG_OFF

RXD

M95
GSM Module

SIM2_CLK

DBG_TXD
DBG_RXD

SIM2_VDD

NETLIGHT
STATUS/PCM_SYNC

VDD_EXT

SIM1_VDD
2

DTR/SIM1_PRESENCE

PCM_IN
PCM_OUT

35 36 37 38 40

100n

copyright

EE2-5NU

2N7002

33p

PGB1010603
C19
R15

33p

LOUDSPKP

31
30

SIM1_CLK

29

SIM1_DATA

LOUDSPKN

C15

33p

10p

C13

C16

LS1

33p

10p

8Ohm
1W5

SIM1_RST

27

SIM1_VDD

C14

C17

26

RI

33p

10p

25

DCD

24

RTS

23

CTS

22

TXD

21

RXD

15

DTXD

14

DRXD

13
12

STAT

42

D7

41

D5

C12

28

D6

PGB1010603

4V4
LED2
NET
R12

R14

T2
NETLIGHT
2

Doorbell

T3

R13
100R

C22

39

MIC2P

SIM2_DATA

GND

32 33 34

CTS

SMA

K6

SIM1
SIM Card Holder

VRTC
MIC2P

33p
C18

22R

C8

33p

2
1

0R

C11

10p

GND

33p

100n

GND

10p

100u
16V

VBAT

C7

C26

GND

C10

MIC2N

C25

VBAT

33p

C24

VRTC

10p

C23

GND

D4

C6

GND

MIC1

C9

RE1

D2

1N4148

ANT1
D3

C21

R16

1k

AGND

R17

SIM_VDD

C20

T1

R8
100R

SIM_DATA

PWR

SIM1_RST

22R

EMOFF

SIM_RESET

STAT

SIM1_CLK

V+

22R

DRXD

PGB1010603

K4

SIM_CLK

DTXD

PWRKEY

47k

K1

K3

PWR

43k

C1

110k

2k2

IN

R1

V+

2k2

IC1

ADJ

1k

EN

470R

festgelegt, auch wenn dies kein hufig


vorkommender logischer Signalpegel ist.
Die Dokumentation des M95 gibt keine
Auskunft ber den Grund, weshalb die
Betriebsspannung nach oben auf 4,6V
begrenzt ist.
Sobald das GSM-Modul eingeschaltet ist,
blinkt eine LED, hier LED2. Die Bezeichnung netlight, die Quectel dieser LED

V+

K5

4V4

V+

3k3

Der Spannungsteiler R6/R7 passt das


Signal TxD an das Signalniveau 3,3V
des Raspberry Pi an. Es lag nahe, die
Betriebsspannung des GSM-HAT-Boards
generell auf 3,3V zu legen, so dass die
Niveau-Anpassung entfllt. Leider ist
dies nicht mglich, weil dann ein Problem auftritt: Nach Herstellervorgaben
darf die Betriebsspannung des M95 im

SMF05CT2G

2N7002

150330 - 11

Bild1. Das GSM-Modul M95 von Quectel baut selbstndig die Mobilfunkverbindung mit dem Smartphone auf.

www.elektormagazine.de

Juli/August 2016

93

design

learn

gab, wrde vermuten lassen, dass das


Blinken den eingeloggten Zustand in ein
Mobilfunknetz signalisiert. Doch das ist
beim M95 nicht der Fall. Nach Einschalten der Betriebsspannung befindet sich
das Modul im Standby-Modus, ein Impuls
auf der Leitung pwrkey schaltet es ein
oder aus.
Taster S1 ist der herkmmliche Klingeltaster an der Haustr. Hier steuert der
Klingeltaster das Relais RE1, das die vorhandene, mit Wechselspannung arbeitende Trklingel schaltet. Wenn Jumper
JP1 gesteckt ist (er kann gegen einen
Schalter getauscht werden), gelangt der

share
Ruf zum Raspberry Pi. Der Raspberry Pi
lst die Aufnahme des Fotos aus und
verschickt das Foto ber das GSM-Modul als MMS. Mit JP1 ist diese Hauptfunktion abschaltbar, damit die Klingelanlage
auch konventionell ohne kostenpflichtigen
MMS-Versand funktionsfhig ist.
Das Relais RE2, das den elektrischen Trffner bedient, wird vom Raspberry Pi
ber MOSFET T4 gesteuert. Der Trffner
wird aktiviert, wenn der Raspberry Pi eine
SMS empfngt, die das korrekte Passwort
enthlt und die SMS von dem dazu autorisierten Mobiltelefon abgeschickt wurde.
Diese Sicherheitsmanahmen sind zwar

Stckliste
Widerstnde:

Auerdem:

(SMD 0603, 1%/0,1 W)


R1 = 110 k
R2 = 43 k
R3 = 470
R4,R12 = 1 k
R5,R11 = 2k2
R6 = 1k5
R7 = 3k3
R8,R10,R13 = 100
R9 = 47 k
R14 = 0
R15,R16,R17 = 22

Mod1 = GSM-Modul Quectel M95


SIM1 = microSIM-Sockel Molex 78723-1001
ANT1 = SMA-Buchse fr Platinenmontage
(Molex 73391-0070)
+ SMA-Antenne, abgewinkelt (RF Solutions
ANT-GHEL2R-SMA)
K1 = Stiftleiste 10-polig, RM 2,54mm
(optional)
K2,K6 = Stiftleiste 2-polig, RM 2,54mm
(optional)
K3,K4 = Stiftleiste 7-polig, RM 2,54mm
(optional)
K5 = Stiftleiste 25-polig, mit langen Pins
(Samtec ESQ-105-14-G-D)
S1 = Stiftleiste 2-polig, fr den Anschluss des
Klingeltasters (Schlieer)
JP1 = Stiftleiste 2-polig, mit Jumper
LS1 = Stiftleiste 2-polig, fr den Anschluss
des Mini-Lautsprechers (8/1,5W)
Mic1 = Stiftleiste 2-polig, fr den Anschluss
des Electret-Mikrofons (ABM-715-RC)
RE1,RE2 = Relais fr SMT-Montage, DPDT,
2A, 5VDC (Kemet EE2-5NU)
Raspberry Pi, Version B+, 2 B oder 3 B
Raspberry Pi Camera Board (V1.3)

Kondensatoren:
C1 = 1000 /10 V, SMD stehend
C2,C3,C4,C18,C24 = 100 n, X7R, SMD 0805
C5,C23 = 100 /16 V, SMD 2312
C6,C7,C8,C12,C13,C14,C19,C20,C21,C22,C26
= 33 p, X7R, SMD 0805
C9,C10,C11,C15,C16,C17,C25 = 10 p, X7R,
SMD 0805

Halbleiter:
D1,D2 = 1N4148, SOD-323
D3,D4,D5,D6 = PGB1010603MR, SMD 0603
D7 = SMF05CT2G, SC-88
LED1,LED2 = LED grn, 50 mcd, 2,1 V @ 20
mA, SMD 0805
T1,T2,T3,T4 = 2N7002, SOT-23
IC1 = MIC29302WU TR, TO-263

Platine leer: 150400-1


oder
Platine mit bestckten SMDs: 150400-71

wirksam, hchste Sicherheitsstandards


fr besonders gefhrdete Bereiche werden jedoch nicht erfllt. Absolut ausschlieen lsst sich nicht, dass ein krimineller Besucher, der einen Einbruchsdiebstahl im Sinn hat, das Relais auf die
eine oder andere Weise manipuliert. Die
Verantwortung fr das Trffnen mit der
SMS und die daraus entstehenden Folgen
liegt immer beim Anwender!

Platine
In Bild2 ist die Platine wiedergegeben,
die fr dieses Projekt entworfen wurde.
Da das GSM-Modul Quectel M95 fr
SMD-Montage konstruiert ist, haben die
brigen Komponenten ebenfalls SMDBauform. Nur die Kontaktleisten und die
Antennenbuchse sind davon ausgenommen. Wie immer kann das Platinenlayout
von der Projekt-Webseite [3] heruntergeladen werden, die unbestckte Platine ist
im Elektor-Shop erhltlich. Fr Leser, die
mit der SMD-Montage nicht vertraut sind
oder sich diese Mhe ersparen wollen,
liefert der Elektor-Shop die Platine mit
den bereits montierten Komponenten. Zur
Montage in eigner Regie ist anzumerken,
dass einige Kontaktleisten nicht immer
bentigt werden, die Optionen sind in der
Stckliste vermerkt.
Der Fu der Kontaktleiste K5 muss in die
Platine gesteckt werden, danach werden
die Kontakte, wie Bild3 zeigt, mit der
Platinenoberseite verltet. Diese Kontaktleiste stellt die Verbindungen zum GPIOPort des Raspberry Pi her. Vor dem Anlten ist zu prfen, ob die Stifte von K5
gekrzt werden mssen, damit auf der
Unterseite die ntigen Abstnde zu den
USB-Buchsen des Raspberry Pi gewahrt
bleiben.

Raspberry Pi vorbereiten
Mit der aktuellen Version des Betriebssystems Raspbian Jessie ist es nicht schwierig, den Raspberry Pi fr den beabsichtigten Einsatzzweck vorzubereiten. Laden
Sie die neueste Version von der Raspberry
Pi Website [4] herunter, nehmen Sie
den Win 32 DiskImager oder ein vergleichbares Tool, um das Image auf die
SD-Karte zu bertragen. Booten Sie den
Raspberry Pi mit der SD-Karte, ffnen
Sie ein Terminal-Fenster und ndern Sie
die Start-Einstellungen, nachdem Sie das
Kommando
Bild2. Die als Raspberry Pi HAT entworfene Platine ist mit SMD-Bauelementen bestckt.

sudo raspi-config

eingegeben haben. Unter Option6 schal-

94

Juli/August 2016

www.elektormagazine.de

labor-projekt
ten Sie die Kamera ein, indem Sie Enable
Camera whlen, und unter Option9,
den Advanced Options, setzen Sie
A7 Serial auf No, um den Zugang
der Login-Shell ber den seriellen Port
abzuschalten. Nachdem Sie die Aktion
mit Finish beendet haben, starten Sie
den Raspberry Pi neu.
In lteren Versionen von Raspbian ist die
Kamera von Hand einzuschalten, und die
serielle Konsole muss in den Startdateien
deaktiviert werden. Orientierungshilfe
fr diese Modifikationen geben zahlreiche Beispiele im Web. Eine weitere wichtige Anpassung an ltere Versionen des
Betriebssystems betrifft das PythonScript: In Zeile 45 muss das Zeichen #
vor port open entfernt werden.
Als wir unseren Prototyp nmlich noch einmal mit der neuesten Version von Raspbian getestet haben, erhielten wir die Fehlermeldung Port already open, bezogen auf Zeile45. Offensichtlich ist mit
dieser neuesten Version das Kommando
open wegen der davorstehenden Zeile
entbehrlich.

Hardware anschlieen
Schlieen Sie zuerst die Raspberry Pi
Kamera an, das Flachkabel verlegen
Sie entlang der Unterseite des auf dem
Raspberry Pi montierten HAT-Boards.
Vergewissern Sie sich, dass der Abstand
zwischen der Board-Unterseite und den
USB-Buchsen des Raspberry Pi ausreicht.
Dies gilt insbesondere fr die Antennenbuchse (ANT1), sie muss mglichst weiten
Abstand zur Abschirmung der USB-Buchsen haben. Das Foto in Bild4 zeigt, wie
die Platinen ber Abstandsrollen miteinander verschraubt werden.
Verbinden Sie vorlufig einen beliebigen Taster mit den Anschlssen von S1
und stecken Sie Jumper JP1 auf seine
Kontakte. Das Mikrofon schlieen Sie an
MIC1 und den Lautsprecher an LS1 an.
Nachdem Sie die Antenne auf die Buchse
ANT1 gesteckt haben, fehlt nur noch die
microSIM-Karte, die fr Fassung SIM1
bestimmt ist. Doch bevor Sie eine microSIM-Karte bei einem Mobilfunk-Anbieter
kuflich erwerben, lesen Sie bitte folgenden Abschnitt.

leser-projekt

Bild3. Die Stifte des Steckverbinders K5


(links, oben) werden auf der Platinenoberseite
angeltet.

vorhanden sein.
Wir empfehlen
Ihnen dringend, vor
der Entscheidung fr
einen bestimmten Anbieter die MMS-Tarife (Multimedia Messaging Service)
zu vergleichen. Anscheinend
hat dieser Dienst so wenige Nutzer, dass
einige Anbieter vergessen haben, ihn in
ihre Tariflisten aufzunehmen. Nach unseren Recherchen berechnen alle Anbieter
fr eine MMS einen festen Cent-Betrag,
sofern der Anhang, in diesem Fall ein
Foto im JPG-Format, das Volumen 300KB
nicht bersteigt. Mit den Einstellungen
der Raspberry Pi Kamera, die im Script
festgelegt sind, bleibt das Foto weit unter
dieser Grenze. Der Grund ist nicht nur
eine mglichst kurze bertragungszeit
im Mobilfunknetz, bedacht werden muss
auch noch ein anderer Aspekt.
Wenn die Zeit zu lang ist, die vom Bettigen des Klingelknopfs bis zum Reagieren der Trsprechanlage vergeht, ist der
Besucher mglicherweise
inzwischen wieder gegangen. Im Elektor-Labor
lagen etwa 20bis

30Sekunden zwischen
dem Auslsen des
Fotos an der Tr und dem
Eintreffen der MMS auf dem
Smartphone. Hinzu kommt die Reaktionszeit des MMS-Empfngers, die bis zur
Annahme der Sprechverbindung vergeht.
Die Summe der Zeiten hat zur Konsequenz, dass eilige und ungeduldige Besucher nur bedingt eine Chance haben, die
Kommunikation aufzubauen.

Python-Script und erster Test


Nach Konfigurieren des Raspberry Pi und
Installieren der Python-Bibliotheken sind
die Voraussetzungen geschaffen, um das
Python-Script auszufhren, das die Trsprechanlage steuert. Das Script ist Teil
des Downloads von der Projekt-Webseite [3], es hat den Namen MMSautoSend.py. Bevor der erste Test beginnen
kann, muss das Script mit einigen Daten
ergnzt werden. Dazu werden an den
Raspberry Pi ein Bildschirm, eine
Tastatur und eventuell auch eine
Maus angeschlossen. Wenn die
Daten erst einmal korrekt eingetragen sind, kommt der

SIM-Karte und MMS


Unser Trspion-System kann natrlich
nur arbeiten, wenn das GSM-Modul mit
einer gltigen SIM-Karte ausgestattet ist.
Wenn es sich um eine Prepaid-Karte handelt, muss ein gengend hohes Guthaben

Bild4. Der Abstand der Platinen muss


so bemessen sein, dass Kurzschlsse zu den
Abschirmungen der USB-Buchsen vermieden
werden.

www.elektormagazine.de

Juli/August 2016

95

design

learn

share

Ein Foto des Besuchers auf dem Smartphone, Sie knnen


mit ihm sprechen und sogar die Tr ffnen!

Raspberry Pi ohne dieses Zubehr aus.


Im Kopf des Scripts sind diverse Konstanten definiert, die gendert werden
mssen:
ThisNumber: Mobilfunknummer der
SIM-Karte, die das GSM-Modul nutzt.
ThatNumber: Mobilfunknummer des
Smartphones, das die MMS empfangen soll.
Damit MMS verschickt werden knnen, sind weitere Daten ntig, die vom
Mobilfunkbetreiber der vom GSM-Modul
genutzten SIM-Karte abhngen:
APN: Access Point Name
MMSC: Multimedia Messaging Service
Centre
MMSproxy: Multimedia Messaging
Service proxy server
MMSport: Multimedia Messaging Service port number
ber diese Daten gibt die Website des
Mobilfunkbetreibers Auskunft. Im Script
sind die MMS-Parameter von zwei niederlndischen Mobilfunknetzen eingetragen, die aus dem Elektor-Labor erreichbar waren.
Wenn die Daten eingetragen sind, steht
dem ersten Test nichts mehr im Weg.
ffnen Sie auf dem Raspberry Pi ein Terminal-Fenster und geben Sie folgendes
Kommando ein:
sudo su

Das Kommando rumt Ihnen die Rechte


ein, die Sie brauchen, um die Python
GPIO-Bibliothek zu nutzen und die
I/O-Leitungen des Raspberry Pi zu steuern. Anschlieend starten Sie das Script
mit diesem Kommando:
python MMSautoSend.py

Das Script ist weitgehend linear programmiert. Der Raspberry Pi sendet AT-Befehle zum GSM-Modul, zwischengefgte
Pausen geben dem GSM-Modul Zeit, die
Befehle zu verarbeiten. Am Beginn stehen
diverse Konstanten, darunter die Einstel-

lungen der Kamera, der


Mikrofon-Empfindlichkeit und der
Empfangslautstrke. Diese
Parameter mssen spter eventuell angepasst werden.
Die PIN-Eingabe unserer SIM-Karten haben wir
deaktiviert. Wir haben die
Karten einzeln in ein Mobiltelefon eingelegt und die PIN-Code-Abfrage auf
Aus gesetzt. Das Script enthlt vier
auskommentierte Zeilen, dort knnen
gegebenenfalls die PIN-Codes fr gesicherte SIM-Karten eingetragen werden.
Die Zeichen # vor den Zeilen port.
write und time.sleep mssen entfernt
werden.
Das Script verzweigt in eine Endlosschleife, die nur mit CTRL-C abgebrochen
werden kann. Im regulren Betrieb prft
der Raspberry Pi fortlaufend, ob der Klingelknopf bettigt wurde oder eine SMS
mit dem Kommando eingegangen ist, den
Trffner zu bedienen. Falls eine SMS
angekommen ist, wird zuerst die Mobilfunknummer des Absenders geprft. Nur
wenn die Nummer mit der unter ThatNumber hinterlegten Nummer bereinstimmt, wird auch das in der SMS stehende Passwort geprft. Das Passwort ist
in der Konstanten Very_Secret gespeichert. Sind beide Bedingungen erfllt,
zieht fr die Dauer einer Sekunde das
Relais RE2 an, das den Trffner einschaltet. Falls ntig, kann im Script eine lngere Einschaltdauer vorgegeben werden.
Der Empfang einer SMS auf dem Smartphone wird immer vom Einlass begehrenden Besucher ausgelst. Der Raspberry
Pi fotografiert den Besucher, erstellt die
MMS mit dem Foto und schickt sie an das
Smartphone. Auer dem Foto enthlt die
MMS auch Text, in dem die Mobilfunknum-

Weblinks
[1] www.elektormagazine.de/labs/gsm-breakout-board-150330
[2] www.quectel.com/UploadImage/Downlad/M95_Hardware_Design_V1.3.pdf
[3] www.elektormagazine.de/150400
[4] www.raspberrypi.org/downloads/raspbian/

96

Juli/August 2016

www.elektormagazine.de

mer des absendenden GSM-Moduls als


Link steht. Der Link ist dazu gedacht,
mglichst schnell die Sprechverbindung
mit dem Besucher aufzubauen. Ankommende Anrufe werden vom GSM-Modul der Trsprechanlage selbstndig
angenommen. Wird das Gesprch vom
Smartphone aus beendet, baut auch das
GSM-Modul die Verbindung ab. Die Trsprechanlage ist dann wieder im Zustand
der Bereitschaft.

Installieren
Beim Einbau der Foto-Trsprechanlage
an der Haus- oder Wohnungstr muss
der Schutz gegen nicht autorisierte Besucher an vorderster Stelle stehen. Eine vergleichsweise sichere Lsung ist die Montage von Klingeltaster, Kamera, Mikrofon
und Lautsprecher auf der Auenseite, die
brige Elektronik wird innen im Haus oder
in der Wohnung untergebracht. Wenn die
rumlichen Voraussetzungen gegeben
sind, kann die Kamera die Eingangstr
auch durch ein Fenster beobachten.
Wie bereits beschrieben, sind im Script
einige Parameter der Kamera einstellbar, beispielsweise ist die Helligkeit der
Umgebung vom Ort der Montage abhngig. Die Auflsung des Fotos bestimmt
die Schrfe, gleichzeitig hat sie Einfluss
auf den Umfang der Datei, die ber das
Mobilfunknetz bertragen werden muss.
Die Dateigre soll mglichst niedrig sein,
damit die bertragungszeiten in zumutbaren Grenzen bleiben. Beim Testen der
Einstellungen und Parameter kann der
Versand der MMS ber das Mobilfunknetz im Script blockiert werden. Das Foto
wird dann im Raspberry Pi als test1.jpg
gespeichert, so dass sich die Qualitt offline beurteilen lsst.
(150400)gd

labor-projekt

leser-projekt

PC-Watchdog

Automatischer Reset fr durchdrehende PCs


Von Willem den Hollander (NL)

Moderne PCs sind durchaus zuverlssig, aber manchmal


hngen sie sich doch auf, und nichts geht mehr. Dann hilft
nur noch ein sogenannter hard reset. Die hier vorgestellte
Elektronik erledigt das automatisch. Das ist insbesondere fr
entfernt platzierte PCs ntzlich.

Viele PCs - in besonderem Mae Server


- verrichten ohne Aufsicht und oft an an
entfernten Orten ihre Arbeit. Von daher
wre es prima, wenn man diese bezglich
Fehlfunktionen berwachen und notfalls
neu starten knnte. Die bertragung der
von Mikrocontrollern bekannten Watchdog-Funktion auf PCs ist eigentlich simpel: Man installiert auf dem PC ein kleines
Programm, das in regelmigen Abstnden ein Signal an eine externe Schaltung liefert. Wenn dieses Signal ausbleibt,
bemerkt diese Schaltung, dass der PC
nicht mehr regulr arbeitet. Sie bettigt
dann quasi den Taster fr einen Hardware-Reset und der PC bootet neu.

Die Schaltung
Bild1 zeigt, dass der Einsatz eines kleinen Mikrocontrollers mit eingebautem
USB-Interface viel Hardware einspart. Der
ausgewhlte Typ PIC16F1455 wird vom

PC als HID-Device
bzw. Eingabegert
erkannt. Die Elektronik wird direkt via
USB versorgt.
Wenn der PC ordnungsgem luft, erhlt der Mikrocontroller in regelmigen Abstnden ein
Signal via USB. Whrend des normalen
Betriebs des PCs lsst der Mikrocontroller
die zweifarbige LED grn blinken. Falls der
PC aber hngt, und die Software folglich
keine Signale mehr senden kann, erzeugt
die Elektronik einen Reset und LED1
leuchtet rot. Whrend des anschlieenden Bootens leuchtet LED1 durchgehend
grn. Wenn der Boot-Vorgang abgeschlossen ist und die Software wieder Signale
sendet, blinkt LED1 wieder grn.
Normalerweise wird der Reset-Eingang
eines PCs mit einem Taster auf Masse
gezogen. Bei den meisten PCs hat die
USB-Masse das gleiche Potential wie die
Masse fr den Reset-Taster, und dann
gengt das Verlegen einer einzigen Leitung fr den Reset. Der Mikrocontroller
zieht dann den Reset-Pin ber T1 und den
Schutzwiderstand R4 auf Masse.
Falls die Masse-Potentiale unklar sind,

kann man auch die Variante mit dem kleinen Reed-Relais verwenden. An K3 liegt
ein potentialfreier Kontakt, den man einfach zum Reset-Taster des PCs parallelschalten kann. Bei Verwendung des Relais
ist die Polung der beiden Anschlsse dank
der Isolation egal. Ein kleiner Klecks Ltzinn auf JP1 aktiviert das Relais. Wenn
es aktiv ist, sollte man den Ausgang K4
nicht mehr benutzen.
Das Relais knnte man natrlich auch fr
andere Zwecke verwenden, doch sollte
man dabei die maximale Last beachten:
Es vertrgt nicht mehr als max. 170V und
0,5A (Gleichstrom und Spitzenwert des
Wechselstroms). Es eignet sich also definitiv nicht fr den Betrieb am 230-V-Netz!

MCU-Firmware
Die meisten Mikroprozessoren haben
schon eine Watchdog-Funktion implementiert. Dabei zhlt ein interner Zhler herunter; er wird entweder von einem
extra Takt oder vom MCU-Takt getriggert. Falls der Zhler 0 erreicht, wird ein
Reset ausgelst. Normalerweise wird das
durch einen regelmig in der Software
der MCU ausgefhrten Befehl verhindert,
denn diese Instruktion setzt den Watch-

www.elektormagazine.de

Juli/August 2016

97

design

learn

share

+5V

IC1

100n

K1
USB-A

1
2
3
4

R1
1
VDD

RA5
RA4
MCLR/VPP/RA3
RC5
12
D-/RA1
RC4
13
D+/RA0
RC3
11
VUSB3V3
RC2
ICSPCLK/RC1
ICSPDAT/RC0
C2
470n

10k

C1

R3
47R

2
3
4
5
6
7
8
9
10

D1

K3

RE1

TS4148 RY
JP1
R2

1k

R4
22R

LED1

K4

T1

RESET

2N7002

VSS

PIC16F1455 14
+5V
K2

copyright

140344 - 11

ICSP

Bild 1. Schaltplan des Projekts. Ein PIC16F1455-Mikrocontroller mit integrierter USB-Schnittstelle spart
eine Menge Bauteile ein.

den Hund auslsen kann, bringt ein Fenster mit den Einstellungen (Bild3) zum
Vorschein. Hier knnen unterschiedliche
Verzgerungszeiten eingestellt werden,
die dann in der MCU der externen Hardware gespeichert werden.
Die Option Delay after reset legt die
Anzahl an Sekunden fest, nach der ohne
Signal vom PC ein Reset ausgelst wird.
Mgliche Werte sind 10...255s. Wenn hier
eine 0 eingegeben wird, lst die Schaltung
keinen Reset mehr aus, und das erste Signal vom PC versetzt die Elektronik wieder
in den Normalbetrieb.
Der PC schickt das Signal via USB an
die Watchdog-Elektronik. Mit der Option
Transmitter interval legt man die Sende-Intervalle fest. Dieser Wert sollte unter
dem fr den Empfnger (Receiver interval) liegen. Der Schaltflche Update speichert die neuen Werte in der MCU. Die
Option Standby hat die gleiche Funktion
wie zuvor beschrieben. Ein Klick auf Close
schliet das Fenster. Das Programm selbst
kann durch Klick auf das rote Kreuz rechts
oben beendet werden.
Wenn fr die in Receiver interval angegebene Zeit nach dem letzten Signal vom
PC kein neues kommt, wird ber T1 bzw.
RE1 ein Reset ausgelst.

Aufbau

Bild2. Das Icon mit dem kleinen schwarzen Hund in der Windows-Taskleiste signalisiert den Status
der Watchdog-Software.

dog-Zhler immer rechtzeitig zurck. Die


fr diese Schaltung ntige PIC-Firmware
steht unter [1] zum kostenlosen Download zur Verfgung.

PC-Software
Unbedingt erforderlich ist auch ein
PC-Programm, das sofort nach dem

Bild3. Die Verzgerungszeiten knnen individuell


eingestellt werden.

98

Juli/August 2016

www.elektormagazine.de

Abschluss des Boot-Vorgangs auf dem


PC starten muss. Hierzu platziert man
das Programm oder ein Alias davon im
Autostart-Bereich. Dies passiert bei der
normalen Installation des von uns bereitgestellten Programms automatisch.
Wenn das Programm luft und die externe
Schaltung angeschlossen ist, erscheint
ein Icon mit einem kleinen Hund in der
Taskbar (siehe Bild2a). Andernfalls sieht
das Icon aus wie in Bild2d. Ein Rechtsklick auf den kleinen Hund zeigt mehrere Optionen (Bild2b). Die Auswahl von
Standby versetzt die externe Hardware
in den Standby-Modus (Bild2c), sodass
bei fehlendem Signal kein Reset ausgelst
wird. Mit Activate gelangt man wieder in
den Normalbetrieb. Die Funktion Open,
die man auch durch einen Doppelklick auf

Ursprnglich war die Schaltung fr den


Anschluss an den PC mit einem MiniUSB-Kabel ausgelegt. Da die Schaltung
aber sowieso auch mit dem Reset-Anschluss des PCs Verbindung aufnehmen
muss, wurde eine Platine entwickelt,
die direkt in einen freien USB-Port auf
der Rckseite des PCs gesteckt werden
kann. Dadurch kann die Leitung zum
Anschluss des Reset-Tasters (oder des
Motherboard-Headers) kurz ausfallen, und
es hngt nicht noch ein Kabel hinten am
PC herum. Die Platine passt in ein kleines USB-Gehuse, das aussieht wie ein
grerer USB-Stick (siehe Stckliste).
Einer der beiden Ausgnge K3 oder K4
muss zustzlich parallel zum Reset-Taster des PCs angeschlossen werden. Der
einfachste Weg ist sicherlich, einfach die
Litzen zum Taster anzuzapfen.
Das Relais ist nicht so einfach zu verlten. Gut geht es mit Heiluft oder wenn
man die Platine sowieso in einen Ltofen
steckt. Alle anderen Bauteile auer dem
Relais sind aber gut von Hand zu verlten. Die Platine von Bild4 ist im Elektor-Shop unter der Nummer 140344-1
erhltlich [2].

labor-projekt
Setzt man kein Relais ein, knnen die
Bauteile D1, R3 und K3 entfallen. Falls fr
K3 oder K4 eine Stiftleiste bestckt wird,
sollte man diese auf maximal 5,5mm
ber der Platine krzen, da sonst die
Platine nicht mehr in das vorgesehene
Gehuse passt. Die Ltpads fr K3 und K4
sind gro genug, um direkt Litzen anzulten. Wo diese Litze(n) das Gehuse verlassen, ist freigestellt.
Der ICSP-Header K2 wird zur Programmierung der MCU verwendet. Er eignet sich z.B. fr das PICkit2 falls hier
die MCU nicht erkannt wird, sollte ein
Update durchgefhrt werden. Der horizontale Header K2 ist so ausgelegt, dass
die Platine mitsamt Header exakt in das
vorgesehene Gehuse passt.

Testlauf
Im ersten Testlauf bestand die Watchdog-Elektronik darauf, den PC nur
wenige Sekunden nach Erscheinen des
Windows-Logos in einer Endlosschleife
zu resetten. Die Schaltung wurde an
einem ausrangierten PC unter Windows
XP getestet (!). Bei einem harten Reset
knnen Dateien fehlerhaft werden (und
scan disk luft dann nach dem Booten).
Selbst im Elektor-Labor wollten wir so
etwas keinem PC antun. Mit nderung
der Einstellungen auf 0, 25 und 10 verschwand das zyklische Booten. Bei noch
langsameren Systemen sollte der Unterschied der Intervalle von Empfnger und
Sender noch grer ausfallen. Doch selbst
bei modernen PCs kann Software das
Watchdog-Programm am rechtzeitigen
Absetzen seines Signals hindern. Hier
hilft nur Ausprobieren.

leser-projekt

Stckliste
Widerstnde:

Platine 140344-1 v1.1

Standard: SMD 0805, 5%


R1 = 10k
R2 = 1k
R3 = 47
R4 = 22, 0,5W, SMD 1206

Kondensatoren:
C1 = 100n / 50V, X7R, SMD 0805
C2 = 470 n / 50V, X7R, SMD 0805

Halbleiter:
LED1 = zweifarbig (rot/grn), SMLLX1210IGC-TR, 160, SMD 2,7x2mm
D1 = TS4148 RY, SMD 0805
T1 = 2N7002, SMD SOT-23
IC1 = PIC16F1455, SMD SOIC-14

Auerdem:
K1 = USB-Stecker, 2.0 Type A, abgewinkelt,
SMD (2410 07, Lumberg)
K2 = 5x1-pol. Stiftleiste, horizontal (4103323-1, TE-Connectivity)
K3,K4 = 2x1-pol. Stiftleiste, vertikal (nur einer von beiden oder keiner, siehe Text)
RE1 = 1-pol. Reed-Relais, Schlieer,
CRR03-1A (Standex Meder), 3V / 70,
170V/0,5A
Gehuse = Strapubox USB 1, transparent,
56x20x12mm (Conrad 531276)

Wie testet man so eine Schaltung? Ganz


einfach: Man lasse seinen PC abstrzen!
Im Labor versuchten wir das mit einer
Batch-Datei, die endlos unendlich viele
Befehls-Fenster ffnete. Doch das funktionierte nicht. Also suchten wir und wurden
im Internet fndig: Das Programm StartBlueScreen [3] hlt, was es verspricht:
Es erzeugt zuverlssig den sonst gefrchteten BSOD (Blue Screen of Death).
Damit es einen BSOD erzeugen kann,
muss dieses fiese Stck Software noch
mit fnf Parametern gefttert werden.

Bild4. Die kleine Platine passt in ein Gehuse,


das aussieht wie ein groer USB-Stick.

Hierzu erstellt man eine Batch-Datei mit


der Zeile:
StartBlueScreen.exe 0x12 0 0 0 0

Das crasht prima! Der blue screen kommt


und kurze Zeit spter (abhngig von der
Position des BSOD im Intervall) wird von
der Elektronik ein Reset generiert.
Die PC-Software wurde mit Delphi XE4
geschrieben. Der Sourcecode der Software fr den PC und die MCU stehen auf
der Elektor-Webseite zu diesem Artikel
[1] zum kostenlosen Download zur Verfgung. Um die Software auf dem PC zu
installieren, muss man lediglich die Datei
Watchdogsetup.exe ausfhren.
(140344)

Weblinks
[1] www.elektormagazine.de/140344
[2] www.elektor.de
[3] http://nirsoft.net/utils/start_blue_
screen.html

Bild5. Beim Test dieser Schaltung ist der BSOD ausnahmsweise einmal hilfreich.

www.elektormagazine.de

Juli/August 2016

99

design

learn

share

My Tiny Radio

Ein Radio - drei Plattformen


Entwurf: Gerd Detlef Ritter, Niek Laskarzewski und Roy Aarts
Text: Rolf Gerstendorf

Mit einem winzigen UKW-Empfangsmodul lsst sich


ein Mini-Radio aufbauen, das von einem ATtiny- oder
komfortabler von einem ATmega-Mikrocontroller
gesteuert wird.

Manchmal erreicht uns wahrlich spannende Elektronik aus dem Reich der Mitte.
Ein Spezialist fr all die kleinen Dinge,
die unser Entwicklerherz begehrt, ist die
Firma Seeed Studio [1], die ihren Sitz im
chinesischen Silicon Valley, in Shenzhen
in der Provinz Guangdong hat, die nrdlich an Hongkong grenzt. Schon der erste
Blick auf die Website der Firma zeigt,
dass wir hier goldrichtig sind: Es geht
um Raspberry Pi, Arduino, BeagleBone,
Shields, IoT, ARMmbed, Wearables et
cetera et cetera.

Unser Leser Gerd Detlef Ritter hat unter


dem Button Grove einen FM-Empfnger mit I2C-Schnittstelle entdeckt und
war von seiner Winzigkeit beeindruckt.
Das kleine UKW-Empfangsmodul, dessen
Funktionen sich vollstndig ber I2C steuern lassen, empfngt im Frequenzband
von 50...115MHz, untersttzt RDS (und
das amerikanische Pendant RBDS) und
ermglicht den direkten Anschluss eines
Kopfhrers. Es arbeitet mit einer Versorgungsspannung von 3,3...5V und verbraucht dabei so wenig Strom, dass es

Eigenschaften
UKW-Empfangsbereich 50...115MHz
Single-Chip-Stereo-FM-Tuner mit I2C-Schnittstelle
Kompaktes Break-out-Board
RDS-Untersttzung
Automatischer Sendersuchlauf
Anschluss fr >32--Kopfhrer
Betriebsspannung 3,3...5V, Stromaufnahme <100mA
Steuerung mit ATtiny, ATmega oder Arduino

100

Juli/August 2016

www.elektormagazine.de

gut mit Batterien betrieben werden kann


(vor allem, wenn auch ein stromsparender Controller zur Steuerung eingesetzt
wird).
Seeed Studio bietet seine Produkte nicht
als Blackboxes an, sondern legt Soft- und
Hardware (inklusive Eagle-Platinenlayout)
offen und untersttzt so die Entwicklung
eigener Projekte. Kein Wunder, dass Herr
Ritter das Modul sofort an seinen Arduino
Uno anschloss und mit dem leicht genderten Beispielcode dem Modul zuallererst den berhmten Queen-Song Radio
GaGa entlockte.

Ein vollstndig integrierter


FM-Tuner
Das Modul basiert auf dem integrierten
FM-Stereo-Tuner RDA5807M der Firma
RDA Microelectronics aus Shanghai.
Das Datenblatt [2] zeigt (auch wenn ein
dickes pinkes Confidential ber den Seiten prangt), das Innere des ICs (Bild1).
Der Beschreibung kann man die Funktionen entnehmen:

leser-projekt

labor-projekt
Der Empfnger besitzt einen Abstimmbereich von 50MHz bis 115MHz und
ist damit fr den UKW-Empfang in aller
Herren Lnder geeignet. Er enthlt
einen Low-Noise-Verstrker (LNA), eine
programmierbare Verstrkungssteuerung (PGA), AD- und DA-Wandler mit
hoher Auflsung und dazwischen einen
Audio-DSP.
Der mit 32,768kHz als Referenz getaktete Synthesizer generiert das lokale
Oszillatorsignal (VCO) fr den Mischer.
Der mehrphasige Mischer unterdrckt wirkungsvoll die Spiegelempfangsfrequenz.
Ein Limiter verhindert berlastungen und
begrenzt Intermodulationsprodukte starker benachbarter Kanle.
Der DSP-Kern sorgt fr Kanalauswahl
(im Register CHAN), FM-Demodulation,
Stereo-MPX-Dekodierung und extrahiert
ein digitales Audio-Ausgangssignal. Der
MPX-Decoder kann automatisch von Stereo auf Mono umschalten, um Ausgangsrauschen zu begrenzen.
Das digitale Stereo-Audiosignal wird von
zwei DA-Wandlern in eine analoge Form
gebracht und ber die Anschlsse LOUT
und ROUT ausgegeben, an die unmittelbar ein Kopfhrer (>32) angeschlossen
werden kann. Die DA-Wandler stellen die
Lautstrke ein und filtern die Signale mit
einer Tiefpass-Eckfrequenz von 30kHz.
Im RDA5807M ist ein Low-drop-Spannungsregler integriert, der fr die Stromversorgung des Chips zustndig ist. Der
Versorgungsspannungsbereich betrgt
2,7...3,3V. Der Chip besitzt eine Auto-Reset-Funktion beim Einschalten und einen
Soft-Reset ber den I2C-Bus.

I
PGA

I
ADC

Q
PGA

32.768 kHz
RCLK

VDD

2.7-3.3V

R
DAC

LNA

Limiter

10

Audio
DSP
Core

FMIN

LOUT

L
DAC

Synthesizer

Q
ADC

digital filter
MPX decoder
stereo/mono
audio

RDS
/RBDS

VCO

RSSI

SCLK

Interface
Bus

LDO

ROUT

RDA5807M

MCU

SDIO

Bild 1. Innenleben des integrierten FM-Tuners (Quelle: RDA Microelectronics).

Antenna

Level
Shifter
SCL

FM
Tuner

SDA
+5V
GND

Headphones

Voltage
Regulator

Bild 2. Die Blockschaltung des FM-Moduls um den integrierten FM-Tuner.

FM-Modul als Break-out-Board


Auf der kleinen Platine des FM-Empfangsmoduls, die wenig mehr als ein Break-outBoard des RDA5807M ist, befindet sich,
wie in der Blockschaltung des Moduls in
Bild2 zu sehen, neben dem RDA5807M
ein Vierfach-Pfostenverbinder. Die Belegung ist bei allen Grove-Erweiterungsboards fr die I2C-Schnittstelle gleich:
Masse an Pin1, Plus an Pin2, SDA an
Pin3 und SCL an Pin4. Die Versorgungsspannung wird von einem Festspannungsregler auf 2,8V stabilisiert. Der Festspannungsregler im Chip vertrgt nur
Eingangsspannungen von 2,7...3,3V.
Durch den externen Regler knnen auch
+5-V-Controllersysteme problemlos angeschlossen werden. Natrlich werden auch
5-V-I2C-Signale auf der Modulplatine
durch eine Pegelwandlerstufe auf 2,8V

angepasst.
Die Kopfhrer-Buchse ist ber Koppelkondensatoren und UKW-Dmpfungsinduktivitten (L1, L3) angeschlossen,
ganz wie es die Datenblattapplikation
vorschlgt. An Pin RCLK des ICs befindet
sich der Quarz samt Lastkondensatoren,
der Antennenanschluss ist auf ein Ltpad
herausgefhrt.

Von Arduino nach Tiny nach


Mega
Zum ersten Ausprobieren war der Arduino
schn und gut, aber die riesige Arduino-Uno-Platine ist wenig fr den mobilen Betrieb geeignet. Was also tun; ein
kleineres Arduino-Board verwenden? Ja,

das wre mglich, aber auch teuer und


viel Strom wird obendrein verbraucht!
Zum Tiny-Radiomodul passt doch prima
ein kleiner ATtiny85-Mikrocontroller. Er
kostet beinahe nichts, steckt in einem
handhabbaren DIL8-Gehuse und verfgt
auch ber ein I2C-Interface (oder besser
gesagt, ein Universal Serial Interface USI,
das als I2C genutzt werden kann). Darber hinaus sind noch zwei I/O-Portpins
fr zwei Taster frei, die zur I2C-Registereinstellung (Up/Down) genutzt werden knnen. Am ADC-Eingang PB3 lsst
sich ein Lautstrkepoti anschlieen. Und
ausreichend Flash-Speicher (8k) fr den
Code hat der Kleine auch!
Die wenigen (Durchsteck-)Bauteile, die

www.elektormagazine.de

Juli/August 2016

101

design

learn

share
+5V

Radio Module

K1

4k7

R2

4k7

R1

IC1
5

4
3

PB0(MOSI)
PB2(SCK/ADC1)

PB3(ADC)

100k

PB4(ADC2)

P1

PB1(MISO)

8
VCC

PB5(RESET)

S1

GND
4

S2

TINY85-20
150587 - 12

Bild 3. Ein Nichts an Elektronik! Neben dem achtbeinigen Controller gibt es nur zwei PullupWiderstnde und das Frontend, bestehend aus zwei Tastern und einem Trimmpoti.

Stckliste
fr ATtiny-Version
Widerstnde:
R1,R2 = 4k7
P1 = Trimmpoti 100k
Halbleiter:
IC1 = ATTINY85-20PU
Auerdem:
S1,S2 = Taster (6x6mm)
K1 = 1x4-polige Buchsenleiste, RM2mm
IC1 = IC-Fassung DIP8
I2C-FM-Radiomodul (Seeed Studio)
Halterung fr 3 AAA-Batterien

Bild 4. Fast mikroskopisch:


Die Controllerplatine mit dem ATtiny ist ja noch
kleiner als das FM-Modul!

LCD1

DB2

DB1

DB0

DB7

DB6

R/W

DB5

RS

DB4

VEE

DB3

VDD

+5V

VSS

LC DISPLAY 2 x 8

10 11 12 13 14 15 16

10k

R1

Radio Module

K1

1
4

28

27

2
1

4
5
26

10k

R2

10k

R3
SW1

25
24
23
16
21

C2

C1

100n

100n

20

AVCC

VCC

P1

PC6(RESET)

PD0(RXC)

PC5(ADC5/SCL)

PD1(TXD)

PC4(ADC4/SDA)

PD4(XCK/T0)

IC1

PD2(INT0)
PD3(INT1)

PD5(T1)
PD6(AIN0)
PD7(AIN1)

ATMEGA328P
PC3(ADC3)

PB0(ICP)

PC2(ADC2)

PB1(OC1A)

PC1(ADC1)

PB3(MOSI/OC2)

PC0(ADC0)

PB4(MISO)
PB5(SCK)

PB2(SS/OC1B)

PB6(XTAL1)

AREF

PB7(XTAL2)
GND

GND

22

2
3

10k

6
11
12
13
14
15
17
18

IC2

19
9
10

K2
1N4001
C3

C4

330n

10n

Rotary Encoder

Bild 5. Schaltung der groen ATmega-Ausfhrung mit Drehenkoder und LC-Display.

102

Juli/August 2016

www.elektormagazine.de

+5V

78L05

D1

150587 - 11

die Schaltung in Bild3 zeigt, lassen sich


schn auf einem winzigen Stck Lochrasterplatine aufbauen, das man huckepack
auf das Radiomodul stecken kann. Bild4
beweist, dass der Aufbau der Schaltung
tatschlich eine Sache von wenigen Minuten ist. Eine besondere Antenne ist nicht
notwendig, weil der Kopfhrer als Antenne
fungiert. Das portable Tiny Radio erblickt
das Licht der Elektronik-Welt! Versorgen
kann man es mit einer 3-V-Batterie oder
einer kleinen Solarzelle. Der Strombedarf
liegt bei maximal 100mA.
Schn klein, das Tiny Radio, aber zugegebenermaen auch recht puristisch und
wenig bedienerfreundlich. Ein kleines
LC-Display (mit 2x8 Zeichen) wre doch
recht informativ beim Programmieren des
Radios. Und fr die Bedienung knnte
ein Drehenkoder (statt Taster und Poti)
eingesetzt werden. Dies berfordert aber
den ATtiny85 in punkto I/O und Speicherplatz. Im Elektor-Labor haben sich daher
zwei unserer Praktikanten darangemacht,
den kleinen Tiny-Controller durch einen
ATmega328 zu ersetzen, der mit deutlich
mehr I/O-Anschlssen ausgestattet ist.
Doch keine Bange, auch dieser Controller
ist in einem klassischen DIP28-Gehuse
erhltlich. Zu dem Controller gesellt sich
in der Schaltung (Bild5) neben dem obligatorischen Grove-Interface (K1), dem
Display (mit P1 zur Kontrasteinstellung)

leser-projekt

labor-projekt
und dem Drehenkoder mit Schalter (samt
den erforderlichen Bauteilen zur Entprellung) eine Niederspannungsbuchse (K2),
gefolgt vom 5-V-Festspannungsregler IC2
und den Entkopplungskondensatoren C3
und C4. Die Diode D1 soll verhindern,
dass eine an K2 verpolt angelegte Spannung Schaden in der Schaltung anrichtet.
Auch bei dieser Luxus-Version des Tiny
Radios kommt eine Lochrasterplatine zum
Einsatz, allerdings keine gewhnliche, sondern die New-generation-Version ELPB-NG
aus dem Hause Elektor. Wie sie in Bild6
sehen knnen, macht sie einen viel aufgerumteren Eindruck, als dies bei einer traditionellen Lochrasterplatine zu erwarten
wre. Das FM-Modul wird kopfber auf die
Buchsenleiste K1 gesteckt. Rechts neben
dem Modul befindet sich die Stromversorgung, darber der Drehenkoder. Das
Kontrast-Trimmpoti fr das LC-Display ist
links zu erkennen, der ATmega328P lugt
dazwischen unter dem Display hervor.
Bild7 macht deutlich, wo die Bauteile
und die Ltbrcken platziert sind. Die Ltund anderen mechanischen Arbeiten sind
tatschlich ein Klacks!
Beim Einschalten des Radios wird der
aktuelle Sender wiedergegeben. Der Sender lsst sich durch Drehen am Drehenkoder verndern. Drckt man auf den
Taster des Enkoders, so erscheinen Mens
im Display, in denen man mit dem Drehenkoder die Lautstrke einstellen oder
stummschalten sowie einen Sendersuchlauf starten kann.
Beim Sendersuchlauf findet das FM-Modul den ersten starken Sender in der
(Frequenz-)Richtung, in der
der Enkoder gedreht wurde.
Die Einstellungen und die Senderwahl werden im EEPROM des
Controllers gespeichert und beim
nchsten Einschalten des Radios
wieder geladen.

Stckliste fr ATmega-Version
Widerstnde:

Auerdem:

R1...R3 = 10k
P1 = Trimmpoti 10k

K1 = 1x4-polige Buchsenleiste, RM2mm


LCD1 = LC-Display (2x8) mit 2x8-poliger
Buchsenleiste, RM2,54mm
IC1 = IC-Fassung DIP28-narrow
SW1 = Drehenkoder (Alps EC12E2424407)
K2 = Niederspannungsbuchse 2,5mm (Lumberg NEB21R)
I2C-FM-Radiomodul (Seeed Studio)
Lochrasterplatine ELPB-NG (Elektor-Shop
150180-1)

Kondensatoren:
C1,C2 = 100n, RM2,5mm
C3 = 330n, RM 7,5mm
C4 = 10n, RM 2,54mm

Halbleiter:
D1 = 1N4001
IC1 = ATMEGA328P-PDIP
IC2 = 78L05

Software fr Arduino,
Tiny und Mega
ber eines haben wir noch gar nicht
gesprochen, nmlich ber die Software.
Wenn Sie keine Lust haben, sich mit der
Software auseinanderzusetzen, knnen
Sie beide Controller fertig programmiert

Bild 6. Die Luxusausfhrung: Das FM-Modul wird


kopfber auf die ELPB-NG gesteckt, links oben
befindet sich der Drehenkoder.

Bild 7. Bestckung und Verdrahtung der ELPB-NG im berblick.

www.elektormagazine.de

Juli/August 2016

103

learn

design

zusammen mit anderem Material im Elektor-Shop erstehen (siehe Kasten) und sich
das Video [6] ansehen, in dem Clemens
Valens, Technischer Manager im Elektor-Labor, die Anwendung beider Controllersteuerungen erlutert.
Interessanter ist natrlich die Auseinandersetzung mit der Demosoftware, die
Seeed Studio bei Github [3] zur Verfgung stellt. Sie geht wie das ATtiny-Radio von einem Poti zur Lautstrkeeinstellung und zwei Tastern zur Sendereinstellung aus, ist aber auf die Arduino-IDE
zugeschnitten und muss fr unsere
Atmel-Controller angepasst werden. Der
Kern jedoch bleibt weitgehend gleich,
egal, welchen Controller man zur Steuerung des FM-Moduls verwendet.
Fr die Kommunikation mit dem Radio-IC
wird in der Demo die Bibliothek Wire.h
eingesetzt. Der ATtiny85 besitzt aber, wie
erwhnt, keine echte I2C-Schnittstelle,
sondern ein USI. Deshalb funktioniert
die Wire-Bibliothek hier nicht. Auf dem
Arduino-Playground finden sich glcklicherweise Codeschnipsel [4] fr eine
I2C-Schnittstelle am ATtiny85. Im Vergleich zum Demo-Code mssen neben der
neuen Bibliothek natrlich auch die Portpins gendert werden. Ansonsten lassen
sich wenige Unterschiede zwischen der
ATtiny- (unter [5]) und der Arduino-Software [1] ausmachen.
Jetzt aber zur Software fr den ATmega!
Wenn Sie den folgenden Erluterungen
folgen wollen, laden Sie am besten die
groe Softwareversion von der Projektseite [5] herunter; der Sourcecode ist
ausfhrlich kommentiert.
Bei der ATmega-Software kann zwar wieder die Wire-Bibliothek genutzt werden,
allerdings muss zustzlich LiquidCrystal.h fr das LCD eingebunden werden.
Nach der Definition und Initialisierung
der Variablen fr das FM-Modul (minimale Signalstrke, Frequenzstufe fr den
Sendersuchlauf, BassBoost, Mono/Stereo...) werden auch etliche Variablen fr
die verschiedenen LCD-Mens und fr die

104

Juli/August 2016

www.elektormagazine.de

share

Steuerung durch den Drehenkoder (und


dessen Taste) eingefhrt und initialisiert.
Nach den ganzen Einbindungen, Definitionen und Initialisierungen folgt eine
Reihe von Funktionen. Im Setup werden die Drehenkoder-Pins definiert, das
LC-Display gestartet und die Einstellungen zum FM-Tuner geschrieben. In der
Loop-Funktion werden die Frequenz auf
dem Display dargestellt, die Drehenkodertaste abgetastet und das Volume-Men
gestartet beziehungsweise die Autoscanund Mute-Bits in der Settings-Variablen
in das EEPROM geschrieben. Bei aktivem
Autoscan wird nach einem anderen Sender gesucht.

lung ndert. Die letzte Funktion lscht das


LCD, indem sie acht Leerzeichen auf das
Display schreibt.
Die Funktionen setVolume und fmSeek
beider Softwareversionen unterscheiden
sich wegen des Drehenkoders und des
LCDs geringfgig.
Auf die beiden Funktionen showRadioStation und showSignalStrength folgen
(nach // FM functions) die Funktionen
fr den Betrieb des FM-Moduls, die die
Demo von Seeed Studio bereitstellt. In
diesem Demo-Teil werden nur die grundlegenden Register im RDA5807P gelesen
und beschrieben. Das Datenblatt enthllt
weitere Funktionen in den I2C-Registern.

Zwei weitere Funktionen fr das Hauptmen und das Volume-Men folgen, dann
schliet der Vorspann des Programms
mit einer Interrupt-Service-Routine ab,
die das Drehen am Drehenkoder und
die Drehrichtung erfasst, und, je nach
aktivem Men, die Senderfrequenz, die
Cursorposition oder die Lautstrkeeinstel-

Mit etwas zustzlichem Softwareaufwand


(Platz im Programmspeicher des ATmega
ist ausreichend vorhanden) knnten zum
Beispiel RDS-Mitteilungen auf das LC-Display gezaubert werden.
(150587)

Weblinks
[1] Grove I2C-FM-Modul: www.seeedstudio.com/depot/
[2] Vertrauliches Datenblatt RDA5807M: www.seeedstudio.com/wiki/
File:RDA5807M_datasheet_v1.1.pdf
[3] Demosoftware fr Arduino: https://github.com/Seeed-Studio/I2C_FM_Receiver
[4] Codeschnipsel fr I2C/USI beim ATtiny85: http://playground.arduino.cc/Code/
USIi2c
[5] Elektor-Projektseite: www.elektormagazine.de/150578
[6] Tiny Radio im Video: https://youtu.be/c2T2jd9OFVg

Im Elektor-Shop
Auf der Projekt-Webseite und im Elektor-Shop sind zu diesem Projekt folgende
Produkte erhltlich:
150587-11: Software
150587-41: programmierter Controller ATmega
150587-42: programmierter Controller ATtiny
150180-1: Experimentierplatine ELPB-NG
150587-71: Kit aus Experimentierplatine, programmiertem ATmega und
Radio-Modul

labor-projekt

leser-projekt

MAXQ rettet Philips PM2535


Multimeter vor dem Verschrotten bewahrt

Flohmrkte sind faszinierende Welten. Krzlich erstand ich ein betagtes System-Multimeter von Philips, der
ausgehandelte Preis war nicht nennenswert. Das Display sah zwar altersschwach aus, doch ich traute mir zu,
den Fehler zu beheben. Diese Zuversicht erfllte sich nicht, das Display erwies sich als resistent gegen jeden
Reparaturversuch. Die Alternative war der Austausch gegen ein Standard-Display aus neuer Produktion.

Von Fons Janssen (Maxim Integrated, NL)

Messgerte aus den 1980er und 1990er


Jahren haben den Vorzug, dass damals
grtenteils Standard-Komponenten verbaut wurden, und mit etwas Glck ist
die Gerte- Dokumentation aus dem Netz
abrufbar. Nach dem Studium des Ser-

vice-Manuals meines Multimeters, Typenbezeichnung Philips PM2535 [1], kam ich


zu dem Schluss, dass der Austausch des
Displays mglich sein msste.

Das Original
Das LC-Display des Multimeters wird von
einem LCD-Treiber-Baustein PCF8576

gesteuert. Zum LCD-Treiber gelangen


die Steuerkommandos und Daten ber
einen I2C-Bus. Ich entschloss mich, die
Informationen auf dem I2C-Bus abzugreifen und zu transkodieren, um damit das
Ersatz-Display zu steuern.
Der PCF8576 kann bis zu 160 Segmente
eines LC-Displays steuern. Im Ser-

Bild1. Der Datenstrom gelangt ber einen I2C-Bus zum LCD-Treiber PCF8576.

www.elektormagazine.de

Juli/August 2016

105

design

learn

share
um das Ersatz-Display im 4-bit-Modus zu
steuern. Bild2 zeigt eine vereinfachte
Schaltung der Hardware, sie befindet sich
auf einem Entwicklungsboard, das von
Maxim fr den Mikrocontroller MAXQ615
vorgesehen ist. Die hier zustzlich notwendigen Bauelemente sind auf der Ltpunkt-Rasterflche des Boards montiert.

Bild2. Die Hardware steuert das Ersatz-Display (420 Zeichen, HD44780). Zum Multimeter fhren
vier Leitungen: Masse, +5V sowie SDA und SCL des I2C-Busses.

LC-Display mit Controller HD44780 ersetzt defektes


LC-Display
vice-Manual ist dokumentiert, wie die
Display-Segmente den Speicherpltzen
des PCF8576 zugeordnet sind. Die Speicherbelegung hat die Struktur einer Matrix, bestehend aus 40Reihen mal vierBit
(Nibble). Vom Wert jedes Bits hngt ab,
ob das zugehrige Display-Segment hell
oder dunkel gesteuert wird.
Das Datenblatt des PCF8576 [2] stellt
den Informationsfluss ber den I2C-Bus
dar. Am Anfang stehen ein oder mehrere Kommando-Bytes, dann folgt die
bertragung der Daten-Bytes. Mit einem
Logik-Analyser hatte ich herausgefunden,
dass die Daten zum Display-Treiber in
zwei Gruppen bertragen werden: Die
erste Gruppe besteht aus den Nibbles
6...39, die zweite Gruppe aus den Nibbles 0...5. Die Datenbertragung findet
in einer Endlosschleife statt, so dass das
Display fortlaufend aktualisiert wird. In
Bild1 ist der Datenstrom schematisch
dargestellt.

106

Juli/August 2016

www.elektormagazine.de

Die stets gleich bleibenden Kommandos


<mode set>, <device select>, <bank
select> und <blink> konfigurieren den
originalen LCD-Treiber-Baustein PCF8576,
sie sind hier ohne Belang. Mit dem Kommando <data pointer> wird festgelegt,
in welche Speicherpltze die Daten der
Reihe nach geladen werden. Auf die Kommandos folgen die Daten-Bytes, sie bestehen jeweils aus zwei Nibbles.

Ersatz-Display
Das Ersatz-LC-Display ist ein Typ, der mit
dem Controller HD44780 arbeitet, darstellbar sind 420 Zeichen. Die Informationen auf dem I2C-Bus lassen sich
mit einem Mikrocontroller abgreifen, der
als I2C-Slave konfiguriert ist. Der Mikrocontroller kann auerdem die Informationen transkodieren und das Ersatz-Display
steuern. Ich habe mich fr den MAXQ615
von Maxim entschieden, weil dieser
Mikrocontroller auer einer I2C-Schnittstelle gengend I/O-Portleitungen besitzt,

Die Betriebsspannung des MAXQ615


betrgt +3,3V, whrend das Multimeter mit +5V arbeitet. Da der MAXQ615
lediglich Informationen empfngt, gengen zur Niveau-Anpassung der SDAund SCL-Leitung die an +3,3V liegenden Pullup-Widerstnde, zusammen mit
zwei Dioden. Wenn der I2C-Master die
Leitungen nach Masse zieht, leiten die
Dioden, so dass an den Leitungen des
MAXQ615 ebenfalls niedrige Spannungen
liegen. Sind die Signale des I2C-Masters
auf +5V, sperren die Dioden, die Eingnge des MAXQ615 werden von den
Pullup-Widerstnden auf +3,3V gezogen. Zieht umgekehrt der MAXQ615 die
Leitungen nach Masse, beispielsweise bei
einem Acknowledge, sperren die Dioden
ebenfalls. Der MAXQ615 kann folglich
nicht antworten, die Kommunikation zwischen dem Multimeter-Controller und dem
PCF8576 bleibt ungestrt.

Firmware
Die I2C-Schnittstelle ist beim MAXQ615
in der Hardware implementiert. Die
Firmware muss lediglich einige Register
setzen, um den MAXQ615 als Slave zu
konfigurieren und die I2C-Schnittstelle zu
initialisieren.
Die Hauptroutine berwacht den
Datenstrom auf dem I2C-Bus. Wenn die
Slave-Adresse des PCF8576 erkannt wird,
folgen zuerst die Kommando-Bytes, sie
werden mit Ausnahme des Daten-Pointers
ignoriert. Die folgenden Daten-Bytes werden in einem 20Bytes groen Array abgelegt (zwei Nibble je Byte). Das Array ist
ein Abbild des Display-Speichers auf ByteEbene, der sich im PCF8576 befindet. Der
Wert des zugehrigen Index betrgt die
Hlfte des Daten-Index, der auf die Nibbles zeigt. Wie schon erwhnt, werden
die Daten in zwei Gruppen bertragen.
Wenn die Daten vollstndig im Speicher
stehen, knnen sie transkodiert werden. Die transkodierten Daten, die fr
das neue Display bestimmt sind, haben
das Format eines 80Zeichen langen

labor-projekt

leser-projekt

Strings. Die Firmware interpretiert die


empfangenen Daten und entscheidet,
welche Informationen auf dem Display
erscheinen und wie sie dort angeordnet
sind. Einfache Segmente, die nur einund ausgeschaltet werden, sind unkompliziert steuerbar. Dagegen werden die
Bits, die zu einem 7-Segment-Zeichen
gehren, in einem Byte des Arrays abgelegt, whrend 16-Segment-Zeichen zwei
Bytes belegen. Eine Look-up-Tabelle dient
dazu, die zugehrigen Zeichen im Zeichensatz des neuen Displays zu finden.
Nach Abschluss der Transkodierung wird
der Display-String als Ganzes zum neuen
Display bertragen. In Bild3 ist der Prozess der Daten-Umsetzung als Flussdiagramm dargestellt.
Die Firmware des MAXQ615 kann von der
Projektseite [3] heruntergeladen werden.
Der Download dient eher Studienzwecken, der gleiche Multimeter-Typ drfte
mit identischem Defekt wohl nur selten
existieren.

Einbau und Ausblick


Um das neue Display am angestammten
Ort platzieren zu knnen, habe ich das
defekte Display aus der Platine gesgt
und ebenso wie das MAXQ615-Entwicklungsboard an anderer Stelle im Gehuse
untergebracht. Das neue Display habe
ich im Fenster der Frontplatte mit Sekundenkleber eingeklebt. Die Fotos mit
dem defekten Display (Bild4) und dem
Ersatz-Display (Titelfoto) machen deutlich, dass die Ablesbarkeit stark gewonnen hat. Dazu trgt nicht zuletzt auch die
Hintergrundbeleuchtung bei.

Bild3. Flussdiagramm der MAXQ-Firmware fr die Transkodierung der steuernden Informationen.

Nachdem das Multimeter wieder voll funktionsfhig ist, habe ich ber weitere Verbesserungen nachgedacht. Vielleicht lsst
sich die Genauigkeit durch Modernisieren
der Referenzspannungsquelle steigern,
vielleicht wird dieser Beitrag fortgesetzt...
(150766)gd

Bild4. Das LC-Display war unbrauchbar geworden, der Fehler lie sich nicht mehr beheben.

Weblinks
[1] Philips System Multimeter Service Manual PM2534/PM2535, Dokument 4822 872 35313 900205:
www.download-service-manuals.com/download.php?file=Philips-6930.pdf
[2] Datenblatt PCF8576: www.nxp.com/documents/data_sheet/PCF8576.pdf
[3] Software: www.elektormagazine.de/150766

www.elektormagazine.de

Juli/August 2016

107

design

learn

share

Universeller I2C-BusIsolator und Pegelwandler


Einfach und kompakt
Von Andre Jordaan (Schweiz)

Wenn man zwei oder mehrere


I2C-Schaltungen miteinander
verbinden mchte, die aus
unterschiedlichen Quellen
versorgt werden, ist oft eine
Pegelwandlung der Bussignale
gefragt. Und wenn man schon
dafr sorgt, kann man sie auch
noch galvanisch trennen.

Eigenschaften
geeignet fr Betriebsspannungen
zwischen 3,3V und 5,0V
Bidirektional
2 Kanle
Masse und Versorgungsspannung
galvanisch getrennt

Zum Verbinden mehrerer I2C-Gerte mit


unterschiedlichen Versorgungsspannungen prsentieren wir hier einen einfachen Pegelwandler fr den Spannungs-

bereich von 3,3...5,0V. Die Schaltung


sorgt zudem fr eine galvanische Trennung der angeschlossenen Busleitungen.
Die Schaltung entstand, als der Autor

VDD1

2 GND1

1u
16V

R3
1
2

VDD1

VDD2

SDA1

SDA2

R4

1u
16V

IC1

3 SCL1
4 SDA1

GND1
4

GND1

SCL2

Juli/August 2016

www.elektormagazine.de

GND2 2

SDA2 4

GND2
5

GND2

Bild 1. Die Schaltung zeigt, wie einfach der ADuM1250 eingesetzt werden kann.

108

VCC2 1

SCL2 3

ADuM1250

SCL1

K2

C2

10k

R2

10k

R1
10k

C1
1 VCC1

VDD2

10k

K1

einen Arduino (5V)


an einen RaspberryPi (3,3V) anschlieen wollte.

150089 - 11

Tabelle 1. Pinbelegung K1 und K2.


Pinnummer

K1

K2

VCC1

VCC2

GND1

GND2

SCL1

SCL2

SDA1

SDA2

labor-projekt
Ohne Optokoppler
Anfnglich berlegte sich der Autor den
Einsatz von Optokopplern zur Anpassung
der Signale. Doch da sein I2C-Bus bidirektional sein musste, bedeutete das auch,
dass er die Signale aufspalten und fr
beide Richtungen Optokoppler einsetzen
musste. Darber hinaus las er bei der
Internetrecherche von Problemen und
Strimpulsen, die bei Optokopplern im
Datenbus auftreten knnten, unter anderem verursacht durch kleine Abweichungen der Reaktionszeiten. Da solche Probleme fr den Autor
nur schwer zu vermeiden/beheben
sein drften, hat er
nach einer anderen
Lsung gesucht.
Und
mit
dem
ADuM1250 von Analog
Devices auch gefunden! Dieses IC ist ein
doppelter I 2C-Isolator
und Pegelwandler, der
beide Seiten des Busses galvanisch vollstndig isoliert (bis 2,5kV),
logische Pegel zwischen
3,3V und 5,0V ausgleicht
und dazu non-latching
ist, also nicht an einer
Datenrichtung hngt.
Er verarbeitet Signale bis
1MHz und liefert maximal
30mA (sink).
Mit diesem IC ist es nicht
erforderlich, die bidirektionalen I2C-Signale in Sendeund Empfangssignale aufzuteilen, wie dies beim Einsatz von Optokopplern erforderlich wre. Ein kleines
Extra ist, dass das IC hot-swappable
ist. Das bedeutet in diesem Fall, dass,
wenn man das IC ohne Versorgungsspannung an einen aktiven Bus anschlieen
wrde, keine Glitches auf dem Datenbus
auftreten.

Die Schaltung
Die Schaltung in Bild1 ist so gestaltet,
dass die Versorgungsspannung, die auch
die Signalpegel bestimmt (also 3,3V oder
5V), auf beiden Seiten getrennt zufgt
wird. Die SDA- und SCL-Datenleitungen
sind auf beiden Seiten mit Pull-up-Widerstnden (R1...R4 = 10k) ausgestattet.
Beide Versorgungsspannungen werden
gesondert gepuffert (C1 und C2). Alle
Anschlsse des ICs sind auf Platinen-

leser-projekt

Stckliste
Widerstnde:

Halbleiter:

R1,R2,R3,R4 = 10k, 100mW, SMD0603

IC1 = ADUM1250ARZ, SOIC-8

Kondensatoren:

Auerdem:

C1,C2 = 1, 16V, Tantal, CASE A

K1,K2 = 4-polige Platinenanschlussklemmen,


Raster 3,5mm

Bild 2. Eine kompakte Platine fr die kompakte Schaltung.

anschlussklemmen (K1, K2) herausgefhrt. Die Belegung der Klemmen ist in


Tabelle1 angegeben. SCL1 wird ber
den ADuM1250 mit SCL2 verbunden,
SDA1 mit SDA2.

Hardware
Fr den Universellen I2C-Bus-Isolator und
Pegelwandler haben wir eine einfache,
kleine Platine entworfen (Bild2). Das
Platinenlayout knnen Sie von der Projekt-Webseite [1] herunterladen, aber
auch eine fertige Leerplatine im Elektor-Shop erwerben [2]. Und wenn Sie
die kleine Anzahl von SMDs nicht selber
verlten wollen, bitte, dann knnen Sie
auf das bestckte Modul zurckgreifen,
das ebenfalls im Shop erhltlich ist. Allerdings, Ihren Ltkolben mssen Sie schon
anheizen, denn die Platinenanschlussklemmen werden mit dem Modul geliefert, mssen aber selbst montiert werden.

In Gebrauch
Obwohl man wenige Fehler mit dem
ADuM1250 machen kann, haben wir uns
eine einfache Testprozedur ausgedacht,
mit dem der Universelle I2C-Bus-Isolator
und Pegelwandler auf korrekte Funktion
und Verbindung geprft werden kann. Die
Prozedur testet die I2C-Kommunikation
mit einem Arduino Uno. Die bentigten
Arduino-Sketches sind ebenfalls auf der
Projektseite [1] zu finden.
Testprozedur 1
mit einer DS1307-RTC (5V):
ffne aus der Arduino-Entwicklungsumgebung den Sketch _5V_test_program

und lade ihn auf den Arduino Uno.


Schliee den Uno an K1 der Platine an.
Schliee eine DS1307-RTC an K2 an und
verwende eine Versorgungsspannung
von 5V. Stelle sicher, dass Arduino und
DS1307 keine gemeinsame Masseverbindung haben.
ffne den seriellen Monitor aus der Arduino-Entwicklungsumgebung (Datenverbindung 9600Baud). Der Monitor zeigt nun
Datum und Zeit, wie von der DS1307RTC geliefert.
Testprozedur 2
mit einem EEPROM (3,3V)
ffne aus der Arduino-Entwicklungsumgebung den Sketch _3V_test_program
und lade ihn auf den Arduino Uno.
Schliee den Uno an K1 der Platine an.
Schliee das EEPROM (24C02) mit einer
Betriebsspannung von 3,3V an K2 des
Bus-Isolators an. Stelle sicher, dass
Arduino und 24C02 keine gemeinsame
Masseverbindung haben.
ffne den seriellen Monitor aus der Arduino-Entwicklungsumgebung (Datenverbindung 9600Baud).
Der Sketch schreibt den Wert 90 zum
EEPROM, Speicherplatz1. Dieser Wert
erscheint im seriellen Monitor, wenn die
Speicherzelle des EEPROMs ausgelesen
wird.
(150089)

Weblinks
[1] www.elektormagazine.de/150089
[2] www.elektor.de/
search?cat=0&q=150089

www.elektormagazine.de

Juli/August 2016

109

Willkommen in Ihrem
ELEKTOR EMPFIEHLT

E-SHOP

Elektor-Bestseller
1. Elektor Uno R4
www.elektor.de/elektor-uno-r4

Mooshimeter

Ein Multimeter ist fr jeden Elektroniker ein unverzichtbares


Messinstrument. In den letzten Jahren sind auch Multimeter
erschienen, die drahtlos arbeiten. Das Mooshimeter ist so ein
Multimeter der neuesten Generation. Das Mooshimeter steckt
in einem ziemlich kleinen Polycarbonat-Gehuse und verbindet
sich ber eine Bluetooth-4.0-Verbindung mit einem Androidoder iOS-Smartphone. Die auf dem Smartphone installierte
App zeigt die gemessenen Werte und bietet verschiedene
Einstellmglichkeiten.
Mit seinen beiden eingebauten 24-bit-A/D-Wandlern, ist die gleichzeitige Messung von
zwei Kanlen mglich, also zum Beispiel Strom und
Spannung. Auerdem gibt es eine Datenlogger-

2. Rhren 1 bis 10
www.elektor.de/roehren-1-bis-10
3. Sensoren am Arduino
www.elektor.de/sensoren-am-arduino
4. 6-Ziffern-Nixie-Uhr
www.elektor.de/150189-71

Funktion. Das Mooshimeter ist ein vollwertiger


Ersatz fr ein Standard-Multimeter mit

5. Raspberry Pi 3
www.elektor.de/rpi-3

ausgezeichneten Eigenschaften und


einzigartigen Features und dies zu

6. NI myDAQ in der Praxis


www.elektor.de/mydaq-in-der-praxis

einem fairen Preis.

7. Mooshimeter
www.elektor.de/mooshimeter

Harry Baggen (Elektor-Redaktion)

8. Apps fr Elektroniker
www.elektor.de/apps-fuer-elektroniker

www.elektor.de/mooshimeter
Digitale Systeme mit FPGAs
entwickeln

NI myDAQ in der Praxis

Atlas DCA75 Pro

FPGAs sind Standard-ICs, die dem Anwender die Konfiguration


von Hardwarestrukturen ermglichen. Mit FPGAs ist die
Umsetzung digitaler Systeme ab Stckzahl eins machbar.
Durch die Verfgbarkeit kostenloser Lizenzen und preiswerter
Entwicklungsboards ist die finanzielle Einstiegsschwelle in
diese Technik niedrig. Bei der berwindung der fachlichen
Schwelle hilft dieser 6-teilige Kurs.

Messen, Steuern und Regeln diese Kerndisziplinen der


klassischen Elektrotechnik bilden auch heute noch die
wesentlichen Schwerpunkte in der elektrotechnischen
Ausbildung. In diesen Bereichen kann das myDAQ-Modul
von National Instruments (NI) praxisnah und kostengnstig
eingesetzt werden. Das Messlabor in der Westentasche
beinhaltet insgesamt acht leistungsfhige Mess- und
Analysegerte.

Man kann das zu testende Bauteil anschlieen wie man


will und trotzdem zeigt das LCD das Schaltzeichen, die
Anschlussbelegung und es werden Tests durchgefhrt.
Der Atlas DCA75 Pro bietet massive Fortschritte in Sachen
leistungsfhiger, portabler Halbleiter-Testung. Es kann sowohl
als solitres Gert als auch in Verbindung mit einem PC
verwendet werden.

Mitgliederpreis: 49,00

Mitgliederpreis: 39,80

Mitgliederpreis: 112,46

www.elektor.de/digitale-systeme-fpga

www.elektor.de/mydaq-in-der-praxis

www.elektor.de/atlas-dca75-pro

110

Juli/August 2016

www.elektormagazine.de

shopping

bcher

dev-tools

projekte

Dieses Buch erklrt, wie man zu marktblichen


Preisen Anlagen bauen kann, die zu
unschlagbaren Niedrigstpreisen Strom liefern
knnen. Es wird erlutert, wie man Anlagen
abhngig vom Standort kalkulieren muss. Dabei
beleuchtet der Autor in leicht verstndlichen
Worten die physikalischen Grundlagen der
Gewinnung von Energie durch Photovoltaik und
erklrt, wie eine Solarzelle prinzipiell arbeitet. Die
grundstzlichen Bestandteile einer PhotovoltaikAnlage werden so erklrt, dass sie auch von
Laien verstanden werden. Ausfhrlich geht der
Autor auf die richtige Wahl von Batterien zur
Speicherung des gewonnenen Stromes ein.
Potentielle Fehler- und Gefahrenquellen beim Aufund Ausbau finden ebenso Bercksichtigung.

NEU

Das Buch richtet sich dabei an Privatpersonen


und an Projektbetreiber, die Strom fr den
Eigenverbrauch erzeugen mchten.

Sensoren am Arduino

NEU!
Photovoltaik
fr
Quereinsteiger
NEU!
Elektor Uno R4
Der Nachfolger des
populren Uno R3

Neuigkeiten &
Angebote aus
erster Hand
Elektor-Newsletter
jetzt abonnieren:

Mitgliederpreis: 24,90 (frei Haus)


www.elektor.de/photovoltaik-quereinsteiger
Raspberry Pi 3 Starterkit (Deluxe)

cd/dvd

www.elektor.de/newsletter.
Logic Analyzer ScanaQuad SQ100

NEU
Dieses besondere Raspberry Pi 3-Starterkit (Deluxe) enthlt
alles, um mit dem weltweit populrsten Mini-Computer direkt
loszulegen: Raspberry Pi 3 (Mod. B) High Quality KunststoffGehuse fr Raspberry Pi (schwarz) Offizielles Micro-USBNetzteil fr den Raspberry Pi 3 (5,1 V | 2,5 A) High Speed
HDMI-Kabel (1 m) Patchkabel Cat.5e (2 m) Transcend
(16 GB, Class 10) microSD-Karte mit SD-Adapter (NOOBS
vorinstalliert)

Mit einem Arduino-Board ohne zustzliche Sensoren kann


man nicht viel anfangen. Dieses Buch richtet sich an jeden,
der seinem Arduino-Uno-Board mit Hilfe von zahlreichen
Sensoren Leben einhauchen mchte. Wie das geht, zeigt der
Autor Schritt fr Schritt mit zahlreichen Abbildungen, und das
in einer leicht verstndlichen Sprache.

Wenn Sie vorrangig digitale Schaltungen entwerfen oder


reparieren, dann drfte Ihnen ein Logik-Analysator mehr als
ein Oszilloskop ntzlich sein, um den Signalen in der Schaltung
zu folgen. Dieser Analyzer ist winzig klein, nur 5x5 cm! Und
doch enthlt das graue Kstchen alles, was an Hardware fr
einen schnellen 4-Kanal-Analyzer erforderlich ist.

Mitgliederpreis: 80,96

Mitgliederpreis: 27,50

Mitgliederpreis: 128,66

www.elektor.de/rpi-3-kit-deluxe

www.elektor.de/sensoren-am-arduino

www.elektor.de/scanaquad-sq100

www.elektormagazine.de

Juli/August 2016

111

www.elektor.de

Treten Sie der Elektor-Community bei!


Jetzt GOLD-Mitglied werden!

GOLD-Mitgli

10x Elektor
jhr

edschaft

lich (Print)
10x Elektor
jhrlich (Digita
l)
Zugang zum
Elektor-Archiv
(mit ber 16 Ja
hrgngen)
Zugriff auf b
er 750 Labs-Pro
jekte
Elektor Jahr
gangs-DVD
10% Rabatt
auf Sh

op-Produkte

Exklusive To
p-Ange

bote

GREEN-Mitg
liedschaft

10x Elektor
jhr

Ebenfalls erhltlich:
Die papierlose GREEN-Mitgliedschaft!
www.elektor.de/mitglied

112

Juli/August 2016

www.elektormagazine.de

Zugang zum
El

lich (Digital)

ektor-Archiv
(mit ber 16 Ja
hrgngen)
Zugriff auf b
er 750 Labs-Pro
jekte
10% Rabatt
auf Shop-Produ
kte
Exklusive To
p-Angebote

shopping

NEU

im hop
r-S
t
Elek o

bcher

dev-tools

projekte

cd/dvd

NEU!

Elektor Uno R4

Normalerweise sind die Unterschiede eher klein, wenn ein Hersteller


eine B-Version eines Produkts auf den Markt bringt dies trifft aber nicht
auf Atmels neuen Mikrocontroller ATmega328PB zu, dessen Vorgnger ATmega328P
unter anderem im Arduino UnoR3 steckt.

Photovoltaik
fr
Quereinsteiger

Elektor Uno R4 bietet nun diesen


neuen verbesserten Mikrocontroller
ATmega328PB, der mit vielen
zustzlichen Features auftrumpft.
Der grte Unterschied zwischen
Elektor Uno R4 und seinem VorgngerRelease R3 sind vier extra Pins am
Steckverbinder Power sowie sein
zweiter USART.

NEU!
Elektor Uno R4
Der Nachfolger des
populren Uno R3

Elektor-Shop
Das gesamte
Elektor-Sortiment
finden Sie auf

Mitgliederpreis: 26,95

www.elektor.de.

www.elektor.de/elektor-uno-r4
Physik-Experimente mit Arduino

Apps fr Elektroniker

6-Ziffern Nixie-Uhr

Dieses Buch wendet sich in erster Linie an alle, die


sich auf dem Gebiet der Physik in irgendeiner Art von
Ausbildung befinden (z.B. Schler, Studenten, Praktikanten,
Auszubildende) oder selbst in der Ausbildung ttig sind. Der
Autor zeigt anschaulich, wie man die unterschiedlichsten,
physikalischen Experimente mit modernen Hilfsmitteln wie
zum Beispiel der Arduino-Plattform sinnvoll ergnzen kann.

Apps fr Smartphones gehren mittlerweile vollkommen


selbstverstndlich zum Alltag und sind in tglich wachsender
Zahl in den entsprechenden Stores kostenlos oder fr
wenig Geld zu haben. Dieses Buch veranschaulicht anhand
verschiedener Beispiele, wie man eigene Apps programmieren
kann, um damit gekaufte oder selbst gebaute Elektronik auf
unterschiedlichen Wegen anzusprechen.

Nixie-Rhren ziehen fast jeden Elektroniker in ihren Bann. Die


warmroten Ziffern, die sich, so scheint es, im Glaskolben vor
und zurck bewegen, sind einzigartig und unverwechselbar.
Diese Digitaluhr mit sechs Nixie-Rhren zeigt Stunden,
Minuten und Sekunden an. Die przise Zeit bezieht unsere
Nixie-Uhr nicht vom Normalzeitsender DCF77, sondern von
dem am Himmel installierten GPS-System.

Mitgliederpreis: 24,90

Mitgliederpreis: 34,80

Mitgliederpreis: 116,96

www.elektor.de/physik-mit-arduino

www.elektor.de/apps-fuer-elektroniker

www.elektor.de/150189-71

www.elektormagazine.de

Juli/August 2016

113

DESIGN

SHARE

Willkommen bei SHARE


Von

Thijs Beckers (Elektor NL)

Flugzeugelektronik
Haben Sie sich auch schon gewundert, wie viel Elektronik in
einem Flugzeug bentigt wird? Ohne Elektronik knnte man
moderne Flugzeuge kaum noch steuern. Besonders Start und
Landung wren gefhrlich, wenn nicht gar unmglich. Es sind
jede Menge Sicherheitssysteme und Komforttechnik eingebaut, um die Passagiere mglichst sicher zu transportieren.
Aber warum muss man als Passagier bei einem Linienflug
seine eigenen elektronischen Begleiter berhaupt ausschalten? Der Flugzeugmodus beim Smartphone gengt zwar,
doch abgesehen vom Argument, dass man in einem Flieger
in einem ziemlich dichten Faradayschen Kfig sitzt und dass
dann die mehr als 150 Mobiltelefone mit maximaler Leistung
immer wieder versuchen, mit einer Mobilfunkstation Kontakt
zu bekommen, habe ich noch keine entsprechenden Untersuchungsergebnisse gefunden. Wer wei
warum, mge uns das bitte mitteilen!
Noch ne Frage: Warum wird bei Start und Landung das Licht gedimmt? Dafr gibt es eine plausible Erklrung. Das Licht in der Kabine wird an die Helligkeit drauen angepasst, sodass im Notfall der Helligkeitsunterschied nicht so gro ist und sich die Augen nicht erst anpassen mssen, was kostbare Sekunden
brauchen wrde, wenn es nicht so wre. Das ist auch der Grund, warum die Fenster offenbleiben mssen.
Das Bordnetz von Flugzeugen ist auch eine interessante Sache. Es gibt gleich zwei davon: Ein dreiphasiges mit 115V und 400Hz sowie eines mit 28V Gleichspannung. Bei 400Hz ist sowohl ein Generator als auch ein Trafo deutlich kleiner als bei den blichen 50- oder 60-Hz-Netzen am Boden. Das
ist fr ein Flugzeug ein gewichtiges Argument. Eine Faustregel besagt, dass jedes eingesparte Kilo
bei Treibstoff und Konstruktion 5kg einsparen. Eine noch hhere Frequenz allerdings bringt andere
Nachteile mit sich. Der grte davon ist der Spannungsabfall, der durch die Induktivitt der Leitungen
entstehen wrde. Bei den in einem Flugzeug vorkommenden Leitungslngen kann sogar schon eine
Netzfrequenz von 400Hz den siebenfachen Spannungsabfall gegenber 60Hz verursachen.
Zum Schluss noch etwas Beruhigendes: Einige Flugzeuge knnen mit einem iPad gesteuert werden,
das den Piloten beinahe vllig ersetzen kann, wenn etwas schiefgeht. Der Autopilot wird dann durch
das iPad gesteuert, und dadurch kann das Flugzeug immer noch sicher landen.

LEARN

Foto: www.popsci.com

114

Juli/August 2016

www.elektormagazine.de

(160022)

review

aus dem labor

web-recherche

updates

Elektormagazine.de/Labs
Geschenke - wer erhlt sie nicht gerne? Wir tun es und wurden auch
tatschlich beschenkt. Ja ist es denn schon Weihnachten? Oder etwas
anderes? Schwer zu sagen. Was wir wissen ist, dass wir auf
/Labs angenehme berraschungen lieben.

Zwitscher-Hardware

http://po.st/squea

kingbird

Im Elektor-Castle erhalten wir oft schlecht oder unleserlich adressierte Pakete,


begleitet von einem Blatt Papier mit einem etwas kryptischen Text, und manchmal
nicht einmal das. Trotz dieser Umstnde sind wir bemht, Paketinhalt und Text mit
einem Projekt zu verknpfen, an dem wir im Labor arbeiten. Dieses Mal jedoch
waren wir mit unserem Latein am Ende! Ein Pckchen, vllig anonym, enthielt
eine kleine Platine, die, wenn eingeschaltet, hohe Zwitschertne von sich gibt.
Wer will uns damit etwas sagen? Wenn Sie Schpfer dieses Gadgets sind, lassen
Sie es uns wissen, damit wir Ihnen ein persnliches Thank-U zwitschern knnen.

Flaschenpost
An einem anderen Tag landete ein ziemlich groes Paket aus der Schweiz in
unserem Labor. Darin fanden wir einen USB-Stick, ein Steckernetzteil und einen
schn gebauten Apparat, bestehend aus einer Platine mit vielen LEDs darauf, die
verdchtig nach einem scrollenden LED-Zelt aussahen. Das einzige beiliegende
Dokument war eine Visitenkarte mit einer E-Mail-Adresse. Nach dem Einschalten
des Gertes entdeckten wir, dass das Festzelt eine Nachricht an Elektor anzeigt,
und zwar auf Franzsisch: Es handelt sich um Open Source und ist bereit zur Verffentlichung und zur Verbesserung. Genau das ist nun geschehen!
http://po.

st/scrollin

gLED

Magisches Auge fr Windows 10


Im Januar 2010 haben wir ein magisches Auge (einen Vakuumrhren-Indikator)
vorgestellt, der die CPU-Belastung im PC visualisierte. Die glhende Rhre, mehr
sthetisch als ntzlich, war fr PC-Modder gedacht. Das Projekt enthielt einen
Treiber fr Windows, der damals prima funktionierte. Sechs Jahre und mehrere
Windows-Versionen spter scheint der Treiber jedoch nicht mehr zu funktionieren.
Was ist zu tun? Der bliche Ansatz wre, den Windows-Treiber zu aktualisieren
oder zu flicken, aber warum nicht die Hardware ndern und einen Windows-Treiber ganz umgehen?

http:/

/po.st

/magic

eyewin

10

Netzfrequenz-Messer
Die Qualitt der Netzspannung ist etwas, das mehr Menschen Sorgen bereitet als man denkt. Obwohl doch die Netzfrequenz extrem stabil ist, will
es der Verbraucher nicht nur glauben, sondern mit eigenen Augen sehen.
Aufgrund der geringen Frequenz scheint die Messung der Netzfrequenz
einfach, doch sie erfordert eine stabile und genaue Zeitreferenz und einen
wohldefinierten Triggerpunkt. Der Autor dieses Projekts hat sich schon
einige Jahre mit dem Thema beschftigt und uns nun eine neue Software
fr sein Netzfrequenz-Meter geschickt.
(160023)

http://p

o.st/gr

idfrequ

www.elektormagazine.de

ency

Juli/August 2016

115

learn

design

share

review

aus dem labor

web-recherche

updates

Professioneller Audio-Messplatz
von Anno Domini 1969

In der Nachkriegszeit war die Nederlandse Radio Unie die spter zur NOS (Nederlandse Omroep
Stichting = Niederlndische Radio-Stiftung) wurde ein Pionier in Sachen hochqualitativer AudioAufzeichnungen und natrlich auch bei verlustarmer Sendetechnik. Man verstand sich als die Quelle des
Audio-Materials und daher war jede Art von Verzerrung des Teufels. Dieser Beitrag zeigt, wie sehr sich die
Ingenieure der NRU/NOS darum bemhten, Audio-Signale mglichst rein zu erhalten.
Von Theo Bouman (Niederlande)

Das Streben nach mglichst geringen Verzerrungen (auch D von Distortion oder
schlicht Nichtlinearitt genannt) erforderte die regelmige berwachung der
Qualitt des aufgezeichneten und gesendeten Tonmaterials. Manchmal war das
schlicht nicht (so einfach) mglich, da
die bentigten Gerte damals noch nicht
erhltlich waren.
Selbst die Hersteller, die viel Ausrstung
an die NOS verkauften, waren damals
nicht immer in der Lage, den Qualittsansprchen der NOS gerecht zu wer-

den. Diese Situation provozierte etliche


Ingenieure dazu, ihre eigenen Lsungen zu entwickeln. Der hier beschriebene Audio-Messplatz wurde zwischen
1966 und 1969 entwickelt und in der
NOS-eigenen Werkstatt hergestellt. Um
die gewnschte hohe Qualitt zu garantieren, wurden zunchst alle Bauteile durchgemessen und auf eine Genauigkeit von
0,5% selektiert.
Der Autor arbeitete damals in dieser
Abteilung des NOS und zeichnete auch
fr die Entwicklung dieser Messtechnik
verantwortlich. Heute ist er im Ruhestand
- und Fan der Elektor-Rubrik Retronik versteht sich.

Erste Messgerte
mit Transistoren
Zusammen mit mehreren Studios in
Hilversum unterhielt die NOS etliche
Sendestudios an anderen Orten in den
Niederlanden. Darunter befanden sich
bekannte Einrichtungen wie das Konzerthaus in Amsterdam, das Studio Den Haag,
das Kurhaus in Scheveningen und die
regionalen Sendezentren von Maastricht
und Groningen. Fr die Inbetriebnahme
und die Vermessung neuer und schon
existenter Audio-Systeme in den unterschiedlichen Studios war praktische und
vor allem kompakte Messtechnik erforderlich. Die bis zum Ende der 1960er Jahre

www.elektormagazine.de

Juli/August 2016

117

learn

design

share
eingesetzten Messgerte arbeiteten alle mit Rhren und waren
deshalb sehr schwer und nicht so einfach zu transportieren. Die
neue Messtechnik hingegen war die erste, die damals auf Halbleitern basierte, was das Gewicht deutlich zu reduzieren half.
Es gab Messtechnik fr die Sender- und die Empfngerseite
sowie ein Wechselspannungsmillivoltmeter und einen Oszillographen (heute unter Oszilloskop laufend, der Hrsg. ;-) ).

Bild1. Sender-Messtechnik im originalen Gehuse.

Diese portable Messtechnik wurde in vier Holzgehuse eingebaut. In je einem steckte die Sendetechnik (Bild1), die Empfngertechnik (Bild2), das Millivoltmeter plus der Oszillograph
- ein Gehuse war fr die notwendigen Kabel und Messstrippen vorgesehen. Letzteres enthielt auch zwei Behltnisse mit
Widerstnden und Kondensatoren, die nderungen erlaubten,
falls sich bei Messungen herausstellen sollte, dass etwas nicht
in Ordnung war. Die Gehuse maen 42x27x24cm (BxTxH).
Die Senderkiste wog nur 11,5kg und selbst die Empfngertechnik brachte lediglich 13,3kg auf die Waage. Damals war
das ein Unterschied, der einen Unterschied machte, denn die
alte Rhrentechnik war mindestens doppelt so schwer. Das Foto
mit dem Oszilloskop zeigt leider nicht die damalige Technik,
sondern einen moderneren Ersatz, denn der originale Oszillograph konnte nirgendwo mehr aufgetrieben werden. Auch
die Suche im Keller des Video- und Audio-Museums, das stolz
darauf ist, von praktisch allem ein Exemplar zu besitzen, blieb
erfolglos (mglicherweise ein Philips GM56xx oder PM32xx
vielleicht knnte die Retronik-Sammlung helfen, der Hrsg.).
Mit dieser Ansammlung an Messtechnik waren alle notwendigen
Funktionen fr die Messung und den Test von Audiosystemen
zusammen. Man konnte den Frequenzgang, die Verstrkung,
die Phase und sogar die Impedanzanpassung messen.

Spezifikationen und Eigenschaften

Bild2. Frontansicht der Empfnger-Messtechnik.

Bild3. Rckseite der Sender-Messtechnik: Bei der Glasrhre in der


unteren rechten Ecke handelt es sich um einen Thermistor, der in der
Rckkopplungsleitung steckt.

118

Juli/August 2016

www.elektormagazine.de

Die Elektronik fr die Senderseite (Bild3) enthielt einen Tongenerator fr Sinus-Signale von 15Hz bis 150kHz (in fnf
Bereichen), einen 100-Hz-Sinus-Generator, einen Sinus/Rechteck-Konverter, einen Przisionsabschwcher mit 5-dB-Schritten fr insgesamt -50dB sowie einen zustzlichen Abschwcher um -50db, was einen Gesamtwert von -100dB mglich
machte. Die Abschwcher waren natrlich symmetrisch. Zur
Kompensation der niedrigen Ausgangspegel des Tongenerators sowie zur Impedanzanpassung und fr einen symmetrischen Ausgang gab es noch einen extra Verstrker mit Trafo
(siehe die Schaltung in Bild4). Am Ausgang befand sich ein
Impedanz-Wahlschalter, der Werte von 10 bis 1k mglich
machte. Auerdem gab es noch eine zweistufige Einstellung
fr Verluste. Natrlich war auch ein Pegelmessgert eingebaut, das sehr sorgfltig bei jeder hergestellten Kiste auf
0dBm kalibriert war.
Nach einigen Experimenten gelang es uns, die Verzerrungen
des Tongenerators auf nur 0,02% zu drcken. Das war fr die
Messung von Verzerrungen an den damaligen hochwertigen, im
NOS-Labor entwickelten Verstrkern erforderlich. Die Signalquelle musste ja besser sein als das zu messende Gert, um
die Verzerrungen des Verstrkers genau erfassen zu knnen.
Der 100-Hz-Sinus-Generator wurde fr die Messung von Intermodulationsverzerrungen bentigt. Das war bei elektromechanischen Aufzeichnungsgerten wie Tonbandmaschinen oder
Vinyl-Rekordern notwendig. Der Sinus/Rechteck-Konverter produzierte ein unsymmetrisches Rechtecksignal, das fr Phasen-

review

aus dem labor

web-recherche

updates

NOS-Elektronik aus den 1960ern Ingenieursarbeit in Bildern


[Von Jan Buiting] Als NOS noch fr Nederlandse Omroep Stichting statt fr New Old Stock stand! Diese Fotoserie bezeugt das Geschick der
leidenschaftlichen Ingenieure im niederlndischen NOS-Labor der frhen 1960er Jahre nicht nur in punkto Elektronik, sondern auch beim
mechanischen Aufbau. Da es sich bei der NOS um eine Stiftung handelte, gab es keine Grenzen fr Spenden.
Bemerkenswert sind auch die verwendeten Bauteile, die hufig aus der Fertigung von Philips stammten. Das gilt besonders fr die
blauen Elkos und die gelben Polyester-Cs der HiRel-Serie, die damals recht teuer waren. Das berrascht nicht, denn die Niederlassung
der NOS befand sich in einer Gegend, aus der die meisten Sendungen in den Niederlanden kamen. Benachbart waren auch die Werke der
Telekommunikationssparte von Philips in Hilversum und Huizen, alles in typisch hollndisch Fahrradentfernung. Andererseits waren die
meisten verwendeten Transistoren (MM, 2N3704/06 etc.) aus amerikanischer Fertigung und die Przisionspotis stammen von Colvern auf
der anderen Kanalseite.

t
nks vorne sieh
esstechnik: Li hirmten
Empfnger-M
sc
ge
MU-Metall ab
man den mit
o.
af
tr
Netz

Empfnger-Messtechnik von oben: Freie


Sicht
auf die Drehschalter.

Elektronik der Empfnge


r-Messtechnik: In der
Mitte sieht man die dre
i Filter fr 50, 100 und
150Hz.

ist in
ermistor (unten)
enerators: Der Th
spezing
te
To
s
ss
de
mu
il
ng
ltu
ute
ha
Ba
Sc
geschleift. Dieses
ein
ng
plu
op
.
nk
en
ge
rd
die Ge
tiert we
rzerrungen selek
ell fr geringste Ve

Der 100-Hz-Si
nu
von Intermod s-Generator wird fr die M
ulationsverzer
es
rungen bentig sung
t.
Leider lie sich der originale Osz
illograph aus den
1960ern nicht mehr auftreiben.
Der Ersatz von
Kenwood aus den spten 1980ern
tut es aber (fast)
genauso gut ;-).

-Messtechnik auf
Elektronik der Empfnger
.
inen
Plat
n
rere
meh

Weitere Elektronik im Generator-Gehuse


mit

vollsymmetrischem Abschwcher.

www.elektormagazine.de

Juli/August 2016

119

learn

design

share

Bild4. Verstrker fr den Tongenerator: Diese Schaltung soll den Pegel des
Tongenerators anheben und fr eine niedrige Ausgangsimpedanz sorgen.

Bild5. Die Schaltung des in die Gehuse eingebauten Netzteils stammt aus
dem Jahr 1966, der Anfangszeit der Entwicklungen. Man erkennt noch die
Initialen des Autors (MB = M. [Theo] Bouman), mit denen der Schaltplan
abgezeichnet wurde.

messungen bentigt wurde (siehe das Foto des kompletten


Messplatzes). Auerdem konnte man so die Phase von Verbindungen z.B. bei Mikrofonen, Ein- und Ausgngen bestimmen.
Selbstverstndlich war auch ein Netzteil eingebaut. Es machte
aus der 220-V-Netzspannung Gleichspannungen mit 18 und
24V (siehe Bild5). Das Netzteil wurde im Gehuse nochmals
von einer Umhllung aus MU-Metall gekapselt, um magnetische Streufelder zu minimieren. Auch der Stufenabschwcher
ist mit MU-Metall magnetisch und elektrisch abgeschirmt. Der
Tongenerator hat noch einen zustzlichen Ausgang via Isolationstrafo, der fr saubere Messungen an unsymmetrischer
Elektronik erforderlich war.
Die Kiste mit der Empfngertechnik hat links vier Eingnge mit
Tuchel-Buchsen (Bild6) fr die Tuchel-Stecker von Bild7.
Ein Umschalter erlaubt die Wahl von Lasten von 3, 5, 7, 15,
80, 200, 400, 500 und 1.000 oder unendlich. Ein -30-dB-Abschwcher ist fr Ausgangspegel ber +20dBm gedacht. Der
linke Schalter in der Mitte ist fr die Messung von Rauschen bei

150, 100 und 50Hz vorgesehen. Die Messungen knnen auch


A-bewertet vorgenommen werden, wodurch z.B. Rauschen so
erfasst wird, wie dieses vom durchschnittlichen menschlichen
Ohr wahrgenommen werden wrde. Der Drehschalter rechts
davon whlt zwischen den drei Stellungen Durchgang, Harmonisch und Intermodulation. Das Messfilter fr Verzerrungen ist fr eine Frequenz von 1kHz ausgelegt und unterdrckt die Grundfrequenz um beeindruckende -130dB. Das
Messinstrument ist fr die Kalibrierung von Intermodulationsmessungen gedacht.

Millivolt und Dezibel


Alle Messungen erfolgten mit Hilfe eines Millivoltmeters vom
Typ Philips PM2454. Die Messungen wurden in dB, also relativ zum Ausgangspegel vorgenommen. Ein Beispiel: Liegt der
Ausgangspegel bei +6dB und der Drehschalter rechts steht
auf Durchgang, knnen die die Verzerrungen beispielsweise die
relativen Pegel 50, 60 oder 65dB haben. Die Messwerte
waren also immer relativ zum jeweiligen Pegel von z.B. +6 oder
+12dB zu sehen bei einem Leistungsverstrker auch relativ zu einem Pegel von z.B. +42dB. Die relativen Messwerte
lassen sich sehr einfach in Prozentwerte umrechnen, denn
-40dB entspricht ja bekanntlich 1% und -60db exakt 0,1%.

Ergebnisse

Bild6. Linke Seite der EmpfngerMesstechnik mit den Tuchel- und


Bananenbuchsen.

120

Juli/August 2016

Bild7. Tuchel-Stecker.

www.elektormagazine.de

Ab 1969 wurden insgesamt 20 solche Messpltze hergestellt.


Sie wurden auch von der Audio-Abteilung der TV-Sender-Gruppe
eingesetzt. Zustzlich wurden auch Tests und Messungen in
anderen Rumen der NOS (nicht nur in Ton-Studios, sondern
auch bei Mittelwellen- und UKW-Sendern) durchgefhrt. Die
Messpltze wurden sowohl mobil als auch stationr eingesetzt.
Meine Kollegen damals waren sehr begeistert von diesen Messpltzen. Es gab wohl whrend der ganzen Zeit ihres Einsatzes von 169 bis 1985 kaum ein Problem oder einen Fehler mit
dieser Messtechnik. Die hier abgebildeten, seltenen und noch
berlebenden Gerte funktionieren immer noch perfekt.
(160032)

review

aus dem labor

web-recherche

updates

LCD am Rpi anschlieen


Wie einfach (oder schwierig) kann das sein?
Fr den Raspberry Pi gibt es unglaublich viele Aufsteckplatinen (so genannte HATs, Hardware Attached
on Top) fr die verschiedensten Anwendungen. Manche funktionieren schon, wenn man sie aufsteckt,
andere mssen erst konfiguriert oder mit der richtigen Software ausgestattet werden...
Von Luc Lemmens (Elektor-Labor)

Vor allem bei solchen Dingen wie einem Display-Modul wre es


praktisch zu wissen, was man anstellen muss, um ein Bild auf
den kleinen Schirm zu zaubern, und sei es nur um zu berprfen, ob das Display funktioniert oder nicht. Elektor bietet seit
einiger Zeit ein kleines Touch-Display fr den Raspberry Pi an
[1]. Das 320x240 Pixel umfassende Farbdisplay mit einer Diagonalen von 2,8Zoll verfgt ber eine resistive Touch-Flche
und kostet nicht die Welt. Das Display-Modul ist genau so gro
wie der Raspberry Pi. Dadurch ist die Kombi sehr kompakt und
kann leicht irgendwo eingebaut werden.
Einige Kufer des Displays haben bei uns nachgefragt, welche
Software ntig ist, damit das Display arbeitet, da die normalen
Linux-Distributionen der Raspberry-Pi-Foundation das Display
nicht untersttzen.
Der Hersteller des Displays, die thringische Firma Watterott,
unterhlt bei Github eine Webseite, die alle erforderlichen
Informationen und die Software fr das Display enthlt [2].
Im Downloadbereich dieser Seite findet man fix und fertige

SD-Card-Images (Raspian/Debian), bei denen die Untersttzung fr das Touch-Display schon integriert ist. Mit den Images
lsst sich wie auf der RPi-Seite beschrieben ganz einfach eine
neue SD-Karte brennen.
Wer seine Installation nicht opfern mchte, kann von dieser
Webseite ein Script herunterladen, das den FBTFT-Framebuffer
fr das Display installiert. Wir haben das Script hier im Elektor-Labor getestet und festgestellt, dass es perfekt arbeitet.
Und es gibt auch eine Anleitung, wie man ohne Script die Installation manuell erledigen kann. Nur eines mssen Sie in allen
Fllen abschlieend tun, nmlich den Touchscreen kalibrieren.
Auf der gleichen Webseite finden Sie noch eine Anzahl von
Projekten mit der Kombi RPi/Touch-Display, etwa ein Webradio
oder ein Mini-TV. Es lohnt sich, einen genaueren Blick darauf
zu werfen!
(150824)

Weblinks
[1] www.elektor.de/touch-display-for-raspberry-pi
[2] https://github.com/watterott/RPi-Display

www.elektormagazine.de

Juli/August 2016

121

learn

share

design

ScanaQuad,

der allerkleinste Logic-Analyzer


Dekodiert eine Vielzahl serieller Protokolle
Von Harry Baggen (Elektor-Labor)

Da die meisten Schaltungen heutzutage digital arbeiten,


wird die Anschaffung eines echten Logic-Analyzers (oder
ist Protokoll-Analyzer der bessere Ausdruck?) immer
interessanter. Wenn das Gert bezahlbar sein soll,
kommt man schnell zu einem Analyzer, der an der
USB-Schnittstelle arbeitet. Doch welches Modell
ist praktisch, vielseitig und sein Geld wert? Wir
haben im Elektor-Labor die ScanaQuad-Reihe des
franzsischen Herstellers Ikalogic getestet.

Wenn Sie vorrangig


digitale Schaltungen
entwerfen oder reparieren, dann drfte ein Logik-Analysator
ntzlicher als ein Oszilloskop sein, um
den Signalen in der Schaltung zu folgen.
Doch welchen Logic-Analyzer sollen Sie
sich zulegen? Die Gerte der groen Hersteller sind fr das Heimlabor oder fr
Startup-Unternehmen meist zu kostspielig
und billige Alternativen leisten oft nicht
das, was man sich von ihnen verspricht
oder haben eine nur unausgegorene Software. Doch das ndert sich nun!

Vier Modelle
Die franzsische Firma Ikalogic stellt seit
2010 Logic-Analyzer mit USB-Anschluss
fr den Gebrauch an einem PC oder Laptop her. Nichts Besonderes, sollte man
meinen, wre da nicht die neue Reihe
von Analyzern, die Ikalogic Ende letzten
Jahres auf den Markt brachte und die alle
mit vier Kanlen ausgestattet sind. Und
warum keine acht oder noch mehr? Nun,
wenn man darber nachdenkt, werden die
Grnde deutlich: Die meisten modernen
Mikrocontroller und digitalen Schaltungen verwenden serielle Verbindungen, um
Anschlusspins und damit Platz auf der

122

Juli/August 2016

www.elektormagazine.de

Platine zu sparen. Sensoren, EEPROMs, Kommunikation mit der Auenwelt, alles


luft ber IC, IS, 1-Wire, USB
et cetera und bentigt nur zwei,
drei oder hchstens vier Leitungen.
Warum also sollte sich ein Logic-Analyzer nicht auf vier Kanle beschrnken?
Ikalogik hat das sehr gut erkannt. Dank
der Software-Integration beinahe aller
seriellen Protokolle bentigen die ScanaQuad-Produkte tatschlich nicht mehr
Kanle, und wenn es dennoch einmal
erforderlich sein sollte, haben die Ikalogic-Ingenieure die Mglichkeit geschaffen, ber einen besonderen Adapter mehrere Analyzer parallel zu schalten (bis zu
24Kanle).
Die ScanaQuad-Reihe umfasst die vier
Modelle SQ25, SQ50, SQ100 und SQ200,
die sich vor allem in der Samplerate
unterscheiden. Die Zahl in der Typenbezeichnung gibt die Samplerate in Mbit/s
pro Kanal an (SQ25 = 25MHz), wobei
die Anzahl der eingesetzten Kanle keinen Einfluss auf diesen Wert hat. Die
beiden groen Modelle haben im Vergleich zu den kleinen einen weiteren Eingangsspannungsbereich (15V), mehr
Ein- und Ausgangskonfigurationen und
die Mglichkeit, Differenzmessungen
vorzunehmen.
Der Anwender kann jeden der vier

Anschlsse selbst definieren, also zum


Beispiel bestimmen, welchen er als SDAund als SCL-Leitung eines IC-Busses
verwendet. Darber hinaus kann jeder
Anschluss auch als Ausgang fungieren
und zum Beispiel ein Rechtecksignal mit
einstellbarer Frequenz und Tastverhltnis
produzieren. Mit Javascript-Befehlen lassen sich sogar komplexe Datenstrme
selbst definieren. brigens trifft dies auch
auf die Dekoder-Protokolle zu, obwohl
davon eine groe Anzahl fix und fertig
zur Verfgung steht. Es ist auch mglich,
gelesene Daten zu speichern, eventuell
zu modifizieren und sie ber einen der
Kanle abzuspielen.
Hier eine bersicht der momentan verfgbaren Protokolle: 1-Wire, CAN, DHT11/22,
DMX-512, HC-SR04, IC, IS, JTAG, 4-bitLCD, LIN, Manchester, Maple, MIDI, NMEA
0183, nRF24L01, Oregon Scientific, parallel-bus, PWM, SENT, SPI, SPI WIZnet
W5100, UART und USB1.1. Daneben
werden auch bestimmte Bauteile untersttzt, zum Beispiel 1-Wire-Temperatursensoren und IC-Temperatur- und
Feuchtesensoren.

In der Praxis
Seit einiger Zeit verwenden wir im Elektor-Labor einen ScanaQuad-Analyzer.
Schon bei der Lieferung erstaunte uns

review

aus dem labor

web-recherche

updates

Ein Logic-Analyzer, nur 5x5cm klein!


das kleine Pckchen, als es recht verloren auf dem Labortisch lag, doch nach
dem ffnen war die berraschung wirklich gro: Der Analyzer war tatschlich
winzig, nur 5x5cm! Und doch enthlt
das graue Kstchen alles, was an Hardware fr einen schnellen 4-Kanal-Analyzer erforderlich ist. Daneben befanden
sich noch ein USB-Anschlusskabel und ein
fnfadriges Messkabel mit Anschlussclips
im Karton.
Die dazu gehrende Software ScanaStudio (auf der Ikalogic-Webseite fr
Windows, OSX und Linux verfgbar)
ist schnell installiert. Das Programm ist
schn bersichtlich aufgebaut und nach
kurzem Herumprobieren wussten wir ber
die wichtigsten Funktionen Bescheid.
Einige Dinge (wie eigene Protokolle zu
erstellen) sind naturgem ein wenig
komplizierter, doch es ist dem Programm
deutlich anzumerken, dass es von Technikern fr Techniker geschrieben wurde.
Alles mutet sehr logisch (was sonst?) an.
Beim Programmstart beginnt man mit
einem neuen oder schon bestehenden
Workspace, einem Fenster, das die vier
Kanle darstellt und in dem sie konfiguriert werden knnen. Es ist mglich, dass
mehrere Workspaces gleichzeitig geffnet
sind, auch mit unterschiedlich eingestellten Protokollen. Man kann schnell zwischen den Workspaces wechseln, wobei
nur die Einstellungen des aktiven Fensters auch tatschlich aktiv sind. Vorrangig stehen die vier Kanle im Bild, wobei
sich fr eine bessere bersichtlichkeit ein
oder mehrere Kanle deaktivieren lassen.

In einem Konfigurationsmen stellt


man verschiedene Parameter fr jeden
Anschluss ein: das zu messende logische
Niveau, ob eine Leitung Ein- oder Ausgang
ist, Open-drain oder IC-I/O, RS232-Eingang, Wert des Pulldown-Abschlusswiderstands, eventueller Pullup-Widerstand.
Fr fast jede Situation ist eine passende
Einstellung/Kombination zu finden.
Die Anzahl der Triggermglichkeiten
ist nahezu unbegrenzt. Abgesehen von
manuellem Start, steigenden und fallenden Flanken ist man in der Lage, in einem
Drag-and-drop-Men selber eine Reihe
von Pegeln und Flanken zusammenzustellen. Sogar dezimale, ASCII- oder HexWerte lassen sich als Triggerbedingung
einstellen. Was vielleicht noch fehlt, ist
ein Free-running-Modus, um zu berprfen, ob Signale auf der Leitung vorhanden sind.
Nach einem Trigger wird der interne
Speicher des Analyzers mit Daten vollgeschrieben. Abhngig vom Modell ist dieser Speicher 1MB bis 16MB gro. Ein
Streaming der Daten ber USB ist nicht
vorgesehen, da der interne Speicher im
Gert viel schneller als der USB ist und
meist ist auch der Speicherplatz ausreichend, um alle gewnschten Informationen zu liefern. In dem Wiedergabefenster kann man durch den gesamten Speicherraum scrollen und ein/auszoomen.
Es knnen Marker gesetzt werden und
diverse Analysen vorgenommen werden,
selbst solche Dinge wie Duty-cycle-Messungen oder die Bestimmung der Anzahl
positiver und negativer Flanken zwischen

Bild 2. Der bersichtliche Arbeitsplatz der


ScanaStudio-Software.

Bild 3. An der rechten Seite kann man die Daten


im Hex-Format oder wie hier in Paketen
anzeigen lassen.

Bild 1. Das Innenleben des ScanaQuad-Analyzers


besteht vorrangig aus einem Spartan-FPGA von
Xilinx und einem schnellen Speicher.

zwei Markern. Wenn gewnscht, kann


man ein zustzliches Fenster ffnen, in
dem die Daten im Hex-Format angegeben
oder Datenpakete mit dazu gehrenden
Zeiten gezeigt werden.
Je lnger und intensiver man mit dem
ScanaQuad arbeitet, desto mehr lernt
man den unkomplizierten Gebrauch der
sehr umfangreichen Benutzerschnittstelle
zu schtzen. Wir haben eigentlich keinen
einzigen kritikwrdigen Punkt am Gert
gefunden. Wer unbedingt mchte, knnte
an der doch ziemlich komplizierten Definierung eigener Protokolle herummkeln.
Aber in dieses Thema muss man sich halt
sehr intensiv vertiefen. Doch selbst hier
muss man Ikalogic fr die umfangreiche
Online-Anleitung zu diesem Punkt loben!
Welchen Typ man sich anschafft, hngt
hauptschlich von der Geschwindigkeit
der Schaltungen ab, die berprft werden
sollen. Klein, aber fein: Der ScanaQuad
ist tatschlich jeden Cent wert, den man
fr ihn ausgibt.
(160101)

Weblink
www.elektor.de/
logic-analyzer-scanaquad-sq100

Bild 4. Der Script/Protocol signal builder


enthlt Muster, die man als Beispielcode
verwenden kann.

www.elektormagazine.de

Juli/August 2016

123

learn

share

design

Welches Oszilloskop?
Elektor 05/2016, S.10 (150769)

Dieser Artikel soll Elektronikern bei der Auswahl des richtigen Oszilloskops helfen. Leider enthlt der Artikel eine Ungenauigkeit, auf die uns Rohde & Schwarz
aufmerksam machte. Unter der berschrift Schnittstellen zur Fernsteuerung
wird berichtet, dass Hameg immer noch die altbekannte RS232-Schnittstelle
verwendet. Die Hameg-Oszilloskope werden allerdings seit Jahren auch mit
einer USB-Schnittstelle ausgeliefert. Wir bitten fr diesen Fehler um Entschuldigung. Im Elektor-Labor verwenden wir selbst verschiedene Hameg-Oszilloskope, die mit einem Dual-Interface (RS232 + USB) ausgerstet sind. Der
Benutzer kann dann selbst die geeignete Schnittstelle auswhlen

Projekt 2.0

Korrekturen, Updates, Leserbriefe


Platino, die Rckkehr
Elektor 03/2016, S.50 (150555)

6
5
4
3
2
1

In das Projekt haben sich zwei Fehler eingeschlichen.


UNIVERSAL AVR BOARD
Gem Schaltplan und Stckliste ist T1 ein BC547C,
aber das Layout der Platine ist fr einen 2N3902
+
gemacht. Beide Typen knnen verwendet werden,
aber sie sind nicht pinkompatibel, Emitter und Kollektor sind vertauscht. Ein BC547 oder ein Transistor mit gleicher Pinbelegung sollte daher auf der
LCD-Seite des Board eingeltet werden, oder um
180 gedreht auf der Komponentenseite. Wenn die
1
2
3
LCD-Hintergrundbeleuchtung die ganzen Zeit an
sein soll/darf, dann schlieen Sie die Anschlsse
fr Kollektor und Emitter einfach mit einer Drahtbrcke kurz, und lassen T1 weg.
Im Artikel in Tabelle 1. (Platino-Ltbrcken) findet sich in der Zeile JP3, LCD-Hintergrundbeleuchtung, eine falsche Angabe
(PC7). Richtig ist: Port PB5 oder PC5. Der Schaltplan zeigt die richtige Bedeutung des Jumpers.

Raumklima-Controller
Elektor 06/2015, S. 54 (140345)

Der Autor des Artikels, Goswin Visschers, hat inzwischen weitere Erfahrungen mit dem Klima-Controller gesammelt. In den
letzten zwei Jahren ist ihm der Temperatur- und Feuchte-Sensor bereits dreimal ohne ersichtlichen Grund kaputtgegangen.
Er hat daraufhin die Schaltung modifiziert und sich fr einen anderen Sensor entschieden. Der neue Sensor ist ein DHT22
von Adafruit (mit hnlichen Spezifikationen); er kostet sogar nur ein Viertel des bisherigen Sensors. Um den neuen Sensor verwenden zu knnen, mssen ein paar kleine Anpassungen auf der Platine durchgefhrt werden. Der DHT22 ist ein
One-Wire-Sensor und hat daher kein I2C-Interface. R13 muss durch einen 10-k-Widerstand ersetzt werden. Der DATA-Pin
des Sensors wird dann auf den SDA-Pin des Steckers (der mit RC4 des Mikrocontrollers verbunden ist) gelegt. Der SCLStift bleibt unbenutzt.
Natrlich musste auch die Software angepasst werden. Die Daten, die durch den Sensor angeboten werden, mssen nun
nicht mehr konvertiert werden, was erheblich Code einspart. Daher konnte noch eine RS232-Funktion mit ins gleiche Programm aufgenommen werden.
Im Men kann die RS232-Option fr den Ausgang1 mit dem Befehl O1=1[CR][LF] ein- und mit O1=0[CR][LF] ausgeschaltet werden (dito fr Ausgang 2). Die serielle Zeichenfolge mit den Statusinformationen wird jede Sekunde gesendet,
unabhngig davon, welche Menoption ausgewhlt ist.
Die neue Softwareversion kann auf der Webseite des Projekts (www.elektormagazine.de/140345) heruntergeladen werden.

124

Juli/August 2016

www.elektormagazine.de

review

aus dem labor

web-recherche

updates

Welches Oszilloskop?
Elektor 05/2016, S.10 (150769)

Ich besitze ein UNI-T DSO mit dem mickrigen 320240-Display, was den blichen Frust erzeugt. Zum Glck bietet
das Gert die Samples ber USB an, so dass man die Daten auf einem Computer-Monitor darstellen kann. Ich
habe ein Programm geschrieben, mit dem sich ber 10.000 Samples darstellen lassen (vorausgesetzt man hat
gengend viele Monitore). Auf jeden Fall kann man in diesem Bereich scrollen. Die vertikale Auflsung betrgt 9bit.
Das Programm ist in Python geschrieben und luft auf einem PC unter Windows oder Linux und auf ARM-Prozessoren
(ODROID, Raspberry Pi2). Die Software und die englischsprachige Dokumentation stelle ich gerne zur Verfgung und ich
wrde mich freuen, wenn Sie sie ihren Lesern anbieten wrden. Einen Screenshot finden Sie in der Anlage.
Hermann Hamann
Hallo Herr Hamann,
na, da haben Sie die Darstellungsmglichkeiten des UNI-T-DSO wirklich ordentlich aufgebohrt!
Vielen Dank fr Ihr Angebot, natrlich stellen wir die Software gern auf der Webseite zum obigen Artikel (www.elektormagazine.de/150769) zum Download bereit.
Ralf Schmiedel, Elektor-Leserservice

Gigantomania
Elektor 05/2016, S.74 (150738)

Sehr geehrter Herr Dr. Scherer,


vielen Dank fr die nostalgische Reminiszenz an Ihren GIGANT 1986! Wahrscheinlich wissen Sie, dass der Name
GIGANT im NF-Verstrkerbau eine gewisse Tradition hat. Erstmals im Bastelbuch 1961 bot die Firma RIM, Mnchen, den Bausatz eines Rhren-Mischpultverstrkers unter diesem Namen an. Er holte aus zwei Endrhren EL 34
eine Leistung von 30Watt, die bei Bedarf durch Umschaltung der Betriebsspannung auf 12Watt zu reduzieren war.
Wenige Jahre spter erhhte sich die Angabe der reduzierten Leistung auf 15Watt - bei unverndertem Schaltungsdesign,
wohlgemerkt. Irgendwann Ende der 1960er Jahre wurden die Endrhren von automatischer auf feste Gittervorspannung
umgestellt, der Netztrafo vergrert und der Verstrker als GIGANTS mit nunmehr
45Watt Ausgangsleistung angeboten. Die Mglichkeit der Leistungsreduktion musste
hier entfallen. Einer dieser Verstrker ist in meinem Besitz.
Ab 1969 bot die Firma Dynacord mit ihrem GIGANT einen Bhnenverstrker an,
der 160Watt Ausgangsleistung aus vier EL 34 holte - damals ein wahrer Gigant
unter den Rhrenverstrkern, auch wenn in diesem Gert Rhren lediglich in der
Endverstrker-Sektion zu finden waren, die Kleinsignalstufen waren durchweg
transistorisiert. Von diesem Gigant besitze ich vier Exemplare. Dann eben Ihr Baby
mit 500 Watt pro Kanal. Ich habe ihn zwar nie nachgebaut, doch seine starke
hnlichkeit mit dem Crescendo vom Dezember 1982 brachte mich auf die Idee,
bei meinem ansonsten unvernderten eigenen Crescendo die Betriebsspannung
der Treibersektion anzuheben, indem ich auf jeden Ringkern-Netztrafo zwei
weitere Wicklungen zu 5Volt aufbrachte. Der Treibersektion standen damit
(in Abweichung vom Gigant unstabilisierte) +/- 77Volt zur Verfgung, die
Betriebsspannung der Hitachi-Leistungs-FETs war mit +/- 70Volt identisch
mit der des Gigant. Und siehe da, mein Crescendo leistet dank dieser Modifikation unverzerrt mehr als 300Watt pro Kanal, und zwar stabil!
Somit danke ich Ihnen im Nachhinein sehr fr die Anregungen, die ich durch
Ihren Gigant erhielt!

Uwe Menrath

Sehr geehrter Herr Menrath,


vielen Dank fr all diese interessanten Infos. Sie sind neu fr mich, da ich
erst in den 70ern begann, den Ltkolben zu schwingen und damals jedes
Bauteil mit mehr als drei Anschlssen - also zum Beispiel eine Rhre - viel
zu kompliziert fr mich war ;-).
Es freut mich, dass der Trick mit der Spannungserhhung der Treiberstufe
auch beim Crescendo so gut funktioniert!
Thomas Scherer

www.elektormagazine.de

Juli/August 2016

125

learn

design

share

Kodi: Medien-Player fr alle


Luft auf PC, Raspi und vielen anderen Plattformen

Von Harry Baggen (Elektor-Labor)

Auf wohl jedem PC, Laptop, Tablet oder Smartphone ist ein Player installiert, der Medien wie Fotos, Videos
oder Musiktitel wiedergeben kann. Doch wenn es drauf ankommt, stt mancher Player an seine Grenzen.
Weniger gngige Formate knnen zum Problem werden, bestimmte Einstellmglichkeiten fehlen oder die
Inhalte lassen sich nicht im Netzwerk streamen. Wo ist der Player, der (mglichst) alles kann?
An mehr oder weniger leistungsstarker
Software, die Medien liest und wiedergibt,
mangelt es sicher nicht. Doch ein Name
steht fr ein Programm, das aus der Masse
herausragt: Gemeint ist Kodi, auch bekannt
unter dem frheren Namen XBMC. Kodi
ist ein Open-source-Medien-Player, den die
XBMC Foundation entwickelt hat. Dahinter
verbirgt sich eine Gruppe enthusiastischer
Nutzer und Programmierer der Spielkonsole
Xbox von Microsoft. Die Ursprnge von Kodi
reichen bis in das Jahr 2004 zurck, als ein
unabhngiger Medien-Player fr die erste
Xbox konzipiert wurde. Daraus ist zuerst
das Xbox Media Center (XBMC) entstanden,
spter wurde der Medien-Player auf andere
Betriebssysteme wie Windows, Linux, iOS
und Android portiert. Ferner wurden diverse
Stand-alone-Versionen fr Smart-TVs,
Settop-Boxen und Medien-Abspielgerte
entwickelt.
Ein besonderes Highlight von Kodi ist
die Schnittstelle fr Erweiterungen
durch Add-ons. Mit Add-ons lsst sich
die Funktionalitt stark ausweiten, und
der Zugang zu bestimmten Medienquellen im Internet wird geebnet. Neben
unzhligen abgesegneten Add-ons sind
auch bedenkliche Add-ons in Umlauf,
mit denen auf nicht legale Video- und

126

Juli/August 2016

www.elektormagazine.de

Audio-Inhalte zugegriffen werden kann.


Es liegt auf der Hand, dass sich die XBMC
Foundation nachdrcklich von solchem
zweifelhaften Tun distanziert.
Der Name Kodi ist zwar vielen nicht
unbekannt, doch lngst nicht jeder wei,
worum es tatschlich geht. Nachfolgend
wollen wir kurz umreien, was Kodi kann
und fr welche Plattformen Kodi verfgbar ist. brigens sind auf YouTube Hunderte Videoclips abrufbar, die viele Details
anschaulich erklren.

Versionsvielfalt
Auf der offiziellen Website von Kodi [1]
stehen smtliche aktuellen Versionen zum
Download bereit. Verfgbar ist Kodi fr
Windows, Linux, Mac OSX, iOS, Android sowie fr Hardware-Plattformen wie
Raspberry Pi und Amazon Fire TV. Die an
Android-Systeme adaptierte Version wird
auch im Google Play Store angeboten.
Da die Anzahl der unter Android laufenden Medien-Player stndig steigt, gewinnt
diese Version zunehmend an Bedeutung.
Bei den meisten Versionen gengt es,
auf dem Zielsystem die heruntergeladene
Installationsdatei auszufhren.
Eine beliebte Hardware-Plattform fr den
Bau eines Medien-Players ist gegenwrtig

der Raspberry Pi. Vermutlich wird sogar


ein Groteil der verkauften Exemplare
ausschlielich fr diesen Zweck eingesetzt. Kodi wurde an den Raspberry Pi
schon seit dessen Erscheinen adaptiert,
es gibt diverse Versionen der Software.
Die bekannteste Variante drfte OpenELEC sein, was fr Open Embedded Linux
Entertainment steht [2]. Dies ist ein so
genanntes Just Enough Operating System (JeOS), das Installieren von Linux
oder eines anderen Betriebssystems entfllt. OpenELEC ist nicht nur fr die Raspberry-Pi-Versionen A, B, 2 und3 verfgbar. Auch andere Hardware-Plattformen wie PCs mit x86-Architektur und
Media-Boxen mit der Freescale-CPU IMX6
(Cubox) wurden nicht vergessen.
Das Installieren von OpenELEC auf einem
Raspberry Pi ist zwar nicht schwierig, es luft jedoch anders als bei anderen Kodi-Versionen ab. Zuerst ist ein so
genanntes Disk-Image herunterzuladen,
dies ist das exakte Abbild des Inhalts, der
auf einen USB-Stick oder eine (micro-)
SD-Karte bertragen werden muss. Da
sich dies nicht durch simples Kopieren der
Dateien bewerkstelligen lsst, wird bei Kodi
auf einer separaten Webseite [3] erklrt,
wie unter Linux, Windows oder MacOS vor-

review

web-recherche

aus dem labor

updates

Mit Kodi wird der Raspberry Pi zum autonomen Medien-Player

zugehen ist. Anwender, die mit Windows


arbeiten, knnen das Programm Win32Diskimager [4] nutzen, um das Disk-Image bitgetreu auf das Speichermedium zu bertragen. Wenn das geschehen ist, mssen der
USB-Stick oder die SD-Karte nur noch am
Raspberry Pi eingesteckt werden.

In Touch mit Kodi


Am Anfang sind die unzhligen Mglichkeiten, die Kodi bietet, etwas gewhnungsbedrftig. In diesem Stadium leistet der
Quick Start Guide des Kodi-Wiki [5] eine
gute Hilfe. Im Fenster von Kodi erscheint
unter System/Settings ein Men, ber
das zahlreiche Einstellungen vorgenommen werden knnen. Der Schwierigkeitsgrad lsst sich abhngig vom Niveau des
Nutzers auf Basic, Standard, Advanced
oder Expert festlegen. Wir empfehlen,
mit dem Level Standard zu beginnen,
hier sind bereits alle wichtigen Parameter zugnglich. Die meisten vorhandenen
Einstellungen mssen nicht modifiziert
werden, nur die Sprache der Benutzeroberflche (unter Appearance/International) sowie die Sprache der Untertitel
(unter Videos/Subtitles) sollten mit der
eigenen Landessprache bereinstimmen.
ber System/Audio ist das gewnschte
Audio-Ausgangsformat whlbar. Luft
Kodi auf einem Raspberry Pi, hngt das
Format davon ab, ob der HDMI-Ausgang
mit einem Surround-Receiver oder unmittelbar mit einem TV-Gert verbunden ist.
Neben der Wiedergabe von medialen

Inhalten aus dem lokalen Fundus ist der


Zugang zu Quellen im Internet eine Spezialitt von Kodi. Dazu mssen abhngig von den Eigenschaften der Internet-Quelle Add-ons aktiviert oder installiert werden. ber Videos/Add-ons
und anschlieend Getmore (das Gleiche gilt fr Pictures und Music) wird ein
erweiterbares Verzeichnis sichtbar, das
die von Kodi mitgebrachten Add-ons auflistet. Eine bersicht ber die offiziellen
Add-ons ist in der Rubrik All Add-ons [6]
auf der Kodi-Website zu finden. Vor dem
Herunterladen sollte sichergestellt sein,
dass das Add-on mit der verwendeten
Kodi-Version kompatibel ist. Die einzelnen
Kodi-Versionen haben unverwechselbare
Namen, die Add-ons sind unter diesen
Namen gruppiert. Der Name der aktuellen
Version16 lautet Jarvis. Das Installie-

ren zustzlicher Add-ons beschreibt das


Kodi-Wiki [7], weitere Hilfestellung bietet YouTube in diversen Video-Clips an.
Wie schon erwhnt, werden fremde Add-ons
von den Kodi-Entwicklern nicht immer in die
offizielle Liste aufgenommen. Doch auch
unter den inoffiziellen Add-ons findet sich
manches, das mindestens ein Ausprobieren
wert ist. Wir nennen hier zwei Quellen, die
eine Vielzahl von Add-ons zu kompakten
Archiven im ZIP-Format gebndelt haben:
SuperRepo [8], wo mehr als 2000 Add-ons
gepackt sind, und TVAddons [9] mit ungefhr 1200 Add-ons. In den Archiven befinden sich auch Add-ons, die illegales Handeln
mglich machen, sie drfen selbstredend
nicht installiert werden. Angemerkt sei dazu
noch, dass inoffiziell nicht mit illegal
gleichgesetzt werden darf!
(160031)gd

Weblinks
[1] https://kodi.tv/
[2] http://openelec.tv/
[3] http://wiki.openelec.tv/index.php/HOW-TO:Installing_OpenELEC/
Creating_The_Install_Key#tab=DiskImage
[4] https://sourceforge.net/projects/win32diskimager/
[5] http://kodi.wiki/view/Quick_start_guide
[6] http://kodi.wiki/view/Category:All_add-ons
[7] http://kodi.wiki/view/Add-ons
[8] https://superrepo.org/
[9] https://www.tvaddons.ag/

www.elektormagazine.de

Juli/August 2016

127

Elektor World News


Zusammengestellt von Robert van der Zwan

Aufwachen, Australien!
Bill Morgan ist ein Elektronik-Entwicklungsingenieur aus Sydney, Australien.
Er ist auch Mitglied der Elektor-Familie,
seit er denken kann. Seine Botschaft lautet: Wach auf,
Australien! Wir knnen uns nicht mehr nur darauf verlassen, Ressourcen aus dem Boden zu schaufeln. Bill will
eine landesweite Initiative starten, bevor die Ressourcen
und die Zeit zur Neige gehen. Lasst uns den Kids das
Programmieren beibringen, wenn sie fnf oder sechs Jahre
alt sind. Dazu setzt Bill auf die visuelle Programmiersprache Scratch, die Programmierung in einen Spa
verwandelt. Wir finden das toll und werden Bills Initiative
in Krze ins Rampenlicht setzen.

Einmal im Jahr?
Elektor ist bekannt fr seine monatlichen Ausgaben in Franzsisch und
Deutsch und fr die zweimonatlichen Ausgaben in Niederlndisch
und Englisch. Und es gibt sogar eine
wchentliche Auflage, unser E-Zine.
Nun ist es an der Zeit, ber eine
zustzliche jhrliche Ausgabe nachzudenken!
Wir halten Sie natrlich auf dem Laufenden. In der Zwischenzeit knnen Sie ein paar Zeilen an redaktion@elektor.
de schicken, wenn Sie Anregungen haben.

READ ONLY MEMORY


Unser Magazin kann auf eine lange Geschichte zurckblicken. In diesem Kasten zeigen wir stolz Vergangenes aus alten Tagen.
Zu den Grundlagen einer CPU oder MCU gehrt die Kenntnis ber mikroskopisch kleine Schalter und Logik-Gatter.
Schalter sind binr und entweder ein- oder ausgeschaltet,
die Funktion von Logikgattern ist
etwas schwieriger zu verstehen.
Deshalb hat Rob Ivens seine
Logik-Ziegen entworfen und
sie in das Gatter von Elektor Juli/August Ausgabe
2008 gestellt. Die UNDZiege nickt mit dem Kopf,
wenn beide Knpfe unter
ihrem Kopf gedrckt werden.
Mchten Sie mehr ber OR-,
NOT- und XOR-Ziegen wissen? Dann googeln Sie einmal nach logic goates!.

RWTH Aachen und


innovative Elektronik,
Die RWTH Aachen arbeitet an einer innovativen Methode,
Kenntnisse ber Informationstechnologie zu lehren. Die Innovation basiert auf noch zu entwickelnden verschiedenen elektronischen Objekten, die auf einem tischgroen Touchscreen
angeordnet werden. An dieser Stelle kommt das Elektor-Labor
Deutschland ins Spiel.
TABULA ist ein innovatives Projekt, das die Art und Weise
revolutioniert, wie Studierende IT-Kenntnisse und -Kompetenz
sammeln knnen. Auf einem tischgroen Touchscreen werden
so genannte Tangible-Objekte, die Elektronik enthalten, frei
bewegt. Dadurch wird die Information auf dem Touchscreen
verndert, wodurch man hoffentlich ein positives Feedback
auf dem Tisch-Monitor erzielt.
Diese Tangibles haben weitere Vorteile. So werden Studenten
in die Lage versetzt, mehr als ein Tangible gleichzeitig auf
dem Touchscreen zu verwenden, um mehrere Beziehungen zwischen den einzelnen
Objekten herzustellen. Die
sogenannte PERCS-Technologie, die an der RWTH
Aachen entwickelt wurde,
befasst sich mit dem Problem der permanenten
Erkennung von Objekten,
nicht nur, wenn sie in Bewegung sind (PERCS: Persistently Trackable Tangibles
on Capacitive Multi-Touch
Displays).
Mit dem Touchscreen
knnen die Studierenden
konkrete Konzepte erarbeiten, die in der IT allgemein bekannt sind.
Zum Beispiel lernen, wie
man einen Algorithmus
entwirft, um Objekte in
einen binren Baum einzufgen oder flow based
Filter fr die Bildverarbeitung zu programmieren,
sagt Professor Jan Borchers vom Human-Com-

PEOPLE NEWS Der Mann, der unserer Zeitschrift ihren bunten Look verleiht, Giel Dols, feierte vergangenen
gefeiert wurde (und ja, hinter jeder Brotr wartete eine Tasse Kaffee und eine lokale Delikatesse) Ferdinand
das TABULA-Projekt, mit dem die RWTH Aachen und Elektor die Art und Weise, wie Jung und Alt die Grundlagen
Verboven entwickelt eine Custom Relationship Management Software, mit der wir hoffen, unsere Kunden noch

128

Juli/August 2016

www.elektormagazine.de

Elektor entwickeln
um IT zu lehren

EXPERTENPROFIL
Elektor arbeitet mit mehr als 1.000 Experten und Autoren bei der Produktion von Bchern, Artikeln, DVDs, Webinaren und Live-Events zusammen.
In jeder Ausgabe wollen wir einen von ihnen ins Rampenlicht stellen...

Name: Viacheslav Gromov


puter Interaction Center (HCIC) an der RWTH Aachen.
Das Elektor-Labor Deutschland wird demnchst mit
der Arbeit an Prototypen der Tangibles beginnen. Die
Tangibles erhalten etwas lokale Intelligenz, knnen vor
allem ihre Position zur zentralen Verarbeitungseinheit
auf dem Tisch bestimmen, wahrscheinlich ber Bluetooth LE. Die Tangibles sind zudem mit einem optischen
Sensor ausgestattet.
Die RWTH Aachen mchte sich vor allem auf die saubere Funktion der IT, insbesondere die Datenstrukturen und flow-basierte Programmierung konzentrieren. Das bekannte deutsche E-Learning-Unternehmen
inside aus Aachen ist ebenfalls integraler Bestandteil
des TABULA-Teams.
http://hci.rwth-aachen.de/tabula

Alter: 16
Ausbildung: Schler
Momentan beschftigt mit: einer
solarbetriebenen WLANGewchshaus-Steuerung fr
ein IoT-Buchprojekt
Wer ist Viacheslav Gromov?

Ich bin ein sechzehnjhriger Schler, der parallel zur Schule


noch als freier Autor auf dem weiten Gebiet der Elektronik
arbeitet. Ich schreibe seit Jahren sowohl Artikel als auch Bcher,
meist ber Digitales (MCUs, bald auch FPGAs), ich bin aber
auch in der analogen Welt gerne zuhause. Bei Elektor habe ich
zum Beispiel den achtteiligen ARM-Kurs verffentlicht.
Wie kamen Sie zur Elektronik?

Mit der mechanischen Technik wurde ich schon frh ber


meine beiden Opas in Russland wo ich geboren bin - konfrontiert. Endgltig zur Elektronik kam ich, als meine Familie
nach Deutschland umgezogen ist und sich direkt im Haus ein
Elektronik-Geschft namens Wultschner Elektronik befand.
Dies besuchte ich unzhlige Male am Tag, weil ich dort alle
Bauteile vorfand, die ich brauchte. Ein Paradies! Nebenbei
kaufte ich mir unzhlige Elektronik-Bcher und besuchte zahlreiche Messen.
Was wird die wichtigste Elektronik-Entwicklung in den
nchsten Jahren sein?

Ich glaube, dass die Mikrosystem-Forschung auf der Ebene


von biologischen bzw. organischen Halbleitern auf jeden Fall
vor einen Effizienz-Durchbruch steht. Genauso wie die neuronalen Netzwerke, die den bisherigen Strukturen weit voraus
sind. Hier mssen wir sicher auch selbst erst einmal umdenken beziehungsweise dazulernen. Wenn es aber soweit sein
wird, wird man die Technologie sicher sehr oft mit zahlreichen
Vorteilen nutzen knnen.
Was Elektronik-Innovationen angeht, was ist in Deutschland
anders als in den Vereinigten Staaten?

Es ist traurig, aber man muss immer mehr mitansehen, wie


die Deutsche Forschung und Industrie zunehmend ihre Rolle
und Strke in der Elektronik bzw. allgemein in der Technik
verliert. Das Herz der Elektronik schlgt schon lngst geteilt
zwischen dem Silicon Valley und Asien. Und dieser Trend wird
sich in absehbarer Zeit noch verstrken

Mai seinen 60. Geburtstag, was in allen Bros in Limbricht


te Walvaart ist im Auftrag von Elektor verantwortlich fr
der IT erlernen knnen, revolutionieren wollen. Tom

Angenommen, Sie bekommen 500 Euro, um im Elektor-Shop einzukaufen. Was wrden Sie whlen?

Ich wrde mir auf jeden Fall einige Bcher holen, aber auch
die angebotenen FPGA-Boards, vom Einsteiger-Board bis zum
Red Pitaya, das man auch sehr gut und einfach zur FPGA-Entwicklung nutzen kann.
(150826)

besser bedienen zu knnen.

www.elektormagazine.de

Juli/August 2016

129

rtsel

Hexadoku

Sudoku fr Elektroniker

Wie in jeder Ausgabe finden Sie auch in diesem Heft unser ganz spezielles Sudoku. PC, Oszilloskop und
Ltkolben knnen sich erholen, whrend Ihre kleinen grauen Zellen auf Hochtouren arbeiten. Wenn Sie
alle Hex-Ziffern in den grauen Kstchen herausgefunden haben, sollten Sie uns diese gleich zumailen
denn hier warten drei Elektor-Gutscheine!
Die Regeln dieses Rtsels sind ganz einfach zu verstehen: Bei
einem Hexadoku werden die Hexadezimalzahlen 0bis F verwendet, was fr Elektroniker und Programmierer ja durchaus
passend ist.
Fllen Sie das Diagramm mit seinen 16x 16 Kstchen so aus,
dass alle Hexadezimalzahlen von 0bis F (also 0 bis 9 und A
bis F) in jeder Reihe, jeder Spalte und in jedem Fach mit 4x

4 Kstchen (markiert durch die dickeren schwarzen Linien)


genau einmal vorkommen. Einige Zahlen sind bereits eingetragen, was die Ausgangssituation des Rtsels bestimmt.
Wer das Rtsel lst sprich die Zahlen in den grauen Kstchen
herausfindet kann einen von drei Gutscheinen im Wert von
50Euro gewinnen!

Einsenden
Schicken Sie die Lsung (die Zahlen in
den grauen Kstchen) per E-Mail, Fax
oder Post an:

Elektor Redaktion
Kackertstr. 10
52072 Aachen

Fax: 0241 / 955 09-013


E-Mail: hexadoku@elektor.de
Als Betreff bitte nur die Ziffern der
Lsung angeben!
Einsendeschluss ist der
31. August 2016.

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


Die richtige Lsung ist: BD4FE
Einen Elektor-Wertgutschein ber je 50 haben gewonnen: Ren Niel, Kurt Kuehni und Marianne Meyers.
Herzlichen Glckwunsch!

1 A 0 C 3

F D 7 B 5

B 7

4 A E

3 B C 1

5 C

D 6

8 A E

B E

9 D 0

5 A 1

3 B 6 C D E

8 C 9

F D 2

7 A E B

6
7

0 D 1

3 D

9 C A B

8 C

2 A E

9 B D 4

4 B 0

2 A 0

A D 1

E C

1 A 7 D 8 C B 3

E B 2

8 A 1

1 A 0

2 C 6

9 B

A 6

1 D 0

3 C 7 B 2

4 A

7 A 5

C 2 B D 7
F

6 A C 3

3 B D 1
8 C 3

6 B D 8 C 2

9 D 5
F

8 D 5

Der Rechtsweg ist ausgeschlossen. Mitarbeiter der in der Unternehmensgruppe Elektor International Media B.V. zusammengeschlossenen Verlage und deren Angehrige sind von der Teilnahme ausgeschlossen.

130

Juli/August 2016

www.elektormagazine.de

FEUCHTE

TEMPERATUR

NHERUNGSSCHALTER

Newsletter

Erhalten Sie wchentlich


frische Informationen ber

Neuheiten
beste Angebote
Preisreduzierungen

WEGAUFNEHMER

DURCHFLUSS

ULTRASCHALL

DRUCK

jetzt abonnieren!

HALL-EFFEKT

KRAFT

45 Jahre Erfahrung
ber
schneller 24-Std.-Versand
ber 50.000 Produkte am Lager
kein Mindermengenzuschlag

Hall-Effekt-Sensoren

Induktiver Nherungsschalter

Hallsensoren

Excellente induktive Sensoren fr das


berhrungslose Erfassen von metallischen
Teilen im Automatisierungsalltag.
Ideal fr den Einsatz in anspruchsvollen
Umgebungsbedingungen.

Gehuse: P-SSO-3-2
Bestellnummer

MagneticRange

TLE 4905L 0,67


TLE 4935L 0,71

17 mT
20 mT

Auszug aus unserem Sortiment.


Das komplette Programm nden Sie unter:
unipolar
bipolar/latch

Radiometric-Sensor,
linear

Betriebsspannung:
Stromaufnahme:
Betriebstemperatur:
Linearitt:
Antwortzeit:

4,5 10,5 VDC


8,7 mA (@ 5 VDC)
-40 +150 C
1% typ.
3 s

Gehuse: TO-92,
Ausgang: 0,2 V / 1,5 mA
Bestellnummer

SS 496 A1 2,45
SS 495 A 1,40
SS 495 A1 3,80

Empndlichkeit
2,5 mV/G
3,125 mV/G
3,125 mV/G

MagneticRange
84 mT
67 mT
84 mT

Bestellnummer

http://rch.lt/kJ

xL

DWAD 509 M8 390


DWAD 623 M5
DWAD 617 M12
DWAS 603 M8 129
DWAS 713 M8 001
DWAS 603 M12
DWAS 503 M12

91,50
47,90
38,70
48,30
75,50
33,40
48,80

Schaltabstand

M8 x 45 mm
M5 x 25 mm
M12 x 50 mm
M8 x 29 mm
M8 x 60 mm
M12 x 60 mm
M12 x 60 mm

0 ... 4 mm
1,5 mm
4,0 mm
1,5 mm
6,0 mm
2,0 mm
6,0 mm

Sensortester
bis 100 mA, LED,
Summer, Micro-USB

Betriebsspannung:
Stromaufnahme:
Betriebstemperatur:
Linearitt: 1% typ.
Antwortzeit:

schnelle Feldprfungen
verschiedener Sensor-Typen
Akku

Digitaler Feuchtesensor
mit IC-Interface im druckfesten
TO39-Gehuse (bis 16 bar),
geeignet fr Taupunktmessungen.
Bestellnummer

HYT 939

2,7 6,5 VDC


10 mA
-40 +100 C

SS 59 ET

1,60

3 s

ATE 0000 010 53,95

MagneticRange

Empndlichkeit

65 mT

1,0 mV/G

Temperaturkompensierte
digitale Halleffektsensoren

Distanzsensoren

Magnetic-Range

2,25
2,99

7,5 18,0 mT
23,5 39,0 mT

Lin
%

0 - 10
0 - 50
0 - 100
0 - 500

450
90
45
9

5
2,5
2,5
2,5

Typen: GP2Y0A

Ultraschallsensoren
Reichweite
( cm )

6,70
5,10
5,55

GP2-0215
GP2-0430
GP2-1080

20 ... 150
4 ... 30
10 ... 80

LxBxT
(mm)
29,5 x 13,0 x 21,6
37,0 x 18,9 x 13,5
29,5 x 13,0 x 21,6

Bestellnummer

DMC01-SC150 2,15

3-polig

Datenkabel

Bestell-Hotline:

13,60
16,40
16,95
10,60

Ultraschall-Keramik-Sender
und Empfnger fr 40 kHz

9,9 mm, H 7,1 mm


Bestellnummer

MUS-40E
MUS-40S

Jetzt bestellen!

reichelt.de

Sens
mV/kPA

MPX 5010DP
MPX 5050DP
MPX 5100DP
MPX 5500DP

Preise in inkl. MwSt., zzgl. Versandkosten, Stand: 01.06.2016


reichelt elektronik GmbH & Co. KG, Elektronikring 1, 26452 Sande

@reichelt_el

PR
kPa

Bestellnummer

Sehr hohe Zuverlssigkeit


sowie hhere Przision
gegenber herkmmlichen
Sensoren.

Bestellnummer

unipolar, Gehuse: SOT-89


Ausgang: 0,4 V / 20 mA

SS 543 AT
SS 549 AT

TO 39

Bestellnummer

Hall-Effektsensor,
digital, SMD

Bestellnummer

31,40

Drucksensoren,
UsV 4,75 - 5,25

Gehuse: SOT-89
Ausgang: 1,0 V / 1,5 mA
Bestellnummer

quasi-bndig
bndig
nicht-bndig
bndig
nicht-bndig
bndig
bndig

Feuchtesensor
0 ... 100% rF, TO 39

Radiometric-Sensor,
linear, SMD

Einbau

2 m Kabel
2 m Kabel
2 m Kabel
M8-Stecker 3-polig
M8-Stecker 3-polig
M12-Stecker 4-polig
M12-Stecker 4-polig

+49 (0)4422 955-333

2,99
2,99

Empfnger
Sender

Jetzt
kostenlos
anfordern!

Katalog 06.1|2016
6

Keine Kompromisse
Mehr Funktionalitt fr Ihr Design mit 8-Bit PIC MCUs

Beim Embedded-Design fordert die Realitt, in jeder Phase Kompromisse einzugehen.


Abwgungen zwischen Leistungsfhigkeit, Funktionalitt und Kosten hindern uns oft
daran, die besten Ideen auf den Markt zu bringen. Wir glauben, es gibt eine bessere
Lsung. Deshalb sind unsere neuesten 8-Bit PIC Mikrocontroller (MCUs) mit flexiblen
Core-unabhngigen intelligenten Hardware-Blcken ausgestattet, die schnell reagieren,
wenig Strom verbrauchen und wesentlich codeeffizienter sind als ein softwarebasierter
Ansatz. Mit Core-unabhngiger Peripherie lassen sich viele komplexe Systemfunktionen
in einer einzigen MCU kombinieren, die Geschwindigkeit und Flexibilitt erhhen, der
Stromverbrauch und die Kosten verringern. Verwenden Sie fr Ihr Design 8-Bit PIC MCUs,
und Sie mssen keine Kompromisse mehr eingehen.
Schaffen Sie Systemfunktionen mit:
Maximaler Flexibilitt
Minimaler Latenz

Geringeren Kosten

www.microchip.com/8-bit
Der Name Microchip, das Microchip-Logo und PIC sind eingetragene Warenzeichen der Microchip Technology Incorporated in den USA und in anderen Lndern. Alle anderen Marken sind im Besitz der jeweiligen Eigentmer.
2015 Microchip Technology Inc. Alle Rechte vorbehalten. DS30010101A. MEC2030Ger09/15

Das könnte Ihnen auch gefallen