Professional Documents
Culture Documents
NL201203 PDF
NL201203 PDF
www.elektor.nl
SDR
Software Defined Radio
Precisiesignalen generen
met een ATtiny
Android schakel-interface
Android-telefoon als afstandsbediening voor eigen microcontroller-projecten
Intelligente PC-ventilatorregeling
Voor maximaal 6 PWM-geregelde ventilatoren BP
hot
Turn a
idea into a
cool
solution.
DesignSpark chipKIT Challenge ™
Visit www.chipkitchallenge.com
for complete rules and details.
IN ASSOCIATION WITH:
chipKIT™ is a registered trademark of Microchip Technology Inc. Max32™ is a registered trademark of Digilent, Inc.
Goeie mix
Deze maand hebben we een mix van
projecten samengesteld, waarbij iedere
elektronicus wel iets van zijn gading
vindt, van eenvoudig tot complex, van
pure hardware tot pure software. Ik 6 Colofon
noem hieronder enkele highlights. Wie doet wat bij Elektor?
De Android schakel-interface laat zien
hoe je op eenvoudige wijze hardware
draadloos kunt aansturen vanuit een 8 Nieuws en achtergronden
Android-telefoon. Daarbij wordt gebruik Producten en ontwikkelingen uit de
gemaakt van een kant-en-klaar Arduino- elektronicawereld.
printje met een BlueTooth-shield,
aangevuld met een kleine I/O-print
die we speciaal voor deze toepas- 13 RS DesignSpark ChipKIT
sing hebben ontwikkeld. Het artikel ontwerpwedstrijd
beschrijft naast de hardware ook de De DesignSpark chipKIT-wedstrijd is nu
opzet van de bijbehorende Android- in zijn laatste weken. Wie snel is, kan nog
app en het gaat in op de benodigde net meedoen.
PC-programmeer-software.
Een ander hoogtepunt is de signaalgene-
rator voor een SDR-AVR-ontvanger. Dit 14 Intelligente PC-ventilatorregeling
is het begin van een kleine serie waarin Voor maximaal 6 PWM-geregelde
wordt beschreven hoe je met behulp ventilatoren. Configuratie en monitoring
van AVR-microcontrollers een stand-
is mogelijk via de PC.
alone SDR-ontvanger kunt realiseren.
In het eerste artikel starten we met een
nauwkeurige DDS-sinusgenerator die 20 Android schakel-interface - deel 2
later gebruikt zal worden in combinatie
Realiseer draadloze meet- en
met de ontvanger-print.
schakelmogelijkheden met behulp van
Heel handig voor computerfreaks is
een Arduino-bord en een Bluetooth-
de flexibele ventilatorregeling die het
shield.
mogelijk maakt om maximaal zes venti-
latoren in een PC-behuizing individueel
te regelen, waarbij verschillende senso- 26 RFID-hacks
ren in de kast de temperatuur meten.
Bouw zelf met ‘reverse engineering’ RFID-
De schakeling werkt geheel zelfstandig,
met behulp van een bijbehorend PC- readers voor ISO 14443 en ISO 15693.
programma en een USB-verbinding kan
men alle instellingen op de PC uitvoeren
32 Componententips
en indien gewenst tevens het regelver-
loop op het beeldscherm monitoren. Twee handige IC’s voor USB-
In dit maartnummer vindt u verder bescherming.
het tweede artikel over de AndroPod,
een bijzondere interface-schakeling
34 Software Defined Radio
waarmee een Android-apparaat via zijn
met AVR - deel 1
USB-aansluiting kan communiceren met
andere hardware. Dit deel gaat in op de In deze nieuwe serie gaan we laten zien
software-kant en beschrijft de mogelijk- hoe je digitale signaalverwerking met een
heden die AndroPod biedt in combinatie AVR-microprocessor kunt realiseren.
met de ElektorBus.
Nou, ik kan zo nog wel even doorgaan,
want het nummer staat weer boordevol 43 Labcenter
met interessante artikelen. Gaat u zelf - Vleermuisdetector 2.0
maar bladeren en laat u verrassen. Veel - Spook-LED: Raadselachtig geknipper (2)
leesplezier!
- Pennen op lengte
Harry Baggen - Debugger gedebugged
4 03-2012 elektor
52e jaargang
INHOUD maart 2012
nr 581
48 AndroPod - deel 2
14 Intelligente PC-ventilatorregeling Een gebruikersinterface voor uw eigen
project ontwerpen met HTML en onze
Voor maximaal 6 PWM-geregelde ventilatoren
gratis Android-app.
In een moderne PC zitten diverse ventilatoren voor het verwerken van de
warmte die wordt geproduceerd. Die kunnen echter niet allemaal individueel 56 Platino binnen Arduino
worden aangestuurd door het PC-moederbord. Met behulp van deze schake-
Handleiding voor integratie van eigen
ling kunnen maximaal 6 ventilatoren actief worden geregeld, de temperatuur-
hardware op het veelzijdige AVR-board uit
meting gebeurt door meerdere sensoren. Voor het configureren en monitoren het oktobernummer van 2011.
is een PC-programma beschikbaar dat via USB communiceert met de ventila-
torregeling.
62 Terug naar de basis - deel 3
We voeren verschillende metingen aan
48 AndroPod 84 Preview
Seriële interface voor Android-smartphones Volgende maand in Elektor
en -tablets (deel 2)
In het eerste deel hebben we laten zien hoe u heel eenvoudig uw eigen elek-
tronische schakeling op de AndroPod-interface en daarmee op een Android-
smartphone kunt aansluiten. Daarom willen we het u ook aan de software-
kant zo gemakkelijk mogelijk maken. Een gebruikersinterface voor uw eigen
project kan eenvoudig met HTML worden gebouwd als u gebruik maakt van
onze gratis Android-app.
elektor 03-2012 5
elektor
Ons team
Hoofdredacteur: Harry Baggen (h.baggen@elektor.nl)
Internationale redactie: Jan Buiting, Thijs Beckers, Eduardo Corral, Wisse Hettinga, Denis Meyer, Jens Nickel, Clemens Valens
Technische redactie: Christian Vossen (hoofd), Thijs Beckers, Ton Giesberts, Luc Lemmens, Raymond Vermeulen, Jan Visser
Klantmanagement: Chantalle Reuling (c.reuling@elektor.nl)
Vormgeving & Layout: Giel Dols, Jeanine Opreij, Mart Schroijen
Hoofd online: Carlo van Nistelrooy
Directeur: Don Akkermans
Onze netwerken
Colofon Nieuwe abonnementen & bestellingen te informeren over relevante diensten en producten.
Stelt u daar geen prijs op, dan kunt u dit doorgeven aan:
52e jaargang nr. 3, maart 2012 ISSN 0013-5895 verkoop@elektor.nl Tel. 046-4389444
Voor vragen: service@elektor.nl Elektor International Media B.V.,
Elektor is een uitgave van Elektor International Media B.V.
Afdeling lezersmarkt,
Allee 1, 6141 AV Limbricht, Nederland Het klantenbestand van Elektor International Media B.V. is als Postbus 11, 6114 ZG Susteren.
Postbus 11, 6114 ZG Susteren, Nederland persoonsregistratie aangemeld bij het College Bescherming
Tel.: +31 (0)46- 4389444, Persoonsgegevens onder nr. M 1024093. Druk: Senefelder Misset, Doetinchem
Fax: +31 (0)46-4370161 De door u verstrekte gegevens kunnen gebruikt worden om u Distributie: Betapress, Gilze
6 03-2012 elektor
elektor
Onze leden
We
hebben nu 275132 leden
in 83 landen...
Onze sponsors
AudioXpress Huijzer Components
www.cc-webshop.com . . . . . . . . . . . . . . . . . . .42 www.huijzer.com . . . . . . . . . . . . . . . . . . . . . .59
HPS RS Components
www.hpsindustrial.nl . . . . . . . . . . . . . . . . . . .39 www.rsonline.be/elektronica . . . . . . . . . . . . . . .87
Klantmanagement Benelux Auteursrecht voor een bedrijf. Het toepassen van de schakelingen geschiedt buiten
c.reuling@elektor.nl Tel. 046-4389403 Niets uit deze uitgave mag verveelvoudigd en/of openbaar gemaakt de verantwoordelijkheid van de uitgever. De uitgever is niet verplicht
worden door middel van druk, fotokopie, microfilm of op welke wijze ongevraagd ingezonden bijdragen, die hij niet voor publicatie aan-
Advertentietarieven, nationaal en internationaal, op aan- dan ook, zonder voorafgaande schriftelijke toestemming van de uitge- vaardt, terug te zenden. Indien de uitgever een ingezonden bijdrage
vraag. Alle advertentiecontracten worden afgesloten con- ver. De auteursrechtelijke bescherming van Elektuur strekt zich mede voor publicatie aanvaardt, is hij gerechtigd deze op zijn kosten te (doen)
uit tot de illustraties met inbegrip van de printed circuits, evenals de bewerken. De uitgever is tevens gerechtigd een bijdrage te (doen) ver-
form de Regelen voor het Advertentiewezen gedeponeerd
ontwerpen daarvoor. In verband met artikel 30 van de Rijksoctrooiwet talen en voor haar andere uitgaven en activiteiten te gebruiken tegen de
bij de rechtbanken in Nederland. Een exemplaar van de daarvoor bij de uitgever gebruikelijke vergoeding.
mogen de in Elektuur opgenomen schakelingen slechts voor particu-
Regelen voor het Advertentiewezen is op aanvraag kosten- liere of wetenschappelijke doeleinden vervaardigd worden en niet in of
loos verkrijgbaar. © Elektor International Media B.V. - 2012
elektor 03-2012 7
INFO & MARKT
8 03-2012 elektor
INFO & MARKT
van slechts één nanometer. Twee rijen Nauwkeuriger meten om storende USB-geluiden of bromstorin-
van zes atomen vormen één bit. De twee gen te voorkomen. Als de USB-poort van
atoomrijen kunnen twee magnetische toe- met USB-isolator de pc wordt gebruikt om vermogensappa-
standen innemen die respectievelijk een ‘0’ ratuur aan te sturen zorgt de ingebouwde
en een ‘1’ voorstellen. Met een bepaalde overspanningsbeveiliging tot 8 kV er voor
elektrische spanning op de meetprobe van dat de pc bij defecten niet kan worden
een scanning tunneling microscoop kan de beschadigd. De voedingsspanning voor de
magnetische toestand van de cel worden isolator wordt door de USB-poort geleverd.
gewijzigd. Lezen van de cel gebeurt ook met Meer info: www.cesys.com
zo’n microscoop, maar dan met een lagere
spanning.
Meer info: www.desy.de/information__services/
press/pressreleases
Foto: Sebastian Loth/CFEL Nieuwe zilverinkt
Een veel voorkomende oorzaak van
onnauwkeurige of verstoorde metingen maakt kleinere
is de wederzijdse beïnvloeding van meet- schakelingen mogelijk
apparaten door aardlussen. Dit verschijn-
sel komt vaak voor bij het uitvoeren van Onderzoekers van de University of Illinois
metingen met een op de pc aangesloten hebben een nieuw soort zilverinkt met uit-
USB-meetapparaat. Cesys introduceert een stekende elektrische eigenschappen ont-
USB-isolator die ongewenste stromen in de wikkeld, waarmee kleine elektronische
USB-kabel voorkomt. Omdat er geen speci- schakelingen kunnen worden geprint op
ale drivers hoeven te worden geïnstalleerd veel voorkomende goedkope materialen
is de USB-isolator geschikt voor gebruik met zoals buigzaam plastic, textiel en papier.
alle besturingssystemen. Omdat de nieuwe inkt geen losse metaal-
De USB-isolator zorgt voor een galvanische deeltjes bevat zoals de tot nu toe gebruike-
scheiding met isolatie tot 1000 VAC tussen lijke metaalinkten, kan een zeer kleine spuit-
de USB-apparaten en maakt het daardoor mond (100 nm) worden gebruikt. Door de
ook mogelijk om metingen uit te voeren lage viscositeit is de inkt ook geschikt voor
waarbij het signaal niet ten opzichte van de gebruik in inkjetprinters.
pc-massapotentiaal moet worden gemeten. De nieuwe inkt bestaat uit een trans-
Omdat het apparaat volgens de fabrikant parante oplossing van zilveracetaat en
geen extra vertraging introduceert kan het ammonia. Het zilver blijft in deze vloeistof
ook in audioschakelingen worden gebruikt opgelost totdat er wordt geprint. Daar-
elektor 03-2012 9
INFO & MARKT
Het verlichte plafond is opgebouwd uit len. Ook is er een temperatuursensor geïn-
tegels van 50 x 50 cm. Elke tegel bevat een tegreerd. De L3G4IS kan werken met voe-
LED-board met 288 LED’s dat tegen het dingsspanningen tussen 2,4 en 3,6 V en
plafond wordt gemonteerd. Het licht van wordt geleverd in een plastic LGA-behuizing
de LED’s wordt verspreid door een mat- van 4 x 4 x 1 mm.
witte folie die 30 cm onder het LED-board Meer info: www.st.com/internet/analog/
is bevestigd. Hierdoor wordt een homo- product/253096.jsp
gene verlichting verkregen, die de gehele
ruimte vult. Om het volledige lichtspectrum
te krijgen worden rode, blauwe, groene en
witte LED’s gebruikt. Met het LED-plafond
waarvan het prototype 34 m² groot is, wor- Nieuwe generatie
den de veranderingen in het lichtspectrum
nagebootst die ontstaan als wolken langs de FM-ontvangerchips
hemel trekken. voor autoradio’s
bij verdampt de ammonia en slaat het zil- De ‘virtuele lucht’ wordt gedemonstreerd
ver neer. De oplossing is in enkele minuten tijdens de CeBIT die van 6 tot 10 maart 2012 NXP introduceert een nieuwe ontwikkeling
te maken, terwijl dat bij inkt met metaal- in Hannover wordt gehouden. op het gebied van IC’s voor autoradio’s.
deeltjes enkele uren duurt. Omdat er pas Meer info: www.fraunhofer.de/en/press.html De nieuwe chips bevatten volledig geïnte-
bij het printproces zilverdeeltjes worden greerde radio-ontvangers die in staat zijn
gevormd kan de oplossing lange tijd wor- om Radio Data Systems (RDS), Radio Broad-
den bewaard. Een extra voordeel van de cast Data System (RBDS) en Traffic Message
nieuwe inkt is de lage verwerkingstempe- Channel (TMC) diensten te decoderen. De
ratuur. Inkt met metaaldeeltjes moet tot Eerste nieuwe ‘on-board’ tuners nemen minder
hoge temperaturen worden verhit om een ruimte in dan de bestaande modulaire
goede geleidbaarheid te krijgen. Deze tem- dual-core gyroscoop
peratuur is te hoog voor de meeste plastic-
en papiersoorten. De nieuwe inkt krijgt al
bij 90 °C het geleidend vermogen van puur
zilver.
Meer info: http://news.illinois.edu/
news/12/0112ink_JenniferLewis.html
Foto: S. Brett Walker
Plafondverlichting
imiteert STMicroelectronics introduceert de eerste oplossingen en zijn speciaal bedoeld voor
bewegende wolken dual-core gyroscoop, die voor zowel bewe- ontwerpers van autoradio’s, die hiermee
gingsdetectie als camera-beeldstabilisatie apparaten met hoge prestaties voor lagere
kan worden gebruikt. Hiermee wordt het kosten kunnen ontwikkelen.
ontwerp van mobiele telefoons, tablets en De TEF7006 en TEF7007 ontvanger-IC’s zijn
andere consumentenelektronica eenvoudi- geschikt voor het volledige FM-spectrum
ger omdat het niet meer nodig is om twee van 76 tot 108 MHz en kunnen daardoor in
sensoren met verschillende specificaties toe Europa, Japan en de Verenigde Staten wor-
te passen. De nieuwe gyroscoop bevat één den gebruikt. Beide IC’s zijn geschikt voor
sensor met aparte signaalverwerkingscir- een groot aantal FM-ontvangststandaarden
Lichtfluctuaties veroorzaakt door bewe- cuits voor beeldstabilisatie en herkenning en beschikken over verschillende interfa-
gende wolken in de lucht zorgen voor van gebaren van de gebruiker. ces, zoals een MPX-uitgang en een digitale
een gevoel van ruimtelijkheid en vrijheid. De gyroscoop met typenummer L3G4IS is audio-uitgang. De TF7007 bevat tevens een
Onderzoekers van het Fraunhofer Insti- speciaal onworpen voor gebruik in batte- geïntegreerde FM-antennebuffer. De IC’s
tuut voor Industrieel Ontwerp hebben een rijgevoede apparatuur en beschikt daarom kunnen ook in navigatiesystemen worden
nieuwe plafondverlichting voor kantoren en over power-down- en slaap-modi, en heeft gebruikt als ‘standalone’ ontvanger voor
bedrijfsruimtes ontwikkeld, die deze fluctu- een embedded FIFO-buffer voor intelligent verkeersinformatie.
aties simuleert. Hierdoor wordt de indruk energiebeheer. Het IC beschikt over SPI- en De TF7006 en TF7007 worden geleverd in
gewekt dat men buiten zit en worden de I²C-interfaces en configureerbare laag- en een HFQFN-behuizing met afmetingen van
concentratie en alertheid tijdens het werk hoogdoorlaatfilters. De gevoeligheid van 5 x 5 x 0,85 mm.
verhoogd. de bewegingsherkenning is apart in te stel- Meer info: www.nxp.com/news/press-releases
10 03-2012 elektor
INFO & MARKT
Twee robots van robotica en kunstmatige intelligentie. exact dezelfde tijd start.
Al eerder ontwikkelde The Corpora soft- Meer info met video: http://thecorpora.com/blog/
die elkaar herkennen ware waarmee een Qbo zichzelf in een spie-
De ontwikkelaars van het open-source gel kan herkennen. Daar is nu een module
robotproject Qbo (The Corpora) zijn er in aan toegevoegd waarmee de Qbo het
geslaagd om twee Qbo-robots elkaar te verschil herkent tussen zijn spiegelbeeld
laten herkennen en een kort gesprek te en het beeld van een andere Qbo. Hierbij
laten voeren. De ene Qbo detecteert hier- zendt de Qbo in real-time een willekeurige
bij dat de andere Qbo inderdaad een andere reeks neuslichtsignalen uit. Bij het bekijken
Qbo is en niet zijn eigen spiegelbeeld. Qbo van zijn spiegelbeeld ontvangt hij dezelfde
is een open-source robotproject dat zes jaar signalen. Bij het bekijken van een andere
geleden werd gestart door Francisco Paz Qbo ontvangt hij andere neuslichtsignalen.
met als doel om een goedkope open-source Omdat het een willekeurige reeks signalen
robot te maken die mensen op een eenvou- betreft, is de kans bijna nihil dat de andere
dige wijze bekend kan maken met de wereld Qbo dezelfde signalen uitzendt of deze op
elektor 03-2012 11
U aangeboden door Eurocircuits
TECH pool – alle voordelen van pooling maar voor high-density PCBs
• 2-8 lagen, 100µm technologie PCBs
• Vanaf 4 werkdagen
IMS pool – aluminium-drager PCBs voor applicaties met een hoge warmte-dissipatie (LED)
• Enkelzijdige Insulated Metal Substrate PCBs
• 1.5mm aluminium basis met 75µm thermisch geleidend dielectricum en 35µm Cu folie
• Vanaf 3 werkdagen
www.elektorPCBservice.com
DesignSpark chipKIT TM
Design Challenge
De DesignSpark chipKIT™ ontwerpwedstrijd is nu in zijn laatste maand. Het is nog steeds mogelijk
energie-efficiënte toepassingen in te zenden… maar de tijd dringt!
Ian Bromley (UK) daarvan de hoeveelheid voedingsstoffen die de planten nodig heb-
ben. Zo wordt bespaard op het gebruik van water en meststoffen.
De DesignSpark chipKIT-wedstrijd is nu in zijn laatste weken. Wie Over het algemeen wordt bij hydrocultuur gebruik gemaakt van
snel is, kan nog net meedoen en kans maken op een prijs. Er is een vaste instellingen voor de aanvoer van voedingsstoffen. Daarom
prijzenpot van $10.000 en de hoofdprijs is maar liefst $5.000 con- zou dit systeem zowel geld als water kunnen besparen.
tant. Er zijn al veel inzendingen en het enthousiasme van de deel- Nog een innovatieve inzending is het ‘slimme tuin’-project voor
nemers is geweldig. De ingezonden ideeën hebben een geweldige het besturen van de natuurlijke dagcyclus van een plant met mini-
kwaliteit. Om het geheugen nog even op te frissen: Het doel van male menselijke tussenkomst. Dit project combineert het gebruik
de DesignSpark chipKIT-wedstrijd is om ontwerpers, studenten en van hernieuwbare energiebronnen (zoals energie uit zonlicht) met
hobbyisten aan te moedigen om nieuwe en innovatieve energie- een laag energieverbruik in de besturingsschakeling. Het systeem
efficiënte toepassingen te ontwikkelen, waarbij ook aandacht wordt werkt met sensoren voor onder meer vocht, temperatuur en licht,
gegeven aan milieuvriendelijkheid. en met actuatoren zoals een irrigatiepomp. Verder wordt het een
modulair systeem dat kan worden uitgebreid, bijvoorbeeld met een
Nu de wedstrijd zijn einddatum nadert, zijn de deelnemers heel Bluetooth-interface om meldingen naar de gebruiker te sturen. Dit
bedreven geworden in het ontwerpen van energie-efficiënte en is een voorbeeld van een virtuele representatie in een Internet-ach-
milieuvriendelijke toepassingen, gebaseerd op het Arduino-com- tige structuur, waar we dit jaar waarschijnlijk nog veel meer over
patibele chipKIT Max32 ontwikkelplatform van Digilent. Het board gaan horen.
bevat Microchip’s 32-bits PIC32-microcontroller en maakt het ont- En dit zijn nog maar drie van de vele innovatieve projecten. Nog
werpers gemakkelijk om goedkoop elektronica in hun projecten te even de wedstrijdvoorwaarden: Alle inzendingen moeten werken
integreren. Om een indruk te geven van de rijke variëteit van ideeën met een uitbreidingskaart die is ontwikkeld met behulp van de gra-
die al zijn ingezonden, geven we hier enkele voorbeelden die ook tis DesignSpark PCB-software van RS en met code gecompileerd
online beschikbaar zijn bij de DesignSpark-community op www. met Microchip’s MPLAB IDE-software. Deelnemers worden gesti-
designspark.com. muleerd om met anderen te communiceren via de online Design-
Een heel interessant project is de ontwikkeling van een onbemand Spark-community. Hier kunnen informatie over projecten worden
onderwatervoertuig (UUV) dat voor de voortstuwing gebruik maakt geplaatst, updates worden verspreid en natuurlijk kan er worden
van zijn drijfvermogen als een zweefvliegtuig onder water. Het kan gediscussieerd over ontwerpideeën. Wie via de community com-
lange tijd ononderbroken operationeel zijn, dankzij het bijzonder municeert, neemt automatisch deel aan de Community Choice
lage energieverbruik. Er wordt voor dit voertuig een uitbreidings- Awards en maakt kans op een prijs voor de beste samenwerking,
kaart ontwikkeld voor de interface met de sensoren en actuatoren. waarbij tegoedbonnen voor producten van RS Components/Allied
Gepland zijn een 3-assige versnellingsopnemer, een gyroscoop en Electronics te winnen zijn.
een magnetometer voor het bepalen van de oriëntatie onder water.
Daarnaast krijgt het voertuig een GPS-ontvanger voor het bepalen De inzendingen worden beoordeeld op hun energie-efficiëntie en op
van de positie als het aan de oppervlakte komt. Een capillaire motor de kwaliteit van het printontwerp van de uitbreidingskaart. Uiter-
(buoyance engine) zorgt voor de aandrijving en actuatoren voor ste inzendingsdatum is 27 maart 2012 en de uitslag wordt bekend
hoogteroer en rolroer zorgen voor de besturing van het voertuig gemaakt in april 2012.
door onder water. Daarnaast wordt het voertuig uitgerust met sen- (120117)
soren voor geleidingsvermogen, temperatuur en diepte, waarvan
de meetgegevens worden opgeslagen in een flash-geheugen om Meer informatie en inschrij-
metingen van het zoutgehalte te loggen. ven voor de DesignSpark chip-
Een ander project is een regelsysteem voor aanvoer van water en KIT ontwerpwedstrijd:
voedingsstoffen voor hydrocultuur-planten. Het systeem houdt de
chipkitchallenge.com.
temperatuur en luchtvochtigheid in de gaten en bepaalt op basis
elektor 03-2012 13
Intelligente ventilatorregeling
Intelligente
PC-ventilatorregeling
Voor maximaal 6
PWM-geregelde ventilatoren
In een moderne PC zitten diverse ventilatoren voor het verwerken van de warmte die wordt
geproduceerd. Die kunnen echter niet allemaal individueel worden aangestuurd door het PC-
moederbord. Met behulp van de hier beschreven schakeling kunnen maximaal 6 ventilatoren actief
worden geregeld, waarbij de temperatuur door meerdere sensoren op verschillende plaatsen in de PC-
behuizing kan worden gemeten. Voor het configureren en monitoren is een PC-programma beschikbaar
dat via USB communiceert met de ventilatorregeling.
Ivo Pullens (Nederland) de bekende 2- en 3-pens exemplaren, maar snelheid van de ventilator naar het moe-
ze hebben als groot voordeel dat ze kun- derbord terug te koppelen.
nen werken met een PWM-signaal voor het Een PC-moederbord heeft tegenwoor-
Een aantal jaren geleden is door Intel een instellen van de rotatiesnelheid. De 3- en dig vaak maar één ventilatoraansluiting
specificatie opgesteld voor 4-pens PWM- 4-pens aansluitingen beschikken boven- die een PWM-signaal levert, maar een
gestuurde PC-ventilatoren (zie [1]). Deze dien over een tachosignaal dat gebruikt PC bevat meestal meerdere ventilatoren.
ventilatoren zijn nauwelijks duurder dan kan worden om de momentele rotatie- Deze moeten dan noodgedwongen op een
14 03-2012 elektor
Intelligente ventilatorregeling
vaste snelheid ingesteld worden. En als al De schakeling zorgen er voor dat de open-collector tacho-
de mogelijkheid bestaat om meerdere In het schema in figuur 1 is te zien dat de signalen van de ventilatoren naar de voe-
PWM-ventilatoren tegelijk aan te sluiten, schakeling zeer eenvoudig van opzet is. Ze dingsspanning worden getrokken.
dan is de regeling vanuit het moederbord bestaat uit niet veel meer dan een ATmega- R3/C2 vormt een lowpass-filter dat het bin-
meestal niet in te stellen. microcontroller en een aantal connectoren nenkomende PWM-signaal van het moeder-
De hier voorgestelde schakeling is in staat voor de aansluiting van ventilatoren, senso- bord glad strijkt (integreert), zodat een ana-
om van maximaal 6 ventilatoren in bijv. een ren, USB en voeding. De 4-pens ventilatoren loge ingang van de microcontroller gebruikt
PC veilig en flexibel de snelheid te kunnen worden rechtstreeks op de microcontroller kan worden om het PWM-stuursignaal van
regelen, zodat ze allemaal op de minimaal aangesloten, omdat zij direct overweg kun- het moederbord in te lezen.
vereiste snelheid draaien en het geluidsni- nen met het gegenereerde PWM-signaal. Als analoge temperatuursensoren kunnen
veau zo laag mogelijk is. De interne pull-ups van de microcontroller twee NTC’s van 10 k aangesloten worden op
SENSE_IN
R10
K7 PWM0 K1
R3 +5V 1k
4 DUTY_AN_IN 4
100k
3 C2 TACHO0 3
FAN IN
2 2
1 100n 1
R4
C5 C6 +12V
LOW PASS, 16Hz
10k
4k7
10k
PB0(ICP1/CLKO/PCINT0) 1
15 PWM3
K11 PB1(OC1A/PCINT1) +12V
2 TEMP_AN0 16 PWM4
10k NTC CONNECTORS
PB2(SS/OC1B/PCINT2)
1 17 PWM5/MOSI
PB3(MOSI/OC2A/PCINT3) R13
18 TACHO4/MISO PWM3 K4
PB4(MISO/PCINT4) 1k
19 TACHO5/SCK 4
K12 PB4(SCK/PCINT5)
2 TEMP_AN1 PB6 PB7 TACHO3 3
GND XTAL1 XTAL2 AGND
1 2
8 9 X1 10 22
1
+5V +12V
K13 C3 C4
2 1 TACHO4/MISO R14
22p 16MHz 22p PWM4
4 3 TACHO5/SCK +5V 1k K5
4
6 5 RESET
TACHO4/MISO 3
+5VUSB R5
2
ISP K9
1k5
PWM5/MOSI 1
+5VUSB
1 R2 +12V
+5V USB_D-
K8 +5V 2 68R
+12V J1
D–
4 1 3 R1 R15
D+ USB_D+ PWM5/MOSI
3 4 68R 1k K6
5V 2 GND D2 D1 4
2 SELECT
+5VPWR TACHO5/SCK 3
1 C1 Mini-USB
2
3
3V6 3V6
10u 1
PSU +12V
CONNECTOR 100160 - 11
+5VPWR
Figuur 1. De schakeling bestaat grotendeels uit een ATmega-microcontroller en een fink aantal connectoren.
elektor 03-2012 15
Intelligente ventilatorregeling
Onderdelenlijst
Weerstanden: Diversen:
R1,R2 = 68 Ω X1 = kristal 16 MHz
R3 = 100 k J1 = 3-pens header met jumper
R4,R8,R9 = 10 k K1...K6,K7 = 4-pens ventilator-header
R5 = 1k5 K8 = 4-pens PC-voedingsconnector voor
R6,R7 = 4k7 printmontage, male
R10...R15 = 1 k K9 = Mini-USB-B-connector voor connectoren K11 en K12. R8 en R9 vormen
printmontage
Condensatoren:
samen met de NTC’s twee weerstandsdelers
K10 = 4-pens header
C1 = 10 µ/16 V radiaal, steek 2,5 mm K11,K12 = 2-pens header die met ADC2 en ADC3 in de microcontrol-
C2,C5,C6 = 100 n, steek 5 mm K13 = 2x3-pens header ler verbonden zijn.
C3,C4 = 22 p Print 100160-1 (zie [3] Op K10 kunnen, indien gewenst, maximaal
8 I2C-temperatuursensoren aangesloten
Halfgeleiders: worden. R6 en R7 vormen de verplichte pull-
D1,D2 = zener 3,6 V/400 mW
ups op de bus. De firmware is getest met
IC1 = ATmega168PA-PU (geprogrammeerd,
nr. 100160-41) Microchip MCP980x-sensoren, maar ver-
gelijkbare sensoren als de TCN75 zouden
direct of met kleine aanpassing ook moe-
ten werken. Tijdens het opstarten van de
firmware zoekt de regeling zelf uit hoeveel
K1
K6
K5
K2
K4
K3
R14
R13
R12
R10
R11
R8
K12
C3
K10
K8
ontwikkeling, wanneer er geen ventilatoren
R9
R1
R4
R6
R7
R2
R5
X1
K9
aangestuurd worden, kan het handig zijn de
K7
4
IC1
normaliter wordt de PC-voeding gebruikt
1 (jumper tussen pen 2 en 3).
R3
C1
3 2 1 C2
J1 C6
6
K13 Opbouw
Aangezien de schakeling geen SMD’s bevat,
Figuur 2. Met behulp van deze print-layout is de opbouw eenvoudig. Zeker als gebruik
is het opbouwen van de schakeling zo gebeurd! wordt gemaakt van de voor dit project ont-
worpen print (figuur 2). De grote connector
K8 is de mannelijke uitvoering van de wel-
bekende PC-harddisk-voedingsconnector,
gefabriceerd door de firma Molex. Eventu-
eel kan ook een voedingskabel direct op de
print gesoldeerd worden.
De officiële 4-pens ventilator-headers K1...
K7 zijn in kleine aantallen moeilijk verkrijg-
baar. De 3-pens variant is echter makkelijker
te verkrijgen. De steek en aansluitgegevens
van beide connectoren zijn identiek, zodat
3-pens ventilatoren ook op 4-pens headers
aan te sluiten zijn. Door een 3-pens venti-
lator-header te monteren en op de plaats
van de vierde pen een enkele pen van een
header te solderen (zie figuur 3), kunnen
we eenvoudig toch PWM-ventilatoren aan-
sluiten zonder het risico te lopen deze ver-
keerd aan te sluiten.
Firmware
De microcontroller-software is in C geschre-
ven en maakt gebruik van de software-
matige USB-stack V-Usb (zie [2]) om te
communiceren met een PC. De software
is in eerste instantie voor een ATmega88
16 03-2012 elektor
Intelligente ventilatorregeling
Technische eigenschappen
• Autonome individuele aansturing van maximaal zes 4-pens moederbord
PWM-ventilatoren. • Rotatiesnelheid kan op 3 manieren ingesteld worden:
• Meting van de rotatiesnelheden van deze ventilatoren en - Constant
detectie van vastgelopen ventilatoren. - Lineaire regeling die aan de hand van een sensorsignaal de
• Ondersteuning van maximaal 8 sensoren om de rotatiesnelheid berekent
ventilatorsnelheid te regelen: - PI-regeling die d.m.v. een sensorsignaal en de gewenste
- 2 NTC’s sensorwaarde de rotatiesnelheid berekent
- I2C temperatuursensoren, MCP980x/TCN75 compatibel • Configuratie en monitoring via USB.
- Rotatiesnelheid van de ventilatoren kan eveneens als • Software-bibliotheek om zelf PC-applicaties met de regeling
meetsignaal worden gebruikt te laten communiceren en PC-applicatie om de schakeling te
- Externe ‘sensoren’, waarvan de waarde via USB ingesteld wordt configureren en besturen, voor zowel Windows als Linux.
- De duty-cycle van een externe ventilatorsturing, zoals van het
ontwikkeld, maar deze bleek al snel te klein microcontrollers, maar ruim voldoende om
om er alle functionaliteit in onder te bren- voor een laagfrequent proces als het tem-
gen. Vandaar dat uitgeweken is naar de peratuurverloop een regeling te realiseren.
ATmega168 die de dubbele hoeveelheid De gesimuleerde tacho voor het moeder-
flash-geheugen bevat. De software is echter bord moet maximaal zo’n 1200 pulsen per
nog steeds, weliswaar met beperkte functi- seconde genereren, waarbij de timing niet
onaliteit, voor de ATMega88 te compileren zo nauw komt. Vandaar dat de hoofdlus
(zie het bestand config.h in het download- deze pulsen verzorgt en de tachopen afwis-
pakket dat op de Elektor-website beschik- selend laag en hoogohmig maakt om aan de
baar is [3]). open-collector-eis te voldoen.
Zoals de 4-pens ventilatorspecificatie van Met behulp van de PC-software kan de
Intel voorschrijft, dienen de ventilatoren huidige configuratie van de regeling in de
aangestuurd te worden met een PWM- EEPROM opgeslagen worden, zodat deze in
frequentie van ongeveer 25 kHz, waarbij het vervolg automatisch geactiveerd wordt.
de snelheid de duty-cycle lineair dient te Een flink stuk van de software bestaat uit de
volgen vanaf 20% (bij lagere duty-cyles is USB-stack en de berichtenuitwisseling met
de snelheid ongedefinieerd). De ATmega de PC. De ‘realtime’ communicatie met de
beschikt over 6 PWM-uitgangen, maar PC wordt afgehandeld in de INT0-handler
Figuur 3. Met behulp van een extra
alleen de twee uitgangen die aangestuurd die de allerhoogste prioriteit heeft.
pen kan een 3-pens ventilator-header
worden door 16-bits Timer1 kunnen exact
geschikt worden gemaakt voor een 4-pens
op 25 kHz ingesteld worden. De overige
connector van een PWM-geregelde
Software
PWM-uitgangen kunnen, omdat ze aange- ventilator. De PC-software is in C++ geschreven en ont-
stuurd worden door 8-bits timers, slechts wikkeld m.b.v. het gratis Microsoft Visual
op ofwel 7,8 kHz of 62,5 kHz ingesteld wor- C++ 2010 Express. De grafische interface
den. Om deze toch de juiste frequentie uit maakt gebruik van wxWidgets, zodat deze
te laten sturen wordt een truc toegepast. kenen van de duty-cycles. zowel onder Windows als Linux gebruikt
Ze worden ingesteld op de veel te trage Deze hoofdlus controleert elke seconde kan worden (en OS X, maar dat is niet in de
frequentie van 7,8 kHz, maar de overflow- eerst of er momenteel ventilatoren stil praktijk getest door de auteur).
interrupt van Timer1 herstart steeds de staan, bijvoorbeeld doordat ze geblokkeerd LibUsb wordt gebruikt om via USB met de
8-bits timers, waardoor alle PWM-uitgan- of defect zijn. Afhankelijk van de instelling schakeling te communiceren. Om de spe-
gen toch op 25 kHz draaien. kan een stilstaande ventilator er voor zor- cifieke details van de communicatie tussen
De pulsen van de tacho’s, die gebruikt wor- gen dat de gesimuleerde tacho gestopt PC en schakeling te verbergen en herge-
den om de snelheid van de ventilatoren wordt, waardoor het moederbord merkt bruik te bevorderen worden de opbouw en
te meten, worden geteld door gebruik te dat er een ventilator stil staat. Een op het uitwisseling van berichten door een aparte
maken van de pin-change-interrupt. In de moederbord aanwezige functie om bijv. bij bibliotheek verzorgd. Hier kan dus bijvoor-
praktijk blijken ventilatoren zelden meer het uitvallen van een ventilator een alarm te beeld direct de snelheid van ventilatoren
dan 6000 omwentelingen per minuut te genereren blijft zo dus functioneren. mee ingesteld worden en zijn de sensoren
maken, waarbij de tacho twee pulsen per Vervolgens worden de huidige sensorwaar- uit te lezen.
omwenteling produceert. Als alle ventilato- den ingelezen, de regellussen opnieuw De grafische interface bestaat uit de vol-
ren op volle snelheid draaien, krijgt de soft- doorgerekend en de duty-cycles in de gende tabbladen:
ware dus zo’n 1200 pin-change-interrupts output-compare-registers voor de timers
per seconde te verwerken. Dit lijkt veel, geschreven. Het interval van één seconde • Admin
maar de hoofdlus is eenvoudig van opzet en waarmee nieuwe duty-cycles berekend wor- Hiermee kan de EEPROM beheerd
vrijwel volledig beschikbaar voor het bere- den, is aan de lange kant in de wereld van worden, zoals lezen en schrijven van de
elektor 03-2012 17
Intelligente ventilatorregeling
18 03-2012 elektor
Alle geregistreerde handelsmerken blijven eigendom van de fabrikant die het handelsmerk heeft geregistreerd!
www.beta-layout.com
Specificaties
• Afmetingen: 455 x 390x 350 mm
• Werkbereik: 220 x 150 x 40 mm (X x Y x Z)
• Voedingsaansluiting: 110...240 Vac, 50/60 Hz Uw investering
• Gewicht: circa 35 kg De complete machine (inclusief software)
• Geïntegreerde HF-spindelmotor, max. 40.000 RPM (instelbaar) is nu verkrijgbaar voor € 3.500,- (excl. BTW
• Geïntegreerde stofafzuiging (excl. stofzuiger) en verzendkosten). De verzendkosten
• PC-verbinding via USB-aansluiting bedragen € 50,- voor Nederland en België.
• Incl. Windows-software met geïntegreerde PCB-module Overige landen op aanvraag.
• Diverse uitbreidingsmogelijkheden
Android schakel-interface
Android-telefoon als afstandsbediening
en interface voor al uw
microcontrollerprojecten
Bijna alle microcontrollerbesturingen hebben een interface met de shield (ITEAD, ca. € 15), aangevuld met een klein I/O-shield dat spe-
gebruiker. Vaak zijn meerdere drukknoppen, draaiknoppen, LED ciaal voor dit artikel is ontworpen.
’s en een LCD-scherm hiervoor aanwezig. Wie het echt mooi wil In Elektor zijn eerder artikelen verschenen over hardware waarmee
maken, gebruikt misschien zelfs een touchscreen. Een afstandsbe- Bluetooth-functionaliteit kan worden toegevoegd aan uw eigen scha-
diening kan ook handig zijn en dan liefst een waarmee je niet pre- keling (november 2004 en januari 2010). Daarnaast is er een artikel
cies hoeft te richten. verschenen over het programmeren van een microcontroller-bord dat
Meestal betekent een luxe interface echter hogere kosten en meer draait op het Android-besturingssysteem (juni 2011) en in decem-
werk bij het realiseren van de schakeling. Dat hoeft echter niet. U ber 2011 is een Android-besturing via de audio-uitgang besproken.
zult zien dat een mooie interface met afstandsbediening niet veel Omdat veel lezers bekend zijn met het programmeren van een micro-
kost en redelijk makkelijk te programmeren is. De kans dat u een controller, maar misschien nog nooit iets voor een telefoon gepro-
smartphone met Bluetooth hebt, is groot. Deze telefoon kan die- grammeerd hebben, wordt het programmeren van de microcon-
nen als luxe afstandsbediening. Sommige microcontroller-bord- troller in dit artikel maar kort besproken. Het programmeren van de
jes beschikken al over Bluetooth-functionaliteit, bij andere zijn er telefoon wordt echter uitgebreid besproken, vanaf het downloaden
shields of adapters te koop om deze mogelijkheid toe te voegen. In en installeren van de software tot en met het programmeren van
dit artikel wordt een Arduino-bordje gebruikt met een Bluetooth- de verschillende componenten van een mogelijke interface. Als het
20 03-2012 elektor
Schakelen met Arduino en Android
VCC
Arduino Board
R2
VCC RE2.A
1 G5V-2 D2
560R
R1 16 1N4148
RE1 K4 K8
1 G5V-2 D1
560R
VCC LED2
K5 K1 8 8
AREF
T1
goed is, kunt u met deze informatie zelf een interface program- RST
1 1
16 1N4148 R6
7 7
GND
2 2 6 6
meren voor uw eigen toepassing met uw eigen microcontroller. 3.3V
3 3 LED1
4k7
5 5
D13
5V D12
De broncode van de hier beschreven toepassing (zowel voor de GND
4 4 T2 BC547B 4 4
D11
5 5 R5 3 3
microcontroller als voor de telefoon) is natuurlijk te downloaden GND
6 6 4k7 2 2
D10
Vin D9
van de Elektor-website [1]. BC547B
R4 1 1
D8
100R
R3
T3
Hardware en microcontroller-programma
560R
Op het Arduino-bordje wordt een Bluetooth-shield geplaatst. LED3
BS170
Dit communiceert via de UART-interface. In Bascom kunnen VCC
10k
2 2 5 5
A1 D4
3 3 4 4
voorzien van een FET (‘analoge’ uitgang), een schakelaar (digi- A2
4 4
R9
3 3
D3
A3 D2
tale ingang) en een NTC als analoge sensor (analoge ingang) 5 5 2 2
1k
A4 D1
6 6 8 9 1 1
bevat (figuur 1, de hiervoor ontworpen print is afgebeeld in A5 RE2.B
4
RE1.B
13
D0
PWM
NTC
ingeschakeld (LED1 gaat branden en relais RE1 schakelt in), als 120075 - 11
6k8
er een ‘r’ binnenkomt worden LED1 en RE1 weer uitgeschakeld
(hetzelfde geldt voor uitgang D13 waarop de tweede LED en
relais zijn aangesloten; deze reageren op ‘O’ en ‘o’). Als een ‘P’ Figuur 1. Schema van het shield dat enkele LED’s en relais, een NTC, een
(van PWM) wordt ontvangen, dan wordt met ‘Input’ gewacht drukknop en een PWM-uitgang met FET en indicatie-LED bevat.
op de waarde (de telefoon moet na verzending een einde-regel-
teken ‘r/n/’ versturen), waarna deze waarde gebruikt wordt om
de PWM-uitgang aan te sturen. FET T3 kan maximaal 60 V/0,5 A waarop drukknop S1 is aangesloten (‘G’ als deze ‘1’ is en ‘g’ als deze
verwerken. LED3 geeft daarbij een indicatie van de modulatiegraad. ‘0’ is) geprint. De communicatie staat op de standaard snelheid van
Daarnaast worden gedurende elke cyclus de gemeten sensorwaarde 9600 baud ingesteld, waardoor er na het versturen van een waarde
van de NTC R9 (in de vorm T;adc(0);t) en de waarde van ingang D7 een korte wachttijd nodig is (hier 30...40 ms).
Onderdelenlijst
Weerstanden: K7,K8 = 8-polige female header
R1,R2,R3 = 560 Ω K9 = 10-polige female header
R4 = 100 Ω RE1,RE2 = miniatuur relais 5 V (bijv. TE connec-
R5,R6 = 4k7 tivity MT2-C93401 of OMRON G5V-2-H1)
R7 = 10 k S1 = drukknop met maakcontact (bijv.
R8,R9 = 1 k B3F-1000)
Print 120075-1 (zie [1])
Halfgeleiders:
D1,D2 = 1N4148
LED1,LED2,LED3 = LED rood, 5 mm
T1,T2= BC547
T3 = BS170
3
Figuur 2.
1
Diversen:
K1,K2 = 6-polige pinheader
De print-layout is zodanig dat de
connectoren passen op een standaard
4
elektor 03-2012 21
Schakelen met Arduino en Android
De benodigde software 4. Als ontwikkelomgeving (IDE) wordt Eclipse Classic 3.6.2 gebruikt,
De software voor het programmeren van een app voor een Android- dit is te downloaden van [4]. (De nieuwste Android-plugin was
telefoon is gratis te downloaden: op het moment van schrijven ADT12, deze is niet compatibel met
1. Voor het programmeren wordt de taal Java gebruikt. De Java Eclipse 3.7)
Development Kit (JDK) is te downloaden van de website van 5. Na installatie van Eclipse moet de Android-plugin geïnstal-
Oracle [2]. leerd worden, via Help|Install new software|Archive. Kies
2. De Software Development Kit voor Android is te vinden op [3]. de ZIP-file van de ADT en geef als naam Android plugin.
Kijk na de installatie hiervan ook eens op de rest van de site. U Ga vervolgens naar Windows|Preferences en zoek de map van
vindt hier veel informatie over het programmeren, helpbestan- de uitgepakte Android SDK (submappen waaronder Tools).
den en ook USB-drivers voor uw telefoon om de app straks te Ga naar Windows|Android SDK and AVD Manager, kies New (Vir-
kunnen downloaden (mogelijk is deze al aanwezig op uw PC als tual Device), bijvoorbeeld Gingerbread voor versie 2.3.3 (of
u via USB foto’s, muziek etcetera uitwisselt tussen uw PC en uw Samsung_GIO o.i.d.); dit is om het programma eventueel zon-
telefoon). der telefoon te simuleren op de PC.
3. Download de ADT plugin for Eclipse van dezelfde site, onthoud in 6. Download de map met het voorbeeldproject ‘Bluetoothinterface’
welke map deze wordt geplaatst. van [1], maar niet naar de workspace van Eclipse.
22 03-2012 elektor
Schakelen met Arduino en Android
elektor 03-2012 23
Schakelen met Arduino en Android
Figuur 5 Kies ‘Connect a device –Secure’, waarna u een van de al chkD13 = (CheckBox) findViewById(R.id.chkD13);
gepaarde apparaten kunt kiezen (of kunt zoeken naar apparaten (Bij de procedure ‘onCreate’ wordt de link gelegd
die ingesteld zijn als ‘waarneembaar’). Voor het (eenmalige) paren tussen de naam in main.xml (de scherm-layout) en
moet u een code ingeven (vaak ‘0000’ of ‘1234’). de naam in het programma)
24 03-2012 elektor
Schakelen met Arduino en Android
De ‘eigen’ toevoeging is alleen het veranderen van de tekst met de DecimalFormat formatter = new DecimalFormat(“#.#”);
waarde als de progressbar verschuift, het veranderen van de kleur textView1.setText(formatter.format(RTemp));}
van de tekst als je bezig bent met verschuiven en het verzenden van
een ‘P’ (voor de microcontroller het teken om de procedure aan De meetwaarde wordt ook in de grafiek gezet. Deze grafiek wordt
te roepen waarin met Input Pwm_str een regel met de gewenste gewist als het aantal meetwaarden 150 is, waarna opnieuw een
PWM-waarde wordt ingelezen), waarna de telefoon een regel met kader met hulplijnen wordt getekend.
de waarde en een ‘einde regel’ teken verzendt.
xcoordoud=xcoord;xcoord+=1;
Er is ook al een procedure die boodschappen van de microcontrol- if (xcoord==1){ //tekenen kader en hulplijnen
ler ontvangt (en in het tekstvak zet). Daarbij is onderstaande code paint.setColor(Color.BLUE)
van belang: canvas.drawLine(0,105,150,105,paint);//10 grd
canvas.drawLine(0,85,150,85,paint);//15 grd
case MESSAGE_READ: canvas.drawLine(0,65,150,65,paint);//20 grd
byte[] readBuf = (byte[]) msg.obj; canvas.drawLine(0,45,150,45,paint);//25 grd
// construct a string from the valid bytes canvas.drawLine(0,25,150,25,paint);//30 grd
in the buffer paint.setColor(Color.YELLOW);
String readMessage = new String(readBuf, 0, canvas.drawRect(1, 1, 149, 124, paint);
msg.arg1); }
mConversationArrayAdapter. if (xcoord==150) {xcoord=0;
add(mConnectedDeviceName+ canvas.drawColor(Color.BLACK);}
“: “ + readMessage); else
break; {canvas.drawLine(xcoordoud,
125-Tempoud,xcoord,125-Temp,paint);
We hoeven nu alleen de boodschap te ‘onderscheppen’ en afhan- }
kelijk van de inhoud onze radiobuttons of progressbar de juiste OldMessage=readMessage;
waarde te geven.
De radiobuttons worden bestuurd met een karakter G (aan) of g Om te voorkomen dat de toepassing opstart met een toetsenbord,
(uit). is in het Androidmanifest|Application|Window soft input mode sta-
teHidden ingesteld.
if (readMessage.contains(“G”)==true)
G1.setChecked(true); Daarmee hebben we de belangrijkste punten besproken.
if (readMessage.contains(“g”)==true) Natuurlijk wilt u voor uw toepassing de interface ‘op maat’ maken.
G0.setChecked(true); Als het goed is, hebt u nu genoeg informatie om hiermee zelf aan de
slag te gaan. In de download op de Elektor-website is natuurlijk ook
Voor de progressbar wordt gecontroleerd of een code “TXXXXt” een complete apk aanwezig die u zo naar uw telefoon kunt kopiëren
binnenkomt (de XXXX bevat het getal 0...1023, ofwel de gedigi- en waarmee u na installatie meteen alle beschreven mogelijkheden
taliseerde waarde van de analoge ingang). De totale code wordt kunt uitproberen.
geëvalueerd, omdat de code soms in 2 stukken binnenkomt en dit (120075)
mag niet leiden tot een verkeerde waarde.
if (readMessage.charAt(0)==’T’)
if (readMessage.contains(“t”)==true){
Tempoud=Temp;Temp=readMessage.indexOf(“t”);
OldMessage=readMessage.substring(1,Temp);
Temp=Integer.parseInt(OldMessage); Weblinks
[1] www.elektor.nl/120075
Voor de waarde die als tekst wordt gegeven (de echte temperatuur,
[2] http://www.oracle.com/technetwork/java/javase/downloads/
voor de progressbar en de grafiek moeten de waarden vanwege de
schaal soms omgerekend en geformatteerd worden). [3] http://developer.android.com/sdk/index.html
[4] http://www.eclipse.org/downloads/
RTemp=Temp;RTemp=RTemp/6;// 0-255 naar grdC
[5] http://projectproto.blogspot.com/2010/09/android-bluetooth-
// nooit hoger dan maximum progressbar
A0.setProgress(Temp*4); //schaal progressbar
oscilloscope.html
Temp=Temp/2; //schaal grafiek [6] http://code.google.com/p/android-bluetooth-oscilloscope/
elektor 03-2012 25
RFID-readers
RFID-hacks
RFID-readers voor ISO 14443 en ISO 15693
Martin Oßmann (Duitsland)
De RFID-chips in de Duitse identiteitskaarten zijn van het type ISO We hebben op twee manieren gemak van dit readertje. Ten eerste
14443 MIFARE/DESfire, gemaakt door NXP. Het blad Computer hebben we een referentie-ontwerp dat we kunnen uitpluizen. In het
Bild had in december 2010 een complete RFID-lezer met een aan- bijzonder zijn we geïnteresseerd in de manier waarop de zendspoel
tal kaartjes als bijlage bij het tijdschrift. De prijs: € 3,70. Dat was is aangesloten op het IC. Het bijbehorende schema ziet u in figuur 2.
mogelijk dankzij subsidie van de Duitse regering. Bij deze actie werd NXP biedt een Application Note met een Excel-sheet voor de dimen-
de ReinerSCT cyberJack RFID basis [1] geleverd, een lezertje met een sionering aan via het web [4]. Daaruit blijkt dat het reader-ontwerp
adviesprijs van € 34,90. Er zijn toen 1.237.000 van die RFID-readers de aanbevelingen van de fabrikant vrij nauwgezet volgt. Als u deze
[2] over de toonbank gegaan. De ‘herverdeling’ via eBay tegen prij- RFID-lezer in bezit hebt, dan kunt u natuurlijk ook met de elektro-
zen vanaf € 2(!) zal nog wel even voortduren. nica daarvan zelf een reader bouwen. Wij hebben daartoe de proces-
sor losgesoldeerd en vervangen door een ATmega88. Het resultaat
Deze BSI-lezer (BSI = Bundesamt für Sicherheit in der Informationstech- ziet u in figuur 3. De zelfbouw-reader ziet u in figuur 4. De scha-
nik) vormt de basis voor de zelfbouw van een MIFARE ISO 14443- keling met de ATmega88 hebben we op gaatjesprint opgebouwd
lezer. U kunt een BSI-lezer modificeren, maar het is ook mogelijk en verbonden met de BSI-readerprint met de PN512. In figuur 5
om met de verworven kennis zelf een lezer te maken. We hebben de ziet u de verbinding met het BSI-readerboard door middel van dun
keuze uit twee verschillende reader-IC’s, dus we hebben voor beide koperlakdraad.
typen een schakeling bedacht. Voor RFID’s volgens ISO 15693 stel-
len we dan nog een reader voor die u zonder speciale onderdelen Als u niet de beschikking hebt over een BSI-reader of als u geen zin
zelf kunt bouwen. hebt in ombouwen, dan kunt u de ISO-14443-reader eventueel ook
nabouwen. Daartoe hoeft u alleen maar de schema’s van figuur 2
Hack 1: BSI-reader met PN512 en figuur 3 samen te voegen en van een 3,3-V-voeding te voorzien.
De foto bovenaan dit artikel is van het binnenste van de cyberJack- Het PN512 reader-IC is verkrijgbaar bij diverse leveranciers. Bedenk
reader. U ziet de zeer compacte print. Het blokschema van dit lezer- echter wel dat deze chip in een QFN-behuizing zit, zonder pootjes!
tje is gegeven in figuur 1. Een Cypress USB-controller (CY7C64316) Dat betekent dat u de beschikking moet hebben over een reflow-
verzorgt de communicatie met de USB-poort. De voeding voor de oven als u dit IC zelf wilt solderen.
lezer wordt betrokken uit de USB-aansluiting. Een LP3982 span-
ningsregelaar levert een spanning van 3,3 V voor de controller en Software
het reader-IC. Het reader-IC is een PN512 van NXP, bedoeld voor Documentatie van de MIFARE-kaart en van de ISO-14443-standaard
RFID-tags conform de standaard ISO-14443. De PN512 (datasheet is vrij beschikbaar. Daarin kunnen we zien welke commando’s de
zie [3]) is trouwens ook heel geschikt als zender/ontvanger voor kaart herkent en hoe we die moeten versturen. De auteur heeft een
nearfield communication. stukje software geschreven waarmee we wat basisfuncties kun-
26 03-2012 elektor
RFID-readers
+3V3
C1
2 3 9 12 15 100n
C9
PVDD
SVDD
TVDD
DVDD
AVDD
47p
nen testen. In listing 1 ziet u de geïmplementeerde commando’s, 32 13
L2 R4
A0 TX2 3R3
samen met het resultaat van het uitlezen van de UID, het unieke 560nH C7 C11
identificatienummer. 24
ALE 8 C12
*
31 SIGOUT 220p 33p
D7 7
to ATMega88
30 SIGIN 220p 33p 22p
Hack 2: de BSI-reader met een MRFC523 29
D6
D5
IC1
R3
C6 C10
Toen we een tweede BSI-reader uit de Computer-Bild-actie hadden 23
IRQ TX1
11 L1
3R3
6 560nH
opengeschroefd, bleek daar een MFRC523 reader-IC in te zitten in RSTPD
R2
C8
47p
4k7
plaats van een PN512. Deze IC’s zijn nagenoeg pencompatibel, maar 25 AUX1
19
D1 20
26 AUX2 C4
D2
27
D3
1n
28 17
D4 RX
R1
Aanpassings- 1
A1
1k
netwerk
PN512 PN512
3V3 Reader IC 4
DVSS VMID
16
Supply 5
PVSS TVSS
14
10 18
TVSS AVSS
OSCIN OSCOUT
21 Q1 22
C2 C3 C5
CPU Koppel-
USB spoel RFID 22p 22p 100n
CY7C64316
Q1 = 27.12MHz 110750 - 12
110750 - 11
Figuur 1. Blokschema van de Duitse BSI-reader. Figuur 2. Schakeling met het PN512 reader-IC.
Enter command:
W test WRITE Mifare
r test REQA
u test Get UID
d test Get Version DesFire
e test DesFire2
f test DesFire3
m test MIFARE
Get UID
PN512reset Transmitter started.
REQUA: TX:[ 26 ] RX:[ 44 00 ]
COLLISION LEVEL 1 (NoCRC)TX:[ 93 20 ] RX:[ 88 04 D2 3A 64 ]
SELECT LEVEL 1 TX:[ 93 70 88 04 D2 3A 64 ] RX:[ 04 ] SAK=04
COLLISION LEVEL 2 (NoCRC)TX:[ 95 20 ] RX:[ 29 EE 02 80 45 ]
SELECT LEVEL 2 TX:[ 95 70 29 EE 02 80 45 ] RX:[ 00 ] SAK=00
UID complete after level 2
UID= 04 D2 3A 64 29 EE 02 80 45
Read Mifare Card Data
UID= 04 D2 3A 64 29 EE 02 80 45
SELECTED !
ReadData TX:[ 30 00 ] RX:[ 04 D2 3A 64 29 EE 02 80 45 48 00 00 00 00 00 00 ]
ReadData TX:[ 30 04 ] RX:[ FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ]
ReadData TX:[ 30 08 ] RX:[ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
ReadData TX:[ 30 0C ] RX:[ AA 55 BB 66 00 00 00 00 00 00 00 00 00 00 00 00 ]
elektor 03-2012 27
RFID-readers
+3V3 +3V3
R3
D1
10R
C3 C4
LED
R4
100n 100n
to PC
100R
7 20
PN512
VCC AVCC CPU1
2 15
IC2 PD0 RXD PB1 ten worden gevoerd, zodat je bijvoorbeeld de
3
MAX3232 PD1 TXD
13 4 24 sterkte en de kwaliteit van het ontvangstsignaal
PD7 ALE SS
IC3
PD6
12 9 31
D7 MISO
kunt zien. Het scoopbeeld van zo’n test ziet u in
1
RESET PD5
11 13 6
RSTPD figuur 8. De onderste curve is het analoge signaal
19 6 10 23
ISP 18
PB5 SCK PD4
5 3 29
IRQ van de demodulator, het bovenste is het digitale
PB4 MISO PD3 D5 SCK
17 4 2 30 signaal dat we binnenkrijgen. Door dergelijke sig-
PB3 MOSI PD2 D6 MOSI
nalen nauwgezet te analyseren kunt u de para-
14 24
PB0 PC1 meters van de reader - en dat zijn er niet weinig
16 25
PB2 ATMega88 PC2 - optimaal instellen.
+3V3 23
PC0 PC3
26
27
PC4
28
PC5 AREF
21 Hack 3: ISO 15693-RFID’s
IC1 GND XTAL1 XTAL2 AGND Ter afsluiting stellen we nog een zelfbouw-rea-
C1 8 9 10 22 C5 der aan u voor. Deze leest ISO-15693-RFID-tags.
100n 100n
Speciale componenten zitten er niet in, alles is
16 MHz gemakkelijk verkrijgbaar. ISO 15693 is, naast ISO
14443, zo’n beetje de meest wijdverbreide stan-
110750 - 13
daard voor RFID’s van 13,56 MHz. De enige over-
eenkomst tussen die twee is de frequentie, want
verder gaat het om zeer verschillende systemen.
Figuur 3. Schema met de ATmega88 die de PN512 bestuurt. ISO 14443 definieert een contactloze interface
voor smartcards met een reikwijdte van maxi-
we moesten wel de software een beetje aanpassen. Om het ons wat maal 10 cm, terwijl ISO 15693 een contactloze interface beschrijft
makkelijker te maken bij het uitvoeren van onze experimenten heb- voor tags met een reikwijdte tot maximaal 1,5 meter.
ben we een MFRC523 op een adapterprintje gesoldeerd. Deze rea-
der ziet u in figuur 6. Als eerste wilden we proberen of we de spoel- Figuur 9 toont het schema van deze ISO-15693-reader, een foto
aanpassing wat konden vereenvoudigen (het nogal uitgebreide lad- van ons eerste prototype ziet u in figuur 10. Het 13,56-MHz-kristal
dernetwerk rechts van TX1 en TX2 in figuur 2). Een simpele LC-kring levert zowel de klok voor de ATmega88 als het signaal voor zend-
als zendschakeling bleek ook heel goed te voldoen. Het schema van spoel L1. De microcontroller kan het zendsignaal in- en uitschake-
de complete reader met deze vereenvoudiging ziet u in figuur 7. len via IC1b, om zo informatie van de zender naar het RFID over
te dragen. Dit gebeurt met de resonantiekring L1/C6. De RFID-tag
Net als de PN512 biedt ook de MFRC523 de mogelijkheid om test- antwoordt daarop met modulatie die wordt veroorzaakt door de
signalen uit te sturen via de testpennen MFIN, MFOUT, AUX1 en belasting (Engels: load modulation). In figuur 11 zien we het sig-
AUX2. Via een 5-bits DAC kunnen ook interne waardes naar bui- naal van de zendspoel wanneer er op hoge snelheid data worden
Figuur 4. Prototype met ATmega88 Figuur 5. De verbinding met de reader-print is gemaakt met
en PN512-lezerprint. behulp van dun koperlakdraad.
28 03-2012 elektor
RFID-readers
R3 D1 D2
10R
C3 C4
LED LED C2
R4 R5
100n 100n
to PC 2 3 9 12 15 100n
100R
100R
7 20
PVDD
TVDD
DVDD
AVDD
SVDD
VCC AVCC
2 15 32 11
IC2 PD0 RXD PB1 A0 TX1
3
MAX3232
uitgewisseld. De piek in het midden is de draag-
PD1 TXD
PD7
13 24
ALE SS
IC4
8
*L1
IC3 12 31 MFOUT
golf van 13,56 MHz. Aan weerszijden daarvan, 1
PD6
11 6
D7 MISO
MFIN
7
2uH
RESET PD5 RSTPD
steeds op intervallen van 423,75 kHz vanuit het 19
PB5 SCK PD4
6 23
IRQ C6
ISP 18 5 29 13
midden, ziet u de zijbanden die ontstaan door de 17
PB4 MISO PD3
4 30
D5 SCK TX2
R2
PB3 MOSI PD2 D6 MOSI 60p
belastingsmodulatie.
6k8
JP1 19
14 24 25 AUX1
PB0 PC1 D1 20
16 25 JP2 26 AUX2 C8
PB2 ATMega88 PC2 D2
Om dit signaal te demoduleren wordt het spoel- 23 26 27 MFRC523
+3V3 PC0 PC3 JP3 D3
1n
signaal gelijkgericht door D1 en D2. De resonan- 27
PC4
21
28
D4 RX
17
R1
28
tiekring C9/L2 is afgestemd op 423,75 kHz en fil- PC5 AREF
1
A1
IC1 GND XTAL1 XTAL2 AGND
1k
tert het ontvangstsignaal er uit. Wat over blijft, 8 9 10 22
4 16
wordt versterkt door T1 en dan door L3/C11 nog- C1 C5
5
DVSS VMID
14
PVSS TVSS
maals gefilterd. Daarna wordt het 423,75-kHz- 100n
16 MHz
100n 10
TVSS AVSS
18
Figuur 6. Zelfbouwlezer met de MFRC523 Figuur 8. Testsignalen gemeten aan de MFRC523. Onder het
op een adapterprint. analoge demodulatorsignaal, boven de ontvangen digitale data.
elektor 03-2012 29
RFID-readers
+5V +5V
R3 D1
10R
C3 C4
LED
R4
100n 100n
to PC
100R
7 20
VCC AVCC
2 15
PD0 RXD PB1
MAX3232 3
PD1 TXD
14
IC2 PB0
1 16
RESET PB2
19
PB5 SCK
ISP 18 23 DEMOD
PB4 MISO ADC0 PC0
17
PB3 MOSI JP1
24
PC1
13 25 JP2
PD7 PC2
12 26
PD6 PC3 JP3
TRIG OUT 11 27
+5V PD5 ATMega88 PC4
6 28
PD4 PC5
MOD 5
IC1.A PD3
4 21
PD2 AREF
&
GND XTAL1 XTAL2 AGND +5V
R1 8 9 10 22
C5
1M
R2
IC1.B R7 L3
100n C10 C11
1k
&
33k
Q1
180p 180p
470uH R6
C1 C2 6k8
13.56 MHz IC1.C IC1.D
D1 D4
22p 22p C8 C12
& &
R10 T1 R5
L1
* C7 22p 270p C13 C14
10k
15k
4uH L2
C8 470p R9 BF245B 330p 330p
D2 D3
C9
R8
IC1 = 74HC00 R11
33k
2k5
250R 5p...60p 220p
470uH
Na het afregelen van de resonantiekring C9/L2 sluit u de scoop- duleerde signaal. Bij het afregelen moet u de amplitude met R11
probe aan op de drain van T1 en regelt u C11 opnieuw af op maxi- zodanig terugregelen dat T1 nog net niet overstuurd wordt. Het
male amplitude. Aan C14 (punt Demod) ziet u dan het gedemo- bovenste kanaal van het scoopplaatje in figuur 12 is het drain-sig-
Listing 2. Resultaat van het uitlezen van een RFID-tag van een bibliotheekboek
-->READsystemINFO
TX=[00 2B;96 90 ] RX=[00 0F 4E 82 61 45 00 01 04 E0 00 00 1B 03 01;13 10 ]
UID=E00401004561824E
DSFID=00
AFI=00
MEM_BLKS=1B BYTESinBLK=04
-->
DATA=
00 RX=[00 11 01 01 32;F8 41 ]DATA=11 01 01 32 2
01 RX=[00 31 20 54 57;A8 0E ]DATA=31 20 54 57 1 TW
02 RX=[00 51 20 31 34;3C DD ]DATA=51 20 31 34 Q 14
03 RX=[00 35 31 28 32;C2 CE ]DATA=35 31 28 32 51(2
04 RX=[00 29 00 00 18;8E 25 ]DATA=29 00 00 18 )
05 RX=[00 98 44 45 41;24 CA ]DATA=98 44 45 41 DEA
06 RX=[00 39 36 00 00;91 2A ]DATA=39 36 00 00 96
07 RX=[00 00 00 00 00;77 CF ]DATA=00 00 00 00
30 03-2012 elektor
RFID-readers
Weblinks:
[1] www.reiner-sct.com/npa/basis.html power and signal interface)
(productpagina van de ReinerSCT cyberJack RFID basis) [8] www.waazaa.org/download/fcd-14443-2.pdf
[2] www.heise.de/ct/artikel/ePerso-Alltag-Vom-Foerdern-und- (ISO/IEC 14443-2 cards, Contactless integrated circuit(s) cards -
Fordern-Update-1147116.html (Duitstalig) frequency power and signal interface)
[3] www.nxp.com/acrobat_download2/other/identificati- [9] www.waazaa.org/download/fcd-14443-3.pdf
on/124533.pdf (datasheet PN512) (ISO/IEC 14443-3 Identification cards
[4] www.nxp.com/documents/application_note/AN1445_ Contactless integrated circuit(s) cards Proximity cards Part 3:
An1444.zip (AN1445 Antenna design guide for MFRC52x, Initialization and anticollision)
PN51x, PN53x; AN1444 RF Design Guide plus Excel Calculation) [10] www.elektor.nl/060221
[5] www.nxp.com/documents/data_sheet/MFRC523.pdf (Ossmann, Martin: Een experimentele RFID-lezer)
(datasheet MFRC523) [11] www.elektor.nl/060132-2
[6] www.waazaa.org/download/fcd-15693-3.pdf (Schalk, Gerhard: De Elektuur-RFID-kaart)
(Identification cards Contactless integrated circuit(s) cards - Vi- [12] www.elektor.nl/060132-1
cinity cards Part 3: Anti-collision and transmission protocol) (Schalk, Gerhard: Elektuur-RFID-lezerD)
[7] www.waazaa.org/download/fcd-15693-2.pdf [13] www.elektor.nl/110750
(ISO/IEC FCD 15693-2 Identification cards - Contactless inte- (Website met downloads en links bij dit artikel)
grated circuit(s) cards -Vicinity cards -Part 2: Radio frequency
Met deze schakelingen zijn tal van experimenten met RFID moge-
lijk. De software is gratis te downloaden [13] en kunt u naar eigen
inzicht gebruiken en aanpassen.
(110750)
Figuur 10. En hier zien we het prototype.
Figuur 11. Signaalspectrum bij dataoverdracht. Figuur 12. Ontvangen 432-kHz-signaal en gedemoduleerd signaal.
elektor 03-2012 31
componenten
USB-bescherming
Het thema van deze maand is USB-bescherming. Bij USB moet op elektrisch vlak goed op bepaalde dingen gelet worden. De voedingsstroom op
de +5-V-lijn moet begrensd zijn. Hiervoor grijpt men vaak naar een fuse. Afgezien van het feit of ze resettable zijn of niet, zijn zulke fuses niet erg
nauwkeurig. Het verschil tussen de stroom die mag lopen waarbij de fuse nog niet aanspreekt en de minimale stroom waarbij de fuse gegaran-
deerd wel aanspreekt, is vaak 100%(!). Verder horen de datalijnen beschermd te zijn tegen ESD. Vaak wordt dit wel gedaan, maar dan neemt het
veel printoppervlak in en de lijn wordt capacitief belast. Dat kan de signaalvorm nadelig beinvloeden. Om deze problemen op te lossen stellen we
hier twee passende IC’s voor.
(120095)
TPD2EUSB30ADRTR NCP380LSN05AAT1G
Om de datalijnen te clampen is dit IC heel geschikt. Op het eerste Om de stroom te begrenzen kwam ik dit IC tegen. Wat opviel
gezicht is het niet zo bijzonder, zelfs de prijs was de prijs, in sommige gevallen wel 50% lager dan vergelijkbare
is gemiddeld. Toch zijn er enkele zaken die producten(!). In de tekening staat de schakeling voor USB-host-
opvallen: Dit is een zeer klein IC van maar devices. Ik vond het interessanter om ‘m in te zetten aan de slave-
1 x 1 mm(!). Dus past ‘ie goed tussen twee kant, als het desbetreffende project potentieel te veel stroom
datalijnen in op een kleine print. De kan trekken (volgens de wet van Murphy). Als een schakeling
fabrikant beweert dat je ‘m niet alleen via USB maar ook extern kan worden gevoed, dan
ook kan toepassen op schakelt dit IC af als de uitgangsspanning 100 mV hoger wordt
differentiële lijnen die dan de ingangsspanning. Voor USB is het handig om de variant
TPD2EUSB30ADRTR op hogere frequenties met de ingebouwde 500-mA-limiet te gebruiken. Een mooie
werken, zoals USB3.0, bijkomstigheid is dat dit IC ook ESD-bescherming biedt. Nog wat
D-
SATA, PCIe, etc. Dat zal andere features zijn soft-start en -shutdown. Dat kan heel nuttig
1 mm
D– D+ GND
waarschijnlijk ook wel zijn, vooral bij afschakelen.
D+
lukken met andere chips, De overgangsweerstand in geleiding bedraagt maar 70 mΩ,
GND 1 mm maar dan met een minder bij fuses kan dit wel tien keer hoger liggen. Bij oververhitting
mooie signaalvorm. Wat wordt automatisch afgeschakeld, evenals bij een te lage
ook opvalt, is dat dit ingangsspanning. Al dit soort fouten wordt gemeld via de ‘flag’-
ontwerp geen Vbus nodig heeft. Dat is handig, want bij sommige pen. Dit soort IC’s kan heel handig zijn.
toepassingen is er geen Vbus beschikbaar.
USB Data
USB Port
Het IC heeft een vrij lage breakdown-voltage van 4,5 V, USB INPUT
5V IN OUT VBUS
3,3-V-devices worden zo dus strak beschermd. Een gevolg is wel Rfault D+
100k
NCP380 D-
dat dit IC niet op lijnen te gebruiken is die hogere spanningen FLAG
1u
FLAG GND
EN EN *
ILIM
dan 3,3 V voeren, maar die zie je toch niet meer zo veel (en al GND Rlim
min 8 kV en het IC beïnvloedt het signaal minimaal, dat kan een GND 2 GND 2 5 ILIM *
TSOP-5 TSOP-6
32 03-2012 elektor
Great Value in Test & Measurement
w w w. h a m e g . c o m
De nieuwe basis-oscilloscopen
HMO series 70, 100, 150, 200 MHz
▷ 70, 100, 150, 200 MHz - max. 2 GSa/s en 2 MSa geheugen - MSO optie
Uw HAMEG distributeur:
Rohde & Schwarz Nederland B.V.
Tel: 030-6001720
E-mail: info.nl@rohde-schwarz.com
SDR met AVR
34 03-2012 elektor
SDR met AVR
met AVR
de signaalgenerator in dit artikel slechts een eerste stap is. In de vol-
Deel 1
gende aflevering gaan we ook signalen uit de ether vissen. De eerste
print die we gaan maken bevat een ATtiny2313, een 20-MHz-klok
en een R2R-DAC. De tweede print bevat alle hardware voor een digi-
tale ontvanger: een RS232-poort, een LCD en een 20-MHz-VCXO die
we later aan een referentiesignaal kunnen koppelen. Dit zullen we
Ttiny
straks nodig hebben voor Software Defined Radio (SDR). De derde
print is voor een actieve ferrietantenne. De software voor al deze
projecten is gemaakt in AVR-Studio met de WINAVR-GCC-compiler.
De broncode is geschreven in C. Alle code met fuse-instellingen en
hexcode is te downloaden van de Elektor-site.
Eerst nog een belangrijke tip: spaarlampen werken met een schake-
lende voeding die de ontvangst van langegolfzenders ernstig kan
storen. Bij onze experimenten is het dus zaak dat u alle spaarlam-
pen uit laat en alleen gewone gloeilampen of kaarslicht aan hebt.
Signaalgenerator-board
Onze signaalgenerator bestaat in wezen uit een op 20 MHz geklokte
AVR-microcontroller en een R2R-D/A-converter voor het omzetten
van spanningswaardes. Op zichzelf natuurlijk niks bijzonders, maar
we zullen laten zien dat deze simpele schakeling op velerlei manie-
ren inzetbaar is. We zullen hem gebruiken voor een aantal tests en
het is een onmisbaar hulpmiddel bij het maken van de andere delen
van dit project. Om te beginnen hebben we een fase- en een fre-
quentiegemoduleerd signaal nodig. In een later stadium zullen we
onze signaalgenerator nog nauwkeuriger maken met behulp van
een kloksignaal dat we uit de ether halen. De Duitse DCF77-zender
noemden we al, maar het Franse TDF-tijdsignaal op 162 kHz is ook
geschikt.
elektor 03-2012 35
SDR met AVR
K7
VCC
2 1
4 3
6 5
VCC
ISP6
4 3
JP2
6 5 connector die bedoeld is voor de USB/
CLK-SEL 8 7
20.000MHz serieel-omzetter BOB-FT232 [1]. Op deze
10 9
R18 manier kunt u de schakeling heel een-
20k
K2 ISP R17 voudig met een pc verbinden. Met JP1
EXT-CLK
10k
VCC C1 R16 poort komt of uit een externe netadap-
20k
R15 ter. Gebruikt u de schakeling uitsluitend
100n
20 in combinatie met een pc, dan hebt u
RESET
MISO
MOSI
SCK
EXT
10k
VCC
5 R14 geen externe adapter nodig.
+5VUSB PA0(XTAL1)
4 IC1 20k Het is een heel makkelijk printje om op
PA1(XTAL2) R13
1
PA2(RESET)
ATTINY2313
te bouwen (figuur 2): standaard com-
10k
+5V 19
PB7(SCL/PCINT7) ponenten, geen enkele SMD! Behalve de
BOB-FT232R
TX 2 18 R12
PD0(RXD) PB6(DO/PCINT6)
RX 3 17 20k klokgenerator moet ook de processor in
PD1(TXD) PB5(DI/PCINT5) R11
GND 6
PD2(CKOUT/INT0) PB4(OC1B/PCINT4)
16 een IC-voetje. Let bij de ISP-connectors
10k
7 15
PD3(INT1) PB3(OC1A/PCINT3) K6 en K7 op een juiste oriëntatie. Voor
8 14 R10
9
PD4(T0) PB2(OC0A/PCINT2)
13 20k het programmeren van de controller
PD5(OC0B) PB1(AIN1/PCINT1) R9
11
PD6(ICP) PB0(AIN0/PCINT0)
12 kunt u bijvoorbeeld de USB-AVRprog [2]
gebruiken. Heel belangrijk bij het pro-
10k
D1
PWD-SEL
R6 DDS-sinusgenerator
20k
BAT85 D2
R2 R19 R5 Onze eerste toepassing is een eenvou-
dige sinusgenerator, geprogrammeerd
1k
1k
10k
20k
1k
10n
waarde bepaald voor het sinussignaal
RESET PWM-LF SQUARE SINE
die hoort bij het momentele sample-
100180 - 11 moment (figuur 3). Stel dat S(k) het
sample is met nummer k en p[k] is de
bijbehorende fase, dan geldt:
36 03-2012 elektor
SDR met AVR
Onderdelenlijst
Weerstanden: K1,K2,K3 = 2-polige female printheader K6 = flatcable-connector voor ISP, 2x5
R1,R2,R19 = 1 k BOB = 4-polige female printheader K7 = flatcable-connector voor ISP, 2x3
R5,R7,R9,R11,R13,R15,R17 = 10 k X1 = Kristaloscillator 20 MHz (met 4
R3,R4,R6,R8,R10,R12,R14,R16,R18 = connectorpennen, bijvoorbeeld Harwin
20 k H3153F01)
BOB-FT232R-001 = USB/TTL-converter
Condensatoren: breakout-board (opgebouwd en getest:
C1,C2 = 100 n (100 V) 110553-91)
C3 = 10 n print 100180-1 of
bouwpakket met print en alle
Halfgeleiders: onderdelen 100180-71
D1 = Schottky-diode BAT85
D2 = LED groen
IC1 = ATtiny2313-20PU
Diversen:
S1 = microswitch
K4,K5 = 2-polige printheader (2,54 mm)
JP3 = 2-polige printheader (2,54 mm)
met jumpers
JP1,JP2 = 3-polige printheader Figuur 2. De print met alle componenten is
(2,54 mm) met jumpers verkrijgbaar als kit in de Elektor-shop.
waardes. Vervolgens bepalen we bij elk van die faserangtelnum- V01.c [3] hebben we een vaste frequentie van 1 kHz ingesteld. Een
mers de bijbehorende sinuswaarde met behulp van een opzoekta- oscilloscoopplaatje met het resultaat ziet u in figuur 5. De code van
bel. Deze tabel bevat in feite de amplitudewaardes in volgorde van de interrupt-routine is in listing 1 te zien.
fasewaarde oftewel rangtelnummer. Echter, met 2m fasewaardes
wordt zo’n tabel onhandig groot en hij past al evenmin in het geheu- Timing
gen van onze ATtiny. Onze DDS werkt met een klok op een frequentie fDDSCLK = 100 kHz.
Bij een frequentie f hoort dan een fase-increment van:
Daarom gebruiken we alleen de meest significante n bits voor de
adressering van de tabel. Onze sinustabel hoeft dan maar 2n waar- DDSd = 2n * f / fDDSCLK
des te bevatten. Die waardes hoeven bovendien niet breder te zijn
dan de breedte van onze D/A-converter (zeg even r bits), want het Met f = 1 kHz wordt dat:
zijn deze waardes die we naar onze R2R-D/A-converter sturen. Het
principe van dit geheel ziet u schematisch weergegeven in figuur 4. DDSd = 232 * 1 kHz / 100 kHz = 42949673
In ons eerste programma is m=32 en n=8. Met een 33-bits fase-
accumulator kunnen we dan signalen met een zeer nauwkeurige Deze waarde vindt u terug in de C-code als initialisatie voor DDSd.
frequentie maken. De bijbehorende fase heeft immers dezelfde
nauwkeurigheid, zoals we hierboven hebben uitgelegd. Uit deze formules komt duidelijk naar voren dat we voor hogere
frequenties een hogere klokfrequentie nodig zullen hebben. Dus
In dit geval gebruiken we een sinustabel met 256=28 waardes en een waarom hebben we daar 100 kHz voor gekozen? De reden is dat we
8-bits DAC (r=8). In het programma EXP-SinusGeneratorDDS-T1INT- te maken hebben met enige beperkingen.
r-Bits/sample
sin(x)
X
n-Bits/sample
m-Bits
elektor 03-2012 37
SDR met AVR
Figuur 5. De sinusgenerator op de testbank. Figuur 6. Het meten van de timing van een interrupt.
Om te beginnen hebben we de timing van de interrupt-routine Zo konden we meten dat een interrupt in ongeveer 5,4 µs com-
gemeten met behulp van poortpen D.4. In de listing hierboven pleet is afgehandeld. De maximale interrupt-frequentie bedraagt
wordt eerst poortpen D.4 geset. Dan doen we het eigenlijke werk: dus minder dan 180 kHz. Om daar nu voldoende ver vandaan te
we halen onze sinuswaarde op, sturen die naar buiten toe en vervol- blijven hebben we gekozen voor 100 kHz.
gens hogen we de DDSd-teller op. Als dat klaar is, resetten we D.4.
Met een oscilloscoop op D.4 kunnen we zo snel zien dat de bereke- Hoe hoger de te produceren frequentie in verhouding tot fDDSCLK,
ning zo’n 2,2 µs in beslag neemt. Maar pas op: de afhandeling van hoe erger ook de onvolkomenheden van het DDS-principe in het
één complete interrupt duurt wel iets langer. Het uitlezen van de resultaat naar voren komen. In het spectrum van het signaal zie je
registers en het wegschrijven van nieuwe waardes in de registers dan steeds meer jitter, ruis en harmonischen. Met onze 100-kHz-
kost response-tijd die we nu nog niet weten. klok halen we niet meer dan 10 kHz. Dat is niet om over naar huis te
We kunnen onze ATtiny echter zo programmeren dat we die extra schrijven, dus hoe zouden we dat kunnen verbeteren?
tijd prima kunnen meten. We maken een hoofdprogrammaatje met
een eindeloze lus waarin we op maximale snelheid een poortpen Snellere DDS-sinusgenerator
omzetten (dus een toggle-functie, in dit geval op PD.5). Bekijken we Om onze sinusgenerator hogere frequenties te kunnen laten halen,
die poortpen op de oscilloscoop, dan zien we de toggle als een aan- hebben we de DDS-routine herschreven in assembler. Door een uit-
uit-aan-uit-signaal, onderbroken op het moment dat onze interrupt- gekiende rangschikking van variabelen in registers hebben we een
routine draait. Dat ziet er uit zoals in figuur 6. klokfrequentie van 2 MHz voor de 32-bits-DDS weten te halen. De
Listing 1
ISR(TIMER1_OVF_vect) {
PORTD |= _BV(4) ; // start signalize timing
PORTB=pgm_read_byte( SIN8+(DDSp>>24)) ; // fetch and output sine-sample
DDSp += DDSd ; // advance DDS phase DDSp by DDSd
PORTD &= ~ _BV(4) ; // end signalize timing
}
Listing 2
loop:
add DDSphase0,DDSdelta0 // 1 LSB of 32 bit DDS adder
adc DDSphase1,DDSdelta1 // 1
adc DDSphase2,DDSdelta2 // 1
adc ZL ,DDSdelta3 // 1 MSB is in ZL as pointer
lpm R0,Z // 3 access sine-table
out PORTB,R0 // 1 out to R-2R DAC at PORTB
brtc loop // 2 (1) loop until T-flag set by interrupt routine
// 10 cycles in total for one loop
38 03-2012 elektor
SDR met AVR
niet van plan bent om zelf aan de code te gaan sleutelen, raden we u
aan om gewoon de kant-en-klare hexcode te branden (denk aan de
fusebits). Dit deelproject heet EXP-SinusGenerator-DDS-ASM-C-V01.
Om onze sinusgenerator op een flexibele manier te kunnen gebrui-
ken, hebben we hem voorzien van bediening via de UART (19200
baud, 8N1). In het terminalprogramma geeft u de gewenste fre-
quentie als een getal afgesloten met CR/LF; dat geheel stuurt u naar
de ATtiny. De maximale frequentie waarbij het signaal nog bruikbaar
is, ligt om en nabij de 200 kHz. In theorie ligt de resolutie van de
frequentie-instelling bij:
Figuur 7. Spectrum van het gegenereerde signaal.
fDDSCLK / 2n = 2 MHz / 232 = 0,00046… Hz
Advertentie
Fanless mini PC
I n d u s t r i a l
n Lexcom ‘EmBox’ fanless mini PC
n Compact en mooi vormgegeven
n Intel® Atom™ D525 dual core CPU
n 2x Gigabit LAN, 1x RS232, 2x USB 2.0
n VGA en audio aansluitingen
n Inclusief 8+8 bits digitale I/O
n Alle aansluitingen aan achterzijde
c o m p u t e r s
Listing 3
uint32_t DDS24 ; // DDDS phase, 24 bits used
volatile uint32_t dDDS24 ; // delta for DDS
uint16_t TOP1 ; // integer part of divider for PWM
ISR(TIMER1_OVF_vect) {
PORTD |= _BV(4) ;
DDS24 += dDDS24 ; // advance DDS phase
if (DDS24 & 0x1000000UL ) { // check bit 24 for overflow
ICR1 =TOP1 ; // on overflow PWM width = TOP1+1
}
else {
ICR1 =TOP1-1 ; // else PWM width = TOP1
} ;
DDS24 &=0xffffffUL ; // make DDS24 24 bits again
PORTD &= ~ _BV(4) ;
}
hoge nauwkeurigheid. De auteur heeft daartoe de nodige routines van een timer, dan is de deler voor de timer-klok (de prescaler) nor-
zelf geprogrammeerd, onder andere voor deling met cijfers achter maal gesproken altijd een geheel getal. Met een processorklok fCLK
de komma. en deler N is de timer-klok f = fCLK/N. Als we nu de deler doorlopend
zouden variëren tussen N en N + 1, dan kunnen we ook een tussen-
In figuur 7 ziet u het spectrum tussen 0 en 2 MHz van een sinus liggende frequentie genereren. Wisselen we bijvoorbeeld N af met
van 125,123 kHz. U ziet enige harmonischen, maar die liggen zeker N+1, dan delen we gemiddeld door N+0,5. Stel dat we willen delen
30 dB onder het gewenste signaal. U ziet ook een vrij breed ruista- door 10,33333…, dan kiezen we N=11 met een ‘waarschijnlijkheid’
pijt. Ook dat is een kenmerk van het DDS-principe. van p=0,33333 en anders N=10.
Met een normaal kristal moeten we rekening houden met een
onnauwkeurigheid van ± 100 ppm. Daarmee heeft het weinig zin om Hoe doen we dat in de praktijk? Wat we nodig hebben, is een rou-
bijvoorbeeld 100,00005 kHz van onze generator te verlangen. Er is tine die ons vertelt, afhankelijk van de gewenste deler, wanneer we
echter een ingang voor een externe klok van 20 MHz. In een volgende door N moeten delen en wanneer door N+1. Hier komt de m-bits
aflevering zullen we laten zien hoe je een zeer nauwkeurige 20-MHz- DDS-generator van pas. Bij een grote m kunnen we zeer nauwkeu-
klok kunt maken met behulp van een referentiezender. Sinussen met rige berekeningen doen. We gebruiken in dit geval de overflow van
zeer precieze frequenties worden daarmee toch mogelijk! de fase-accumulator. Een m-bits DDS-fase-accumulator produceert
overflows met een tempo van:
Afregeling van afstemkringen
Op de lange golf zitten zenders die data uitzenden, zoals DCF op p = DDSd / 2m
77,5 kHz, France Inter op 162 kHz en BBC op 198 kHz. Later in deze
serie gaan we deze zenders ontvangen en analyseren met behulp Deze frequentie is door middel van de variabele DDSd heel precies
van een AVR-microcontroller. Voor de ontvangst zullen we een fer- in te stellen. Aan de hand van het overflow-bit kunnen we de timer
riet-antenne nodig hebben; die zullen we moeten afregelen en dan niet door N, maar door N+1 laten delen. Stel dat we een frequentie
komt een sinusgenerator goed van pas. Het recept is als volgt: men van 77,5 kHz willen afleiden uit een klok van 20 MHz, dan moeten
neme de schakeling van figuur 8 en men stelle de afstemcondensa- we delen door:
tor op maximum. Vervolgens kijkt u naar de fase tussen de uitgangs-
spanning UOUT en de ingangsspanning UIN om te zien of de resonan- 20000 / 77.5 = 258,0645161...
tiefrequentie van de afstemkring hoger of lager is dan die van de
toegevoerde sinus. Als de fase van UOUT voorijlt ten opzichte van UIN, Anders gezegd, we moeten van N=258 omschakelen naar N=259
dan is de frequentie van de sinus lager dan die van de afstemkring. met p = 0,0645161…. Met een 24-bits-DDS levert dat voor
Als UOUT na-ijlt ten opzicht van UIN, dan is de signaalfrequentie hoger DDSd = p × 224 =1082401. Dit principe vertaald in een timer-inter-
dan de afstemkring. Bij maximale resonantie zijn UIN en UOUT in fase. rupt-serviceroutine ziet er uit zoals in listing 3.
De waardes van de componenten in het schema zijn gekozen voor De resulterende blokgolf jittert: hij danst heen en weer tussen nét
een afstemkring van 125 kHz. Voor spoel L1 hebben we een pot- boven en nét onder de gewenste frequentie, maar gemiddeld komt
kernspoeltje gebruikt. Met deze schakeling gaan we straks ook test- hij daarmee overeen.
signalen op 125 kHz opwekken. De trimcondensator dient om de
kring af te regelen op 125 kHz. Als ingangssignaal kunt u het sig- De routine duurt met inbegrip van response-tijden ook nu weer zo’n
naal uit onze R2R-DAC (K3) gebruiken, of de blokgolf uit de PWM- 6 µs. We kunnen hiermee dus frequenties tot ca. 160 kHz halen. Met
uitgang (K4). een assembler-routine zouden we dat waarschijnlijk nog wel iets
kunnen opvoeren. Ook deze blokgolfgenerator willen we straks bij
PWM-blokgolf met fractionele deler de hand hebben, dus hij is weer te bedienen via het terminal-pro-
Ons volgende experiment is een andere toepassing van het DDS- gramma. De broncode heet EXP-SquareGenerator-DDS-T1INT-V01.c
principe. Als we een blokgolf willen maken met de PWM-uitgang en is te vinden in de download bij dit artikel [3].
40 03-2012 elektor
SDR met AVR
Uin R1 Uout
100k
L1
C2
C1
R2
10k 1n5 500p
1mH
Er zijn nog veel meer toepassingen voor het principe van een frac-
tionele deler. Zo kunnen we bijvoorbeeld een willekeurige sample-
frequentie afleiden uit de processorklok (en eventueel met een PLL
bijregelen c.q. ‘oppoetsen’).
Figuur 8. Afregeling van de ontvangstkring.
FM-generator
Een blokgolfgenerator is op zichzelf natuurlijk niet zo spannend.
Maar omdat we van PWM gebruik maken, heeft de processor nog
heel wat tijd over voor andere dingen. Als we nu de frequentie dyna-
misch laten variëren, hebben we een FM-generator!
De Duitse tegenhanger van het KNMI [4] stuurt het weerbericht de
ether in met een FSK-signaal (Frequency Shift Keying) op 147,3 kHz,
bedoeld voor (jawel) telexen. Vooral radio-amateurs maken gebruik
van dit RTTY-signaal. Later in deze serie gaan we een ontvanger bou-
wen voor deze informatiedienst en om die af te kunnen regelen heb-
ben we een testsignaal nodig. Met een fractionele deler en PWM is
het niet moeilijk: we schakelen de frequentie om aan de hand van
een databitstroom.
Onze testzender programmeren we eerst voor een draaggolf van
f = 125 kHz. Uit deze blokgolf maken we vervolgens een sinus met
de schakeling van figuur 8. De interrupt-routine voor de fractionele
blokgolfgenerator hebben we al laten zien. De routine SendBit (lis-
ting 4) dient om één enkel bit te sturen.
Eerst wachten we tot timer0 COUNT2 overflows genereert, m.a.w.
de bitrate is de frequentie waarmee timer0-overflow optreedt,
gedeeld door COUNT2. Daarna worden, afhankelijk van het te
zenden bit, de waarden deltaDDS24 en TOP1 bepaald (frequen-
tiemodulatie). Wanneer de processor daarmee bezig is, mag hij Figuur 9. Spectrum van frequentiemodulatie: 125 kHz +/- 50 Hz.
niet gestoord worden. Daarom blokkeren we alle interrupts voor-
afgaand aan deze operatie, met cli(). Zijn we klaar, dan zetten we
de interrupts weer aan met sei(). Als we dat niet zouden doen, kun-
nen er fouten optreden, want de interrupt-routine kan parameters
wijzigen.
Deze routine vindt u in EXP-SQTX-FM-RTTY-V01.c. Met een paar extra Listing 4
hulproutines kunt u karakters in telexcode uitsturen (Baudot [5]), void SendBit(uint8_t theBit) {
en zo een weerzender emuleren. uint8_t k ;
In figuur 9 ziet u het spectrum van dit FM-RTTY-signaal. U ziet twee for (k=0 ; k<COUNT2 ; k++){
pieken dicht bij elkaar, 125 kHz respectievelijk + en -50 Hz. Het is while( ( TIFR & (1 << TOV0) )== 0 ) { }
een continu spectrum dat rond ± 1 kHz snel afvalt. TIFR |= (1 << TOV0) ;
}
Met deze generator willen we natuurlijk testen of de modulatie ook if ( theBit==MARK ) {
in orde is. Daar hebben we een digitale ontvanger bij nodig. Daar- cli() ;
over gaat de volgende aflevering. deltaDDS24=MARK_deltaDDS24 ;
(100180) TOP1=MARK_TOP1 ;
sei() ;
}
Weblinks else{
cli() ;
[1] www.elektor.nl/110553
deltaDDS24=SPACE_deltaDDS24 ;
[2] www.elektor.nl/080083 TOP1=SPACE_TOP1 ;
[3] www.elektor.nl/100180 sei() ;
}
[4] http://wapedia.mobi/de/DDH47
}
[5] http://nl.wikipedia.org/wiki/Baudot_code
elektor 03-2012 41
Subscribe to audioXpress magazine!
electronics speak to you? Are the words “audio”,
Do your
“vacuum tubes”, and “speaker technology” music to your ears?
Subscribe to audioXpress at
www.cc-webshop.com
today!
Vleermuisdetector 2.0
Thijs Beckers (redactie NL)
Matthias Schwarzwald stuurde ons een interessante opmerking
over de vleermuisdetector uit Elektor november 2011 [1]. Hoe-
wel de SMD-vrije schakeling hem wel beviel en veel vleermuis-
fans vast geen ervaren elektronici zijn, zou hij toch sommige
onderdelen willen vervangen door exemplaren met betere
eigenschappen.
“Zo kan bijvoorbeeld de 40 kHz ultrasoon-sensor maar de helft
van de in ons land voorkomende vleermuissoorten detecteren.
Veel soorten ‘zenden’ op andere frequenties – sommige zelfs
op ‘maar’ 20 kHz. Voor de ‘jacht’ op deze soort zou een passend
electret-microfoonkapsel een betere keus zijn.
En als er al een ultrasoon-sensor moet worden gebruikt, dan
zou een afgeschermde versie de voorkeur verdienen. Deze
modellen zijn niet echt goedkoop, omdat fabricage en test
van een goede afscherming de fabrikant veel moeite kosten.
Het zou ook mooi zijn om een versie met meer-
dere microfoons te hebben. Dat zou extra
gevoeligheid en richtingsgevoeligheid
kunnen opleveren. Afhankelijk van de
richtwerking blijft van de theoretisch
mogelijke reik wijdte van
ongeveer 30 m maar een
paar meter over. Vleer-
muizen zenden hun ultra-
sone geluidspakketten
namelijk heel gericht uit en
ze bewegen zich bovendien in een
continu veranderende
koers, zodat het opti-
maal uitrichten van
een richtmicrofoon
bijna onmogelijk is.”
De overwegingen van de
heer Schwarzwald zijn
juist. Onze collega Ton
Giesberts die dit project
beheert in het lab, heeft Al deze uitbreidingen
ook bij het prototype overwo- zouden de schakeling veel
gen of hij geen weerstand moest inbou- ingewikkelder hebben gemaakt.
wen voor het voeden van een electret- We waren dan wel gedwongen
kapsel. Ook de toepassing van meerdere geweest een microcontroller toe te
sensoren is overwogen. Maar bij gebruik passen — alles ten koste van de een-
van een sensor-array zou het moeilijk geweest voud van het project. Vandaar dat we deze
LABCENTER
zijn om de signalen op de juiste manier samen te voegen, ideeën hebben laten varen. Maar dat betekent niet dat
omdat er faseverschillen tussen de signalen ontstaan. Bij 40 kHz een complexe en krachtige vleermuisdetector niet interes-
is de golflengte van het geluid in lucht maar 8,25 mm, waar- sant zou zijn. Als iemand zich in dit thema heeft vastgebeten
door het praktisch onmogelijk is de sensoren te plaatsen op een en daaraan werkt, nodigen we hem van harte uit zich bij ons
afstand van minder dan een halve golflengte. We zouden kunnen te melden!
denken aan een array van richtingsgevoelige sensoren, zodat elke (120021)
sensor werkt voor een bepaald gedeelte van de omgeving. Mis-
schien is het een idee om een reeks van microfoons sequentieel Weblink
te bemonsteren en daaruit een nuttig signaal te berekenen – of [1] www.elektor.nl/110550
zijn we nu de radar opnieuw aan het uitvinden?
elektor 03-2012 43
Spook-LED
Raadselachtig
geknipper (2)
Thomas Scherer (D) en andere
Elektor-lezers
LED1 C1
12V
Dr. Ing. Ulrich Pilz: 10u
44 03-2012 elektor
de condensator uitgestort over het breekpunt en dat zorgt voor een afgevoerd. Daardoor vormt zich steeds meer gas in de lijm en krijg je
las. Reparatie gelukt.” steeds meer ‘bubbels’. Zo gaat het van kwaad tot erger.
Dit lukt natuurlijk alleen als de LED nog knippert, dus nog niet Bij toenemende temperatuur verschuiven de golflengtes naar het
volledig kassie wijlen is ;-). langgolvige gebied. Uiteindelijk is er nauwelijks nog contact en gaat
de verbinding helemaal stuk, mede doordat verschillende materia-
Gwyn Evans mailt vanaf zijn smartphone: len uitzetten op verschillende manieren. Het gegoten deel rondom
“Dit verschijnsel moet zijn veroorzaakt door het feit dat de 9 VDC de LED wordt veel heter dan de onderkant. Zodra er geen stroom
in feite geen echte gelijkspanning is, maar een gelijkgerichte wis- meer loopt, koelt alles weer af en wordt de chip weer in de lijmlaag
selspanning. Het waargenomen fenomeen is zonder enige twijfel teruggedrukt. Het elektrisch contact herstelt zich, het LED-kristal
terug te voeren tot een uiterst plaatselijk instorten van het ruimte- warmt weer op, en zo voort.
tijd-continuüm, op het ritme van 50 Hz.” De thermische tijdconstante van deze oscillatie ligt ergens tussen de
Ik had al zo’n donkerbruin vermoeden. De heer Evans licht toe: 0,1 en de 10 seconden, afhankelijk van de stroomsterkte en de dis-
“het moet om dezelfde reden ook mogelijk zijn om met impulsen sipatie. De knipperfunctie lijkt dus een beetje op die van een ouder-
van 1 kHz de levensduur van een LED significant te verlengen.” wets mechanisch bimetaal-relais.
Zal ik eens vragen aan het energiebedrijf of ze de generator- Het fenomeen komt overigens niet heel vaak voor, want het treedt
frequentie van die windturbines niet meteen op het net kun- alleen op als de sperlaag van de LED nog functioneert en boven-
nen zetten? dien de bonddraden niet zijn losgeraakt of beschadigd, terwijl de
lijmverbinding al wél problemen vertoont. Meestal begeeft alleen
Hubert Maiwald: de lijmverbinding het en is het contact in één keer gewoon kapot.”
“De meeste LEDs hebben een bondcontact aan de bovenkant en Klinkt logisch, toch?
worden dan met zilverhoudende (geleidende) lijm op het leadframe
geplakt. Die zorgt dan tegelijk voor de elektrische verbindingen. Door Wel, geachte Elektor-lezer, wat is volgens u de meest plausibele
verkeerde behandeling, zoals te heet solderen, oververhitten, slechte verklaring? Dat het iets thermisch is, kunnen we wel met enige
koeling, enz., kan deze lijm oplossen. Vervolgens krijg je tussen de zekerheid aannemen. Maar verder? In de elektronica vindt je
chip en de lijm een luchtinsluiting in de kleefstof. De zaak kan vererge- steeds weer allerlei raadsels. En meestal ook daar waar je ze
ren doordat de thermische geleiding tussen de chip en het leadframe het minst verwacht.
steeds slechter wordt, waardoor de warmte ook steeds slechter wordt (110668)
Pennen op lengte
Thijs Beckers (Redactie NL) pacter kan worden ingebouwd. Wanneer er voor de montage
In een vorig Labcenter hebben we het gehad over het plaatsen van het display sockets op de print zitten, blijft het verkorten
van een gaatjesprint tussen een LCD en de (moeder)print met van de pennen van het display de enige optie om het display
als doel het zonder beschadigingen vaker kunnen verwijderen lager te plaatsen. Dan is het het meest praktisch om de pennen
van het display. We doelen dan op fragiele displays zoals de allemaal dezelfde lengte te geven. En hierbij komt onze gaatjes-
DOGM-serie van Electronic Assemblies. Nu is er nog een tweede print weer om de hoek kijken: plaats het display met de pennen
handigheid aan zo’n gaatjesprint. zo ver mogelijk door de print en knip het gedeelte dat uitsteekt
De bovengenoemde DOGM-displays ‘staan vrij hoog op de af. De lengte van het stuk pen dat overblijft is perfect om in een
poten’ (hebben nogal lange aansluitpennen). Die lengte is nodig header te plaatsen. En alle pennen zijn netjes even lang, zodat
als ze van backlight worden voorzien dat — de naam zegt het het display ook niet staat te wiebelen in de voet.
al — achter het display komt te zitten. Maar als deze verlichting Hebt u ook handige tips voor ons?
komt te vervallen, is het vaak beter dat het display wat dichter Mail ze dan naar redactie@elektor.nl
op de print komt te staan, zodat het geheel bijvoorbeeld com- (110664)
elektor 03-2012 45
Debugger gedebugged
Luc Lemmens (Elektor Lab)
Bij de ontwikkeling van de USB-stick logger uit het septem- Weerstand R61 (1 k) moet vervangen worden door een exem-
bernummer van 2011 wilde het niet lukken om de com- plaar van 100Ω. Dit klinkt eenvoudiger dan het is. We hebben
municatie met de microcontroller via de In Circuit Debug- namelijk te maken met SMD’s van formaat 0402 en die zijn best
ger 3 (ICD 3) van Microchip aan de gang te krijgen. Het lukte wel klein. Toch is voor dit ene componentje niet per se speciaal
wel om het flash-geheugen van de chip op de schakeling, gereedschap nodig, met een beetje moed en beleid lukt dat ook
de PIC24FJ64, te programmeren met de voorganger van de met een ‘gewone’ soldeerbout.
debugger, de ICD 2, maar als de logger op de nieuwere versie
werd aangesloten, meldde de ontwikkelomgeving van Micro- Op zich is het desolderen nog het moeilijkste klusje: zet de punt
chip dat de target-processor niet overeenkomt met het type van de bout op de bovenzijde van de weerstand, bij voorkeur
dat is ingesteld. Nu doet een ID van ‘0000’ (de waarde die zó dat beide metalen uiteinden van het onderdeeltje tegelijk
MPLAB terugmeldde) al vermoeden dat er überhaupt geen verwarmd worden. Een beetje vers tin op de bout verbetert het
communicatie op gang komt. thermisch contact met de weerstand. Uiteindelijk zal deze los
komen van de print en aan de punt van de soldeerbout blijven
Een korte speurtocht op de site van Microchip leerde dat de hangen.
ICD 3 problemen kan geven als de pull up aan de MCLR van het Voor het plaatsen en vasthouden tijdens het solderen van de
aangesloten systeem te sterk is. Ons prototype had daar inder- nieuwe weerstand is een klein pincet erg handig. Als het onder-
daad een weerstand van slechts 1 kΩ zitten, terwijl Microchip deel eenmaal op zijn plek ligt, zal het weinig moeite kosten om
in waarschuwde dat het al mis kan gaan bij een pull-up van 4k7. beide aansluitingen te solderen. Als deze operatie geslaagd is,
De meest eenvoudige oplossing was deze weerstand te verho- kan meteen exact dezelfde truc uitgehaald worden met R62, de
gen tot 5k6. VDD-aansluiting van de ICD 3 heeft namelijk hetzelfde (moge-
LABCENTER
lijke) probleem.
In de betreffende Engineering Technical Note (ETN#29, [1]) (120023)
staat ook beschreven dat in de hardware van de ICD 3 een weer-
stand aangepast kan worden om dit probleem in de toekomst
te voorkomen. Dat laten we even kort zien, zie de foto. Weblinks:
Het openen van de ICD is eenvoudig. Dan kan de print uit de [1] http://ww1.microchip.com/downloads/en/DeviceDoc/
behuizing worden gehaald om de weerstand te kunnen ver- ETN29_MPLAB_ICD%20_%20VPP_CURRENT_SINK.pdf
vangen. Deze is namelijk op de onderzijde van de print gemon-
teerd. De print zit met plakvoetjes vast aan de bodem; deze
kwamen bij onze ICD 3 makkelijk los zonder iets te beschadigen.
46 03-2012 elektor
Neem nu een abonnement op het
toonaangevende Amerikaanse
vakblad over microcontrollers en
embedded toepassingen!
Kies uw eigen
abonnement op
www.elektor.com/cc-subs
AndroPod
Seriële interface voor Android-
smartphones en -tablets (deel 2)
Jens Nickel (redactie D)
In het eerste deel hebben we laten zien hoe u heel eenvoudig uw eigen elektronische schakeling op de
AndroPod-interface en daarmee op een Android-smartphone kunt aansluiten. Daarom willen we het u ook
aan de software-kant zo gemakkelijk mogelijk maken. Een gebruikersinterface voor uw eigen project kan
eenvoudig met HTML worden gebouwd als u gebruik maakt van onze gratis Android-app. Zoals altijd bij
Elektor kan deze software kant-en-klaar worden gedownload en zo nodig ook worden aangepast, omdat
alles open-source is.
In principe hebt u voor het besturen van uw eigen elektronica een ties (het zenden en ontvangen van bytes via de seriële interface) wor-
Android-app nodig die een op maat gemaakte gebruikersinterface den geïmplementeerd. De AndroPod-ontwikkelaars stellen hiervoor
bevat. Het ligt het meest voor de hand om deze gebruikersinter- de Java-klasse AndropodConnection als download [5] ter beschik-
face met het krachtige Android-framework en de programmeer- king, die u in uw eigen Android-project kunt integreren. Vervolgens
taal Java te implementeren. Voor beginners gaat het programmeren moet de gebruikersinterface worden ingericht, die wordt opgebouwd
onder Android weliswaar gepaard met een steile leercurve, maar met besturingselementen (controls) zoals tekstvensters, buttons etc.
deze instap kan veel opleveren omdat in Elektor steeds meer van De structuur van een complete AndroPod-app wordt in het kader
dergelijke projecten zullen worden beschreven. Bernhard Wörndl- beschreven. De broncode hiervan kan worden gedownload, zodat u
Aichriedler [1], HBO-student in Hagenberg en een van de ontwik- deze als uitgangspunt voor uw eigen ontwerp kunt gebruiken.
kelaars van de Andropod-interface, heeft een kleine tutorial in het
Duits en in het Engels samengesteld (te downloaden van [2]). Op de Eenzelfde bedieningspaneel op smartphone en pc
Android-ontwikkelsite [3] is ook een Engelse handleiding te vinden Er is nog een tweede manier om uw eigen gebruikersinterface te
waarin onder andere wordt uitgelegd hoe de ontwikkelomgeving maken, namelijk met HTML en Javascript. Het opbouwen van een
Eclipse [4] moet worden geïnstalleerd en aan het programmeren HTML-pagina met de benodigde besturingselementen en het pro-
onder Android moet worden aangepast. grammeren van bedieningsfuncties in de taal Javascript is ook voor
Bij de start van een nieuw Android-project moeten eerst de basisfunc- beginners eenvoudig te leren. Bovendien is het resultaat in prin-
48 03-2012 elektor
andropod
ANDROID-APP
HTML/JS:
USER INTERFACE
101
cipe onafhankelijk van het gebruikte besturingssysteem. De gebrui- 233
IN
kersinterface wordt eenmaal gebouwd en kan dan zowel op een
Android-smartphone als op een pc of een ander computerplatform OUT
USB
worden gebruikt. Hierbij moet natuurlijk wel worden gezorgd voor ANDROPOD
een passende seriële interface (voor de pc is bijvoorbeeld bij Elektor
een USB/RS485-converter verkrijgbaar [6]). Smartphone 120097-13
In theorie kunnen de gemaakte HTML-pagina’s direct op de smart-
phone worden weergegeven, en wel met de webbrowser waarover
elk Android-apparaat beschikt. We kunnen de standaard-internet- Figuur 1. Onze Android-app geeft HTML-pagina’s weer, die door
browser echter vanwege ingebouwde veiligheidsvoorzieningen niet de gebruiker voor een eigen project op maat kunnen worden
zover krijgen dat deze via onze AndroPod bytes kan verzenden en gemaakt.
ontvangen. Daar hebben we een eigen Android-app voor nodig, een
speciaal soort browser die de HTML-gebruikersinterface weergeeft
en de communicatie via de seriële interface verzorgt (figuur 1). Het
voordeel hiervan is dat we deze app kant-en-klaar kunnen aanbie- BIT MODE 00
den en dat deze niet door de AndroPod-gebruiker hoeft te worden BYTE 7 6 5 4 3 2 1 0
aangepast. De app `ElektorBusBrowserForAndropod´ wordt door 0 1 0 1 0 1 0 1 0
ons gratis in de Google Android Market aangeboden en dat maakt 1 0 0 0 0 0 0 0 0 = 00 hex
2
het downloaden en installeren op de smartphone bijzonder een- 3 ADDRESS RECEIVER
voudig. Daarnaast is de app ook op onze website beschikbaar, zowel 4 ID
als .apk-bestand (wat zo ongeveer overeenkomt met een .exe in de 5 ADDRESS SENDER
pc-wereld) als in broncode [5]. Als u de hardware-test uit het eerste 6 CHANNEL0
0H
7 0L
artikel hebt uitgevoerd, dan is de app al geïnstalleerd [7] en hoeft u 8 1H
deze alleen nog maar naar de nieuwste versie te updaten. CHANNEL1
9 1L
Nu moeten nog de zelfgemaakte HTML-pagina’s in de telefoon wor- A 2H
CHANNEL2
den geladen, maar dat is niet zo ingewikkeld. Eerst gaan we echter B 2L
C 3H
bekijken hoe zo’n HTML-pagina er uit moet zien. CHANNEL3
D 3L
E
CRC
Eenvoudige berichten F
Onze Android-app ontvangt en verzendt berichtenpakketten (mes- 120097 - 14
sages) met een lengte van 16 bytes, die zijn opgebouwd volgens
het ElektorMessageProtocol [6]. De datarate bedraagt 9600 Baud. Figuur 2. Structuur van een ElektorMessage die altijd een lengte
Hiermee zijn we al vanaf het begin compatibel met veel toekom- heeft van 16 bytes.
stige Elektor-projecten. Het protocol werd voor de ElektorBus [8]
ontwikkeld, maar u bent uiteraard niet gebonden aan de ElektorBus-
hardware of zelfs maar aan RS485. De app werkt ook als de bytes via het eenvoudigste geval communiceert u met één andere deel-
de mini-DIN-connector of de pinheaders worden ingelezen en ver- nemer, bijvoorbeeld uw eigen meetelektronica die met een
zonden. Daarbij is het wel noodzakelijk dat de RS485-driver wordt AVR-controller is uitgerust. Als u deze microcontroller adres `1´
uitgeschakeld door jumper JP4 volledig te verwijderen! geeft, dan hebben berichten van smartphone naar controller de
vorm `170,0,0,1,0,10,…´ en in omgekeerde richting wordt dit
Een ElektorMessage is in zijn eenvoudigste vorm als volgt opge- `170,0,0,10,0,1,…´.
bouwd (zie hiervoor ook figuur 2):
Bij de databytes geldt de beperking dat de waarde `170´ niet mag
Byte 0 170 = AAhex voorkomen, omdat deze als startsignaal wordt gebruikt. Als dit, of
Byte 1 0 bijvoorbeeld de vaste berichtlengte, voor u een probleem oplevert,
Byte 2 0 kunt u natuurlijk uw eigen protocol ontwerpen en de Android-app
Byte 3 Ontvanger-adres (1...127) daaraan aanpassen. Als u de basisstructuur van de app (zie kader)
Byte 4 0 niet verandert, dan is er beslist geen diepgaande Android-kennis
Byte 5 Zender-adres (1...127) voor nodig om bijvoorbeeld de berichtlengte te wijzigen.
Byte 6...13 Data
Byte 14...15 Optioneel, kan voor checksum/CRC worden gebruikt. Ontvangen…
Als de Android-app 16 bytes heeft ontvangen wordt het bericht
Een Android-telefoon heeft standaard het adres `10´ (dit kan eerst opgesplitst in de onderdelen `zender´, `ontvanger´ en
echter in het instellingenmenu van de app worden gewijzigd). In `8-bytes-inhoud´. Deze gegevens worden vervolgens doorge-
elektor 03-2012 49
andropod
USER APPLICATION
APPLICATION PROTOCOL
JSBUS REC SEND PART PART PART
Figuur 3. De Android-app voert een eerste (ruwe) decodering van <SCRIPT src=’JSBus.txt’ Language=’javascript’
het bericht uit. Javascript zorgt voor verdere decodering van de 8 ></SCRIPT>
bytes inhoud. <SCRIPT Language=’javascript’ >
function ProcessPart(part)
BIT {
7 6 5 4 3 2 1 0 // eigen code
1 SET/ ACK / }
0 (2/4) CURRENT ORIGINAL D9 D8 D7 xH
0 D6 D5 D4 D3 D2 D1 D0 xL </SCRIPT>
120097 - 15
Met uw eigen code kunt u nu de meetwaarden verwerken, bijvoor-
beeld door deze in een HTML-tekstvenster weer te geven. Ook hier-
Figuur 4. Met twee databytes kunnen waarden tussen -1023 voor kan de JSBus-bibliotheek worden ingezet. Om de eerste meet-
en 1023 worden voorgesteld, wat voor veel toepassingen waarde (Channel=0) in een tekstvenster met de naam `MyTextbox´
voldoende is. weer te geven kunt u de volgende regel gebruiken:
if (part.Channel == 0)
Interval {TextboxSetvalue(‘MyTextbox’, part.Numvalue);};
DIRECTMODE 2 2 10 2 2
50 03-2012 elektor
andropod
den gezet. De code maakt eerst een leeg array van parts (bericht-
eenheden). Vervolgens worden hier twee parts in geplaatst die de
waarden voor in- en uitschakelen van de LED’s in de twee kanalen
overbrengen. Tenslotte verzendt de functie SendParts(…) beide
parts binnen één message.
Botsingen vermijden
Bij het gebruik van de RS485-uitbreiding moeten er maatregelen
worden genomen om botsingen van berichten te voorkomen. De
communicatie vindt namelijk over slechts twee dataleidingen (half-
duplex) plaats. Als zender en ontvanger allebei tegelijk data verstu-
ren blijft er van de berichten niets leesbaars over. Ook dit probleem
wordt door de Android-app opgelost. In principe worden twee modi
ondersteund: de DirectMode en de HybridMode.
De eerste is speciaal bedoeld voor de hierboven beschreven
1:1-communicatie (bijvoorbeeld tussen smartphone en meetelek-
tronica). Er wordt van uit gegaan dat de externe elektronica, bij- Figuur 6. Voor een eerste test wordt de AndroPod op een pc
aangesloten, bijvoorbeeld via de USB/TTL-converter BOB FT232.
voorbeeld een meetapparaat, met regelmatige tussenpozen meet-
waarden of statusmeldingen verstuurt. Als nu in het omgekeerde
geval besturingsberichten van de smartphone naar de externe elek-
tronica moeten worden gezonden, worden deze direct na ontvangst
van een meetwaarde verstuurd (figuur 5). Het ApplicationProtocol pelijke bus. Hier wordt gebruik gemaakt van een scheduler die
biedt daarnaast de mogelijkheid om een sensor opdracht te geven niets anders doet dan `spreektijd´ aan bus-nodes toe te wijzen.
om meetwaarden met een bepaald interval te verzenden [10]. Bij De Android-app bevat zo’n scheduler. Bij het activeren worden de
een datarate van 9600 baud zijn meetintervallen van 100 ms zonder adressen opgegeven van alle nodes die regelmatig aandacht moe-
problemen mogelijk. ten krijgen. Als de AndroPod-interface bijvoorbeeld wordt aange-
U kunt de DirectMode op uw eigen HTML-pagina met de volgende sloten op een RS485-bus met de deelnemers 1 en 2, wordt de sche-
Javascript-regel activeren: duler met het volgende commando ingeschakeld:
SetScheduler(SCHEDULER_ SetScheduler(SCHEDULER_ON,2,1,10,0,0,0,0,0);
DIRECTMODE,0,0,0,0,0,0,0,0);
In totaal kunnen acht node-adressen als parameters worden opge-
Deze opdracht kan ook direct worden gekoppeld aan een druk op geven. Vergeet adres 10 niet, als de Android-smartphone ook regel-
een HTML-button met bijvoorbeeld het opschrift `DirectMode on´: matig moet kunnen communiceren.
elektor 03-2012 51
andropod
pc-software die berichten kan verzenden en ontvangen. Hiermee passende USB-kabel of via Bluetooth van de pc naar de smartphone
kan een geschikte `gesprekspartner´ voor de smartphone worden te verzenden. Als u een kabel gebruikt, moet eerst USB-debugging
gesimuleerd, bijvoorbeeld een elektronische meetschakeling. Om worden uitgeschakeld en na afloop weer worden ingeschakeld (zie
deze hardware weer te geven wordt ook een HTML-pagina gebruikt. hiervoor deel 1 [7]). Ook moet u zelf de map voor de bestanden
Om deze pagina door de pc-software te kunnen laten vinden moet aanmaken.
de map `UIBus´ in de download-map [5] op het bureaublad van de
computer worden geplaatst. Er is echter nog een eenvoudiger manier waarbij het omsteken van
de kabel niet nodig is. We maken net als in het eerste deel gebruik
Nu moet de HTML-pagina die we op de smartphone willen weer- van het programma AdifController van de twee AndroPod-ontwik-
geven nog naar de telefoon worden overgebracht; en ook de Javas- kelaars, waarbij we nu de tab `Files´ kiezen. De telefoon moet links
cript-library JSBus.txt moet op de telefoon terechtkomen. Stan- onder `Detected Phones´ te zien zijn (eventueel moet de voeding
daard zoekt de app op de SD-kaart in de map `ElektorBusBrowser´ van de AndroPod-interface even kort worden onderbroken). Nu klikt
naar deze twee bestanden (dit kan in het instellingenmenu worden u op `Browse´ en selecteert de map `UIBus´ op het bureaublad.
gewijzigd), maar eerst moeten deze daar worden neergezet en dat Vervolgens drukt u op de knop `Upload´.
kan op twee manieren worden gedaan. Met bestandsbeheer kunt u controleren of de bestanden goed op
De eerste mogelijkheid is om de bestanden bijvoorbeeld met een de geheugenkaart van de telefoon zijn terechtgekomen.
52 03-2012 elektor
andropod
van deze waarden in een speciale string waarmee een gedecodeerd daarvan moet worden afgewerkt. Voor de AndroPod is ook nog
bericht aan de eerder gerealiseerde HTML/Javascript-pagina kan wor- de methode StartReaderThread van belang, deze wordt hierna
den doorgegeven. (meer over de opbouw van deze In- en OutCom- beschreven.
mands is te vinden in [9]). Ontwikkelaars die de bytes in een bericht
anders willen indelen, kunnen deze klasse naar wens aanpassen.
Bij de start van de toepassing wordt eerst onCreate van Andro-
podElektorBusBrowser (of van uw zelfgeprogrammeerde acti-
De klasse AndropodElektorBusBrowser zorgt voor de weergave vity) aangeroepen. De coderegel AndropodTransceiver.Resume
van de ontvangen data, daarnaast worden gebruikersacties verwerkt activeert de transceiver in de klasse AndropodElektorBusTrans-
die het verzenden van berichten tot gevolg hebben. Om de in de ceiver. Eerst wordt in de methode Resume(…) een ServerSo-
voorgaande tekst beschreven platform-onafhankelijkheid te reali- cket op poort 1337 geopend. Vervolgens wordt een extra thread
seren gebeurt dit allebei in een HTML-pagina. AndropodElektor- gestart, waarbij de code wordt afgewerkt die in de methode run(…)
BusBrowser zorgt er alleen maar voor dat deze HTML-pagina in een in AndropodElektorBusTransceiver staat. Zoals u duidelijk kunt
Android-control van het type WebView wordt weergegeven. Ont- zien, is de code in een eindeloze lus opgenomen. In deze lus wordt
vangen berichten (of beter gezegd de daaruit gegenereerde string) continu getest of er al een verbinding met de AndroPod-interface
worden via de methode In(…) aan HTML/Javascript doorgegeven. bestaat, anders wordt deze opgezet. Deze thread maakt het moge-
Omgekeerd wordt een string door het in de HTML-pagina ingebedde lijk om de interface aan te sluiten nadat de app is gestart.
Javascript aan de methode Out(…)doorgegeven als er een bericht Aan het einde van de initialisatieroutine onCreate wordt de eigenlij-
moet worden verzonden. Bovendien bevindt zich in deze klasse ook ke lees-thread gestart met de coderegel StartReaderThread();.
de scheduler. De methode Out(…) verzendt het bericht dan ook niet De bijbehorende code bevindt zich een paar regels verderop in een
meteen, maar slaat het tijdelijk op. Het bericht wordt pas verstuurd run()-methode. De daar aanwezige while-lus wordt continu door-
als de scheduler dit toestaat (met DirectMode als uitzondering). Een lopen zolang de verbinding met de interface blijft bestaan. Met de
deel van de klasse is afgestemd op de ElektorBus-protocollen; voor regel ReceivedMessage = AndropodTransceiver.Receive-
alle lezers die een eigen app willen schrijven wordt de code vanaf de Packet(); worden de volgende 16 bytes (na startbyte AAhex) inge-
methode onCreate interessant. Het gaat bij deze klasse namelijk lezen. Vervolgens kan het berichtenpakket verder worden verwerkt.
om een Android-activity, en wel degene die bij de start van de app Voor de volledigheid vermelden we hier dat ook de scheduler in een
wordt aangeroepen (het hoofdvenster van de toepassing). Android- eigen thread loopt.
kenners weten dat daarbij naast onCreate (initialisatie) ook de me-
Het verzenden van een bericht kost niet zoveel moeite: u roept ge-
thodes onStop, onPause en onResume moeten worden gekopi-
woon de methode AndropodTransceiver.TransmitPacket(…)
eerd. Daarin bevindt zich namelijk code die bij het beëindigen van de
aan (met een AndropodElektorBusCommand als parameter).
toepassing, bij het wisselen naar een andere activity en de terugkeer
elektor 03-2012 53
andropod
In een enkel (zeldzaam) geval crasht de app na het wijzigen van de [1] www.xdevelop.at
instellingen. U moet deze dan afsluiten en opnieuw opstarten.
[2] www.xdevelop.at/#category=projects&subcategory=1&anchor=6
Na het invoeren van het nummer kan de sms-functie worden getest
door in de pc-software op de button `Alarm´ te klikken. Op het [3] http://developer.android.com/sdk/installing.html
nog vrije Channel2 wordt dan in het volgende bericht een `1´ ver- [4] www.eclipse.org/downloads/
zonden, waarmee een alarm van de sensor wordt aangegeven. De
[5] www.elektor.nl/120097
HTML-pagina die op de mobiele telefoon wordt weergegeven, zorgt
er met de volgende Javascript-regel voor dat een sms-bericht wordt [6] www.elektor.nl/110258
verzonden: [7] www.elektor.nl/110405
[8] www.elektor.com/elektorbus
SendSMS(“1“, “Alarm on Test-Sensor!“);
[9] www.elektor.nl/110517
De `1´ als eerste parameter betekent dat de sms naar het in de app [10] www.elektor.nl/110708
voorgeprogrammeerde nummer wordt verzonden. Op deze plaats
[11] http://developer.android.com/guide/index.html
kan ook een willekeurig ander mobiel nummer worden opgegeven.
U kunt de broncode van de twee gebruikte HTML-pagina’s door de [12] „Learning Android”, Marko Gargenta, O’Reilly: http://shop.oreilly.
pc-software laten weergeven. De pagina die de meetelektronica com/product/0636920010883.do
54 03-2012 elektor
Coming Soon!
The RL78
Green Energy
Challenge
With an incredible ecosystem of hardware,
software and third-party vendors, Renesas’
family of RL78 MCUs are optimized for
efficient power consumption and deliver up to
41 DMIPS at 32MHz. These versatile MCUs offer a
true low-power platform for the most demanding
8- and 16-bit embedded applications.
Renesas, along with Circuit Cellar and Elektor, invites you
to experience true low power by developing a green energy
application using the RL78 MCU and IAR tool chain.
Succeed and win a share of $20,000 in cash prizes!
www.circuitcellar.com/RenesasRL78Challenge
platino
Platino, het veelzijdige AVR-board dat we in het oktobernummer van 2011 presenteerden, is compatibel
met de Arduino-programmeeromgeving. Maar daar zitten wat haken en ogen aan, omdat Arduino niet
zonder meer alle microcontrollers ondersteunt die op Platino passen, waardoor er code moet worden
aangepast. Gelukkig zijn de meeste tools waarmee dit eenvoudig kan worden gedaan, gratis beschikbaar
op het internet. Om het u gemakkelijk te maken hebben we ze verzameld en gebundeld.
Clemens Valens (redactie Elektor) u niets hoeft te veranderen als een core-bestand wijzigt.
U hebt nu een map met vier submappen en twee bestanden:
bootloaders (map)
Zoals u waarschijnlijk weet, zijn de Arduino Uno en zijn voorgan- cores (map)
gers gebaseerd op de 28-pens AtmegaXX8 AVR-microcontrollerfa- firmwares (map)
milie van Atmel. De grotere Arduino Mega maakt gebruik van een variants (map)
ATmega2560 in 100-pens behuizing. Platino ondersteunt niet alleen boards.txt (bestand)
AVR-controllers in 28-pens DIP-behuizing, maar ook de 40-pens programmers.txt (bestand)
versie waar Arduino niet mee overweg kan. Als u uw eigen board De map bootloaders bevat de bootloaders voor uw hardware.
ontwikkelt, wilt u misschien AVR’s in SMA-behuizing gebruiken die Als uw board een microcontroller heeft die niet door de standaard-
weer andere aantallen pennen hebben en ook niet standaard door bootloaders wordt ondersteund, zult u er een moeten wijzigen.
Arduino worden ondersteund. In dit artikel laten we zien hoe u de Dat is minder ingewikkeld dan het lijkt, zolang het de AVR-familie
Arduino-omgeving aan uw eigen hardware aanpast. Platino dient betreft. Later meer hierover.
hierbij als voorbeeld. De map cores bevat de Arduino core-bestanden. Deze bestanden
bepalen de Arduino-functies en sommige hiervan moeten aan uw
Integratie van eigen hardware in Arduino 1.0 hardware worden aangepast. In de embedded elektronicawereld
In feite is het niet moeilijk om uw eigen hardware in de Arduino- wordt dit het Board Support Package (BSP) genoemd.
omgeving te integreren. U hoeft alleen maar een map toe te voegen De map firmwares bevat de executables voor boards die voor com-
aan de hardware-map van de Arduino-distributie (arduino-1.0\ municatie met de IDE een Atmega8U2 gebruiken. Als dit bij u niet
hardware\). Deze nieuwe map, die u een passende naam geeft — het geval is, kunt u deze map verwijderen. Platino maakt er geen
in ons geval platino, bevat bestanden die specifiek bij uw hard- gebruik van.
ware horen en ook waar nodig verwijzingen naar standaard Arduino De map variants is nieuw in Arduino 1.0. Hiermee kunnen ver-
core-bestanden. schillen worden aangegeven tussen boards die verder veel overeen-
Om problemen met toekomstige versies van de Arduino IDE te voor- komsten vertonen. In het geval van Platino definiëren we hier twee
komen raden we aan om de inhoud van de standaard arduino hard- varianten, een voor Platino met 28-pens controllers en een voor Pla-
ware- map (arduino-1.0\hardware\arduino) te kopiëren naar tino met 40-pens controllers. Elke variant heeft zijn eigen submap
uw nieuwe map (bijvoorbeeld arduino-1.0\hardware\platino) met daarin het bestand pins_arduino.h dat bij vorige versies van
en alleen wijzigingen in de kopieën aan te brengen. Dit heeft als Arduino in de map cores te vinden was. Zo nodig kunnen hier ook
nadeel dat toekomstige wijzigingen van de core-bestanden niet andere variantspecifieke bestanden worden opgeslagen.
automatisch worden geïntegreerd, maar daar staat tegenover dat Verwijder het bestand programmers.txt. Dit hebt u alleen
56 02-2012 elektor
platino
1 uno.name=Arduino Uno
2 uno.upload.protocol=arduino
3 uno.upload.maximum_size=32256
nodig als u uw eigen programmer moet definiëren. Als u het onge- 4 uno.upload.speed=115200
wijzigd laat staan, krijgt u dubbele verwijzingen in het IDE-menu
5 uno.bootloader.low_fuses=0xff
Tools->Programmer.
6 uno.bootloader.high_fuses=0xde
Het laatste bestand boards.txt bevat informatie die de IDE nodig
7 uno.bootloader.extended_fuses=0x05
heeft om de juiste bestanden, protocollen enzovoorts voor de
8 uno.bootloader.path=optiboot
hardware te selecteren. De in dit bestand genoemde boards kun-
nen in het IDE-menu Tools->Board worden geselecteerd. We pas- 9 uno.bootloader.file=optiboot_atmega328.hex
sen eerst dit bestand aan voordat we verder gaan met de andere 10 uno.bootloader.unlock_bits=0x3F
core-bestanden. 11 uno.bootloader.lock_bits=0x0F
12 uno.build.mcu=atmega328p
boards.txt 13 uno.build.f_cpu=16000000L
Dit bestand moet worden aangepast om uw hardware door de IDE 14 uno.build.core=arduino
te laten herkennen. U kunt het openen met een simpele tekst-editor 15 uno.build.variant=standard
zoals kladblok en krijgt dan een lijst met blokken te zien volgens het
voorbeeld in listing 1 (zonder de regelnummers).
Verwijder alle blokken behalve één die u aan uw hardware gaat aan-
passen. Als u de ongewijzigde blokken niet verwijdert. krijgt u dub- Deze waarde komt overeen met de frequentie van het kristal en is
bele verwijzingen in het menu Tools->Boards. nodig voor de timer- en UART-functies van Arduino. Deze waarde
Alle regels in het blok van listing 1 beginnen met uno . Dit is een komt in de core-bestanden voor als F_CPU.
unieke aanduiding voor het board in alle boards.txt bestan- De core-bestanden moeten zich bevinden in een submap van de
den van de Arduino-installatie. De IDE herkent alleen boards met map hardware. Deze submap wordt in regel 14 gespecificeerd
dezelfde aanduiding. (in dit geval: arduino-1.0\hardware\arduino). Regel 15 spe-
De volgorde van de regels is niet van belang. cificeert de submap van variants waarin zich het bestand pins_
Regel 1 met het label name bepaalt de naam van het board zoals arduino.h bevat, dat nodig is voor aanpassing aan uw specifieke
deze in de IDE wordt getoond. Er is waarschijnlijk een maximum board.
toegestaan aantal karakters, dus maak de naam niet te lang. Deze laatste twee regels mogen overal naar verwijzen, zodat u
Regels 2 en 4 (upload.protocol en upload.speed) bevatten core-bestanden van een ander board voor uw eigen board kunt
instelgegevens voor avrdude, het standaard programmeertool van gebruiken.
de IDE. Arduino 1.0 bevat de meest recente versie van avrdude, deze Listing 2 laat de structuur van listing 1 zien, maar dan aangepast
herkent het protocol arduino. Eerdere Arduino-distributies bevat- voor een Platino-board met een Atmega164p. Hetzelfde hebben
ten versies van avrdude die dit protocol niet herkennen. In die geval- we gedaan voor alle denkbare varianten en dat leverde 16 nieuwe
len moet stk500 worden gebruikt.
In regel 3 wordt de maximale geheugentoewijzing voor een gebrui-
kerstoepassing gedefinieerd. Deze wordt berekend door de omvang Listing 2. Een board-structuur voor Platino
van de bootloader van de maximale geheugengrootte af te trekken. met een ATmega164p-processor. De laatste
In dit geval hebben we 32 KB geheugen en een 512-byte bootloader. twee regels zorgen er voor dat de juiste core-
Er blijven dus maximaal 32.256 bytes over. bestanden voor dit board worden gebruikt.
Regels 5 t/m 11 bepalen hoe de bootloader vanuit de IDE (Tools- platino164p.name=Platino 164p(a) @ 16 MHz
>Burn Bootloader) moet worden geladen en welke dat moet zijn. Al platino164p.upload.protocol=arduino
deze regels bevatten instelgegevens voor avrdude. De instellingen platino164p.upload.maximum_size=15872
voor Fuse en Lock zijn afhankelijk van de microcontroller die moet platino164p.upload.speed=115200
worden geprogrammeerd. Het bootloader-bestand uit regel 9 moet platino164p.bootloader.low_fuses=0xff
zich bevinden in een submap van de map bootloaders. Deze sub- platino164p.bootloader.high_fuses=0xdc
map wordt in regel 8 gespecificeerd. Zo lang u niet probeert om de platino164p.bootloader.extended_fuses=0xfd
bootloader vanuit de IDE te programmeren zijn al deze instellingen platino164p.bootloader.path=optiboot
fictief. Met deze regels kan ook een bootloader worden gespecifi- platino164p.bootloader.file=optiboot_
ceerd die niet compatibel is met het Arduino-communicatieprotocol platino164p.hex
(zolang avrdude er mee weet om te gaan). U kunt bijvoorbeeld een platino164p.bootloader.unlock_bits=0x3f
bootloader van Wiring gebruiken. platino164p.bootloader.lock_bits=0x0f
Met regel 12 specificeert u de microcontroller op uw board. Merk op platino164p.build.mcu=atmega164p
dat er aparte type-aanduidingen zijn voor P-type AVR’s. Dit is van platino164p.build.f_cpu=16000000L
belang omdat hun ID-byte verschilt van dat van de niet-P-types. De platino164p.build.core=platino
optionele toevoeging ´A´ heeft verder geen effect. platino164p.build.variant=ATmegaXX4
Regel 13 geeft de klokfrequentie van de microcontroller aan in Hz.
elektor 02-2012 57
platino
moment dat dit artikel werd geschreven, waren dat er 36. Vaak
hoeft er voor uw eigen board maar een klein aantal te worden aan-
gepast. Voor onze Platino moesten er vier worden aangepast (in
de lokale kopie van cores ). Hier volgen de aanpassingen aan de
core-bestanden:
Arduino.h
Figuur 1. Een gedeelte van het bestand wiring_analog.c met Dit bestand is opgenomen in veel andere core- en bibliotheek-
aangepaste code voor Platino. bestanden en is een goede plaats om links naar uw eigen code
op te nemen. Omdat de code voor de definitie van Platino-func-
ties in C++ is geschreven, werd het include-statement #include
boards in de IDE op. De variant is ATmegaXX4 (40-pens controllers), “Platino.h” toegevoegd aan de lijst aan het eind van het bestand,
voor de 28-pens controllers maakten we de variant ATmegaXX8. direct onder de regel #ifdef __cplusplus.
De overige core-bestanden zijn voor beide varianten gelijk, omdat Er moest ook een definitie voor de analoge spanningsreferen-
#ifdefs wordt gebruikt om de compiler de juiste keuze te laten ties INTERNAL1V1 en INTERNAL2V56 voor de 40-pens con-
maken. trollers worden gemaakt. Hiervoor werd het statement #elif
defined(ATMEGA_X4) toegevoegd. De macro ATMEGA_X4 wordt
pins_arduino.h gedefinieerd in ons header-bestand devices.h, waarvoor boven-
Als uw eigen board correct is gedefinieerd, beginnen we met het aan het bestand een include-statement is geplaatst.
aanpassen van het pen-definitiebestand pins_arduino.h in
de map variants. In ons Platino-met-ATmega164p voorbeeld Tone.cpp
bevindt dit bestand zich in arduino-1.0\hardware\platino\ Aanpassing van dit bestand is niet echt nodig, maar voor toekom-
variants\ATmegaXX4. stige compatibiliteit is het beter om dit wel te doen. Hiervoor is
58 02-2012 elektor
Advertentie
e design
ontwikkeling
en productie
van elektronica
Engineering complete projecten
Printontwerp ook mobiel
Printproductie proto’s standaard getest
Assemblage kleine series SMD
devices.h
Voor conditionele compilatie van core-bestanden voor Platino zijn
www.elektor.nl
verschillende definities nodig. Omdat Platino meerdere AVR-con-
trollers ondersteunt en deze er in verschillende uitvoeringen zijn,
kunnen #ifdef statements nogal lang worden. Daarom zijn er twee
groepen gemaakt, één voor 40-pens controllers (ATMEGA_X4) en
één voor 28-pens controllers (ATMEGA_X8 ). Hier kunnen nieuwe
controllers worden toegevoegd.
Platino.cpp & h
Hier hebben we een object gecreëerd in de vorm van een klasse die
bij aanroepen direct toegang geeft tot de Platino-randapparaten.
Het is eigenlijk een schil om de afzonderlijke randapparaat-klassen,
die kan omgaan met de jumperconfiguratie van Platino. Later meer
over deze klasse.
elektor 02-2012 59
platino
aan te roepen. Pas hierbij op voor (blokkerende) functies van andere Platino platino(4,20,’B’,’C’,’B’,’B’,’B’,’B’,’B’);
bibliotheken, of wachtlussen die de hoofdlus kunnen vertragen of
blokkeren. De optionele druktoets in een draai-encoder wordt door Dit betekent dat u een LCD gebruikt met 4 regels van 20 karakters
deze klasse niet verwerkt en moet als een gewone druktoets worden en dat de jumpers 1, 3...7 en 14 in de positie poort B of C staan
behandeld door de PushButton-klasse. (aangeduid met een ‘B’ of een ‘C’; een open jumper wordt aange-
duid met een nul, ‘0’). U kunt nu de Platino-randapparaten als volgt
In gebruik nemen benaderen:
Als het porteren klaar is, kunt u aan de slag. De eerste stap is de
selectie van uw board in het IDE-menu Tools->Boards. Als u het platino.led(state); // state can be 1 or 0.
bestand boards.txt correct hebt aangepast en toegang hebt tot if (platino.pushButton(1)==0) … // check
een van de programmers die de IDE herkent, kunt u de bootloader pushbutton 1 (active low)
if (platino.encoder2.tick(counter)!=0) … // call
often, 1 kHz if possible.
platino.beep(frequency,duration_in_ms);
platino.lcd.setCursor(0,1); // goto column 0 of
row 1.
platino.lcd.print(“the quick brown fox”);
60 02-2012 elektor
Wegwijzer van de vakhandel
SCOPES and more Visie in het breedste spectrum!
MULTITRONICS
(ELEKTRONICA-COMPONENTEN)
• LED’s • LED-modules • LED-strips • Ninoofsesteenweg 38, 1500 HALLE
RGB-controllers • power supplies • Dinsdag t/m Zaterdag Tel. (02) 360 22 10
www.ledtuning.nl
10.00 - 17.00 uur Fax (02) 360 25 90
Maandag gesloten www.multitronics.com
open:
ma. 13.00 - 18.00
di.-vr. 9.00 - 12.00
13.00 - 18.00
za. 9.00 - 13.00
vermelden waard.
www.bergsoft.nl info@bergsoft.nl
elektor 03-2012 61
basiscursus
Elektronica wordt steeds complexer en dit maakt het voor beginners steeds moeilijker om op gang te
komen. Daarom gaan we met deze artikelenreeks terug naar de basisbegrippen. In dit derde deel voeren
we verschillende metingen aan een transistor uit. Zelfs met een eenvoudige analoge multimeter kunnen
we al veel over zo’n onderdeel te weten komen!
In de datasheets van fabrikanten staan aller- torstroom IC, de basis-emitterspanning UB In figuur 1 is de meetopstelling te zien.
lei karakteristieken waarin wordt weergege- en de collector-emitterspanning UCE meten. Met de potentiometer aan de ingang van
ven hoe een transistor zich in verschillende Als u alle metingen met dezelfde multime- de schakeling wordt de ingangsspanning
situaties gedraagt. Maar u leert het meeste ter wilt uitvoeren, kunt u het beste alleen in kleine stapjes van nul tot 5 V verhoogd.
door zelf een meter te pakken en zoveel spanningen meten en zo min mogelijk van Bij iedere stap worden de vier spanningen
mogelijk zelf te meten. Daardoor krijgt u meetbereik veranderen. De stromen kun- U1 t/m U4 gemeten en genoteerd. Hieruit
`gevoel´ voor de transistor en begrijpt u nen vervolgens eenvoudig uit de spannin- kunnen dan de stromen en de versterkings-
beter hoe deze zich in de praktijk gedraagt. gen en de weerstanden in de schakeling factor V worden afgeleid. In de tabel is een
We gaan de basisstroom I B , de collec- worden berekend. voorbeeld te zien van metingen die we aan
6
6 UCE
IC IC [V]
[mA] [mA]
4,5 5
5
4
4 4
3,5
3
3 3
2,5
2
3 3
1,5
1 3
3
0,5
0 0
0 200 400 600 UB 800 0 1 2 3 4 IB 5 0
[mV] [µA] 0 1 2 3 4 5 UIN 6
[V]
Figuur 2. Basisstroom als functie van de Figuur 3. Collectorstroom als functie van Figuur 4. Uitgangsspanning als functie van
basis-emitterspanning. de basisstroom. de ingangsspanning.
62 03-2012 elektor
basiscursus
I=0 I C = 100mA
C
C C C C
N N N + 6V
B P B B I B = 1mA B
B P P
N + 0,6V N
N
E E E E
E
9 10 11
Nu wordt een tweede stroombron tussen basis en emitter aangesloten, waarbij de basis aan de pluspool ligt en de spanning met ongeveer
0,6 V zo laag is dat er maar een kleine stroom door de basis-emitterdiode loopt. Nu gaat er tussen emitter en collector een stroom lopen die
beduidend groter is. De verklaring hiervoor is de zeer dunne basislaag. Als namelijk n-ladingsdragers de basis binnenkomen, dan komen ze
direct in het zeer sterke elektrische veld van de basis-collector-sperlaag terecht. Het merendeel van de ladingsdragers wordt dan naar de
collector toe gezogen. Ongeveer één procent van de ladingsdragers die van de emitter afkomstig zijn, komt op de basisaansluiting terecht
(figuur 11). Omgekeerd is dus de collectorstroom ongeveer 100 keer groter dan de basisstroom. De collectorstroom wordt door de basis-
emitterspanning respectievelijk de basisstroom bestuurd. Hoewel de elektronen zich van de emitter naar de collector bewegen, zeggen we
uit traditionele overwegingen (stroom loopt van plus naar min) dat de stroom `van de collector naar de emitter´ loopt.
een BC547B uitvoerden. Voor het meten meter (10 MΩ). Deze heeft tot gevolg dat ring lineair toeneemt met de basisstroom
van U1, U2 en U3 werden aparte, vast aan- bij het meten van U2 een klein gedeelte van en vervolgens vlak onder de 5 mA niet ver-
gesloten digitale multimeters gebruikt. U4 de basisstroom naar de meter gaat. Het is der meer toeneemt, dat wil zeggen `in ver-
werd uit U3 berekend. Daarna werden de normaal dat dit soort meetfouten optre- zadiging´ komt. Meer dan 5 mA kan ook
stromen en de versterkingsfactor uit de den. Als we alle mogelijke meetfouten en niet worden gemeten omdat de collector-
gemeten spanningen afgeleid. toleranties (ook die van de weerstanden) weerstand de stroom op 5 mA begrenst
in beschouwing nemen, zou deze transis- (5 V / 1 kΩ = 5 mA). Duidelijk is te zien dat
Praktijktips tor net aan de onderste versterkingsgrens ook 5 mA niet helemaal wordt gehaald. De
Voor een goed meetresultaat kunt u het van 200 zitten. Probeert u het zelf ook eens, transistor is vrijwel volledig ingeschakeld en
beste beginnen met de collectorstroom op misschien doet uw transistor het beter. er blijft een collector-emitter-restspanning
0,1 mA in te stellen (U4 = 0,1 V) en vervol- over van iets boven 0,1 V.
gens de stroom voor elke nieuwe meting te Met zoveel meetgegevens is het handig om De grafiek laat bij zeer kleine stromen ook
verdubbelen tot deze niet meer toeneemt ook meteen een grafische voorstelling te een geringere steilheid (dus een kleinere
(U4 wordt dus ingesteld op 0,1 V, 0,2 V, maken. Dat kan bijvoorbeeld met potlood stroomversterking) zien. Dat klopt wel,
0,4 V, 0,8 V, enzovoorts). Hierbij zal het u en papier, maar ook met een spreadsheet want bij erg kleine en erg grote collector-
opvallen dat iedere verdubbeling van de op de pc. Daarbij blijkt dan het volgende: stromen neemt de versterking iets af. Maar
collectorstroom het gevolg is van (onge- Figuur 2 (IC als functie van UB) laat de typi- dit effect wordt ook nog versterkt door een
veer) een verdubbeling van de basisstroom, sche exponentiële karakteristiek van een meetfout, omdat er bij het meten van U2
maar dat de basis-emitterspanning steeds silicium diode zien. De grafiek begint line- een kleine meetstroom loopt die de basis-
toeneemt met een constante waarde van air, maar vertoont bij ca. 0,6 V een knik, stroom juist in het laagste gebied groter laat
ongeveer 20 mV. waarna de stroom steeds sneller (expo- lijken dan deze in werkelijkheid is.
nentieel) toeneemt. Uit de meetwaarden In figuur 4 is tenslotte de uitgangsspanning
De stroomversterkingsfactor vinden we blijkt dat er bij een basisspanning van bij- (UCE) te zien als functie van de ingangsspan-
door IC te delen door IB. Zoals uit de tabel voorbeeld 400 mV nog geen meetbare ning (U1 + U2) op de loper van de potme-
blijkt, is de maximale versterkingsfactor basisstroom loopt – en daardoor ook geen ter. Hier wordt met één blik al duidelijk dat
bij ons experiment ongeveer 180. Dat is te collectorstroom. We kunnen dus conclude- een hogere ingangsspanning een lagere uit-
laag, want minimaal zou een 200-voudige ren dat de basisspanning meestal ergens gangsspanning tot gevolg heeft. De reden
versterking mogelijk moeten zijn. Het ver- tussen 0,6 V en 0,7 V ligt. hiervoor is duidelijk. Als de collectorstroom
schil wordt onder andere veroorzaakt door In figuur 3 (IC als functie van IB) is te zien toeneemt neemt ook de spanningsval over
de eindige inwendige weerstand van de dat de collectorstroom eerst bij benade- de collectorweerstand toe.
elektor 03-2012 63
basiscursus
+5V
1k
Tegenkoppeling ook over een of meer weerstandsmeetbe-
Als u een schakeling ontwerpt en de verster- reiken en met een beetje oefening kunnen
kingsfactor niet precies weet, dan moet u we met een eenvoudige ohmmeter niet
220k
daar in het ontwerp rekening mee houden. alleen weerstanden, maar ook transistoren,
Als het om een schakeltrap gaat, is dat sim- diodes, condensatoren en nog veel meer
pel. De basisstroom moet dan zodanig wor- V = 100...400 onderdelen testen. Voor de weerstands-
den gekozen dat de schakeling ook met de meting hebben multimeters een batterij
kleinst mogelijke stroomversterkingsfactor nodig die vaak voor alle andere meetberei-
goed werkt. Als u twijfelt zorgt u gewoon ken geen functie heeft. De meting berust in
voor iets meer basisstroom, dan werkt het Figuur 5. Instelling van het werkpunt door principe op een stroommeting bij constante
met alle transistoren van een bepaald type. tegenkoppeling. spanning. De weerstandsaanduiding is
daardoor niet lineair. De maxi-
Het ziet er anders uit als een ana- male schaaluitslag bij nul ohm
loge waarde moet worden ver- moet met een potentiometer
sterkt. Een te grote basisstroom worden afgeregeld om afwij-
kan hierbij juist verkeerd uitpakken, kingen in de batterijspanning
omdat de transistor dan gemakke- te compenseren (zie figuur 6).
Rm
lijk in verzadiging komt. We wil- Aan het andere einde van de
len zo mogelijk voor de collec- A schaal gaat de meetwaarde in
torstroom een waarde in het mid- ieder bereik naar oneindig.
den hebben, die naar boven en naar
beneden kan worden gevarieerd. Bij de gebruikelijke interne
Om dit ook mogelijk te maken voor schakeling van eenvoudige
transistoren die onderling verschil- analoge multimeters is de
len kunnen we gebruik maken van Figuur 6. Principeschakeling spanning op de aansluitklem-
van een analoge ohmmeter.
tegenkoppeling. Hierbij wordt de men in de ohmmeetbereiken
basisweerstand niet met de voe- anders gepoold dan wat met
dingsspanning maar met de col- de symbolen voor stroom- en
lector verbonden (zie figuur 5). spanningsmetingen bij deze
15mA
Een transistor met een grotere ver- aansluitingen wordt aange-
70 Ω
sterking zal een grotere spannings- geven. Aan de min-aanslui-
10mA
val over de collectorweerstand ver- ting van de multimeter vin-
oorzaken. Daardoor daalt de collec- den we dan ook de pluspool
5mA
torspanning en tegelijkertijd ook 640 Ω van de ohmmeter. Hier moet
5800 Ω
de basisstroom. Omgekeerd krij- 0
u rekening mee houden als
gen transistoren met een kleinere 0 200mV 400mV 600mV 800mV u een ohmmeter gebruikt
stroomversterking automatisch voor het testen van diodes en
wat meer basisstroom. Uiteindelijk transistoren.
werkt dit dus voor alle transistoren. Figuur 7. Gelijkstroomweerstand van een Si-diode
bij verschillende meetstromen. Bij metingen aan diode-over-
Metingen met de gangen moet u zich realise-
ohmmeter ren dat een sperlaag geen
Bij het testen van onderdelen, en constante weerstand heeft.
voor foutzoeken, zijn analoge wij- De aangegeven waarde hangt
zerinstrumenten nog steeds in het sterk af van de meetstroom
voordeel. Meetresultaten kunnen en dus van het gekozen meet-
er namelijk veel sneller mee wor- bereik. Ondanks dat kunnen
A
den afgelezen dan met een digitale we toch conclusies trekken.
multimeter, zeker als het om een Zien we bij een ohmmeter
ruwe benadering gaat. Voor zeer 1. B-E 2. C-B 3. C-E 4. C-E met een interne spanning van
nauwkeurige metingen hebben 1,5 V een wijzeruitslag van
we daarentegen beslist een digitale ongeveer de halve schaal, dan
multimeter nodig. Simpele ana- moet de spanningsval over het
loge multimeters beschikken vaak Figuur 8. Metingen aan een transistor. meetobject ongeveer 0,75 V
64 03-2012 elektor
basiscursus
Transistortester
Een microcontroller met ingebouwde A/D-converter is uitstekend geschikt als meetapparaat. We kunnen er bijvoorbeeld een transistortes-
ter mee maken. Daarbij moet op een eenvoudige manier de stroomversterking worden bepaald. Dit kan al worden gerealiseerd met een AT-
tiny13 die het eindresultaat serieel naar een pc stuurt, waar het in een terminalprogramma wordt weergegeven.
De schakeling van figuur 12 is heel simpel. Alleen de collectorspanning wordt gemeten. De transistor wordt met tegenkoppeling gebruikt,
waardoor zeer uiteenlopende versterkingsfactoren kunnen worden gemeten. Het programma moet dan wel een beetje meer rekenwerk ver-
richten, maar daar hebben we tenslotte een microcontroller voor.
RXD
‚Transistor tester 1k
RS232
GND PC
$regfile = „attiny13.dat“
+5V
$crystal = 1200000
$hwstack = 8
$swstack = 4 ' 16
$framesize = 4 VCC PB2 PB1 PB0
U1
1k
ATtiny13
Do
UC = Getadc(3) ' PB3=ADC3 -> UC = 0..1023
VCC PB2 PB1 PB0
Waitms 1000
Loop
13
End
Het programma berekent de spanningsval U1 over de collectorweerstand en de spanningsval U2 over de basisweerstand. Daaruit volgen de
collectorstroom I1 en de basisstroom I2. De versterking V is dan I1 / I2. Om alles in de kleine microcontroller te laten passen gebruiken we
uitsluitend gehele getallen van het type Word. Daarbij is er voor gezorgd dat overflow niet kan plaatsvinden en dat de nauwkeurigheid niet
vermindert door het gebruik van te kleine tussenresultaten. Met dit programma kan de microcontroller ook metingen aan een PNP-transistor
uitvoeren. Deze moet alleen anders worden aangesloten (zie figuur 13).
elektor 03-2012 65
basiscursus
2k2
door een goede transistor geen stroom, en
en een basisweerstand van 470 kΩ naar de collector
meten we dus een oneindige weerstand.
heeft een uitgangsspanning UCE. 5V Als we de basis met de collector verbinden
moet er een iets grotere stroom lopen dan
470k
66 03-2012 elektor
Fascinated by technology’s impact on
the future?
Check out Tech the Future!
Computing power and global
interconnectivity are pushing tech
innovation into overdrive.
Pioneering technologies and creative
workarounds affect even the couch
potato 24/7. Tech the Future reports
on technology strides that shape
the future — yours included.
www.techthefuture.com
Follow Tech the Future
Robotsimulator Robbie
PIC-bestuurd robothoofd
Walter Trojan (Duitsland)
Het was kort voor Kerstmis en de auteur had zijn kleinzoon op De PIC-microcontroller werkt op de interne oscillator van 4 MHz en
bezoek. Tijdens de conversaties over speelgoed ontstond de wens deze bestuurt het robothoofd met vier I/O-poorten: GP0 en GP1
van een bewegend, knipperend en geluid makend robothoofd. Hij worden het grootste deel van de tijd als digitale uitgangspoorten
zou ook nog een lichtbron moeten kunnen herkennen en zich daar gebruikt en sturen de ogen-LED’s met een grote stroom van ca.
naar toe richten en de kleinzoon zou hem Robbie noemen. 20 mA aan. Periodiek worden beide poorten gedurende korte tijd
als analoge ingang geschakeld om de collectorspanning van de foto-
Keep it simple transistors te meten.
Geen probleem, dacht de auteur. Eerst maar eens kijken wat er in de Als er geen of maar zeer weinig licht op valt, dan sperren de transis-
junkbox voorhanden is. Al snel had hij een modelbouwservo, diverse tors en dan staat op GP0 en GP1 de doorlaatspanning van de blauwe
kleine onderdelen en een PIC12F683. Deze laatste heeft een PWM- LED’s (D3 en D4) met een grootte van ongeveer 2,7 V. De relatief
uitgang die zeer geschikt is om toontjes op te wekken. Maar zijn vijf hoogohmige weerstanden R8/R9 resp. R10/R11 begrenzen de LED-
I/O-poorten genoeg? Dat was dan nog een uitdaging. stroom tot ca. 0,2 mA, zodat er in deze korte periode geen zichtbaar
De mechanische opbouw ging onder het motto “keep it simple”. licht wordt uitgestraald.
Twee blauwe LED’s werden als ogen op een kartonnen doos gelijmd Bij opvallend licht gaan de fototransistors geleiden en daalt de span-
en met verschillende ringetjes wat opgepimpt – zie foto. Achter de ning tot een waarde tussen 0 en 2,7 V. Beide spanningen worden via
opgelijmde mond die voorzien werd van wat gaatjes zit een luid- de poorten (GP0, GP1) gemeten, het verschil bepaalt de richting
sprekertje. Om het mogelijk te maken een lichtbron te herkennen waarin het hoofd beweegt. De toegepaste fototransistors (T2/T3)
zijn twee fototransistors als oorbriljantjes op de oren gelijmd. De van het type BP103BF hebben een hoge gevoeligheid en zijn voor-
servo is op een stukje hout vast gezet en het robothoofd is op de zien van een daglichtfilter; mede daardoor zijn ze zeer geschikt voor
servo-arm gemonteerd. Voor een flexibele verbinding met de bestu- de besturing van het hoofd met een zaklantaarn.
ringseenheid dient een 6-polige lintkabel met een connector (K2)
aan het eind. GP2 kan als PWM-uitgang geconfigureerd worden en zorgt zo voor
het geluid. De luidspreker wordt via transistor T1 aangestuurd,
PIC-trucs waarbij R3 de geluidssterkte van de pieptoontjes beperkt tot een
De besturingseenheid zit op een kleine print. Aan de achterzijde is acceptabel geluidsniveau.
een batterijhouder voor vier AAA-batterijen gemonteerd. Er kun- GP3 dient met het RC-netwerkje R2/C2 en drukknop S2 als
nen Alkaline-batterijen of NiMH-accu‘s worden gebruikt. Bij Alka- reset-ingang.
line-batterijen is de spanning voor de PIC in de schakeling (figuur GP5 bestuurt de servo met pulsen met een breedte van 1 tot 2 ms
1) iets te hoog en daarom wordt deze met twee diodes (1N4001) met tussenpozen van 20 ms. De pulsbreedte bepaalt de positie van
wat verlaagd. Worden er vier NiMH-accu’s gebruikt, dan moet jum- de servo.
per J1 geplaatst worden; de diodes kan men dan ook weglaten. De GP4 tenslotte wordt gebruikt voor het simuleren van de hartslag
servo en de luidspreker zitten daarentegen aan de volle batterij- of van de robot, de uitgang laat de ‘Heartbeat-LED’ (LED1) eenmaal
accuspanning. per seconde kort branden.
Lezersschakelingen bevatten bijdragen van Elektor-lezers voor experimentele doeleinden en voor verdere ontwikkeling door anderen.
De schakelingen in dit artikel zijn niet getest in het Elektor-lab op werking of reproduceerbaarheid.
68 03-2012 elektor
Robotsimulator
J1
+VB D1
2x 1N4001 * R2
C1
S1
10k
100n
1
VDD
Licht en geluid 4 IC1 7
GP3/MCLR GP0/ICSPDAT
De eigenlijke ‘PIC-trucs’ zitten in de firmware die niet helemaal zo 2
GP5 GP1/ICSPCLK
6
4k7
200R
gevoerd waarbij het hoofd heen en weer draait, de LED-ogen met 8
T1 R3 R7 R6
4x 1V5
verschillende effecten knipperen en tenslotte verschillende piepge- BC107
100R
100R
100R
D2 S2 C2
R5
luiden klinken. Daarbij moest ook nog uitgekeken worden naar een
100n
eventuele lichtbron, zodat het hoofd daarop reageert en zich naar
2k
5 3 1
de lichtbron draait. K1
Voor de oplossing van deze serie taken hield de auteur zich aan een 6 4 2
klassieke programma-opbouw, bestaande uit een overzichtelijke
hoofdlus met talrijke subroutines. Daarbij werd, ondersteund door 5 3 1 +VB
Timer1, om de 20 ms een interrupt-routine aangeroepen die alle K2
actieve onderdelen bestuurt. 6 4 2
De servo krijgt elke 20 ms een puls, de breedte daarvan bepaalt de
servopositie. De middenpositie komt overeen met een pulsbreedte
van 1,5 ms, de eindposities komen overeen met een pulsbreedte R8
LS1
R11
4k7
M1
Voor de LED’s zijn vijf verschillende toestanden (effecten) gepro- R9
M
R10
10k 10k
grammeerd: uit, constant aan, langzaam knipperen, snel knipperen T2
D3
200mW
D4
T3
Servo
en flitsen. Ook voor het opwekken van verschillende piepgeluiden
zijn er vijf mogelijkheden geprogrammeerd: geen geluid, middel- BP103BF BP103BF
hoge toon (snel toenemend), hoge toon (snel afnemend), hoge 110078 - 11
elektor 03-2012 69
review
EasyPIC v7
Ontwikkel-board
voor PIC’s:
Connectiviteit is
alles
Het Servische bedrijf MikroElektronika (mE) heeft een reputatie hoog te houden op het gebied van
microcontroller-ontwikkelboards. Niet alleen heeft deze firma inmiddels een bijzonder uitgebreid
assortiment, maar ze blijft ook werken aan verbetering van de bestaande productlijn. Onlangs verscheen
de zevende (!) generatie van de EasyPIC-ontwikkelboards voor de PIC-familie van Microchip. We namen
deze voor u onder handen.
Clemens Valens (redactie UK/US) LCD. Dan de standaard-voorzieningen zoals druktoetsen, LED’s,
pull-up- of pull-down-weerstanden op elke I/O-pen met een uitbrei-
dingsconnector voor elke poort, een programmer en een in-circuit
De EasyPIC v7 is een nieuwe loot aan de stam van MikroElektronika’s debugger aan boord, een voeding, poorten voor RS-232 en USB en
‘Easy’-serie. Er is ook een EasyAVR, een EasydsPIC, een EasyPSoC, nog zo wat zaken die je mag verwachten op een ontwikkelboard.
enzovoort. Zoals te verwachten is de EasyPIC ontworpen voor de Voor de aardigheid ben ik de evolutie van de EasyPIC-borden eens
8-bits PIC-microcontrollers van Microchip. Mijn eerste ervaring met nagegaan, vanaf generatie 4. De nieuwigheid van generatie 5 was
deze productlijn dateert van enkele jaren geleden, met de EasyPIC4. hoofdzakelijk een controller voor een touchscreen. Generatie 6
Dat was toen al een heel compleet en handig ding, dus dan rijst de was een grotere sprong voorwaarts: die introduceerde SMD’s en
vraag wat voor verbeteringen er allemaal nodig waren om tot een DIP-schakelaartjes voor de selectie (per GPIO-kanaal) van pull-up/-
zevende generatie te komen. down-weerstanden; het 7-segment display was vervangen door een
chip-on-glass-LCD (COG); toegevoegd waren een poort-expander,
Op het eerste gezicht is de ‘7’ compleet anders dan de ‘4’. De ‘7’ is een 4 x 4 toetsenbordje, een rij van 6 menutoetsjes en een connec-
een slag groter (26,5 x 22 cm) en de layout is anders. Bij nader inzien tor voor de ICD-programmers/debuggers van Microchip.
lijken ze toch wel heel erg op elkaar. Allebei hebben ze acht voetjes Op de ‘7’ is het COG-display weer vervangen door het goeie ouwe
voor alle verschillende PIC’s in DIP-behuizing, van 8- tot 40-pens. 7-segment LED-display. Moderner is blijkbaar niet altijd beter. Maar
Ook hebben ze allebei een 4-digit 7-segment LED-display, ruimte wat het meeste in het oog springt, is een nieuwe, veel overzichtelij-
voor een alfanumeriek 2 x 16 LCD en voor een 128 x 64 grafisch kere layout. Voorheen waren alle GPIO-LED’s, toetsen en pull-up/-
EasyPIC v7 ($ 123)
• geschikt voor meer dan 250 verschillende types 8-bits • RS-232- of serieel-naar-USB-poort
PIC-microcontrollers • USB, ICD, zoemer, I²C-EEPROM
• mikroProg programmer/in-circuit debugger aan boord • 4-digit 7-segment-display
• dubbele voeding (5 V & 3.3 V) • optioneel 2 x 16 alfanumeriek LCD
• 3 uitbreidingsconnectors per poort + rij printgaatjes • optioneel 128 x 64 grafisch LCD met aanraakscherm
• druktoets, LED, pull-up/-down-weerstand per poortpen
• 2 mikroBus-slots
www.mikroe.com/eng/products/view/757/easypic-v7-development-system/
70 02-2012 elektor
review
Foto 1.
Een mikroBus
EasyGPS Click-board in
slot 1.
elektor 02-2012 71
review
Software
Board werkt? Check. Tijd om de software te installeren. Er zit een
DVD met software bij, maar u kunt beter meteen de meest recente
versie downloaden van de site van mE. De installatie is rechttoe/
rechtaan en kost ongeveer 185 MB harddisk-ruimte, een minuut of
twee en welgeteld 16 muiskliks. Dan heb je twee iconen op de desk-
top, één voor de compiler (mikroC Pro in mijn geval) en één voor
mikroProg Suite for PIC. Het board is trouwens ook te gebruiken
met compilers die niet van mE afkomstig zijn.
Hebt u mikroC opgestart, dan kunt u naar de voorbeelden via het Foto 3. Een DAC addon-board op poort C.
menu Project en dan Open Examples Folder. Dan kiest u de map
Development Systems, met daarin de map EASYPIC7 die ook weer
mappen met voorbeelden bevat. In de map LED Blinking kiest u pro- Conclusie
ject LedBlinking.mcppi. Dat is een simpel ‘Hello World’-achtig pro- De EasyPIC v7 is een aantrekkelijk ontwikkelboard voor 8-bits PIC-
ject. Met één muisklik compileert en laadt u het in de microcontrol- microcontrollers. Alle mogelijke randapparatuur die je op een der-
ler. Dat is althans de bedoeling, ware het niet dat het uploaden naar gelijk product mag verwachten is ook aanwezig. Er zijn veel moge-
de microcontroller niet werkt totdat u de mikroProg-driver hebt lijkheden voor uitbreidingen. Daardoor kunt u eenvoudig zelf uw
geïnstalleerd. Ik had hem wel naar de harddisk gekopieerd, maar eigen interface toevoegen, maar mE levert ook een heel scala aan
om de één of andere reden wordt-ie dan niet automatisch geïnstal- kant-en-klare add-ons voor de mikroBus of voor de poortuitbrei-
leerd, je moet ‘t met de hand doen. dingen (foto 3). De uitvoering van het board is van hoge kwali-
Het Explorer-venster na afloop van de installatie had ik uiteraard al teit en met de 5-mm-gaten kun je het board ook buiten het lab op
gesloten. De drivers staan (bij Windows XP) in C:\Program Files\Mik- een solide manier monteren. Dankzij de 3,3-V-voeding is het ook
roelektronika\mikroC PRO for PIC\mikroProg Suite installer\Drivers geschikt voor moderne componenten en randapparatuur. Via de
(met de naam van uw compiler in plaats van ‘mikroC PRO for PIC’). ICD-programmer-connector is het board ook te gebruiken met com-
In die map staat ook een PDF met duidelijke installatie-instructies. pilers van andere fabrikanten. Wie serieus aan de slag wil met het
Zijn de drivers eenmaal geïnstalleerd, dan is het compileren en ontwikkelen van projecten op basis van PIC’s, kunnen wij de EasyPIC
programmeren van het voorbeeldje LedBlinking in 15 seconden v7 van harte aanbevelen.
gepiept. Alle LED’s van poort C en alle segmenten van het 7-seg- (120093)
ment display knipperen op 0,5 Hz.
[1] Benchmark voor microcontroller-ontwikkelkits,
Alles bij elkaar haalt de EasyPIC7 met mikroC PRO voor PIC een Elektor Februari 2012, www.elektor.nl/120096
benchmark van 945 helloWorld [1] en dat is best goed.
Nu we eenmaal zo ver zijn gekomen, willen we natuurlijk de andere
voorbeelden eens onder handen nemen en uiteraard ook zelf iets
gaan ontwikkelen (zie de kadertekst MyFirstProgram). Met de
demoversie zijn niet alle voorbeelden te compileren, maar voorge-
compileerde executables zijn bij alle voorbeelden aanwezig.
MyFirstProgram
Bij het board dat wij kregen toegestuurd zat ook een EasyGPS click- seriële ingang deed het nog niet. Na het nodige zoekwerk kwam ik
module (foto 1). dus daar heb ik een programmaatje voor gemaakt. er achter dat je de analoge ingangen van de PIC moet disabelen om
Eerst heb ik de democode voor de EasyGPS gedownload, maar de seriële ingang op de PIC18F45K22 te kunnen enabelen (geef AN-
die bleek bedoeld te zijn voor hun SmartGPS-board en voor een SELC = 0 voorafgaand aan UART1_Init(9600)).
PIC18F4520 op een EasyPIC 6 board (dit is inmiddels gecorrigeerd). De EasyGPS-module draait op 3,3 V, maar het programma werkte
Ik moest dus een aantal zaken aanpassen, namelijk de target-con- prima op de PIC18F45K22, zowel op 5 V als op 3,3 V. Voor gebruikers
troller (in Project Settings onder het View-menu), dan het PLL x 4 fu- van de demoversie van de compiler, of voor wie geen GLCD heeft, heb ik
se-bit (Project -> Edit Project) en tenslotte de definities van het gra- wat code voor een 2 x 16 alfanumeriek LCD toegevoegd. Het resultaat is
fische LCD (heb ik gekopieerd uit een ander voorbeeld). Toen werkte te downloaden van www.elektor.nl/120093; u vindt daar twee gecom-
het programma op de EasyPIC v7 met grafisch LCD (GLCD), alleen de pileerde executables, een voor het 2 x 16 LCD en een voor de GLCD.
72 02-2012 elektor
“Elektor is know-how
voor professionals en
voor wie dat wil worden.
De perfecte aanvulling
op mijn studie!”
– Christian, 19 jaar, student –
20%g!
Kortin Elektor is elektronica op niveau
PicoScope
2205 MSO
op de pijnbank
Thijs Beckers en Jan Buiting (redactie Elektor UK/US)
Een ‘Mixed Signal Oscilloscope’ (MSO) is een een set passieve x1/x10-probes, een kabel het. Als PicoScope 6 voor het eerst opstart
oscilloscoop gecombineerd met een logic voor het meten van logische signalen en is kanaal A actief en kun je meteen beginnen
analyser, waarbij de uitlezingen van beide testclipjes. De 2205-MSO ziet er hetzelfde met meten. Eventueel kun je ook de setup
desgewenst op één scherm kunnen wor- uit als de meeste PicoScopes: een blauwe aanpassen zodra het programma start.
den getoond. Toen we zagen dat de 2205, doos van ABS met twee BNC-connectors op
het nieuwe instapmodel van Pico Techno- het frontpaneel. De logic analyser heeft 16 De meeste Elektor-redacteurs hebben
logy [1], werd aangeboden voor “onder de ingangen; de bijbehorende gele meetdra- tegenwoordig een dubbele monitor op
€ 425” (de scoop zonder accessoires) beslo- den zijn gebundeld in een header-connector hun bureau staan. We waren natuurlijk te
ten we een exemplaar aan te vragen om in en aan het uiteinde voorzien van piepkleine lui om beneden in het lab een functiegene-
het Elektor-Lab aan de tand te voelen. connectortjes. Daar maak je de testclips rator te lenen, dus we besloten de al aanwe-
voor je metingen aan vast (maximaal 16). zige 3206B als generator te gebruiken en de
We kregen de complete kit met een advies- Verder zijn er ook vier zwarte massakabels 2205 MSO als scoop. Dat gaat heel makke-
prijs van € 483, d.w.z. het apparaat inclusief met bijpassende meetclips. lijk, je start gewoon PicoScope twee keer.
De 2205 wordt gevoed uit een USB-poort, De ene PicoScope wijs je toe aan de 3206B
aangesloten op een passieve USB-hub werkt AWG op het ene scherm, de andere aan de
hij niet. Hij is compatibel met USB 1.1, maar 2205 MSO op het andere scherm (figuur 1).
2.0 wordt aanbevolen. Aan de achterkant Nagaan welk scherm nu voor welke scoop
van het doosje zit de uitgang van de golf- is, ligt wat minder voor de hand: via Help ->
vormgenerator (AWG, arbitrary waveform ‘About PicoScope 6’ krijg je een pop-up met
generator). informatie over de software en de scoop die
eraan hangt. Tot zover OK.
Software: PicoScope 6
Een prettige eigenschap van alle USB-oscil- Dat beviel ons
loscopen van Pico is dat ze allemaal gebruik De analoge ingangen van kanaal A en B
maken van dezelfde software - momen- geven een mooi stabiel beeld over het
teel PicoScope 6. Deze detecteert zelf welk gehele frequentiebereik. In alle standaard-
model er is aangesloten. Op de CD die we functies is voorzien: triggering (met een
1
bij het proefmodel kregen, zat versie 6.6.14. heleboel opties, zie figuur 2), probe-selec-
“Die hebben we niet nodig”, dachten we, tie, schalen van de assen, laagdoorlaatfil-
want we zouden de nieuwste versie wel bin- ter, XY-grafiek en ‘nalichten’ (persistence
nenhalen via de online update-service van mode). In spectrum-mode heb je 25 MHz
Pico. Nu had Thijs onlangs een 3206B-oscil- bandbreedte en binnen dat bereik kun je
loscoop geprobeerd en daarvoor het Pico- naar believen inzoomen.
Scope-programma al op zijn pc geïnstal- Dat je bij een MSO in deze prijsklasse ook
leerd. We hebben die versie gestart en even een golfvormgenerator krijgt, vinden wij
op ‘check for update’ geklikt, waarop wij als bijzonder. Iedere budgetklasse-scoop heeft
antwoord kregen dat versie 6.6.13 beschik- met zelfs een simpele generator al een
2 baar was. De software op de CD was dus streepje voor. De frequentie is instelbaar en
nieuwer dan die op de website. Dat zie je het bereik gaat tot 100 kHz. Er zijn diverse
niet vaak! presets zoals sinus, blok, driehoek, sin(x)/x
Installatie vanaf de CD verliep probleemloos en witte ruis. Maar je kunt ook zelf je golf-
(Windows XP SP2, Vista of 7 is vereist). Scoop vorm vrij tekenen, op een raster met een
eraan en door de ‘New Hardware Found’- resolutie van maximaal 16.384 samples.
Wizard heen geklikt (niet met Windows Met deze analoge overvloed zouden we
Update verbinden a.u.b.) en voilà, hij deed bijna die 16 digitale ingangen vergeten.
3
74 03-2012 elektor
review
4 5 6
Middels een ordentelijke pop-up kun je we zagen pieken tot wel zo’n 70%. Spec- Nog iets dat we zagen bij onze minitest, was
digitale ingangen selecteren en voorzien trum Mode is dan weer minder veeleisend, dat de stijgtijd afhankelijk lijkt te zijn van de
van een drempelwaarde (dat laatste per met pieken van zo’n 40%. ingestelde tijdbasis. Zie bijvoorbeeld figuur
groep van 8 ingangen). Je kunt ook ingan- 4 en 5: Bij 1 µs/div is de stijgtijd ongeveer
gen groeperen tot een of meer bussen. Alle Punten 778 ns, maar één stapje verder op 500 ns/
16 digitale ingangen samen met de twee om rekening mee te houden div zagen we ongeveer 123 ns en deze laat-
analoge ingangen kun je bij elkaar op één XY-mode is weliswaar aanwezig, maar het ste waarde bleek de juiste bij controle met
scherm laten zien. Daar heeft de pc niet veel is soms wat moeizaam om het gewenste de LeCroy-scoop. Na enig overleg met Pico
meer moeite mee dan wanneer je maar één plaatje op het scherm te krijgen. Dat is iets Technology vonden we de verklaring: we
analoog kanaal laat zien (zie ook hieronder). waar veel digitale scoops last van hebben. hadden de schermresolutie-verbetering op
De vensters kun je zodanig vergroten of ver- Wij hebben dit getest door er een proto- 12 bits ingesteld, omdat we screenshots met
kleinen dat alles er op past. type waar we mee bezig zijn aan te han- mooi afgeronde curves wilden hebben. Deze
De software lijkt behoorlijk stabiel. Als we gen. Bij het scrollen door alle beschikbare instelling blijkt de stijgtijd van het signaal te
de USB-kabel er pardoes uit trekken, dan tijdbasis-instellingen moesten we flink beperken. De software trekt dan de curve
crasht het niet, maar krijgen we een ven- geduld uitoefenen totdat we de gewenste ‘langs de liniaal’, terwijl je daar eigenlijk de
stertje ‘Check USB Cable’ (figuur 3). Steek curve te zien kregen. Dat is natuurlijk de exponentieel stijgende flank zou moeten
je dan de kabel er weer in, dan gaat de soft- omgekeerde werkwijze: je hoort direct te zien. Met de ‘enhancement’ uit (8-bits reso-
ware verder waar die gebleven was. zien wat er gebeurt en je moet niet hoeven lutie) zagen we geen verschil in stijgtijd.
Heel mooi is ook de automatische golf- bijregelen en klikken om te zien wat je wilt Overigens is de Rise-Time-tool in de soft-
vormbuffer, waarmee je tot 10.000 golfvor- zien. Maar het werkte wel en dat kunnen we ware wel heel handig, met keuze uit allerlei
men kunt terugkijken. Met de pop-up ‘Buf- niet zeggen van een andere budget-scoop, soorten metingen (zie figuur 6). Dat is iets
fer Overview’ blader je er doorheen. de LeCroy WaveAce 224 DSO. Dat de XY- dat je vaak zult gebruiken in de praktijk!
mode op digitale scoops niet prettig werkt,
CPU-belasting is blijkbaar een algemeen probleem waar Conclusie
Golfvormen in real time op het pc-scherm gebruikers mee moeten leven. Wij vinden dat dit nieuwe familielid van
laten zien kost behoorlijk veel rekenkracht. Pico veel waar voor zijn geld biedt. De com-
Op ons testsysteem, een al wat oudere Pen- Een ander potentieel zwak punt dat we plete kit bevat alles wat je nodig hebt aan
tium Dual-Core E5400 op 2,7 GHz met 4 GB zagen zijn de prestaties van de AWG. Vanaf probes, connectoren en software om met-
RAM, zagen we de CPU-belasting variëren 10 kHz en hoger zagen we een duidelijke jit- een aan de slag te kunnen. Zelfs als we in
afhankelijk van de gekozen sample-frequen- ter in het gegenereerde signaal. De intern aanmerking nemen dat je er een behoorlijk
tie, van 0% bij ‘off’ (geen meting) tot zo’n gegeneerde golfvorm gaf een wiebelig snelle pc voor nodig hebt - die de meesten
60% met beide kanalen actief en met de beeld op het scherm, onafhankelijk van de trouwens al zullen hebben - dan behoort
bemonsteringssnelheid op 30 golfvormen amplitude van het signaal en vooral bij blok- de 2205 met zijn prijs/prestatieverhouding
per seconde. Merkwaardig maar niet ver- golven en willekeurige golfvormen. Het leek tot de beste meetinstrumenten die wij tot
ontrustend was dat de CPU-belasting niet alsof het een probleem met de triggering dusver onder handen hebben gehad. Een
lineair steeg als we de tijdbasis (collection was, maar toen we dezelfde golven uit een waarschuwing is echter wel op zijn plaats:
time) korter instelden. Bij 100 ms/div was externe generator op dezelfde kanalen zet- je moet nog steeds goed weten wat je doet
er een minimum van 5% CPU-gebruik, maar ten, hadden we een mooi strak beeld. Vol- en hoe je aan het meten bent, want anders
bij 200 ms/div en hoger sprong het CPU- gens Pico Technology wordt het probleem zou je wel eens heel verkeerde conclusies
gebruik naar ~55%, behalve bij 1000 s/div veroorzaakt door kwantisering als gevolg kunnen trekken.
(!) waar het bijna 0% werd. Keken we naar van de vaste kloksnelheid: de timing van (120091)
de kortere tijdbasis-instellingen van 2 µs/div de flanken wordt dynamisch bijgesteld om
en lager, dan zakte de CPU-belasting naar de gemiddelde frequentie over meerdere
Weblink
20...25%, afhankelijk van de instelling. Per- periodes exact op de ingestelde waarde te
sistence Mode vormt de zwaarste belasting, houden. [1] www.picotech.com
elektor 03-2012 75
Elektuur functiegenerator
(dec. 1977)
Jan Buiting (redactie Elektor UK & US) goedkoopste met maar één frequentie (meestal 800 of 1000 Hz), de
geavanceerdere apparatuur met een variabele uitgangsfrequentie in
Wat staat er allemaal paraat op een gemiddelde elektronica-werk- het audiogebied. Servicetechnici en ontwerpers die hogere eisen stel-
bank als er niet alleen maar met microcontrollers wordt gewerkt? den hadden echter meer golfvormen nodig, een groter frequentiebe-
Juist, een soldeerbout, de een of andere regelbare voeding, een reik en een instelbaar signaalniveau, en niet te vergeten stabiliteit en
scoop en een functiegenerator. Deze laatste is vaak vermomd in de een lage vervorming van de uitgangssinus. Dergelijke apparatuur was
vorm van een PC. De functiegenerator is de perfecte probleemop- professioneel en dus meteen ook ver buiten het financiële bereik van
losser en de wezenlijke link tussen apparatuur die: (kruis aan wat de meeste hobbyisten. Hoewel functiegenerators met buizen mid-
van toepassing is) den 1970 wel in de dump te vinden waren, was de klacht meestal: te
groot en zwaar en nog steeds te duur.
¨ Kapot is Ik heb niet bevestigd kunnen krijgen dat de term ‘functie generator’
¨ Een of ander gebrek vertoont slaat op de wiskundige functies die gebruikt worden om een sinus,
¨ Nog in ontwikkeling is driehoek of zaagtand af te leiden van de basis-blokgolf. Daar moet
¨ Onbegrijpelijk is ik echter wel aan toevoegen dat er ook functiegenerators zijn die
¨ Kweenie hun golfvormen opwekken uitgaande van een driehoek. Sommige
¨ Rokend, stinkend, gammel is oude rotten zeiden: “Jan, die apparaten hebben nu eenmaal een hele
¨ Met een stickertje: ‘DOA’ en kennelijk afkomstig van eBay is hoop functies”.
1 2
Pas in de jaren ‘74/75 kwam er een IC op de markt met alles (nou ja,
en de ingang van uw scoop. De manier waarop ‘Box X’ reageert op bijna alles) erin voor het realiseren van een krachtige functiegenera-
de verschillende signalen en signaalniveaus van de functiegenera- tor met veel toeters en bellen voor een lage prijs. En het werd zeer
tor verraadt in feite de werking, tekortkomingen, problemen of het beroemd: de XR2206 van Exar (figuur 1). Nu, na bijna veertig jaar,
gebrekkig functioneren. In het jargon van de analoge IC-ontwerper is het nog steeds te koop bij Conrad en andere elektronicaleveran-
Bob Pease: “Een scoopbeeld zegt meer dan duizend woorden” en ciers! In 1977 begon ontwerper/redacteur Ernst Krempelsauer (nu
dan begint het voor de elektronicaliefhebber pas echt leuk te wor- met pensioen, zie kader) een doe-het-zelf-project te ontwikkelen
den – en houdt Jan met de Pet het voor gezien en gaat tv kijken. op basis van de tamelijk Spartaanse XR2206 datasheet. Dit project
Historisch en functioneel gezien is de functiegenerator of ‘waveform met EPS-nummer 9453 werd door vele duizenden lezers met groot
generator’ de ‘extra-plus-deluxe’ opvolger van het generatordeel van succes nagebouwd in de jaren na de publicatie. Wat een schitte-
de oude signaalvolger, die meestal alleen maar een sinusbron had; de rend resultaat. Op YouTube zag ik iemand met een slordig gebouwd
Retronics is a monthly column covering vintage electronics including legendary Elektor designs. Contributions, suggestions and
requests are welcomed; please send an email to editor@elektor.com
76 03-2012 elektor
exemplaar een kleine JYETech DSO 062 scoop demonstreren [1]. Op Lees het originele artikel voor alle details en de berekeningen [3].
de gezaghebbende website van RadioMuseum.org staat zelfs een Uiteindelijk geeft het draaien aan de lineaire potmeter P1 een vir-
Elektuur-schema met de XR2206 - dat is een hele eer [2]. tueel lineaire verandering van de frequentie over net iets meer dan
Wat bijzonder knap is in het XR2206-ontwerp van Ernst is de manier een decade, bijvoorbeeld van 9 Hz tot 110 Hz. Als bonus kan de
waarop een gewone potentiometer gebruikt wordt om een prak- frequentie ook nog eens verdubbeld worden door schakelaar S2 te
tisch lineair verloop van de frequentieregeling te krijgen, dankzij sluiten (wanneer R5 = R6). Uit de drie deelschema’s die samen de
een combinatie van weerstanden aan de ingang voor de frequen- complete schakeling weergeven van het apparaat heb ik gekozen
3 4
tieregeling van de chip. Ik laat de relevante illustraties zien in de voor de XR2206 sectie die in figuur 4 te zien is. Om eerlijk te zijn,
figuren 2 en 3. Zonder deze schakeling krijgt het verloop van de zijn de uitgangsversterker en de voeding niet echt opwindend, want
frequentieregeling de vorm van een hyperbool of is het nodig op die zijn opgebouwd met doodgewone onderdelen zoals een BC140
zoek te gaan naar een potentiometer met een negatief logaritmisch en BC160, en een L130-spanningsregelaar. Het is grappig dat bij de
verloop – beide oplossingen zijn voor een wiskundige om van te uitgang van de generator ‘AC’ staat. Vanwege de uitgangselco levert
smullen, maar in de praktijk wil je daar zeker niet aan. de uitgang zeker ‘wisselspanning’ maar ik associeer ‘AC’ eerder met
De doorsnee elektronicahobbyist zou gewoon een potmeter tussen netsnoeren, stopcontacten en aansluitingen die je zeker niet wilt
pen 7 en pen 8 van de XR2206 hebben gehangen, met als resultaat: aanraken. Al in 1977 was de redactie van Elektuur afkomstig uit alle
windstreken, de redacteuren spraken verschillende talen en zaten
f = 1 / (Rext Cext) waarschijnlijk niet allemaal op een lijn wat betreft het gebruik van
standaard Engelse bewoordingen zoals ‘output’, ‘out’ of ‘signal out’.
maar met de Elektor I/V-converter-schakeling op de If pen wordt dat: Het afregelen van de frequentieschaal van het instrument was heel
eenvoudig en werd gedaan door een 100-Hz-brom van een paar volt
f = (3 – Uf) / (3 Rs Cext) (afgetakt van een bruggelijkrichter) samen met het uitgangssignaal
elektor 03-2012 77
Ontwerper Ernst Krempelsauer herinnert zich nog…
Toen ik voor de eerste keer een sample van Exar’s functiegenerator-IC van het type XR2206 in handen
kreeg, was ik iets meer dan een jaar bij Elektor waar ik juist - tamelijk onverwacht - gepromoveerd was tot
hoofdredacteur Duitsland in juni 1975.
De XR2206 was niet het eerste IC van dit type, want de ICL 8038 van Intersil werd al in 1973 in Elektuur-scha-
kelingen gebruikt. De 2206 was echter veel beter wat betreft frequentiebereik, signaakwaliteit, veelzijdig-
heid en gebruiksgemak. Na het bestuderen van de datasheet en uitgebreid experimenteren met het IC werd
er een artikel met geteste voorbeeldschakelingen in Elektuur oktober 1975 gepubliceerd, waaronder ook
een lineaire regeling van de frequentie middels een stuurspanning. Desondanks gingen alle functiegene-
rators op basis van de 2206 door met het overnemen van de Exar-schakeling, d.w.z. het regelen van de
frequentie met een potmeter als variabele weerstand, waardoor de frequentieschaal exponentieel verliep.
Ik had voor ogen om een functiegenerator te ontwerpen met een lineaire frequentieschaal, zodat een re-
latief nauwkeurige frequentie-instelling mogelijk zou zijn zonder het gebruik van een frequentiemeter.
Het jaar daarop was ik echter druk bezig met het project van de welbekende Formant-synthesizer (naast
mijn baan als redacteur), zodat de functiegenerator nog even moest wachten. Mijn doel was een zeer
praktisch ontwerp, eenvoudig te bouwen en af te regelen, en met een optimale prijs/prestatie-verhou-
ding. Voor het apparaat werd ook een frontpaneel ontworpen in dezelfde stijl als de frontpanelen van de Formant-modules. Het optimaliseren
van de print door Peter Verhoosel kostte wat meer tijd dan verwacht, maar uiteindelijk werd de ‘Eenvoudige Functie Generator’ gepubliceerd
in de Duitse Elektor van oktober 1977. Kennelijk op het juiste moment, want er werden duizenden printjes van verkocht en de kits bleven nog
vele jaren op de markt – zelfs illegaal nagemaakte versies die vaak als twee druppels water leken op het Elektuur-ontwerp.
van de generator naar een luidsprekertje te sturen en dan een instel- testapparatuur op de labtafel. Afgaande op de nog steeds aanwe-
potmeter op minimale weergave af te regelen. zige belangstelling voor de functiegenerator uit de Elektuurs van
Het exemplaar van de functiegenerator op de foto werd gered uit de 1978 en 1984 denken vele anderen er net zo over.
voormalige Elektuur-kantoren, de toenmalige bedrijfsleiding wilde (120068)
eigenlijk al die ‘oude troep’ weggooien.
Uit de perspex behuizing blijkt dat dit lab prototype was gebouwd Om de ‘herontdekking’ van deze functiegenerator te vieren kan er gratis
om op tentoonstellingen en presentaties getoond te worden, daar een gescande kopie van het originele artikel uit Elektuur december 1977
waren er veel van indertijd. Het grote identificatielabel aan de gedownload worden [3]. Helaas zijn onderdelen, printen en technische
onderkant geeft aan dat het apparaat heel wat kilometertjes gereisd ondersteuning voor het project niet meer beschikbaar.
heeft en ook vele malen door de douane is gegaan (de Europese
grenzen waren toen nog echte barrières). Een kabeltje tussen de
uitgang van de generator en de ingebouwde luidspreker is doorge-
knipt, daaruit mag blijken dat het geluid uit het apparaat niet door Internet links
iedereen op prijs werd gesteld als er op een tentoonstelling voor de [1] www.youtube.com/watch?v=KPtsgFw5Fno
zoveelste keer iemand de onweerstaanbare behoefte kreeg met de
[2] www.radiomuseum.org/tubes/tube_xr2206.html
knoppen en schakelaars aan de gang te gaan. Autoliefhebbers willen
altijd een schop tegen de banden geven. [3] www.elektor.nl/120068
Er zaten wat losse draden in het apparaat en - wat erger was - er zat
geen XR2206 meer in het voetje. Gelukkig schoot Luc Lemmens me
te hulp met een XR2206-chip uit een oude signaalgenerator Play-
tronic WOG 2206 van 1980 die hij nog gevonden had in een van
zijn verhuisdozen. De WOG 2206 lijkt verdacht veel op het Elektuur-
project, zoals in figuur 5 is te zien. Na een half uur deed de Elektuur-
generator het weer als vanouds.
Precies zeven jaar later - was het puur toeval? - verscheen er een
bewerkte versie van de functiegenerator in het decembernummer
van 1984. Dit ontwerp in een grijs/witte Verobox rekende af met
kleine stoorpulsen die op de sinus konden verschijnen. Er waren
ook nog een paar andere verbeteringen, maar het apparaat was
nog steeds gebaseerd op de XR2206. Zo ver ik heb kunnen nagaan
was dit net zo’n succes als de versie van 1978.
Tegenwoordig fungeren laptops, PC’s en zelfs smartphones met
speciale software voor de ingebouwde geluid-chip als functiegene-
rator in het moderne elektronica laboratorium. Ze presteren prima
wat betreft stabiliteit, nauwkeurigheid en vervorming, maar op de
een of andere manier draai ik toch liever aan echte knoppen op mijn 5
78 03-2012 elektor
hexadoku
Hexadoku
puzzelen voor elektronici
Hoeveel verschillende Hexadoku’s kun je bedenken met 16 x 16 getallen? We weten het niet precies, maar
het zijn er in elk geval héél héél veel. Hier is weer een nieuwe variant die u beslist nog niet eerder hebt
gezien. Vul overal de juiste getallen in en maak kans op een van de vier cadeaubonnen door de karakters in
de grijze hokjes naar ons toe te sturen.
De instructies voor deze puzzel zijn heel eenvoudig. De Hexadoku in elke rij, in elke kolom en in elk vak van 4x4 hokjes (gemarkeerd
werkt met de hexadecimale getallen 0 t/m F, helemaal in de stijl van door de dikkere zwarte lijnen). Een aantal getallen is in de puzzel al
elektronici en programmeurs. aangegeven en deze bepalen de uitgangssituatie voor de puzzel.
Onder de inzenders met de goede oplossing verloten we elke maand
Vul het diagram van 16 x 16 hokjes zodanig in dat alle hexadecimale een hoofdprijs en drie troostprijzen. Daartoe dient u de getallen in
getallen van 0 t/m F (dus 0...9 en A...F) precies eenmaal voorkomen de grijze vakjes naar ons op te sturen.
De prijswinnaars
De juiste oplossing van de Hexadoku uit het januari-nummer is: 4 3 AD E
De Elektor-tegoedbon van 100 Euro is gewonnen door Christian Klems uit Nijkerk (NL).
De Elektor-tegoedbonnen van 50 Euro zijn gewonnen door Antje Völksch uit Bayreuth (D),
Raúl Elguezabal Martínez uit Barakaldo – Vizcaya (ES) en Marc Herzog uit Luxemburg (L).
Allemaal van harte gefeliciteerd!
6 B 7 A 3 0 8 9 1 5 D C 2 4 E F
8 C 9 E 6 B 4 F 2 0 A 7 3 D 5 1
F D 1 2 7 5 A C 3 4 9 E 8 0 6 B
0 5 3 4 D E 1 2 6 8 B F 7 9 A C
7 F D 0 E C B 5 8 2 4 A 1 3 9 6
4 A 6 8 2 3 0 1 C 9 F B E 5 D 7
C 3 B 1 4 6 9 7 E D 0 5 A 8 F 2
9 E 2 5 8 A F D 7 1 6 3 B C 0 4
A 0 C F 5 7 2 E 4 3 8 9 6 B 1 D
D 6 E 3 F 1 C B 0 A 5 2 4 7 8 9
B 1 8 9 0 4 3 A D E 7 6 C F 2 5
2 4 5 7 9 8 D 6 B F C 1 0 E 3 A
3 7 0 6 A F 5 4 9 B 2 8 D 1 C E
E 8 A C B 9 7 0 F 6 1 D 5 2 4 3
1 9 4 D C 2 6 3 5 7 E 0 F A B 8
5 2 F B 1 D E 8 A C 3 4 9 6 7 0
Medewerkers van Elektor International Media en hun familieleden zijn van deelname uitgesloten.
elektor 03-2012 79
CD-ROM’s & DVD’s
Best verkocht!
Microprocessoren ontwerpen Inclusief gratis mikroC-compiler CD-ROM
Ruim 25 projecten met het ATM18 board
CD ATM18 Collection
Microprocessor Design Controller Area
Op deze CD-ROM hebben we alle artike- using Verilog HDL Network Projects
len van het populaire Elektor-CC2-AVR Met behulp van de juiste tools is het Dit boek (Engelstalig) is ideaal voor mensen
project voor u gebundeld. Het gaat om ontwerpen van een microprocessor niet die meer willen leren over de CAN-bus en
meer dan 25 projecten met het populaire zo ingewikkeld. Een van zulke tools is de zijn toepassingen. Het doel van het boek is
ATM18 board. Ook de project software Verilog Hardware Description Language de lezer wegwijs te maken in de basis-
en de print layouts in PDF-formaat staan (VHDL). Hiermee kunt u een elektronische principes van CAN-netwerken en te leren
op de CD evenals een cursus AVR- schakeling beschrijven, simuleren en hoe microcontroller-gebaseerde projecten
programmeren met BASCOM en veel synthetiseren. Daardoor stijgt de produc- met de CAN-bus kunnen worden ontwik-
handige extra documentatie. tiviteit, doordat de totale werkbelasting keld. U leert CAN-bus-nodes te ontwerpen,
voor een project flink daalt. Dit boek een CAN-bus te bouwen, hoogwaardige
ISBN 978-0-905705-92-7• € 29,50
(Engelstalig) vormt een praktische gids programma’s te ontwikkelen en data in
voor het ontwerpen van microproces- real-time uit te wisselen over de bus. Ook
soren. Het boek behandelt de Verilog leert u het bouwen van microcontroller-
HDL op een eenvoudig te volgen wijze en hardware en die te inter facen met LED’s,
het vormt tevens een goede inleiding LCD’s en A/D-converters.
voor het begrijpen van de opzet van
computerarchitectuur en een instructie- 260 pagina’s • ISBN 978-1-907920-04-2 • € 34,50
actief. U kunt dus zelf componenten toe- wen vandaar de kennis op. U heeft dus geen
Tel. +31 (0)46 - 43 89 444
voegen, wijzigen of aanvullen. De CD-ROM voorkennis nodig. Wanneer u alle lessen
Fax +31 (0)46 - 43 70 161
bevat gegevens van meer dan 70.000 com- volgt en de oefeningen maakt, kunt u zelf
E-mail: order@elektor.nl
ponenten en is een absolute must voor PIC microcontroller programma’s schrijven
iedere elektronicaliefhebber! en programma’s van anderen lezen.
elektor 03-2012 81
SHOP BOEKEN, CD-ROM’s & DVD’s, KITS & MODULES
Boeken
Nieuw!
AndroPod
Van top auteur Burkhard Kainka (februari 2012) USB-FT232R
Basiscursus Android-smartphones en -tablets hebben breakout-board
BASCOM-AVR een aanraakscherm met hoge resolutie, (september 2011)
In dit boek staat de programmering van overvloedige rekenkracht, WLAN en
ATmega- en ATtiny-microcontrollers cen- telefoniefuncties. Deze eigenschappen De geringe afmetingen van deze USB-
traal. BASCOM is hiervoor een ideaal gereed- maken hen ideaal om als commando- serieel-omzetter springen het meest in
schap. Na een minimale voorbereiding kunt centrum in uw eigen projecten dienst het oog: niet groter dan de aangegoten
u al beginnen uw eigen ideeën te realiseren. te doen. Tot nu toe was het niet echt ge- plug van een USB-kabel! Maar hij heeft
Wat u ook wilt ontwikkelen, in de meeste makkelijk om deze apparaten met externe nog meer prettige eigenschappen, want
gevallen heeft een ATmega alles aan boord elektronica te verbinden. Maar dat gaat hij is snel inzetbaar, te gebruiken met
wat u nodig hebt. Er is een brede hardware- veranderen met AndroPod, een interface- meerdere besturingssystemen (Windows,
basis beschikbaar. Of u nu de STK500 van board dat beschikt over een seriële Linux, etc.), herbruikbaar en bovenal hele-
ATMEL gebruikt, de ATM18 of een eigen TTL-uitgang en een RS485-uitgang. maal niet duur. Gewoon een heel handig
print, u kunt de voorbeelden uit dit boek dingetje.
meteen in praktijk brengen. Op de CD-ROM Opgebouwde en geteste print met
bij dit boek vindt u voorbeeldprogramma’s RS485 uitbreiding Opgebouwde en geteste print
en software. Art-Nr. 110405-91 Art-Nr. 110553-91• € 15,00
432 pagina’s • ISBN 978-90-5381-213-6 • € 34,50 Art-Nr.110538-71 • € 39,95 Art-Nr. 100888-73 • € 34,95
Boeken
120103-94 ....Voedingssteker 5 V/1 A met micro-USB-aansluiting .......... 8,95
311 Schakelingen
Pico-C-Plus en Pico-C-Super
110687-41 ....geprogr. controller ........................................................... 4,95
4 ISBN 978-90-5381-213-6 ........................e 34,50
110687-42 ....geprogr. controller ........................................................... 4,95
Basiscursus BASCOM-AVR
Terug naar de basis (2)
ELEX-1 ...........Elex-experimenteerprint enkel.......................................... 5,50
5 ISBN 978-90-5381-094-1 ........................e 39,95
USB-FT232R breakout-board
2
December 2011 (Nr. 578)
Hier komt de bus (10) Art-Nr. 110553-91 ..................................e 15,00
110258-1 ......print ................................................................................. 5,95
Universele USB-weer-datalogger
110258-1C3 ..set van 3 Experimental Node printen ............................... 12,95
110258-91 ....opgebouwde en geteste module .................................... 24,95
3 Art-Nr. 100888-73 ..................................e 34,95
Elektromechanische thermometer
Elektronische thermometers met een LCD vind je in elke supermarkt voor een paar Euro.
Als elektronicus zoek je natuurlijk naar een originelere manier om de temperatuur weer
te geven. In dit geval is dat wel heel bijzonder. Hierbij is voor de uitleeseenheid gebruik
gemaakt van een mechanische scoreteller uit een oude flipperkast. De aansturing van
deze elektromechanische teller gebeurt door een ATtiny2313 die de omgevingstempera-
tuur ontvangt van een TMP100-sensor en aan de hand daarvan de bekrachtigingsspoelen
van de teller van de nodige pulsen voorziet.
High-end preamp
Na de bijzondere 5532-OpAmplifier eindversterker (oktober/november 2010) heeft de
bekende audio-ontwerper Douglas Self hard gewerkt aan een bijpassende voor/regelver-
sterker die eveneens gebruik maakt van (parallel geschakelde) 5532-opamps. In het Elektor-
lab zijn de afgelopen maanden bijpassende printen ontworpen voor dit uitgebreide ontwerp
dat veel instel- en regelmogelijkheden biedt. Volgende maand starten we met een introduc-
tie waarin de globale opzet van de voorversterker wordt beschreven, als lekkermaker toont
de foto alvast de aparte MD/MC-voorversterkerprint van zeer hoge kwaliteit.
RS485-schakelprint
Het ElektorBus-project is ideaal voor allerlei meet-, schakel- en regeltaken, maar ook voor
domoticatoepassingen. In de volgende uitgave presenteren we een compacte domotica-
schakelmodule voor de ElektorBus, die is uitgerust met twee relais, een ATmega88 en een
RS485-driver. Hiermee kunnen 230-V-verbruikers worden in- en uitgeschakeld; bovendien
zijn twee controller-ingangen toegankelijk via printkroonsteentjes waarop eenvoudig
schakelaars e.d. kunnen worden aangesloten. De voor deze module ontwikkelde software
is natuurlijk ElektorBus-compatibel.
verder op de Elektor-website
• Het laatste elektronicanieuws
• Wekelijkse nieuwsbrief
• Lezersforum an FAQ’s
• Speciale aanbiedingen
84 03-2012 elektor
Dit vlak tegen onderstaand vlak plakken
✁
of nieten!
Ik bestel de onderstaande Elektor-producten:
Elektor bestelkaart
03-2012
lk
lk
11 nummers voor g 87,50
pagina’s! 311 Schakelingen y 34,50
PIC Microcontrollers Programmeren y 36,50
Plus abonnement:
11 nummers, inclusief de jaargang DVD-ROM 2012
Basiscursus BASCOM-AVR y 39,95
en exclusieve toegang tot www.elektor-plus.nl TIP * De jaargang DVD-ROM
Mastering the I²C Bus y 34,50
voor g 105,00* wordt u na verschijning
(februari 2013) auto-
CD ECD 6 y 29,50
matisch toegezonden. CD 1002 Schakelingen y 39,50
Ik wacht met betalen totdat ik uw factuur
heb ontvangen.
Een jaarabonnement kan op ieder gewenst tijdstip ingaan en loopt automatisch door, tenzij het 1 maand voor de verval-
✁ datum schriftelijk, per e-mail of telefonisch is opgezegd. U ontvangt altijd een schriftelijke bevestiging van uw opzegging.
Ja, ik neem een proefabonnement
EL03/12
op Elektor!
Ik ontvang de komende 3 uitgaven Verzendkosten binnen Nederland: y 6,50 y
voor slechts g 14,90 in mijn brievenbus.* Verzendkosten buiten Nederland: y 8,50 y
TOTAALBEDRAG y
Dit is een korting van bijna 43% op
Ik betaal deze bestelling als volgt (kruis uw keuze aan)
de losse nummerprijs van y 8,75!
Ik betaal met de factuur die ik bij de levering van Handtekening
de bestelde producten ontvang.
Het proefabonnement stopt automatisch en
ik heb geen verdere verplichtingen.
! Ik machtig Elektor International Media BV eenmalig
het totaalbedrag van mijn bank/giro af te schrijven Handtekening
*Dit aanbod geldt alleen
Ik wacht met betalen totdat ik uw factuur (Geldt alleen voor Nederland)
wanneer u de afgelopen
12 maanden geen Mijn bank/gironummer
heb ontvangen.
abonnement gehad heeft.
Vul uw naam en adres Dit vlak tegen bovenstaand vlak plakken
✁ op de ommezijde in! of nieten!
✁
Dit zijn mijn gegevens: Binnen
✁
Nederland
Elektor Electronics Toolbox geen
Naam m/v postzegel
nodig!
iPod/iPad/iPhone-app voor elektronici
Adres
Deze Electronic Toolbox is een
uitgebreid naslagwerk over Aan
Postcode
elektronica met handige
calculatie- en conversie Elektor
tools, gebundeld in een Woonplaats
International Media BV
app.
Antwoordnummer 50008
Nu verkrijgbaar in de Land
iTunes-Store van Apple 6114 WV Susteren
voor slechts € 4,99! Nederland
E-mail
6114wv50008
Kijk voor meer info op www.elektor.nl/app
Aan Aan
Postcode Postcode
Elektor Elektor
Woonplaats International Media BV Woonplaats International Media BV
Antwoordnummer 50008 Antwoordnummer 50008
Land Land
6114 WV Susteren 6114 WV Susteren
Nederland Nederland
E-mail E-mail
6114wv50008 6114wv50008
✁ ✁
VIND
ONTWERP
BESTEL
www.rsonline.be/elektronica