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
Wetterstation fr
BBC micro:bit
G3078 E
Unser Produktsortiment in
einem Wort: Tiefenbreite.
Wolfgang Lex, Senior Area Manager Business Supplies, Tekkie seit 1987
Impressum
47. Jahrgang, Nr. 547/548
Juli/August 2016
Erscheinungsweise: 10 x jhrlich
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.
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
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
der Messe electronica veranstalten. In den drei Kategorien Idee, Prototyp und
Jens Nickel
Chefredakteur Elektor
Unser Team
Chefredakteur:
Stndige Mitarbeiter:
Leserservice:
Ralf Schmiedel
Korrekturen:
Malte Fischer
Elektor-Labor:
Giel Dols
ISSN 0932-5468
www.elektormagazine.de
Juli/August 2016
Inhalt
Juli/August 2016
6 Das Elektor-Netzwerk
40 News
42 ElektorBusiness Report
SHIELD FR ARDUINO
Futuristisch-fantastische Akkus
Sudoku fr Elektroniker
LEARN
DESIGN
SHARE
80
WETTERSTATION FR
BBC MICRO:BIT
ELEKTOR SDR
RELOADED
3 Impressum
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.
Indirekte Adressierung
LEARN
DESIGN
SHARE
72 iBaxandall
52 Stromtastkopf fr Oszilloskope
56 Fledermaus-DetektorPLUS
SDR-Shield fr Arduino
88 Skip!
Frequenzteilung + Amplitudenerhaltung
Teil 1: FIR-Filter
Juli/August 2016
www.elektormagazine.de
49
magazine
LEARN
DESIGN
SHARE
Professioneller Audio-Messplatz
122 ScanaQuad,
der allerkleinste Logic-Analyzer
124 Projekt 2.0
126 Web-Recherche
iBAXANDALL
72
Vorschau
Das nchste Heft ist wie immer randvoll gefllt
mit Schaltungsprojekten, Grundlagen sowie
Tipps und Tricks fr Elektroniker.
97 PC-Watchdog
Analoger Zufallsgenerator
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
1,78 /Woche
2,45 /Woche
GRATIS
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
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.
www.elektormagazine.de
Juli/August 2016
LEARN
DESIGN
SHARE
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!
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
&
software
Magnetspeicher
Bemerkenswerte Bauteile
Von Neil Gruending (Kanada)
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-
www.elektormagazine.de
Juli/August 2016
learn
design
share
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
Bild2. Mifare Ultralight von NXP ist ein einfach zu konfigurierender NFC-Tag
des Type2.
10
Juli/August 2016
www.elektormagazine.de
grundlagen
kurs
&
software
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
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.
Die ersten beiden Dateien lassen wir in Ruhe, die dritte ist
dagegen umso interessanter, da sich damit bestens herumspielen lsst.
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
kurs
&
software
Anzeige
grundlagen
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.
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.
(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
www.picotech.com/PS469
www.elektormagazine.de
Juli/August 2016
13
learn
design
share
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
PLL
Bild1. Zwei typische Anwendungen der PLL: Erzeugen periodischer frequenzvariabler Signale und Entfernen der Jitters aus periodischen Signalen.
14
Juli/August 2016
www.elektormagazine.de
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
&
+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.
Phasenverrieglung
+25V
R5
X
C5
R4
100nF
+6V
VTUNE
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
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.
16
Juli/August 2016
www.elektormagazine.de
grundlagen
kurs
&
software
www.elektormagazine.de
Juli/August 2016
17
learn
design
share
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).
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
grundlagen
kurs
&
software
ADVERTORIAL
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.
Bild1. So begrt Sie Flowcode7 (auch Deutsch lsst sich als Sprache einstellen).
20
Juli/August 2016
www.elektormagazine.de
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.
ADVERTORIAL
&
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
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)
www.elektormagazine.de
Juli/August 2016
21
learn
design
share
Windows
steuert Arduino
ber USB und Bluetooth
22
Juli/August 2016
www.elektormagazine.de
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
&
software
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
24
Juli/August 2016
www.elektormagazine.de
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
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();
}
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.
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.
5V
. . .
Win10
ARDUINO
USB
GND
1=TX
RXD
0=RX
TXD
26
Juli/August 2016
www.elektormagazine.de
VCC
HC-06
GND
<Capabilities>
<Capability Name=internetClient />
<DeviceCapability Name=bluetooth.rfcomm>
<Device Id=any>
<Function Type=name:serialPort/>
grundlagen
kurs
</Device>
</DeviceCapability
</Capabilities>
&
software
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).
www.elektormagazine.de
Juli/August 2016
27
learn
design
share
{
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;
}
}
}
<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
= 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
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.
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
[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!
www.elektormagazine.de
Juli/August 2016
29
learn
design
share
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-
Platinen-Routing
30
Juli/August 2016
www.elektormagazine.de
Advertorial
grundlagen
kurs
&
software
Weblinks
[2] http://documentation.circuitmaker.com/display/CMAK/
From+Idea+to+Manufacture+-+Driving+a+PCB+Design+through+CircuitMaker
[1] http://documentation.circuitmaker.com
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
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
grundlagen
kurs
&
Niederspannung
Die Niederspannungsrichtlinie, die Richtlinie zur elektromagnetischen Vertrglich-
software
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
2014/35/EU
2014/30/EU
2014/53/EU (RED)
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
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
www.elektormagazine.de
Juli/August 2016
33
learn
design
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
Apparatus model/P
roduct:
Type:
Batch:
Serial number:
of
ibed
Title
www.elektormagazine.de
following product:
in
technical specication
s have
been applied:
Juli/August 2016
sole responsibility
Links:
34
nformity (DoC)
LEARN
DESIGN
SHARE
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.
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-
36
Juli/August 2016
www.elektormagazine.de
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.
&
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
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.
->
->
->
->
->
->
0
1
2
3
4
5
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
LOW c_data1
->
->
->
->
->
->
->
->
3
4
5
6
7
8
9
A
;
;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
HIGH c_data1
&
software
register f
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
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
www.elektor.com/electronica-startup-award
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.
ADVERTORIAL
www.elektormagazine.de
Juli/August 2016
41
ElektorBusiness Report
Futuristischfantastische Akkus
Geladen in Sekunden
Energie fr Monate
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
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
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.
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.
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).
44
Juli/August 2016
www.elektormagazine.de
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-
Weblinks
[1] Bioo: www.bioo.tech/
[2] Upp: www.beupp.com/
www.elektormagazine.de
Juli/August 2016
45
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!
www.elektormagazine.de/labs
www.elektormagazine.de
Juli/August 2016
47
LEARN
DESIGN
SHARE
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)
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
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
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;
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);
(1)
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
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...
52
Juli/August 2016
www.elektormagazine.de
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
leser-projekt
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.
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
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
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
IC1
Widerstnde:
leser-projekt
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)
Weblinks
[1] Datenblatt AD8479: www.analog.com/static/imported-files/data_sheets/AD8479.PDF
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)
56
Juli/August 2016
www.elektormagazine.de
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
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-
www.elektormagazine.de
Juli/August 2016
57
learn
design
share
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
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
-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
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
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.
www.elektormagazine.de
Juli/August 2016
59
learn
design
share
60
Juli/August 2016
www.elektormagazine.de
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
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.
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
www.elektormagazine.de
Juli/August 2016
61
design
learn
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.
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
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
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
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
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
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
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
www.elektormagazine.de
Juli/August 2016
65
design
learn
share
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
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
ratio_a .23
ratio_b .17
ratio_c .16
ratio_d .31
;
;
;
;
Division
Division
Division
Division
66
Juli/August 2016
ratio
ratio
ratio
ratio
switch
switch
switch
switch
2
2
2
2
www.elektormagazine.de
labor-projekt
leser-projekt
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?
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
www.elektormagazine.de
Juli/August 2016
67
design
learn
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.
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
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
labor-projekt
leser-projekt
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).
www.elektormagazine.de
Juli/August 2016
69
design
learn
1 Sample Delay
share
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.
labor-projekt
leser-projekt
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
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
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
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.
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
76
Juli/August 2016
www.elektormagazine.de
leser-projekt
labor-projekt
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
2k7
R3a
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
iBaxandall
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
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!
(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
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
80
Juli/August 2016
www.elektormagazine.de
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.
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-
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
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
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)
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
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
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-
#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("");
84
Juli/August 2016
www.elektormagazine.de
//900
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
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
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
#include <Wire.h>
#include <Adafruit_SI5351.h>
Divider2 = 20;
Divider2 = 30;
void setup(void)
Serial.begin(9600);
Divider2 = 60;
}
if (clockgen.begin() != ERROR_NONE)
Divider2 = 90;
Serial.print("Error");
while(1);
Divider2 = 150;
Serial.println("OK");
clockgen.enableOutputs(true);
setfreq (6000);
Divider2 = 220;
}
if (f2 < 2700) {
Divider2 = 330;
Divider2 = 500;
Divider2 = 600;
}
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) {
rdiv = 16;
f2 = f2 * 16;
}
else
clockgen.setupRdiv(1, SI5351_R_DIV_16);
clockgen.setupRdiv(1, SI5351_R_DIV_1);
rdiv = 1;
}
if (f2 >= 100000) {
}
}
Divider2 = 6;
}
void loop(void)
{
unsigned long freq;
Divider2 = 10;
if (Serial.available()) {
freq = Serial.parseInt();
setfreq (freq);
Divider2 = 15;
}
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!
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
labor-projekt
leser-projekt
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
2
TX 11
TX
LED1
C1
RX 00
RX
100u
50V
150650 - 12
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-
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
BLM21
C3
22p
X1
16MHz
28
LED1
C4
C5
10u
16V
22p
150650 - 11
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
90
Juli/August 2016
www.elektormagazine.de
13
220R
10k
27
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)
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.
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
92
Juli/August 2016
www.elektormagazine.de
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
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
V+
K5
4V4
V+
3k3
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
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:
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
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
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
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.
www.elektormagazine.de
Juli/August 2016
95
design
learn
share
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-
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
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
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.
PC-Software
Unbedingt erforderlich ist auch ein
PC-Programm, das sofort nach dem
98
Juli/August 2016
www.elektormagazine.de
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:
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)
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
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.
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
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
Antenna
Level
Shifter
SCL
FM
Tuner
SDA
+5V
GND
Headphones
Voltage
Regulator
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.
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
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
102
Juli/August 2016
www.elektormagazine.de
+5V
78L05
D1
150587 - 11
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
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
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
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-
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
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.
Das Original
Das LC-Display des Multimeters wird von
einem LCD-Treiber-Baustein PCF8576
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.
106
Juli/August 2016
www.elektormagazine.de
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,
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
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
Eigenschaften
geeignet fr Betriebsspannungen
zwischen 3,3V und 5,0V
Bidirektional
2 Kanle
Masse und Versorgungsspannung
galvanisch getrennt
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
150089 - 11
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:
Kondensatoren:
Auerdem:
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
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
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
5. Raspberry Pi 3
www.elektor.de/rpi-3
7. Mooshimeter
www.elektor.de/mooshimeter
8. Apps fr Elektroniker
www.elektor.de/apps-fuer-elektroniker
www.elektor.de/mooshimeter
Digitale Systeme mit FPGAs
entwickeln
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
NEU
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:
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)
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
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
Photovoltaik
fr
Quereinsteiger
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
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
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
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
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
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
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-
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. ;-) ).
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.
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
web-recherche
updates
t
nks vorne sieh
esstechnik: Li hirmten
Empfnger-M
sc
ge
MU-Metall ab
man den mit
o.
af
tr
Netz
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
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.
Ergebnisse
120
Juli/August 2016
Bild7. Tuchel-Stecker.
www.elektormagazine.de
review
web-recherche
updates
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,
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
In der Praxis
Seit einiger Zeit verwenden wir im Elektor-Labor einen ScanaQuad-Analyzer.
Schon bei der Lieferung erstaunte uns
review
web-recherche
updates
Weblink
www.elektor.de/
logic-analyzer-scanaquad-sq100
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
6
5
4
3
2
1
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
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)
Uwe Menrath
www.elektormagazine.de
Juli/August 2016
125
learn
design
share
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
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
review
web-recherche
updates
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
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.
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...
Alter: 16
Ausbildung: Schler
Momentan beschftigt mit: einer
solarbetriebenen WLANGewchshaus-Steuerung fr
ein IoT-Buchprojekt
Wer ist Viacheslav Gromov?
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)
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
Einsenden
Schicken Sie die Lsung (die Zahlen in
den grauen Kstchen) per E-Mail, Fax
oder Post an:
Elektor Redaktion
Kackertstr. 10
52072 Aachen
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
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
Gehuse: P-SSO-3-2
Bestellnummer
MagneticRange
17 mT
20 mT
Radiometric-Sensor,
linear
Betriebsspannung:
Stromaufnahme:
Betriebstemperatur:
Linearitt:
Antwortzeit:
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
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
SS 59 ET
1,60
3 s
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
MUS-40E
MUS-40S
Jetzt bestellen!
reichelt.de
Sens
mV/kPA
MPX 5010DP
MPX 5050DP
MPX 5100DP
MPX 5500DP
@reichelt_el
PR
kPa
Bestellnummer
Bestellnummer
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
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
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