Cast Wysiwyg R35 Cracked Magazine Download
Dodoma, Tanzania. Miami, United States. Click Run if prompted and the Online Launcher will automatically install Cast wysiwyg r32 Setup+Patch+Crack+Keygen]. Enjoy a FULLY ACTIVATED Cast wysiwyg r32 Setup+Patch+Crack+Keygen. Download Cast wysiwyg r32| 594 MB free. download full Version Lifetime Unlimited Use Multiuser Tested 100% Working. Multilaguage English. Literally a quarter of the recurring cast has a title of some kind. From Cracked Magazine. Praia escola for cantor rbd blog safadas letra fazendo fotolog. Picktorrent: cast wysiwyg r36 crack - Free Search and Download Torrents at search engine. Download Music, TV Shows, Movies, Anime, Software and more. WYSIWYG Flames Of War is a rWhat You See Is What You Get. On each die would go up to 5+ the score needed ever goes above 6 then the attempt automatically fail.
www.elektor-magazine.com
July & August 2013 | £ 7.90
PROJECT GENERATOR EDITION 1
-
O
70 CMS WIDEBAND FM EXCITER
I
AMBIENCE LIGHTING
CONTROLLER 3 2 1
ANDROID ELEKTOR CARDIOSCOPE
132 PAGES
X-TREME INRUSH CURRENT LIMITER
PACKED WITH NEW DESIGNS
SMARTPHONE A/V REMOTE CONTROL
The world’s first digitally enhanced power analog controller New analog-based power management controller with integrated microcontroller
Combine the flexibility and I2C communication of digital DC/DC power conversion, with the speed, performance and resolution of analog-based control, by using Microchip’s new MCP19111 power management controller. The MCP19111 is a new hybrid, mixed-signal controller which combines analog and digital power management into a single chip. By integrating an analog-based PWM controller, a Flash-based 8-bit PIC® microcontroller, and MOSFET drivers for synchronous, step-down applications, the MCP19111 enables configurable, high-efficiency power conversion. With transient performance of analog power conversion, the MCP19111 eliminates the need for a high-MIPS microcontroller or a high-speed A/D converter, minimising solution cost and power consumption.
GET STARTED IN 3 EASY STEPS: 1. Evaluate the MCP19111 using the low-cost ADM00397 board 2. Combine with SMPS-optimised MCP87xxx MOSFETs 3. Customise DC/DC conversion to match your application
To support even higher efficiency, the MCP19111 can be used to drive Microchip’s latest MCP87xxx high-speed, SMPS-optimised MOSFETs. These logic-level 25V MOSFETs offer a low Figure of Merit (FOM) with on-state resistance from 1.8 mΩ to 13 mΩ to deliver higher DC/DC power conversion efficiency.
For more information, go to: www.microchip.com/get/eumcp19111
The Microchip name and logo, and MPLAB are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. All other trademarks mentioned herein are the property of their respective companies. ©2013 Microchip Technology Inc. All rights reserved. DS25169A. ME1058Eng02.13
magazine
Contents
Project Generator 8 Android ElektorCardiyscope (1) Wireless, button-free: Bluetooth & touch screen
18 Step Exercises A stepper motor driver for the ElektorBus
26 Wideband 70-cms FM Exciter with 130 mW output power
34 Smartphone A/V Remote Control Transmitter plus App for Android devices
42 Ambience Lighting Controller Setting the mood with RGB LEDs
52 Charge-a-Phone on NiMH with the Elektor USB Power Pack
56 Big Amps DC Motor Driver 58 X-Treme Inrush Current Limiter A controlled start for Big Electrolytics & Co.
62 Acoustic Spirit Level / Tilt Alarm An ATtiny45 design with many uses
64 2-Wire Interface 3.0 A new approach to an earlier problem
68 Accurate Universal Measurement Interface
Solar energy powers an LED in night time hours
72 CDI Ignition For Spartamet and Saxonette mopeds Better spark—better mpg for a twostroke motor
74 Simple Servo Tester Basic test gear for modelers
76 Slow-Start Stabilizer Clean supply voltage but with a delay
78 8× Relays—and Much More Expansion modules for Linux and other controller boards
Accuracy—quite simply
82 Store it Quickly 2.0 48 PWM Step Up Converter Get up, stand up...
4 | July & August 2013 | www.elektor-magazine.com
70 Solar-Powered Night Light with Li-ion Backup
A new approach to an earlier problem
Volume 39
–
No. 439 & 440
Labs 84 Another Look at Some Specific Points of the 500 ppm LCR Meter The luxury of precision within everyone’s reach
98 Celebrate! 5 Kmembers on elektor-labs.com
99 SMD Desoldering Tip
July & August 2013
Magazine 114 Retronics Philips PR9150/PR9151 Surface Roughness Testers Series Editor: Jan Buiting
Bend some copper wire in shape
120 Hexadoku Elektor’s monthly puzzle with an electronics touch
90 Spot the Difference Arduino Uno vs. GR Sakura FULL
92 Wideband Wien Oscillator with Single-Gang Pot Avoiding the costly and rare 2-gang log pot
94 4 Amps Photovoltaic Charge Controller
Industry 100 Professional PCB Manufacturing How your four-layer PCB gets produced at Elektor PCB Service
106 News & New Products
Designed front to end for minimum losses between PV panel and battery
122 Gerard’s Columns: Penny Wise and Pound Foolish A column or two from our columnist Gerard Fonte
130 Next month in Elektor A sneak preview of articles on the Elektor publication schedule
Tech the Future 96 Starting a Schematic Design Neil Gruending’s second article on getting started with DesignSpark
110 Care Robots The future of health care
www.elektor-magazine.com | July & August 2013 | 5
•Community Volume 39, Number 438, June 2013 ISSN 1757-0875
A Case for Boards
Publishers: Elektor International Media, 78 York Street, London W1H 1DP, United Kingdom. Tel. +44 (0)20 7692 8344 www.elektor.com
design and production rank pretty high.
Looking at our readers’ main interests, PCB Elektor PCBs are famous the world over not just for their quality, but also their consistent look and feel. How did that come about? Here at Elektor, the change from manual
The magazine is available from newsagents, bookshops and electronics retail outlets, or by membership. Elektor is published 10 times a year with a double issue for January & February and July & August. Memberships: Elektor International Media, 78 York Street, London W1H 1DP, United Kingdom. Tel. +44 (0)20 7692 8344 Internet: www.elektor.com/member Email: [email protected]
artwork design using masking tape and photographic reproduction techniques to a 100 % PC-driven process was gradual, and took place in the early 1990s. The use of a PC to draw a schematic and then run a PCB design program was not forced or even suggested by the publishers at the time. Back then, some of the younger lab designers boldly set out to discover the advantages of the PC route, eventually supplying files instead of drawings to their colleagues in the PCB design department. Oth-
Head Office: Elektor International Media b.v. P.O. Box 11 6114 ZG Susteren The Netherlands. Telephone: +31 (0)46 4389444 Fax: +31 (0)46 4370161 Distribution: Seymour, 2 East Poultry Street, London EC1A, England. Telephone:+44 (0)20 7429 4073 UK Advertising: Elektor International Media b.v. P.O. Box 11 6114 ZG Susteren The Netherlands. Telephone: +31 (0)46 43 89 444 Fax: +31 (0)46 43 70 161 Email: [email protected] Internet: www.elektor.com/advertising Advertising rates and terms available on request. Copyright Notice The circuits described in this magazine are for domestic use only. All drawings, photographs, printed circuit board layouts, programmed integrated circuits, disks, CD-ROMs, software carriers and article texts published in our books and magazines (other than third-party advertisements) are copyright Elektor International Media b.v. and may not be reproduced or transmitted in any form or by any means, including photocopying, scanning and recording, in whole or in part without prior written permission from the Publisher. Such written permission must also be obtained before any part of this publication is stored in a retrieval system of any nature. Patent protection may exist in respect of circuits, devices, components etc. described in this magazine. The Publisher does not accept responsibility for failing to identify such patent(s) or other protection. The submission of designs or articles implies permission to the Publisher to alter the text and design, and to use the contents in other Elektor International Media publications and activities. The Publishers cannot guarantee to return any material submitted to them. Disclaimer Prices and descriptions of publication-related items subject to change. Errors and omissions excluded. © Elektor International Media b.v. 2013 Printed in the Netherlands
6 | July & August 2013 | www.elektor-magazine.com
ers stuck to pencil, paper and rubber with equally good results particularly in RF and space critical designs. No matter how the final artwork got produced, Elektor never actually mass-produced their circuit boards—this was always farmed out to PCB manufacturers. We did, however, handle the storage and packaging of what must have amounted to hundreds of thousands of those blue and green boards. Also, to this day Elektor Labs have their own PCB etching and drilling facilities. The equipment is used to make prototypes and one-offs of any board, single or double sided, TH or SMD. I do recall the excitement in the lab and editorial offices about 20 years ago when a parcel arrived containing 500 or so boards for a recently published project. At last, the proud designer was able to see the fruit of his design efforts. More importantly however, readers all over the world were able to construct circuits on superbly produced circuit boards with a component overlay and silk screen finish! Today, there is still the satisfaction not only of publishing these wonderful designs and getting response from you, but also of holding a perfectly machined printed circuit board with an Elektor production number printed to aid identification.
Jan Buiting, Managing Editor
The Team Managing Editor:
Jan Buiting ([email protected])
International Editorial Staff:
Harry Baggen, Thijs Beckers, Eduardo Corral, Wisse Hettinga, Denis Meyer, Jens Nickel, Clemens Valens
Design staff:
Thijs Beckers, Ton Giesberts, Luc Lemmens, Tim Uiterwijk, Clemens Valens, Jan Visser
Membership Manager:
Raoul Morreau
Graphic Design & Prepress:
Giel Dols, Jeanine Opreij, Mart Schroijen
Online Manager:
Daniëlle Mertens
Managing Director:
Don Akkermans
Our network
United Kingdom Wisse Hettinga +31 (0)46 4389428 [email protected]
USA Hugo Vanhaecke +1 860-875-2199 [email protected]
Germany Ferdinand te Walvaart +49 241 88 909-17 [email protected]
France Denis Meyer +31 46 4389435 [email protected]
Connects you to
Netherlands Harry Baggen +31 46 4389429 [email protected]
Spain Eduardo Corral +34 91 101 93 95 [email protected]
Italy Maurizio del Corso +39 2.66504755 [email protected]
Sweden Wisse Hettinga +31 46 4389428 [email protected]
Brazil João Martins +55 11 4195 0363 [email protected]
Portugal João Martins +351 21413-1600 [email protected]
Supporting Companies ARM, Inc
FTDI
www.arm.com/ds5 . . . . . . . . . . . . . . . . . 41
www.ftdichip.com. . . . . . . . . . . . . . . . . . .3
AudioXpress
Intelligent Soc s.l.
www.audioamateur.com . . . . . . . . . . . . 113
www.soclutions.com . . . . . . . . . . . . . . . . 75
Beta Layout
Labcenter
www.pcb-pool.com . . . . . . . . . . . . . . . . . 33
www.labcenter.com. . . . . . . . . . . . . . . . 132
Crystalfontz
Microchip
India
www.crystalfontz.com . . . . . . . . . . . . . . . 77
www.microchip.com/get/eumcp19111 . . . .2
Sunil D. Malekar +91 9833168815 [email protected]
Customer Computer Service
Pico Technology
www.ccsinfo.com/elektor . . . . . . . . . . . . 121
www.picotech.com/PS218 . . . . . . . . . . . 131
Russia
Earth Computer Technologies . . . . . . . . . . .
RF Consultant
www.earthlcd.com/ezlcd-304 . . . . . . . . . . 25
www.rf-consultant.com . . . . . . . . . . . . . . 47
Elprotronic
Schaeffer AG
Turkey
www.elprotronic.com . . . . . . . . . . . . . . . 77
www.schaeffer-ag.de. . . . . . . . . . . . . . . . 75
Zeynep Köksal +90 532 277 48 26 [email protected]
EMAC
Technologic Systems
www.emacinc.com/panel_pc/ppc_e4+.htm. . 83
www.embeddedarm.com/ad.php?ad=42 . . 66
South Africa
Eurocircuits
WIZnet
Johan Dijk +31 6 1589 4245 [email protected]
www.elektorpcbservice.com . . . . . . . . . . . 89
www.wiznettechnology.com . . . . . . . . . . . 17
Nataliya Melnikova +7 (965) 395 33 36 [email protected]
China Cees Baay +86 21 6445 2811 [email protected]
Not a supporting company yet? Contact Johan Dijk ([email protected], +27 78 2330 694) to reserve your own space for the next edition of our members' magazine
www.elektor-magazine.com | July & August 2013 | 7
•Projects
Android Elektorcardi y scope (1)
Wireless, button-free: Bluetooth & touch screen The title says it all—this article describes an electrocardioscope you can build yourself, using an Android tablet or smartphone as a wireless terminal for viewing the electrocardiograms. The project involves skillfully combining a small PIC interface to control an analog input stage with a great deal of software.
By Marcel Cremmel (France) in co-operation with Raymond Vermeulen (Elektor Labs)
8 | July & August 2013 | www.elektor-magazine.com
Cardioscope
Technical Specifications • Interface for Android phones or tablets with Bluetooth • Simultaneous or individual scrolling display
• Common-mode rejection: > 100 dB • Max. contact voltage: ± 150 mV • Auto-adaptive alignment time constant
of the three standard leads (DI, DII, and
• Frequency response: 0.005 Hz to 170 Hz
DIII) and the three enhanced leads (aVR,
• Dynamic trace memory: 10 minutes
aVL, and aVF)
• ECG recording in flash memory (10 min)
• Adapts automatically to screen resolution • Measures and displays cardiac rhythm • Audible heartbeat indication • Scrolling speeds: 250/125/62.5 and 31.25 pixels per second • Display gain: ×1 ×1.2 ×1.5 ×2 ×3 and ×10 • Full-scale sensitivity: 3.2 mV. 10-bit conversion • Sampling frequency: 2 kHz
When Elektor published an electrocardioscope based on a GameBoy games console back in 2006, the little Android robot didn’t yet exist— or was at an embryonic stage at most. Seven years on, a vast number of applications are using it; at the time of publication, there are
• Periodic injection of 1 mV/2 Hz calibration signal • Powered by 2 no. 1.5 V primary or 1.2 V rechargeable cells • Constant display of battery voltage • Current consumption: 50 mA (standby: 10 MΩ) and low offset volt-
12 | July & August 2013 | www.elektor-magazine.com
age. It’s very tempting to use a specialized integrated circuit for this (e.g. the ADS1294 from TI). But it is also possible, without any concessions in terms of quality, to build a differential amplifier using standard TLC2252 operational amplifiers (op-amps), a low-power rail-to-rail type (for dynamic range) with low noise. Its cut-off frequency and slew rate are only modest—but more than enough for an ECG signal. The major (but acceptable) concession in this choice is the preset resistor to optimize the CMRR, which cannot be dispensed with.
Functions of the analog section Before looking in detail at the ECG interface circuit, let’s examine its structure (Figure 3) and functions. The four electrodes are connected to the inputs RA (right arm), LA (left arm), LL (left leg), and RL (right leg). As the electrocardiograph is sometimes use in conjunction with a defibrillator, it needs to be protected against the high voltages produced by this type of device: this is the job of function F1. Under normal conditions, this function’s output voltages are equal to its input voltages. The protection only comes into operation if the voltages measured exceed the level of the supply rails, i.e. ±3.3 V. The multiplexing function F2 lets us replace the RA, LA, and LL signals by a P2HZ calibration signal with an amplitude of 1 mV and a frequency of 2 Hz. The multiplexer is activated on request once a minute for 10 s in order to observe the calibration signal on the screen. When establishing a diagnosis, the calibration signal gives an amplitude reference for the ECGs measured. The instrumentation amplifier is formed by functions F3 and F4. Function F6 is a 2nd order lowpass filter with a characteristic frequency of 170 Hz and damping factor m = 0.71 (Butterworth). This attenuates all the components outside the wanted frequency spectrum and serves as an anti-aliasing filter for the following ADC (Analog/Digital Converter). The overall gain is obtained as follows: AD3 = 21×, AD4 = 1×, and A6 = 49×. The gain reference corresponds to the reference of the functions: AD3 is the differential amplifier of F3 (F3.1 or F3.2), and so on. In line with our objectives, the total gain is 1029×. The gain in the first two stages is relatively low in order to increase the effectiveness of the auto-zero function. The other functions (F5, F7, and F8) support the instrumentation amplifier to ensure proper opera-
Cardioscope
input amplifiers’ quiescent voltages are correct, without impairing their intrinsic input impedance. In addition, a natural but highly inconvenient phenomenon appears when the electrodes are fitted: a contact emf is generated between the skin and the metal of the electrode. This microbattery is very weak (a few tens of mV) but is not eliminated by the instrumentation amplifier. Quite the reverse: it is amplified! Functions F7 and F8 partially reduce this phenomenon, but the offsets between the + and − outputs of F3.1 and F3.2 can still reach several volts. These offsets are compensated by functions F5.1 and F5.2, to avoid saturation in the F4.1, F4.2, F6.1, and F6.2 stages. F5.1 and F5.2 compare the average values of
Figure 4a. Analog schematic.
R44
2
8
C35
8
C36
IC5 1u 10V
4
8
C37
IC6 1u 10V
4
C38
C33
1u 10V
1u 10V
IC7 1u 10V
4
4
8
IC8
R47
IC8 = LMC6482AIM
4
IC4...IC7 = TLC2252AID
2
R49
1
IC4.A
IC5.B
R25
6
10M
5
R27 2M2
2
R28
12
10k
100R
R55 6
D1
A
2
1
5
5
4
+3V3
16
7
IC4.B
7
R50 47k
R59
C41
–3V3
RL
4
1
R20 10k
5
5 3
+3V3 A
16
D2
BAV99S
3
6
7
–3V3 4
5
1
2
C39
C40
100n 25V
100n 25V
X
X1 Y0
Y
Y1 Z0
Z
Z1 VCC
A B
VEE C GND ENABLE 8
C17
14
3
15
2
IC3.A
C18 11 10 9
R23 1k
C19
A0 A1
AN
A2
100n 25V
13
A
A3 VCC
S0
S1 VEE GND ENABLE
10
AI
9
BI
6
100n 25V
100n 50V
100n 50V
C28
5k
100n 50V
R58
6
R61
R56 6 5
IC3.B
7
R52 47k
47k
7
IC6.B
6
R29 47M
IC11 CD74HC4052PW
C26
R30 10M
1
1u 10V
R31
2
5
2M2
4
R32 470k
12 14 15
16
5
A
DII C22
+3V3
11
6
R34
TP7
5
+3V3
IC7.B
7
IC8.B
A
3 A
5
47n 25V
R39
R48
2k
A
C27
R42 470p 50V 6 28k7
R41 28k7
1
IC6.A
P3
1n
IC7.A
3 P2 2
C20
2 1
R51 47k
R57
4
R24 390k
+3V3
R36
C23
1
50V
–3V3
TP9
3
B3
100k
X0
BN
B2
1M4
3
2
13
B1
R43
45k3
LL
R19 10k
100n A 25V
R60
100k
2
12
9k1
1
LA
IC9 DG4053AEQ-T1-E3
3
R18 10k
100k
RA
100n 25V
100k
6
K1
C42
R35
B0
8
100k
BAV99S
11
100k
–3V3
15
100k
+3V3
14
R62
TP5 R22
4
470k
R54
390k P2HZ
1
R26
1u 10V
R65
R21 330k
IC10 CD74HC4052PW
47M
C25
47k
R53 100k
–3V3
DI C21
A
3
27R
TP6
+3V3
5 7
1u 10V
R64
A
to digital and power supply schematic
C31
8
IC4 1u 10V
R33
10k
C34
4
1
IC8.A
7
7
–3V3
C43
C44
100n 25V
100n 25V
R37
B0 B1
BN
B2
TP8
3 C24
B3 A0 A1
AN
A2
100n A 25V
330K
8
IC3
3
47n 25V
R40 47k
45k3
A
2
C30
5k 1u 10V
R45 28k7
R46 28k7
1
IC5.A
10k
P1
L9 [email protected]
C32
1M
R63 27R
470p 50V
13
100n 25V
R38 330k
+3V3
C29
1M4
3
330k
tion. The operational amplifiers are powered at between −3.3 V and +3.3 V. The ideal quiescent voltage for each of their three terminals is 0 V. The RL electrode sets the average voltage (quiescent point) for the active electrodes via functions F7 and F8. It is shown that the F7 output voltage is equal to the average of the RA, LA, and LL voltages. This is compared by F8 with the 0 V set point, and the amplified error voltage produces the voltage of the RL electrode. As no current flows in the electrodes, the RA, LA, and LL voltages are equal to that on RL (to within a few mV). In this way, we create a real servo loop through the skin: the average of the active electrode voltages is maintained equal to the set point of 0 V. That’s what we were aiming for: the
A
A3 VCC
S0
S1 VEE GND ENABLE 8
10
AII
9
BII
6
CAL 120107 - 11
www.elektor-magazine.com | July & August 2013 | 13
•Projects
+3V3 L4
L1
1M
10k
4uH7
C6
1 T1
GDR
GND
IC13 LTC1981ES5
4
GATE
R16
PSMN6R5 -25YLC
3
3
SHDN
100k
TP3
S2
C13
C14
ON/OFF
33u 6V3
10u 6V3
L8
D3
L3 [email protected]
C3
C7
C8
C9
C10
10u 6V3
100n 25V
10u 6V3
100n 25V
HSMC-A461-V00M1
4
5
5 6
S1
7 CAL
11
RESET
3K3 RB15/RP15/AN9
RB0/PGD1/EMUD1/RP0
RB14/PMWR/RP14/AN10
RB1/PGC1/EMUC1/RP1
RB13/PMRD/RP13/AN11
RB2/RP2/SDA2/AN4
RB12/PMD0/RP12/AN12
RB3/RP3/SCL2/AN5
RB11/PMD1/RP11/TMS
RB4/RP4/PMBE
RB10/PMD2/RP10/TDI RB9/PMD3/SDA1/RP9/TDO
DI
2
DII
3 9 10
P2HZ
12
PIC24FJ32GA002 RA0/AN0
RB8/PMD4/SCL1/RP8/TCK
RA1/AN1 RA2/CLKI/OSCI
RB7/PMD5/INT0/RP7
RA3/CLKO/OSCO/PMA0 RA4/T1CK/PMA1 DISVREG 19
100n 25V
RB6/PMD6/ASCL1/RP6 RB5/PMD7/RP5/ASDA1
VSS 8
VSS VCAP/VDDCORE 27
20 C2
to analog schematic
10u 6V3
26
11
25
BII
24
AII
23
STATUS
22
BI
21
AI
18
TX
17
RX
16
RESET
15 14
SETBAUD
VCC R9 1k
R10 1k R11 1k R8 1k R7 1k
19 9 10 14 13 5 3 4 16 15
MOD1 PIO2
SPI_MOSI
PCM_IN
SPI_CLK
PCM_OUT
SPI_MISO
UART_TX
SPI_CSB PIO5
UART_RX
PIO3
RN42 RESET
USB_D–
PIO6
USB_D+
PIO7
PCM_CLK
UART_CTS
PCM_SYNC
UART_RTS
PIO4
30 31 32 1
AIO0
4
10u 6V3
28 VDD
IC1
MCLR
GND
1
PIO11
3K3
13 VDD
3
R12
C5
PIO10
10k
C4
100n 25V
2
D4
L2 [email protected]
R2
1
6
R4
4
GND
NC
33u 6V3
GND
EMUC1
TPS60403DBVT
GND
EMUD1
1u 10V
PIO9
GND
[email protected] 1
+3V3
HSMC-A461-V00M1
+3V3
OUT
A
R1
MCLR
C1
+3V3
[email protected]
+3V3
K2
C16
PIO8
100n 25V
CFLY+
IC2
IN
L7
GND
4
AIO0
1M
C15
5
R13 10k
BATT_LEV R17
GND
VFB
2
[email protected]
R3
2
R14
TP4
EN
L6
5
POWEROFF
1M
1
CFLY–
[email protected] VOUT
IC12 MCP1640B(T)
5 VCC
2
SW
523k
100n 25V
2
VIN
TP1
1u 10V
3
L5 1
6
K3
Vbatt-
R15
300k
10u 6V3
Vbatt+
R5
R6
C12
150R
[email protected]
–3V3
C11
TP2
2 6 24 23 21 20 18 17 7 8 22 S3
12 28 29 33 34 25 RESET BT
Figure 4b. Digital and power supply schematic.
the SI and SII signals with a fixed reference. The error voltage is integrated using a time constant selected using AI and BI (AII and BII respectively for the II channel) to derive the DC offset voltage applied to F4.1 and F4.2. This offset is found on SI and SII. The servo loop thus formed constantly maintains the average values of SI and SII at their respective set points.
Heart of the circuit You’ll easily be able to find all these function on the diagram for the analog circuit (Figure 4a). The four electrodes are connected to K1. Resistors R18, R19, R20, R23, and the integrated diodes in D1 and D2 form the F1 protection function. The multiplexing function F2 is performed by the analog multiplexer IC9 (4053). The differential amplification for each channel (F3 and F4) is achieved using the classic instrumentation amplifier configuration: F3.1 = IC4A + IC4B and F3.2 = IC3A + IC3B, along with F4.1
14 | July & August 2013 | www.elektor-magazine.com
= IC5A and F4.2 = IC6A. The DII channel gain is adjustable by P3 to compensate for the difference from the other channel. Even a small difference in gain would have a noticeable effect on the calculations for the other leads. Presets P1 and P2 let us optimize the commonmode rejection for each amplifier. The F4 stages include a negative feedback loop via (in the DI channel, for example) multiplexer IC10, one of the resistors R25–R28 and op-amp IC5B wired as an integrator. This structure performs the F5.1 function and acts on the average voltage of DI via IC5A in such a way as to make it equal to the voltage set by the divider R35/R36 (and R37/R38 respectively for the DII channel). The time-constant for this loop is selected by a software function driving the multiplexer IC10 (and IC11 in the other channel) via the AI and BI signals:
Cardioscope
• • • •
Τ1 = R28·C25 = 0.47 s T2 = R27·C25 = 2.2 s T3 = R26·C25 = 10 s T4= R25·C25 = 47 s
When the electrodes are applied, the shortest time-constant is selected so as to reach the quiescent point quickly. The time-constant is then increased as the anticipated quiescent point is approached, ending up at the value of 47 s, which will not interfere with the ECG signals. The quiescent voltages are different between the DI and DII channels in order to be suitable for the forms expected for each lead, thereby avoiding saturation in the following ADC while maintaining adequate dynamic range. The final stage in each channel (IC8a and b) forms a 2 nd-order low-pass filter. This has a cut-off frequency of 170 Hz and in-band gain of 34 dB. This is an anti-aliasing filter for the ADC, which uses a 2 kHz sampling frequency. This is followed by a 1st-order low-pass filter formed by R33 and C21 with a cut-off frequency of 160 Hz. The attenuation of these two filters at the Nyquist frequency (1 kHz) is around 15 dB. Did you notice IC8 is powered between +3V3 and 0 V and not between +3V3 and −3V3 like the other op-amps? This is not a mistake: this arrangement protects the PIC24’s analog input, which can’t take negative voltages. Because of its high sensitivity, the analog section is very sensitive to interference of all kinds, in particular that produced by the digital section and the switch-mode power supply. The circuit layout has been carefully designed to keep these three sections well away from each other. In addition to this, the networks R63/C32 and R64/C31 attenuate the residual ripple on the supply rails to the analog section. For the digital part of the circuit, the diagram (Figure 4b) is clear enough, we’ll dispense with a block diagram. PIC24FJ32GA002 Out of Microchip’s PIC24 variants, we’ve chosen the PIC24FJ32GA002, an entry-level type in a 28-pin SOIC package (Figure 4b). Its 8 MHz internal clock (no external components required) gives a power of 4 MIPS and 2 % accuracy, adequate for this application. At this frequency, the consumption of around 5.4 mA is reasonable for battery powering.
Figure 4c. Photo of the Roving Networks (now Microchip) Bluetooth module used.
RN-42 Bluetooth module The Roving Networks RN-42 (Figure 4b) is a compact, low-power, pre-qualified class 2 hybrid OEM Bluetooth module. (Roving Networks were recently acquired by Microchip, Ed.) The built-in antenna allows a range of about 70 feet (20 m). It supports, among others, the RFCOMM-SPP protocol used in this application, at data rates up to 240 Kb/s. Here, we only use 16 Kb/s. The Serial Port Profile (SPP) makes it easy to establish a sort of wireless duplex asynchronous serial link. The RX and TX signals from the microcontroller’s UART coupler are simply connected to their equivalents on the Bluetooth module. In this way, the sequences produced on TX in the asynchronous serial format are transferred transparently to the connected terminal. Conversely, messages sent from the Android terminal appear in the same format on RX. A few additional signals are used to control the module: the STATUS signal indicates the status of the Bluetooth link: Connected (1) or Broken (0) the RESET input allows the module to be initialized if necessary the PIO7 input (SETBAUD) lets us select the transmission data rate: • 1 9600 baud, • 0 115.2 Kbaud The 1 kΩ resistors in series with these signals are in accordance with the manufacturer’s I/O protection recommendations. LED D4 flashes to indicates the module status: 10 Hz: configuration in progress 2 Hz: initialization phase 1 Hz: the module can be identified steady: connection established. Powering For such a simple circuit, the structure of the power supply (Figure 4b) comprising IC13, IC12,
www.elektor-magazine.com | July & August 2013 | 15
•Projects
A project to your heart’s content and IC2 is fairly complex, but it does guarantee a stabilized symmetrical voltage (±3.3 V) right down to the last drop of power available in the two 1.5 V AA cells or the pair of 1.2 V rechargeables.
It is out of the question to power this sort of device from the powerline! MOS transistor T1, associated with step-up device IC13, protects the electronics in the event of reversed battery polarity: R6 limits the current through IC13, T1 is turned off along with its internal diode. The battery −ve is not connected to
interface is well and truly powered down. The only consumption is that of IC13 and IC12 in standby, i.e. less than 4 µA. Pressing S2 takes IC13’s /SHDN input high. Its GATE output turns T1 on with a voltage that is three times its supply voltage, thanks to an internal tripler. This makes it possible to drastically reduce T1’s RON. The battery −ve is connected to GND. IC13’s GDR output also goes high and enables IC12. This then produces the +3V3 voltage from the battery voltage. Inverter IC2 is now powered and in turn supplies the −3V3 rail. The interface is powered. The microcontroller then starts processing and must quickly follow the user’s pressing S2 by setting the /PowerOff signal to High (1). Powering down is controlled from the Android terminal when the user exits the application: the /PowerOff signal is set to L. IC13 then goes into shutdown and sets its GDR output to 0 to inhibit IC12 and hence cut the power. The switching converters used make it possible to obtain an overall efficiency of nearly 90 % and will operate (but not for long) with low batteries down to 0.8 V. In the next issue of Elektor, we’ll be presenting the software, the Android application, and the board, together with how to implement the device. You’ll see it’s amazingly easy. 120107
GND and the ICs are protected, in particular IC12. When the polarity is correct, IC13 is powered correctly. It is controlled by the microcontroller’s / PowerOff signal. If the interface is powered down, the PIC24 is not powered and cannot apply a H to /PowerOff. Hence the /SHDN input is low, particularly because of R14. IC13’s GATE output is then low and T1 is turned off. However, its flyback diode is conducting (the current consumed flows to GND via the battery –ve) and IC12 is powered. Under these conditions, IC13’s GRD output is at 0, inhibiting the switching converter IC12, which as a result does not generate the 3V3 supply voltage. Hence inverter IC2 that supplies the −3V3 downstream doesn’t operate. The
16 | July & August 2013 | www.elektor-magazine.com
Internet Links [1] GBECG article in Elektor October 2006, www. elektor.com/050280 [2] Course in cardiology: http://goo.gl/mSr20 [3] www.elektor.com/120107 [4] Android Apps, programming step by step, Stephan Schwark, www.elektor.com/android [5] Le Site du Zéro www.siteduzero.com/informatique/tutoriels/ apprenez-a-programmer-en-java or http://goo.gl/OVZQY (in French) [6] author’s own website: http://electronique. marcel.free.fr/ (in French)
•Projects
Step Exercises By Ronald Stärz, Mathias Gfall and Jens Nickel
Stepper motor driver for the ElektorBus The ElektorBus opens up a wealth of possibilities in areas from home automation to instrumentation. The modular hardware and software makes it easy to build your own applications. Here we extend the ElektorBus ‘toolbox’ with a board to control a stepper motor.
Carrier sensing, collision avoidance, bus termination – these telecommunications terms are unlikely to set a student or hobbyist’s pulse racing with excitement. However, the topic can be made more interesting if students have the opportunity to build their own circuits and projects within a bus-based system. The ElektorBus provides the perfect foundation for this, building on the reference designs. Indeed, the ElektorBus is now central to the study of mechatronics at MCI (Management Center Innsbruck) in Aus-
Features • • • • • • •
STMicroelectronics L6208 stepper motor driver IC Suitable for bipolar stepper motors up to 60 V Maximum motor current approx. 2.5 A RS-485 interface LED and button for test, debug and operation Safety relay for motor power (under software control) Microcontroller and board files for the Embedded Firmware Library (EFL) included in download • EFL stepper motor library included in download • ElektorBus-compatible open source demonstration application included in download
18 | July & August 2013 | www.elektor-magazine.com
tria [1]. The circuit of this stepper motor board is an example of student project work. The printed circuit board is available from Elektor either as a blank board or as a ready-assembled and tested module. Software that can be used as a basis for your own applications is available, as always, as a free download [2].
A journey of a thousand miles... The circuit is organized into a number of blocks, as illustrated in Figure 1. In the middle are the microcontroller and the stepper motor driver. Around these components are the bus interface, a (switch-mode) power supply and universally compatible position/limit switches. The stepper motor itself is controlled by an STMicroelectronics L6208 device. Figure 2 shows what is inside this component [3]. You will see the integrated flyback diodes which are necessary to protect the power transistors from being damaged by the inductive load presented by the motor windings. This particular driver device was chosen because it contains not just the power output stages, but also a state machine to generate the necessary control signals, a current regulator for
Stepper Motor Driver
the motor windings, and an over-current detection circuit. It is therefore an easy device to use: we simply need to provide four digital control signals, for rotation direction (CW/CCW), step (CLK), operating mode (HALF/FULL) and strobe (EN). Because of the device’s high level of integration the number of external components is kept to a minimum, as can be seen from the circuit diagram in Figure 3. The internal current regulator measures the voltage across resistors R6 to R11 on the two sense inputs to determine the motor winding current; the reference value for the regulator is obtained from the Vref inputs, which in turn comes from trimmer potentiometer P1. With the values given in the circuit diagram the winding current is 100 mA when the reference voltage is set to 33.3 mV. The networks comprising R12 and C10, and R15 and C11, determine the off-time of the power MOSFETs in the bridge driver [3]. The L6208 uses a charge pump to generate the gate voltages needed, which requires external components D2, D3, R4, C5 and C7. R5 and C9 condition the voltage at the enable input. The microcontroller selected is the ATmega328 which, with 32 Kbyte of flash memory, has enough space to hold a modular software library such as the Embedded Firmware Library (see below). Support circuitry for the microcontroller includes the standard components for voltage regulation and clock generation, as well as a manual reset facility using JP2. A button connected to PD5 (S1) and a LED on PD4 (LED1) are very handy both in operation and when debugging new applications. The physical interface to the bus is implemented using an LT1785 RS-485 transceiver. The bus can be terminated by resistor R22 if JP3 is fitted, should the stepper motor board be either the first or the last node on the bus. The screw terminals for the RS-485 signals and for the 12 V supply are, as in the familiar ElektorBus experimental node [4], both duplicated: this makes it more convenient to loop the four wires of the bus through the node.
SUPPLY MOTOR
REGULATOR
12V
SAFETY RELAY
RS485 STEPPER MOTOR DRIVER
M
MCU
ATMEGA328
STEPPER MOTOR
POSITION SWITCHES
TEST BUTTON
so that the current required to drive the stepper motor does not have to be provided over the 12 V lines on the ElektorBus. And in this area a small disadvantage of the L6208 stepper motor driver makes itself known: if power is present for the power side of the driver circuit but the 5 V for the logic side of the driver circuit is not (yet) present, the device makes its disapproval apparent in the rather undesirable form of a smoke signal! In the circuit we have therefore taken the power to the L6208 via a relay (REL1) which is under software control of the microcontroller on pin PD6. This also means that there is a possibility of controlling the power to the power section of the driver by means of a signal over the ElektorBus. Since currents of several hundred milliamps can give
VBOOT VCP
OCDB
Voltage regulator IC1 (an LM2675M-5) provides the power supply for the logic circuitry. In combination with L1, D1, C1 and C3 it provides an almost lossless conversion from the input voltage, which can be anywhere from 7 V to 24 V, to the 5 V required. The supply for the power electronics is brought out to separate screw terminals,
Figure 1. Block diagram of the ElektorBus stepper motor board.
Figure 2. Block diagram of the STMicroelectronics L6208 stepper motor driver (from [3]).
VBOOT
VBOOT
10V
10V
VSA
OVER CURRENT DETECTION
THERMAL PROTECTION EN
OUT1A OUT2A
GATE LOGIC
CONTROL
RESET
120509 - 13
CHARGE PUMP OCDA
CLOCK
TEST LED
VBOOT
SENSEA PWM
HALF/FULL
Power supply
ELEKTOR BUS
5V
STEPPING SEQUENCE GENERATION
ONE SHOT MONOSTABLE
CW/CCW
MASKING TIME
+ SENSE COMPARATOR BRIDGE A
VOLTAGE REGULATOR
10V
5V
VREFA RCA VSB
OVER CURRENT DETECTION
OUT1B OUT2B SENSEB
GATE LOGIC
VREFB BRIDGE B
RCB
120509 - 14
www.elektor-magazine.com | July & August 2013 | 19
•Projects detecting sensors will have to be used. Options here include mechanical devices, proximity switches operating on an inductive or capacitive principle, and slotted optical sensors, to name just a few possibilities. In order to keep options as open as possible the board includes two input channel circuits that can be adapted to almost any sort of sensor, formed from R16, R17, R25, C15 and D4 for the first channel and R18, R21, R25, C16 and D5 for the second.
rise to problematic voltage drops in ground wiring, we have provided a ground star point at R1 (a zero-ohm resistor). R1 allows the grounds to be separated between the logic and power parts of the circuit in the event of a fault. If the stepper motor is to be used in an application where its rotor position is important rather than as a drive where just its (variable) speed of rotation matters, limit switches or position-
+12V
4
+5V
FB
+5V
7 VIN 2 NC
10R C13
10n
T491B 10u 6V3
LM2675M-5.0
GND
Ref. Switches
1
10u 6V3
R21
C16
18 16MHz
C18
R3
R19
+5V
+5V
220n
15 2
STEP_CLK
1
STEP_MODE
12 14
100k R5
3
20 | July & August 2013 | www.elektor-magazine.com
1W
R7
17
CW/CCW
OUT2 A
CLK OUT1 B HALF/FULL OUT2 B
68n
A B
21
RC B
1
VCC
GND
PGND
A1
1
A2
2
B1
1
16
B2
2
4 9
1W
1n
R12
Supply Motor
1W
39k 39k 1n
Sense B
CTRL
13
6 GND 7 GND 18 GND 19 GND
1R0 1W
R11 1R0
R10
1W PGND
120509 - 11 GND
K2 A1 A2
K3 B1 B2
Stepper Motor
R15 C11
K1
2
BC849B
8
C10
Sense A
T1
10k GND
5
EN
RC A
10 R9
GND
K7
REL 1
PGND
R1 0R PGND
OUT1 A
L6208
1R0
1W
GND
VBoot
R8
1R0
1R0
R6
1R0
Figure 3. Circuit diagram of the stepper motor board. See the box for the possible position detection switch configurations.
100k
5n6
R23
2
R22
R26 4k7
P1
C6
24 VRef A 11 VRef B
VCP
IC2
1N4148
C9
RESET
22
10n D3
STEP_EN
1
RS458B
G5LA145DC
23
20 C5
R4 100R
VS B
C7
VS A
D2
STEP_DIR
RS458A
1N4148
39k
1N4148
PGND
2
D6
VS C8
B
K9
+5V VS
5V1
10n
A
TERMINATION
GND
1000u 50V
K4
22p
D5
FK1H102M C4
1
GND
R20
R2 GND
7 B 6 A
JP3
VS 100n
LT1785
LED1
S1
2
+12V
IC4
GND
1 RO 4 DI 3 DE 2 RE
RO DI DE RE
C19
22p
SWITCH B
2k7
2
R18 0R
X1
C17 T491B
R25 10k
*
K8 IN2
+5V
AREF
K5
120R
20
RS458B
5
5V1
GND RS458A 1
MPOWER
100n
+5V
10k
D4
30 31 32 1 2 9 10 11
680R
2k7
C15
Bus
1
GND
R17
2
23 24 25 26 27 28 29
SWITCH A
+12V
2
PD0 (RXD/PCINT16) PC0 (ADC0/PCINT8) ATMEGA328P PD1 (TXD/PCINT17) PC1 (ADC1/PCINT9) PD2 (INT0/PCINT18) PC2 (ADC2/PCINT10) PD3 (PCINT19/OC2/INT1) PC3 (ADC3/PCINT11) PD4 (PCINT20/XCK/T0) PC4 (ADC4/SDA/PCINT12) PD5 (PCINT21/OC0B/T1) PC5 (ADC5/SCL/PCINT13) PD6 (PCINT22/OC0A/AIN0) PC6 (RESET/PCINT14) PD7 (PCINT23/AIN1) 8 PB7 (PCINT7/XTAL2/TOSC2)
R16 0R
C1 T491B
GND
21
1
D1
68u B160-13-F 10V
IC3
PB6 (PCINT6/XTAL1/TOSC1)
*
K6 IN1
ISP
GND
10k
R24
10n
1
12 PB0 (PCINT0/CLK0/CP1) 13 PB1 (PCINT1/OC1A) 14 PB2 (PCINT2/SS/OC1B)
22 ADC7 19 ADC6
+5V
CB
AVCC
4 VCC 6 VCC 15 PB3 (PCINT3/OC2A/MOSI) 16 PB4 (PCINT4/MISO) 17 PB5 (SCK/PCINT5)
MOSI MISO SCK RESET
7
1 3 5
5 GND 3 GND
JP1 2 4 6
470u 35V
GND
GND
+5V
C2
C14 T491B 10u 6V3
GND
3 NC 5 ON/OFF
+5V
47uH0
8
C12
L1
8 C3
10k
JP2
IC1 VSW
GND
10k
R14
6
R13
Stepper Motor Driver
Position detection switch configurations +5V
+5V
5V
Voltage Input
1
IN1
R24
DONT PLACE
K6
R16 0R R17
2
Switch SWITCH A
C15
D4
100n
5V1
10k
R24
100k
K6 IN1
1
R17
2 DONT PLACE
GND
12V
SWITCH A
R16 15k R17
2
C15
D4
100n
5V1
NPN Open Collector IN1
K6 1
GND
SWITCH A
R16 0R R17
2
10k
Voltage input (5 V): Bridge R16 and do not fit R24 to connect the filtered 5 V input signal to the microcontroller’s input.
5V1
R24
DONT PLACE
1
IN1
D4
+5V
R24
K6
C15 100n
GND
+5V
Voltage Input
SWITCH A
R16 0R
10k
Switch: If a mechanical switch is to be connected, fit a zero-ohm resistor for R16 and do not fit R17. The 10 kΩ pull-up resistor R24 is optional but must be fitted if a different microcontroller is used without internal pull-up resistors. When the switch is closed the microcontroller’s corresponding input pin will be taken low. This is the configuration in which the ready-built boards are shipped.
DONT PLACE
C15
D4
100n
5V1
GND
+5V R24
Voltage Input
24V
DONT PLACE
K6 IN1
1 2
SWITCH A
R16 39k R17
C15
D4
100n
5V1
10k
Voltage input (12 V): A voltage divider with a ratio of 25 kΩ / 10 kΩ = 2.5 produces a voltage of 4.8 V at the input to the microcontroller.
120509 - 12 GND
Voltage input (24 V): The voltage divider comprising R16 and R17 gives an output voltage of 4.9 V. NPN open collector: Switches with open-collector outputs require extra circuitry to generate an output signal, in the form of a pull-up resistor to adapt the signal level as required. If a current flows into the base of the transistor the collector-emitter diode will conduct and pull the microcontroller’s input down to ground.
Capacitors C15 and C16 and Zener diodes D4 and D5 filter the input and provide some protection, and are needed in all cases; the resistors are fitted as required. The text box shows the various interfacing possibilities. As shipped R17 and R21 are not fitted and R16 and R18 are zero-ohm resistors: this arrangement is suitable for simple mechanical switches or buttons. Pull-up resistors R24 and R25 are optional, as the software-configurable internal pull-ups in the AVR microcontroller are adequate to ensure correct operation.
Software The choice of an ATmega328 microcontroller was not made at random: the device has proven its capability in the ElektorBus experimental node design, and since the ATmega88 device used in the ElektorBus article series [5] is compatible with it, we already have some software available which we can modify for our purposes.
We can easily create highly reusable and adaptable code for the board using the ‘Embedded Firmware Library’ (EFL) described in the May 2013 issue of Elektor [6]. This includes a library supporting ElektorBus communications (Figure 4). Furthermore, a microcontroller description file for the ATmega328 is already available in the EFL. We have connected peripherals such as the RS-485 driver, LED and button to the same pins on the microcontroller as in the experimental node, and again the EFL includes a board description file that covers this design. We can therefore simply delete from this file the initialization of the second LED, the second button and the expansion connector, none of which appear on the stepper motor driver board. Now we simply need to add the stepper motor driver as an extra peripheral block to the board description file and we will be in a position to write the code for our application in a hardware-independent fashion. However, since we have plans for further Elektor-
www.elektor-magazine.com | July & August 2013 | 21
•Projects
APPLICATION
COMMON
ELEKTORBUS UART
LED BUTTON
STEPPERMOTOR
LIBRARIES
STEPPERMOTOR EXTENSION
BOARDLAYER
ELEKTORBUS CORE
Figure 4. Firmware can be written quickly with the help of the EFL software modules.
EFL HARDWARE LAYER
CONTROLLER (ATMEGA 328)
HARDWARE 120509 - 15
EXTENSION
ELEKTORBUS CORE
called whenever the application starts up. This function creates a peripheral block for the stepper motor driver. Three entries are added to the board pin table (for more information on this see the additional EFL documentation at [6]) for the expansion port corresponding to the signals EN, CLK and DIR. The MODE signal is not controlled by the software. We also allocate a block for the safety relay and a block for the two position switches. This can all be done in a way that is entirely independent of the underlying hardware: we do not need to know which microcontroller pins are involved, only the type and number of the peripheral block.
SUPPLY MOTOR
REGULATOR SAFETY RELAY
12V
ELEKTOR BUS
5V
RS485 M
Figure 5. The board is (virtually) divided into an ElektorBus core and an expansion module. The same board code can be used for all ElektorBus boards.
STEPPER MOTOR DRIVER
MCU
ATMEGA328
STEPPER MOTOR
(VIRTUAL) EXTENSION PORT
POSITION SWITCHES
TEST BUTTON
TEST LED 120509 - 16
Bus boards offering other functions, we will take an even better approach here. Since all ElektorBus boards will include common hardware such as the RS-485 driver, test LED and test button, we encapsulate this in a single board description ‘BoardEFL.h/.c’ which we will keep in a subdirectory of the code base called ‘ElektorBusCore’. The special functions of the board (such as in this example the stepper motor driver) are initialized separately in an extra file (‘ExtensionEFL.h/.c’ in the subdirectory ‘ElektorBusStepperMotor’). This can be considered as equivalent to equipping the ATmega328 with a virtual expansion port to which the stepper motor driver is connected. Figure 5 illustrates this idea.
Stepper motor code The source code for this project can be downloaded at [2]. The EFL project in this example is called ElektorBusStepperMotor, and a click on ElektorBusStepperMotor.atsuo opens it in Atmel Studio. The project directory ‘Hardware’ contains the board description files BoardEFL.h/.c which initialize the core ElektorBus functions and the (virtual) expansion connector. The extension file includes the function Extension_Init(), which is
22 | July & August 2013 | www.elektor-magazine.com
Although we are now in a position to control the EN, CLK and DIR signals without knowing the wiring of the board, that is not enough to guarantee that every stepper motor driver can be controlled in the same way using those three signals. To avoid the application developer having to delve into datasheets and to maintain the hardware-independence of the application code, it is necessary to implement a few more low-level functions for controlling the stepper motor in the extension file. So for example to set the direction of rotation we can use a call such as void StepperMotorDirection(uint8 StepperMotorBlockIndex, uint8 Direction)
where the parameter Direction is 0 or 1, and to execute a single step we can call: void StepperMotorStep(uint8 StepperMotorBlockIndex, uint8 MillisecondsDelay)
This latter function pauses program execution. For more demanding applications we have implemented a function that drives the stepper motor under control of a timer. This function takes an additional array as a parameter to specify the required speed ramp. The motor starts slowly and then the speed gradually increases to a specified maximum value. Towards the end of its travel the ramp is reversed and the motor comes to a gentle halt. (Note that in this mode it is not possible to read the state of the position detection switches.) First we initialize the timer: void StepperMotorTimerSetup(uint8
Stepper Motor Driver
StepperMotorBlockIndex, uint8 MillisecondsDelay)
where we provide a delay in milliseconds per step which sets the basic speed of the motor. The function will make use of the lowest-numbered unused 16-bit timer. Then a call to void StepperMotorTimerSteps(uint8 StepperMotorBlockIndex, uint16 Steps, uint8* RampData, uint8 RampMax, uint8 StepsShiftForNextRampIndex)
will start the motor running under control of the timer. The parameters RampData and RampMax describe the ramp. A value of 128 in this array stands for the basic motor speed, and smaller values represent higher speeds. The variable StepsShiftForNextRampIndex determines after how many steps the next speed value in the array will be used. The number of steps is two to the power of this value, so for example a value of 2 means that four steps will be executed at each speed value. After all the values in the array have been used the motor will continue to run at constant speed, and then at the end of the motion the array’s values will be used again in reverse order.
bus to the familiar USB-to-RS-485 converter and thence to a PC. The application code proper is located in the main file of our project, ElektorBusStepperMotor.c. The customary EFL main function and the initialization of the LED and button, UART interface and ElektorBus libraries in the function ApplicationSetup() are described elsewhere [6][7].
Figure 6. Demonstration with position detection switches. The stepper motor board is connected to the PC using a USB-to-RS-485 converter.
With a call to The low-level functions in the hardware layer save the application developer a good deal of work. All that remains to be done is to write a function to read the position detection switches, and then perform any necessary calibration of the motor movements. We have included code for these functions in a small stepper motor library, which sits on top of the low-level interface described above. As always with the EFL the code can be used to drive several peripheral blocks of the same type, in this case up to eight stepper motor drivers on one board. The source code (StepperMotorEFL.c) is in the ‘Libraries’ project directory. The Doxygen documentation in the download archive [2] provides an overview of the functions available.
StepperMotor_LibrarySetup(SwitchEventCall back, 0, 0);
A quick demonstration
we initialize the stepper motor driver library. The first parameter names the function in the application code which is to be called when one of the limit switches is actuated. In this case we have implemented this function (a little further down the main program file) so that it toggles the LED on the board. The remaining parameters, both zero here, give the block number offset between the stepper motor driver and the position detection switches and safety relay. In our example switch block number zero and relay block number zero are associated with stepper motor driver number zero, although in principle this could be different on a different board.
To test and demonstrate the design we built a simple set-up using a Nanotec 12 V stepper motor type SP2575M0206-A, a position indicator and two limit switches (see Figure 6). The stepper motor board was connected over the ElektorBus
When the user presses the button on the board an automatic calibration is carried out. The motor first runs in one direction until a position detection switch is actuated; then it reverses and runs in
www.elektor-magazine.com | July & August 2013 | 23
•Projects the other direction until the other switch is actuated. The number of steps between these two positions is recorded. The library function StepperMotorCalibration() can now determine in which direction the motor turns in response to the direction signal being set low or high, and again this information is recorded. Once calibrated the motor can be moved to a given desired position within its range of movement using a value from 0 to 1023, which represent the end positions. For example, the call StepperMotor_GotoMotorPosition(0, 512, 4);
causes the motor to move to its mid-position at a rate of approximately 4 ms per step. Naturally we would like to be able to control the motor over the ElektorBus. It is easy enough to write an HTML control panel that runs in the ElektorBus browser on the PC, and as usual the same user interface can also be run on an Android smartphone or tablet [8][9]. The HTML file can be found in the directory UIBus, and it can simply be dragged from the download directory to the desktop. The rest of the procedure will be familiar: launch ElektorBusBrowser.exe, select the correct COM port, click on ‘Connect’ and fire up the scheduler. The HTML buttons cause Ele-
COMPONENT LIST Resistors (default shape: 0805) R1 = 0 Ω R2,R12,R15 = 39kΩ R3 = 680Ω R4 = 100Ω R5,R23 = 100kΩ R6-R11 = 1.0Ω (Vishay CRCW25121R00FKEG) R13,R19,R20 = 10kΩ R14 = 10Ω R16,R18 = 0Ω (see text box) R17,R21 = not fitted (see text box) R22 = 120Ω R24,R25 = 10kΩ, optional (see text box) R26 = 4.7kΩ P1 = 10kΩ trimpot (POT4MM-2)
Capacitors
v i c e.c
om
.e l e k ww
r p c bs
er
to
(default shape: 0805) C1 = 68μF 10V tantalum (AVX TPSB686K010R0600) C2 = 470μF 35V electrolytic (Panasonic EEEFK1V471AQ) C3,C5,C8,C12 = 10nF C4 = 1000μF 50V electrolytic (Panasonic EEVFK1H102M) C6 = 68nF C7 = 220nF C9 = 5.6nF C10,C11 = 1nF C13,C14,C17 = 10μF 6.3V (AVX TCJA106M006R0300) C15,C16 = 100nF C18,C19 = 22pF
w
Inductors L1 = 47μH (744773147)
24 | July & August 2013 | www.elektor-magazine.com
Semiconductors D1 = B160-13-F, Schottky diode 1A / 60V D2,D3,D6 = Diode 1N4148 D4,D5 = BZX384-B5V1 5.1V zener diode T1 = BC849B, SOT-23 LED1 = LED, green (5988270107F) IC1 = LM2675M-5.0 IC2 = L6208D (SO24) IC3 = ATmega328P-AU IC4 = LT1785CS8
Miscellaneous JP1 = 6-pin (2x3) pinheader, 0.1’’ pitch JP2,JP3 = pinheader, SIL, 0.1’’ pitch K1-K9 = PCB screw terminal block, 0.2’’ Rel1 = relay, SPDT, Omron G5LA145DC S1 = pushbutton, Omron B3S-1000 X1 = 16MHz quartz crystal, 50ppm, 16pF, Epson Toyocom FA-365 PCB 120509-1
Stepper Motor Driver
ktorBus messages to be sent from the PC to the stepper motor board, and the desired motor position can be sent as a 10-bit value on channel 0. In the firmware the ElektorBus library receives these messages and calls the function ProcessPart(). This processes the incoming message parts and then causes the motor to move the the desired position. As always this demonstration software is intended as motivation for further experimentation. A practical application might be the automatic control of a roller or Venetian blind to maintain the level of ambient lighting in a room. We have previously described hardware and software for an ElektorBus-based light sensor [6][10]. In the next issue we will take things further with the long-awaited Xmega web server board, which also features an RS-485 interface and which will make an ideal basis for further ElektorBus applications.
Internet Links [1] www.mci.edu [2] www.elektor.com/120509 [3] www.st.com/st-web-ui/static/active/en/ resource/technical/document/datasheet/ CD00002294.pdf [4] www.elektor.com/110258 [5] www.elektor.com/elektorbus [6] www.elektor.com/120668 [7] www.elektor.com/130154 [8] www.elektor.com/110405 [9] www.elektor.com/120097 [10] www.elektor.com/110428
(120509)
Advertisement
We geeked out, so you don’t have to.
The ezLCD-304
$159
QUAN
TITY PRIC ONE E
a 4.3” Smart, Touch LCD • Super-easy to program • Prepackaged with fonts, images, macros and widgets • Extensive documentation library • Works with any micro-controller • Smart, powerful & AFFORDABLE! • Optional panel-mount bezel
www.EarthLCD.com/ezLCD-304 949.248.2333 • 3184-J Airway Drive • Costa Mesa, CA 92626 ©2012 EarthLCD® is wholly owned by Earth Computer Technologies, Inc.
www.elektor-magazine.com | July & August 2013 | 25
•Projects
Wideband 70-cms FM Exciter With 130 mW output power
By Sjef Verhoeven, PE5PVB (The Netherlands)
Most amateur radio transmitters are not actually designed for transmitting wideband audio signals with high fidelity. However, the wideband 70-cms (430– 440 MHz) FM exciter described here is up to the task, with an audio bandwidth of 20 Hz to 100 kHz.
Technical Data • Frequency range 430–440 MHz in 25 kHz steps • Audio bandwidth 20 Hz to 100 kHz • PLL lock time less than 1 s
amateurs (‘hams’) have been communicating in this manner since the early days. With the right choice of equipment, frequency and antenna, radio amateurs can connect to each other all over the world in various ways.
• Supply voltage 12–15 V • Current consumption approx. 250 mA at 130 mW RF output power
Just about everyone has played with walkietalkies at some time. They’re nice for wireless conversations, but radio links of this sort suffer from poor sound quality and the fact that only one person at a time can talk. Licensed radio
26 | July & August 2013 | www.elektor-magazine.com
But what options are there if you want to establish a connection with good sound quality? In this article we describe the design of a complete broadband FM audio exciter for the 430–440 MHz section of the 70 cms band (in the US, the band extends from 420-450 MHz). The output signal is not unlike you find in the VHF FM broadcast band, which means that the audio bandwidth is
FM Exciter
approximately 20 Hz to 100 kHz. Thanks to this large audio bandwidth, it is fairly easy to set up audio chat sessions with several transmitters and relatively low distortion. This is similar to Teamspeak or other chat tools, but without jitter, codec distortion, echo and delay. With the right antennas, antenna height and possibly an amplifier, you can easily make QSO’s (connections) over a distance of tens of miles, or even as much as 200 miles under the right weather conditions. An amateur radio license of the appropriate class is needed to operate this exciter. You can obtain this license from the relevant national or local authorities after passing a technical exam. The aim of this is to prove that you have sufficient theoretical knowledge to be able to operate radio transmitting equipment safely, in compliance with statutory provisions, and without causing interference. Among other things, this means that using this exciter as a transmitter to broadcast music for anyone who wants to listen is not permitted. The technical exams for amateur radio licenses are usually administered several times a year in various places. In many countries, volunteers provide ham radio training. In the US, see www.arrl.org/licensing-education-training. In the UK, http://rsgb.org/ main/faq/how-to-become-a-radio-amateur-faq/.
Construction Tips • Use only ceramic capacitors, even for values above 1 µF. • Most resistor and capacitor packages are 0805, but a few are 1206. • If you make your own PCB, ensure that it has enough vias. This is particularly important in and around the RF section. • Use inductors without ferrite cores. This is especially important in the oscillator stage, since ferrite is a known cause of noise. • Fit the entire circuit in a sheet metal enclosure. The PCB layout is designed with standardized dimensions. • First prepare the sheet metal enclosure (holes for DC, audio and RF connectors). Then place the bare board in the enclosure and solder it all around on both sides. Fit the components only after the board has been fully mounted in the enclosure.
You can use a scanner or a receiver with wideband FM capability to receive the signal. A downconverter, which converts the 430–440 MHz band to a different band such as 90–100 MHz, is often used for this purpose. This allows you to use an ordinary FM radio to listen to the signal.
Schematic We opted for a Colpitts oscillator to generate the RF signal for the exciter. It is built around a dualgate MOSFET (T2). This oscillator operates at the transmit frequency. In a Colpitts oscillator, the frequency is determined by a parallel resonant circuit consisting of a capacitive voltage divider and a coil. In this case capacitors C23 and C25 form the voltage divider and L4 is the coil. The coil consists of a short piece of thin coax cable, which essentially works the same way as a stripline. Modulation due to mechanical vibration can be largely avoided by using relatively flexible cable, such as RG174. Feedback is necessary to make the circuit oscillate, and this is provided by resistor R25. Many Colpitts oscillator circuits use direct feedback without a resistor, but practical
• Power the exciter from a clean supply voltage. Some switch-mode power supplies have frequency components on the output voltage that are directly audible as noise or whistles. A conventional power supply is always the best choice.
www.elektor-magazine.com | July & August 2013 | 27
•Projects
+12V
VR4 UA78M05IDCY
+5VVR4
+5VVR3
DC IN
R41
R35
33R
+5VVR4 C45 P2 1k
470R
470R
K1
R39
R43
R42
LED1
10k
220n
R48
10k
100n
R37
4k7
100n
R38
4k7
C44
4k7
C43
4k7
R36 C42
14
2
1
17
4
3
18
6
5
1 16
8
7
10
9
12
11
13
14
13
12
16
15
11
18
17
10
20
19
9
MCLR
RA1
RA6
RA2
RA3
IC4
RA7
16
4
12
X0
15
13
X1
2
2
Y0
1
Y1
5
Z0
3
Z1
3
RA4
PIC16F628A
C47
C46
220p
220p
-I/P
RB7 RB6
11
RB5
8
100n
VDD
RA0
RB4
RB0
RB3
RB1
RB2
6
10
7
9
VDD
14
X
IC5
15
Y
4
Z
CD4053BPW RG3
A B C
VEE
VSS
7
8
VSS
6
INH
5
VR1 UA78M05IDCY +12V
CON2
TP8 +5VVR3
R19
+5VVR1 C13
100n
220n
R46
VR2 L78L09ACUTR
TP3
VR3 L78L05ACUTR
R45
0R
2k2
C16
R44
7
3
6
4
5
PA MODULE
T4
TP4
C50
BC857
+5VVR3
+9VVR2
0R
+12V
+12V
8
2
BCP54 T5
2k2
0R
1
R47 100n
C49
C17
C36
C38
C39
C40
10u
220n
10u
100n
100p
P3 10k
100n
+5VVR3
+9VVR2 R21 100R
R29
33k
C30
L11
120nH
10u
120nH
10n
R24
D2
100k
0R
R12 100k
1k
R13
10u
C10 R6
100n
82k
L4
C9
3 25p
R1 270R R2 270R
4 5 6 7
Figure 1. Schematic of the main circuit board with the microcontroller and RF section.
Q1
28 | July & August 2013 | www.elektor-magazine.com
VCC
IC1
TP7
100n DRIVE RF1
Q2 RF2 SDA
22k
270R
270R
R31
R28
R33 4p7
C4
PMBT3904
SCL
P3
P7
P4
P6
BZX84-B10
TP9
16 C8
13
L3
100p
14
VEE
P5
10 9
8
120nH
IC2 MGA31189
SP5511S P0 11
15
TP6
C41
330nH R26
4p7
C7 1n
1n
C18 82p
R16
C6
22R R10
R14
1
3
RF IN
R18 150R
CP
TR1 3.2MHz
C25
6p
1u 12
2
L8
T1
+5VVR1
1
10R
R5
D1
220n
2u2
X1
VD RF OUT GND
+12V
C2 C1
RF IN
BF998
R25
TR2
D4
120nH GND
22k
2k2
R3
R17 220R
56p
4R7
BF998
Coax
10k
C12
L2 330nH
T3
R32 C24 8p2
4p7
56p
1k
10p D3
C15
R8
TP1
22k
C20
5p6
1k
P1
C19
220R
R11
680R
470R
R40
R15
330nH
10u R9 25V
IC3 ADA4743
100p T2
1k
300R
100p
L12
TP5 C37
33k
C11
R7
4k7
R27
C33
82R
D2...D4 = BB135 100p L1
10n
R30
C31
150R
R4
R20
C14
10n
LF IN
R23
C22
JMP1
100k
C5
R34
C34
47R
L7
33k
R22
C28
RF OUT GND
2
C21 100p
C23
C26
C29
10p
100n
2u2
TR3
L5
L6
L9
10p L10
6nH8
27nH
27nH
6nH8
C27
C32
C35
8p2
12p
8p2
RF OUT
120267 - 11
FM Exciter
experience shows that a bit of resistance makes the circuit more stable, with a cleaner frequency. Trimmer TR2 is provided to allow the oscillator to be adjusted to the desired frequency range. Diodes D3 and D4 are varicaps driven by a control voltage. This allows the frequency to be tuned electrically over a range of approximately 30 MHz.
LCD1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LED+A LED-C
2 x 16
A buffer stage at the output of the oscillator, which is also implemented using a dual-gate MOSFET (T3), keeps the loading of the oscillator output as uniform as possible to maintain the stability of the RF signal. The RF signal, at a power level of approximately 1 mW, is attenuated slightly to provide a good match to the next amplifier stage. In recent years the market has been flooded with a large variety of monolithic microwave integrated circuits (MMICs). These devices are specifically designed to amplify signals in the microwave frequency range. The main advantage of these ICs is that they make it easy to amplify RF signals without using tuned circuits. This avoids additional circuit complexity, cuts down on board space, and considerably reduces the cost of the overall cir-
+5V +5V LED2 R49 470R
LOCK
19 17 15 13 11 9 7 5 3 1
S1
LED3
K1 C52
C53
C51
100n
100n
100n
PWR
20 18 16 14 12 10 8 6 4 2
Since this is an FM exciter, we need to be able to modulate the frequency of the carrier signal according to the amplitude and frequency of the audio signal. This is done with the aid of varicap diode D2. Varying the voltage on this diode affects the capacitance of the LC circuit, which causes a frequency deviation. To keep the modulation as linear as possible, we opted to use different varicap diodes for tuning and modulation. To avoid excessive differences in modulation depth between low and high frequencies, the modulation varicap is biased by a high-impedance voltage divider consisting of R11 and R12, with C12 added to improve stability. Inductor L1 prevents excessive capacitive load from the modulation circuit, which could otherwise cause the oscillator to stop working. Capacitor C14 provides HF decoupling for the modulation input and additionally ensures that the upstream part of the modulation path does not affect the resonant frequency of the oscillator circuit. Finally, components C5, R4, R7, R8 and R9 provide (defeatable) pre-emphasis. If necessary, you can increase the value of R8 as desired to reduce the pre-emphasis attenuation. The design is dimensioned for a pre-emphasis of 50 µs.
ROTARY ENCODER
+5V
cuit. For our design we chose MMICs from Avago Technologies, in part because they are a good fit with the circuit and in part because it’s important to choose MMICs that are readily available. The first MMIC (IC3, type ADA4743) amplifies the RF signal to about 40 mW. This signal is attenuated and then fed to an MGA31189 (IC2). This MMIC has a rated output power of 250 mW. However, in this circuit we limit the supply voltage of IC2 to a maximum of 4.2 V (provided by the combination of T4 and T5), so the output power is a good deal lower—about 120 to 130 mW. This is a nice power level for driving a final amplifier, which in many cases will be an RF power module.
120267 - 12
Figure 2. The operator control section includes a rotary encoder and a 2x16-character LCD module.
A phase locked loop (PLL) is used here to set the desired frequency and keep it tuned precisely. This involves passing the transmit frequency through a frequency divider and comparing the output signal with a reference signal. If there is any difference, a control voltage tries to adjust the frequency to reduce the difference until the divided-down RF signal and the reference signal are in phase. In our circuit this control voltage is applied to varicap diodes (D3 and D4) after filtering by a loop filter. The loop filter is essential and must be dimensioned to keep the PLL from responding too fast. This is because the oscillator is frequency modulated, so the frequency varies according to the applied audio signal. If the PLL responds too fast, the sound quality of the
www.elektor-magazine.com | July & August 2013 | 29
•Projects
Figure 3. The main PCB has components fitted on both sides.
modulated signal will be affected. It is therefore important to find a good balance between maximum bandwidth (approximately 180 kHz) and frequency stability. In this circuit we use an SP5511 or TSA5511 (IC1) for the PLL. These devices are readily available and affordable. These PLL ICs were originally intended to be used in TV tuners (including satellite tuners). They are often seen in older-model television, video recorder or satellite tuners. The smallest frequency increment this PLL can generate is 50 kHz with a 3.2 MHz crystal. However, what we want here is a step size of 25 kHz. This can easily be achieved by using the second harmonic of the RF signal as the input to the PLL. This signal is tapped off between IC3 and IC2 using inductive coupling. The PLL IC is controlled by a microcontroller (IC4, type PIC 16F628A) over an I²C bus. A major shortcoming of the PLL IC is that it generates crosstalk between the I²C bus and the charge pump and driver stages. This results in a ticking sound in the transmitted audio signal at the clock rate of the I²C data. The author’s intention was to be able to control not only the exciter but also the power amplifier (if used) or other hardware over the I²C bus. The data for this, which in such case would not be intended for the PLL, would also be audible. In the present design this problem has been solved by placing an HEF4053 (IC5) between the I²C bus and the PLL IC. When the data on the I²C bus is not intended for the PLL, the I²C link to the PLL is blocked. This is a very low-cost and effective solution. The exciter is controlled using a rotary encoder
30 | July & August 2013 | www.elektor-magazine.com
with a built-in pushbutton. Along with two LEDs and the display module (see Figure 2 for the schematic), it is located on a separate PCB which is connected to K1. In operation, you simply select the transmit frequency and then press the rotary encoder to confirm the setting. The corresponding data is sent to the PLL IC, and the PLL status is read out. When the PLL indicates that the phase difference between the divided-down RF signal and the reference signal has been reduced to zero, this information is fed back to the microcontroller. The microcontroller then lights up LED2 (the PLL Lock indicator). It also switches on the supply voltage to the final MMIC, so that the exciter only outputs an RF signal when it is actually operating at the selected transmit frequency. The supply voltage of the final MMIC can be adjusted with potentiometer P3, which allows the output power to be reduced to any desired level down to approximately 1 mW. This makes the exciter suitable for use with a wide variety of final amplifiers. The eight-pin header CON2 can be used to connect a external device to be controlled by the microcontroller, such as a final amplifier. When the author began working on this design, he was not especially familiar with microcontroller programming. He started off with the PIC Simulator IDE. This is a very simple software development environment that uses its own version of Basic. The nice thing about this software is that it includes a complete simulator, so you can fully simulate the software before loading
FM Exciter
it into a microcontroller. A drawback is the limited calculation options. To avoid making thing too complicated, the author chose to work with two different counters. One of these counters handles the frequency readout, while the other provides the divisor. In other words, if you raise the transmit frequency on the display by 25 kHz, the counter setting for the divisor is increased by 1. At the lower and upper ends of the frequency band covered by the exciter (430 MHz and 440 MHz), the counter for the divisor is preset to a default value. All necessary information for this project (PCB layouts, components list, source code and hex code files for the microcontroller) is available on the Elektor website [1].
Figure 4. Along with the microcontroller and several headers, a length of coax cable acting as the oscillator coil is fitted on the bottom side of the board.
Operation The entire exciter is operated using a single rotary encoder with a built-in pushbutton. You select a new frequency by turning the encoder knob. When you do this, “TUNE” appears in the top left corner of the display. When you press the encoder knob, the new frequency is saved in memory and the exciter is tuned to this frequency. When the PLL is locked, the Lock LED lights up and the output stage is switched on. If the PLL cannot achieve lock, the Lock LED remains dark and the indication “PLLERR” is displayed. If the PLL does not receive any data over the I²C bus, the indication “I2CERR” is displayed. In both cases the microcontroller will try to keep trying to configure the PLL until it achieves lock.
Construction When building RF circuits, especially at relatively UHF, it is important to keep all connections as short as possible. The ground level should also be kept as ‘cold’ or ‘earthy’ as possible. That’s why there are so many vias in the layout of the author’s prototype PCB (shown at reduced scale in Figure 3). If you want to make your own PCB, it is very important to include these vias. The board is designed to be fitted in a sheet metal box measuring 74 x 148 mm, which is a commercially available size. The board must be soldered to the sheet metal of the box along all edges on both the top and the bottom sides. This provides an optimal ground connection. Fitting the board in a sheet-metal box and soldering it all around are very important. A DIY box made from PCB material is not suitable for this circuit. The construction procedure used by the author
is as follows. First clamp the bare board in the sheet-metal box and fit all necessary chassis components. An SMA chassis-mount connector is recommended for the antenna connection. If you use a bulkhead connector, it can easily be soldered to the sheet metal. This also eliminates the need for screws. The connectors for the supply voltage and the audio input can be fitted in any desired location. A Cinch (RCA) chassismount connector is a good choice for the audio connection. All SMDs are located on one side of the board, while three pin headers, the coax stripline and the microcontroller are on the other side. Figure 4 shows a detail view of the stripline. It consists of a length of flexible coax cable measuring 4 cm, with both ends soldered to the PCB. At one end the center conductor and the braid are joined together and soldered to the PCB. At the other end the braid must be divided in two and soldered to the ground plane as shown in the photo, with the center conductor soldered to the pad between these two points. After this you should assemble the circuit section by section. Start with the oscillator. Check that it oscillates in the 400–500 MHz range. You can use a frequency counter or a spectrum analyzer for this. Then fit the components for the buffer stage and the two MMIC amplifier stages. Provide a temporary supply voltage connection for the final MMIC so that it also operates. Check the RF signal with an RF millivoltmeter or other suitable instrument.
www.elektor-magazine.com | July & August 2013 | 31
•Projects A spectrum analyzer is necessary for this. Measure the second harmonic at 870 MHz and adjust TR3 for minimum power. If you do not have a spectrum analyzer, you can use an RF millivoltmeter and adjust TR3 for maximum output power. However, you should bear in mind that filtering will be suboptimal in this case. This must be dealt with in the power amplifier connected after the exciter. • Check that the exciter works properly at both 430 MHz and 440 MHz. Fit a jumper in the pre-emphasis jumper position and connect an audio source, such as a CD player. Then adjust P1 for optimal audio amplitude without distortion.
Figure 5. The control board is fairly simple and easy to build. However, note that the 2x10-pin header for the connection to the main board must be fitted on the rear side.
If the RF portion works properly, you can then assemble the PLL and microcontroller portions of the circuit. Use an 18-pin socket for the microcontroller, and program the microcontroller before inserting it in the socket. The operator controls are located on a separated PCB as illustrated in Figure 5. Assembly of this board is straightforward. All components (except one) are fitted on the side with the component overlay. You can use a 16-pin header with a matching connector to connect the display module. On the rear side of the board, fit a 20-pin header for connection to K1 on the main board with a 20-lead flat cable.
Adjustment • Connect the exciter (with the display) to the supply voltage. Adjust P2 for the best display contrast. • Then adjust the frequency to 435 MHz. Using a ceramic or plastic trimmer tool, slowly rotate TR2 until the transmit frequency is 435 MHz. Measure the voltage at TP1 and turn TR2 until the measured voltage is approximately 6 V. Now you can use a frequency counter or spectrum analyzer to set the transmit frequency to exactly 435.0 MHz with TR1. • Then adjust P3 for maximum RF power. Next you have to adjust the notch frequency.
32 | July & August 2013 | www.elektor-magazine.com
The 70-cm FM exciter is now ready for use. We realize that some radio amateurs do not have a lot of experience with soldering SMDs by hand. If there is sufficient interest, the author is willing to assemble and adjust a number of boards at a reasonable price. If you are interested in this, please contact the author directly at [2]. (120267-I)
Internet Links [1] www.elektor.com/120267 [2] [email protected]
Adjustment Points P1 P2 P3 TR1 TR2 TR3
Modulation depth (audio) LCD contrast Output power Fine tuning (reference oscillator) Coarse tuning (RF oscillator) Second harmonic filter notch frequency
Test Points TP1 TP2 TP3 TP4 TP5 TP6 TP7
PLL control voltage Modulation signal after pre-emphasis Oscillator voltage (9 V) Driver stage voltage (5 V) Output stage voltage (0–4 V) PLL divider output frequency PLL reference frequency
The new standard ENIG instead of chem. tin for your PCB
At no additional charge! Highest quality surface: ENIG
Multilayer
Price reductions of up to
50%
for 2-5 multilayer circuit boards
www.pcb-pool.com
•Projects
Smartphone A/V Remote Control Transmitter plus App for Android devices
By Peter Zirngibl (Germany) ([email protected])
The best types of universal remote controller come equipped with a large touch screen, just like the one on your Smartphone. So why not use your phone to control all the A/V appliances at home?
Armed with a Smartphone you can surf the Web, send emails, text, chat, download and listen to music, take and post photos and video clips, listen and view TV stations, navigate, place bets and yes, even make phone calls to anywhere on the globe. Tens of thousands of Apps are also available to make the Smartphone the most universal, configurable control and communication device ever created. It is not surprising that there are
34 | July & August 2013 | www.elektor-magazine.com
also Apps which allow you to control the newer generation of home WLAN-equipped A/V equipment. The WLAN interface allows signals from the phone to be routed through to control the equipment directly without the need for additional hardware. Older A/V equipment generally only have the more traditional IR remote control interface and Smartphones still have no built-in IR transmitter.
Smartphone A/V Remote Control
3V3
21 AREF PD1 (TXD)
SC39-11SURKWA
MOSI
3V3 100R
R23
GND
XTAL2
ISP
D1
PD2 PD3 PD4
4 5 6 11 12 13
PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) PD5 (T1) PD6 (AIN0) PD7 (AIN1)
R5
BT_RX
8
C8
C6
C5
22p
22p
S1
S2
S3
10u 25V 2
XTAL1
X1
BT_TX
JP3
2 4 MOSI 6
1k
3
1 3 5
PD2 DOWN ENTER
IC6
1
UP
X1 = 14.7456MHz
3
13
VCC
AVCC
6
MISO SCK RESET
2 JP2
PB0 (ICP) PB1 (OC1A) PB2 (SS/OC1B) PB3 (MOSI/OC2) PB4 (MISO) ATmega88-20PU PB5 (SCK)
9
Q7S
7
20 dp
3V3 K1
PD0 (RXD)
10
8
14 15 16 17 18 19
GND
a b c d e f g
PB0 PB1 PB2 MOSI MISO SCK
PC0 (ADC0) PC1 (ADC1) IC3 PC2 (ADC2) PC3 (ADC3) PC4 (ADC4/SDA) PC5 (ADC5/SCL) PC6 (RESET)
9
10 9 7 5 4 2 1
CC
3
VCC
270R 270R 270R 270R 270R 270R 270R 270R
23 24 25 26 27 28 1
8
OE
GND
74HC595N
R13 R14 R15 R16 R17 R18 R19 R20
CC
13
IC4 14 DS 11 SHCP 12 STCP
15 1 2 3 4 5 6 7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
8
LD2
PC0 PC1 PC2 PC3 SDA SCL RESET
22
Q7S
C3 100n
6
9
16
10 MR
100n
dp
SC39-11SURKWA
3V3 C4
a b c d e f g
4k7
10 9 7 5 4 2 1
10k
270R 270R 270R 270R 270R 270R 270R 270R
8
OE
GND
74HC595N
R1 R2 R3 R4 R6 R7 R8 R9
R12
R11
R10 CC
3
VCC
IC2 14 DS 11 SHCP 12 STCP
PC0 PC1 PC2
15 1 2 3 4 5 6 7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
CC
10
16
MR
100n
LD1
4k7
3V3 C1
TSOP32236
+5V K2
3V3 R24 10k
10R
10R
SCL SDA
2x TSAL6200
IC7 7805
ULN2803A D7
K4
3 1 2
C2
JP1
D4
8
10
D3 18 17 16 15 14 13 12 11
7 WP 6 SCL 5 SDA
VCC
OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8
IC1 24C512 GND
BT_TX BT_RX
PB1 PB2 PD3 PD4
IC5
100n 1 A0 2 A1 3 A2
4
K3
IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8
3V3
R22
1
+5V
IC8 LF33CV 1
3
3V3
3
1N4001 2
3V3
1 2 3 4 5 6 7 8
K
PC3 PB0
BT_TX BT_RX
R21
100u 25V
GND
34 33 32 31 30 28 27 26 25 24 23 22 21 20
ANT
9
RF_IO SPI_MISO SPI_CLK SPI_CSB SPI_MOSI UART_CTS UART_RTS UART_TX UART_RX PCM_CLK PCM_OUT PCM_IN PCM_SYNC USB_DUSB_D+
37
2
C9
VCC
16
BTM-222
17
2 PVCC
RESET
MOD1
100n
GND GND GND GND GND GND
D6
AIO0 AIO1 PIO0 PIO1 PIO2 PIO3 PIO4 PIO5 PIO6 PIO7 PIO8 PIO9 PIO10 PIO11
1N4001 +5V
C7
1 10 18 19 29 38
D5
1k
1k
R25
3 4 5 6 7 8 9 11 12 13 14 15 R26 36 35
RE1
D2
C10
C13
C14
C12
C15
C16
C11
100u 25V
100n
100n 10u 25V
100n
100n
10u 25V
120043 - 11
The vital bit of kit missing here is an intelligent adapter that can on one side communicate with the phone using Bluetooth and on the other, transmit IR signals to control the A/V equipment. Intelligence, in this context generally means that a device has the ability to ‘learn’ a sequence of commands. This of course implies that a learn process is necessary. The adapter needs to know the particular variant of remote control that is in use and which button controls which feature of the controlled equipment. Simple, low cost universal remote controllers are pre-programmed with thousands of different command sets for all the different makes of equipment. They are generally only able to control a few basic commands like PLAY or STOP. It is not possible to
Figure 1. The high level of integration in the Bluetooth module reduces circuit complexity.
edit the commands and a learn function is only possible with the more expensive types of universal remote controller. Some of the better types are able to execute macros which involve a sequence of commands (e.g. Watch a DVD = switch on DVD player, TV, AV receiver, then configure the correct video and audio channel). This procedure is also possible with the Bluetooth-IR adapter described here. The newer, better quality (and more pricey!) type of universal remote controllers can now be conveniently programmed using a PC. To cut down on the software expenditure for this project we decided against this approach. In this design the adapter is programmed by reading the IR signals directly from the original remote controller.
www.elektor-magazine.com | July & August 2013 | 35
•Projects with some peripheral components: VDD
Regulator
Antenna
LNA
RX_IN
SPI UART
VDD 1.8V Switch BPF
Power AMP
BlueCore4-EXT TX_A
USB PCM PIO
I N T E R F A C E
TX_B
Balun
4M or 8M Flash Memory X-Tal 16MHz 120043 - 12
PVCC
Figure 2. Block diagram of the BTM222 Bluetooth module.
Figure 3. A terminal program is used to set up the Bluetooth module to the displayed parameters.
This means that the IR remote transmitter is placed in front of the IR adapter’s receiver and the command transferred. How this is exactly accomplished will be covered in more detail later, first we will take a closer look at the hardware.
A radio-linked controller The circuit diagram given in Figure 1 indicates that there really isn’t too much hardware used in the adapter design. It basically consists of a small Atmel type ATmega88 microcontroller together
• A 24C512 EEPROM with 512 kBit memory and I2C interface to store the programmed codes. • An infrared receiver module type TSOP32236 • Two IR transmitter diodes type TSAL6200 driven by a ULN2803 driver chip. • A two character 7 segment display with an HC595 8-bit shift register to show the programmed codes and program status. • Three pushbuttons UP, DOWN and ENTER, for programming and operating. • In-System-Programming interface K1. • A relay with changeover contacts driven by the peripheral driver chip. • Voltage regulators for +5 V and 3.3 V You have probably seen all of these features many times before in many other circuits, however the real star of the show here is the BTM-222 Bluetooth module from Rayson. A description of the module is contained in the data sheet [1]. The module is small, portable, easy to program and above all (around $10 a pop) affordable. In time, as we move to a more wireless future, all peripherals will probably communicate using devices like this. The BTM-222 is a class 1 device giving it a range of up to 300 ft. As you can see from its block diagram in Figure 2 it includes many serial interfaces and from these the UART must be favorite for microcontroller communications. Data throughput of the UART (and the USB interface) in the BTM-222 is guaranteed at the full data rate of 921 Kbit/s. The BTM-222 UART used with a microcontroller requires hardly any additional components. The communication parameters are factory set to the standard 8N1 setting: • • • •
Baud rate 19,200 Baud 8 data bits No parity 1 stop bit
The microcontroller only needs to open the corresponding UART channel. As required, parameters and other properties of the module can be accessed using the so-called ‘AT command’ set of instructions. More information on this aspect is contained in the BTM-222 data sheet [1]. The settings are stored in an internal flash memory. The ‘blue’ core of the module is clocked by an internal 16 MHz oscillator. The output signal is
36 | July & August 2013 | www.elektor-magazine.com
Smartphone A/V Remote Control
fed to a balun and then to an RF power amplifier producing a signal of +18 dBm at the aerial. For signal reception the BTM-222 switches the received signal to a low-noise amplifier block (LNA) followed by a band-pass filter to reduce out-of-band signal interference. The BTM-222 does not require any external aerial; a short length of PCB track can be used. Here we have used a short piece of wire. The module provides some status output signals: the data status (LED D5 on pin 11) and the connection link status (LED D6 on pin 13) are both used in the circuit. There is also an operating voltage status indicator output from pin 14 but we have not used it in this application.
BTM222 set up Initially the Bluetooth module needs to be configured with the correct parameters. First remove jumpers JP2 and JP3 to disconnect communications with the microcontroller. Connect the BTM-222 to a PC using, for example a TTL232R cable from FTDI, connected to K3. The cable carries a 5 V line (connecting to pin 1 of K3) which must not be allowed to make contact with the BTM-222 supply (this is at 3.3 V, and its upper limit of 3.6 V must not be exceeded). It is therefore important to leave pin 1 of K3 unconnected and power the Bluetooth module from the board power supply. Run a terminal emulation program such HyperTerminal or Hterm on a PC (Figure 3), select a (virtual) COM port, to which the Bluetooth module is connected and use the serial port settings given above for the BTM-222 serial interface. Check to see if the module reacts to the ATI command; this should cause all the module settings to be dumped to the screen. If there is no response check that the 3.3 V supply, the COM port settings and the connections on K3 (TxD/ RxD switched?) are in order. If you are unsure of the module settings or maybe suspect that the BTM-222 is not operating correctly you can pull pin PIO4 high for a minimum of three seconds to reset the module to its factory settings. Change the UART settings to 4800 Baud (ATL = 0), even parity (ATM = 2), no handshake flow control (ATC = 0). Adjust the terminal emulator settings after each parameter change. Finally you can change parameters such as the module name or the Bluetooth connection PIN code as you wish.
Turn on the Smart phone (or other Android device), check that the BTM-222 has been detected and enter the PIN for the connection. When everything is in order turn the remote control unit off, disconnect the PC and place the two jumpers in positions JP2 and JP3.
The Remote App Once the Remote_Control.APK App has been installed the Android Smart phone will be capable of remote control. Bring up the App to begin pairing with the BTM 222 module. Choose the Bluetooth device using SELECT DEVICE and use CONNECT to establish a connection to the device. LED D6 lights up indicating that the module is connected to an Android device and D5 flashes when data is being received. The transmitted value (0 to 99) plus a line feed character tells the adapter which memory location is referenced. In playback mode the command received from the Bluetooth module can be evaluated. The principle is really simple: ‘2/n’ is received and the adapter jumps to memory position 2, and transmits the command stored in this position (in this case turning up the volume of device 1). Commands 73 and 74 do not produce any IR signal but instead operate a relay. Command 73 closes the relay contacts for two seconds while command 74 toggles the relay contact state between off and on. Connector K2 provides connection to the contacts, allowing external equipment to be switched on and off. Figure 4 shows the App running in all its glory on a Smartphone. With the left/right arrows at the top you can choose between five different devices. For each device you can choose to enter a name in the text box and store it with the Save button. The name is retained so it appears
Figure 4. How the remote control App looks on a Smartphone.
www.elektor-magazine.com | July & August 2013 | 37
•Projects when the App is next started. In addition you can add a description to the functions 1 to 10. Press the EDIT button, choose the button to edit and enter the text. Press SAVE to store the text. This sequence is the same for every device.
Camera, action! The controller software is divided into two parts; the programming mode and the operational mode. In programming mode the remote controller infrared command signals are recorded in the adapter memory in the following manner: First it is necessary to clear the serial EEPROM. This is accomplished by pressing all three buttons simultaneously and applying power to the adapter. When the seven segment displays show dE (delete) the three buttons can be released. The complete erase process takes a few minutes before 00 is shown in the display.
COMPONENT LIST Resistors R1-R4,R6-R9,R13-R20 = 270Ω R5,R25,R26 = 1kΩ R10,R24 = 10kΩ R11,R12 = 4.7kΩ R21,R22 = 10Ω R23 = 100Ω
Capacitors C1,C2,C3,C4,C7,C13,C14,C15,C16 = 100nF C5,C6 = 22pF ceramic C8,C11,C12 = 10μF 25V radial C9,C10 = 100μF 25V radial
Semiconductors
Figure 5. The circuit board layout. All of the user interface elements are located on the underside.
D1,D5,D6 = LED, red, 3mm, low current D2,D7 = 1N4001 D3,D4 = TSAL6200 (Vishay) 940nm IR transmitter diode LD1,LD2 = SC39-11SURKWA (Kingbright) 7-segment-LED display, 10mm IC1 = CAT24C512LI-G (On Semiconductor) IC2,IC4 = 74HC595N IC3 = ATmega88-20PU (Atmel), programmed, Elektor # 120043-41 [2] IC5 = ULN2803APG IC6 = TSOP32236IR (Vishay) 36kHz IR receiver IC7 = 7805 IC8 = LF33CV (STMicroectronics) Mod1 = BTM-222 (Rayson) Bluetooth module
Miscellaneous X1 = 14.7456MHz quartz crystal
38 | July & August 2013 | www.elektor-magazine.com
To record the commands in programming mode hold the ENTER button (pin PD6 to GND) before connecting the supply voltage. On the seven segment displays Pr should flash three times (Programming mode). Now find a memory position from 0 to 99 using the UP/DOWN buttons (pin PD5 and pin PD7) and select it using the ENTER button. The display will show the symbol – indicating its readiness. The remote controller can now be bought within 2 to 10 cm to the IR receiver and the required command button on the remote controller pressed once (once only!) Try to complete this process quickly to reduce the chance of recording some interference. The display should now show io.. as confirmation. Recording a macro is possible for each device, each macros can contain up to six commands. Macros are stored in the same way that single commands are stored.
Re1 = 6V SPDT relay (1x c/o contact), Finder 43.41.7.006.2000 S1,S2,S3 = tactile switch, SPNO, round
Smartphone A/V Remote Control
A PCB for the remote control adapter is available from the Elektor shop [2], where you can also
r p c bs
v i c e.c
K3 = 4-pin SIL connector K4 = low voltage adaptor socket, 2.1mm PCB 120043-1 [2]
to
er
JP1,JP2,JP3 = 2-pin pinheader with jumper K1 = 6-pin (2x3) pinheader K2 = 3-pin PCB screw terminal block, pitch 5mm
Once the module has been soldered in position the other through-hole components can be fitted. It is recommended to mount the IC components
.e l e k ww
On the PCB
w
With no other button pressed during reset the program automatically jumps into playback mode. Now using UP/DOWN buttons you can select the command you have just stored and press ENTER to transmit it over the IR diode to switch the A/V equipment. This will show if the command was correctly stored.
order a preprogrammed microcontroller. Use this link to find the compiled App and the firmware source code. A look at the PCB layout should allay any fears for the home constructor; although the Bluetooth module has an SMD outline connections are spaced at 1.25 mm and are relatively easy to solder by hand with a standard fine tipped iron. Correct placement of this module is important prior to soldering. Pin 1 can be identified by a small round dot on the metal screen (on the side by the aerial). This pin should be orientated near the PC1 label on the PCB. The thick pads along the long sides and at the ends are at ground potential and connected to the module’s continuous earth plane.
om
When the IR signals are recorded the pulse widths are stored as Unsigned integer Variables, buffered and then saved to the EEPROM. To program another command it is necessary during the confirmation display (io. flashing) to hold the ENTER button after programming to generate a μC reset.
www.elektor-magazine.com | July & August 2013 | 39
•Projects
Table 1. Assignment of memory position and function Device
Function
1
2
3
4
5
MUTE
0
8
16
24
32
ON/OFF
1
9
17
25
33
VOL+
2
10
17
26
34
VOL-
3
11
19
27
35
PRG+
4
12
20
28
36
PRG-
5
13
21
29
37
AUX
6
14
22
30
38
31,90-94
39, 95-99
MAKRO
7, 75-79
15, 80-84
23, 85-89
Function 1
40
50
60
Function 2
41
51
61
Function 3
42
52
62
Function 4
43
53
63
Function 5
44
54
64
Function 6
45
55
65
70
Function 7
46
56
66
71
Function 8
47
57
67
72
Function 9
48
58
68
73
1)
Function 10
49
59
69
74
2)
1) Relay on for 2 s
2) Toggle relay
App Editing The App was developed using MITs App Inventor [3]. To make changes to the App it is first necessary to create a Gmail account and then login to the web site [3]. Load Remote_Control.ZIP under ‘My Projects’ of the AppInventor in ‘More Options’ -> ‘Upload Source’. The App can then be edited and compiled on line and the resulting file ‘Remote_Control.APK’ can be downloaded to the PC or installed directly to an Android device.
40 | July & August 2013 | www.elektor-magazine.com
using sockets. Both seven segment displays, the three push buttons, D5 and D6 are fitted to the PCB underside. This leaves all the ‘HID’ devices on the same side of the board which makes it simpler to install into a case. A simple short length of cable is suitable as an aerial. According to the calculation at 2.4 GHz (13 cms band) the aerial should be around 3.1 cm (λ/4), but the length is not too critical and for this application we only need relatively short range communication. The main thing to remember is that if the unit is fitted in a metal housing please ensure that the aerial extends outside the case. (120043)
Internet Links [1] www.mikrocontroller.net/wikifiles/f/fc/ BTM222_DataSheet.pdf [2] www.elektor.com/120043 [3] http://appinventor.mit.edu
0016001e00180013001e 001800170019 000700170017001d000100180013001e 001f001400130002 00110012001a 0005001d001d0015 000f001e00140015 001a0010000f 00110012001a #0019 0014001f001e#0010 '(.*0001,.001c-! ),*,. (-%*0013$+,.',0012,)- !,&* ,&0012'+-&!,&*.%-+.001f001e#0016 000e-+*,000400160014#.(,+',( !'001c+-001c-&*+-)),+(001d.
001f001f001f001c 001e00140015001c 001d001b 001b0019
001e$ '.0018+-*-*0005 '&0003.%-+.#'001c+-001c-&*+-)),+(001d.
001b0004001e0019001c001d00160003
00110012001a 00100006 000e 001900070014000f0010 0018+-%,(('-&$).'(.$. %0011)).%,$*0011+,'.(-%*0013$+, ',0012,)- !,&*.(-)0011*'-&.%-+.$)) 001f001e#.0018-0013,+,'0016 )$*%-+!(001d.
001f001f001f001c00180016001b001c 001d001b 0019000b000e
00020015.001b001a001a.0017001b.001b001a000f0015 .001f001e#. *'001d.001f00190017001b000b..0006..001a ..001d00150017.
•Projects
Ambience Lighting Controller Setting the mood with RGB LEDs Color LED strips are now available at low cost in
By Goswin Visschers (The Netherlands)
all sorts of types and sizes. With the controller circuit described here, you can set your own colors and even configure and run complete lighting programs. The controller is battery powered, so it can be used in places where AC power is not readily available.
This circuit was originally developed to drive color LED strips from a well-known Swedish chain of home furnishing stores. These color LED strips come with a simple controller, which allows you to manually select a limited number of colors. This restriction stimulated the author to develop a DIY controller with more capabilities. The resulting ‘ambience lighting controller’ is suitable for all RGB LEDs and LED strips that can operate from a 12 V supply voltage with a series resistor for current limiting. In the author’s intended application it was not possible to power the LED strips from the AC line, so the controller is designed to operate from a 12 V gel-cell battery. The basic features of the circuit are described in the inset.
Schematic diagram As you can see from the schematic in Figure 1, the circuit is fairly simple. The author chose a PIC16F887 for the microcontroller on account of its integrated EEPROM (for convenient storage of lighting programs), extensive I/O capacity
42 | July & August 2013 | www.elektor-magazine.com
and integrated ADC. Although the PIC16F877A is more popular, a sibling device was selected for this application because its ADC configuration allows the ADC inputs on RA0 and RA1 to be used without requiring any reference voltage input on RA2 or RA3. Here RC3 is connected to switch S1, which allows the battery charge state to be shown on the LCD module in two different ways. Connector K6 is the ICSP port for in-circuit programming of the microcontroller. The microcontroller is clocked at 20 MHz by crystal X1. This relatively high clock frequency is necessary because the clock signal is divided by 4 inside the microcontroller. The resulting 5 MHz signal is essential for the PWM control function implemented in software. The display module, a standard type with two lines of 16 characters (which is available in the Elektor Shop), is connected to port RB. If you use a different type of LCD, the polarity of the supply voltage for the backlight can be changed (if necessary) using jumpers in positions J1 and J2. Transistor T2 switches off the backlight after 10 seconds with no user input. The contrast can be adjusted with trimpot P1. Unlike most circuits
LED Lighting Controller
Features • Supply voltage range 11–15 V • Constant brightness over operating voltage range • LC display (2 lines of 16 characters) • Up to 13 user-definable colors with adjustable RGB values • Three user-definable lighting programs with 20 color changes. The maximum duration for each color is 255 s, and the maximum duration of the transition to the next color is also 255 s. Both times can be set in increments of 1 s. • Continuous operation with any one of the three defined programs • Acoustic alarm when the battery is discharged, with automatic switch-off of the LED strips • LED indicator for remaining battery charge
Figure 1. Schematic diagram of the RGB lighting controller, which is built around a PIC16F887 microcontroller.
• Built-in charging circuit for the battery, with automatic switchover to trickle charge • “Child lock” to prevent changes to color settings or programs • Optional remote control via RS232/USB converter
+5V RE1.B
PGC
1
2
3
4
5
1k DB2
LEDC
DB1
LEDA
DB0
9
DB7
E
8
DB6
R/W
7
DB5
RS
6
DB4
VO
5
10 11 12 13 14 15 16
BACKLIGHT
J1
100n 32
R22
3 C3
C4
C7
100n
100n
100u 16V
470n
C8
4
D3
C9
5
3k9
C2
470u 16V
3k9
C1
R7
1u 16V
6
1u 16V
7
1N4148 8 9 10 15 16 17 18 19 20
22
RD3
RA2/AN2/VREF–/CVREF/C2IN+
RB1/AN10/C12IN3–
RB7/ICSPDAT
PIC16F887-I/P
RE2/AN7
RD7/P1D RD6/P1C RD5/P1B
RC0/T1OSO/T1CK1 RC1/T1OSI/CCP2
RD4
RC2/P1A/CCP1 RC3/SCK/SCL
RC4/SDI/SDA RC5/SDO
RD0
RC6/TX/CK
RD1
RC7/RX/DT VSS
OSC1
12
13
OSC2 X1
R17
38
RB6/PICSPCLK
RE1/AN6
BC547
36 37
RB5/AN13/T1G
RE0/AN5
+5V
35
RB2/AN8 RB4/AN11
RA5/AN4
39 40
C5
R18
R19
Submenu_1 ENTER
5
29
4
28 1
27
3 2
Submenu_2
23
BACK
24
ENC3
25
5
R20
26
4
1
31
BZ1
D5
+12V
R16
ENC2
30
VSS
14
T2
34
RB3/AN9/PGM/C12IN2–
RA4/T0CKI/C1OUT
+5V
33
RB0/AN12/INT
RA1/AN1/C12IN0– RA3/AN3/VREF+/C1IN+
21
RD2
RA0/AN0/ULPWU/C12IN0–
47R
RE3/MCLR/VPP
IC2 2
1
VDD
10k
10k
1
J2
10k 11 VDD
R4
1
P1
R6
10k
10k
R5
1N5400
12V Battery
4
10k
2A T
3
10k
K7
IC1 LM7805
2
10k
R3
D2
1
+5V
C10
F1
VCC
+5V
+12V
+5V
1k
+12V
VSS
+5V
Power
R21
LC DISPLAY 2 x 16
K6
CHILD LOCK
DB3
S2
PGD
0W5
GND
10k
LCD1
47R
5W
1N5400
R11
VCC
3A15 F
R10
MCLR
1R
K1
R9
10k
R1
10k
R2
10k
R8 D1
F2
3 2
C6 20MHz
D4
MODE SELECT
K8 MOD-110533 DIL
R13
1 2 R12
T4
1
K3
T5
4 5
K4
6 7
3
8
4
9
1 2 3
3x IRL540NPBF
2 3
4
2
4
+5V
USB Serial Bridge Module
3
1
+5V
K2
4
2 R14
2 3
1
3
S1
T3
5
10k
BC547
4
BATTERY DISPLAY
10k
R15 1k
1
ENC1
1N4148 T1
15p
Menu
10k
RE1.A
15p
+5V
K5
CBUS4
+5V
CBUS3
VCC10
CBUS2
+3V3
CBUS1
GND
CBUS0
CTS
RESET
R1
DCD
RXD
DSR
TXD
DTR
RTS
D6
23
1N4148
22 21 20 19 18 17 16 15
Elektor - 110533 USB 110406 - 11
www.elektor-magazine.com | July & August 2013 | 43
•Projects
v i c e.c
om
.e l e k ww
r p c bs
er
to
w
Figure 2. The operator controls and LCD are also mounted on the PCB.
with an LCD module, here the LCD is driven in 8-bit mode instead of 4-bit mode. This simply represents a design choice, since the microcontroller has enough I/O pins available.
The color intensity of the connected LEDs is determined by pulse width modulation. Although the microcontroller has enough PWM outputs available for this purpose, the author decided not to
COMPONENT LIST Resistors R1 = 47Ω 0.5W R2 = 1Ω 5W R3,R5,R6,R8-R14,R16-R19 = 10kΩ R4,R7 = 3.9kΩ R15,R20,R21 = 1kΩ R22 = 47Ω P1 = 10kΩ preset, horizontal
Capacitors C1 = 470µF 16V radial C2,C3,C10 = 100nF C4 = 100µF 16V radial C5,C6 = 15pF C7 = 470nF C8,C9 = 1µF 16V radial
Semiconductors D1,D2 = 1N5400 D3,D4,D6 = 1N4148 T1,T2 = BC547B T3,T4,T5 = IRL540 (International Rectifier, Newark/ Farnell # 8651078) IC1 = LM7805 IC2 = PIC16F887, programmed, Elektor # 110406-41)
44 | July & August 2013 | www.elektor-magazine.com
D5 = LED, red, 3mm
Miscellaneous X1 = 20 MHz quartz crystal F1 = fuse, 2AT (slow), with PCB mount holder F2 = fuse, 3.15AT (slow) with PCB mount holder BZ1 = active (DC) buzzer (with internal oscillator) RE1 = relay, 12V, 1 c/o contact @ 2A min. (e.g. Finder 40.31.7.012.0000; Newark/Farnell # 1169158) MOD1 = Elektor USB-FT232R breakout-board (BOB) [1] S1,S2 = slide switch, angled pins, PCB mount (e.g. C&K OS102011MA1QN1; Newark/Farnell# 1201431) S3,S4,S5 = rotary encoder with integrated pushbutton (e.g. Alps EC12E2424407; Newark/Farnell # 1520813) K1,K7 = 2-pin PCB screw terminal block, 5mm lead pitch K2,K3,K4,K5 = 4-pin pinheader, 0.1’’ pitch K6 = 5-pin pinheader, 0.1’’ pitch LCD1 = LCD 2x16 characters, with backlighting (e.g. Elektor # 120061-71)) J1,J2 = 3-pin pinheader with jumper, 0.1’’ pitch 40-pin DIL-socket for IC2 PCB 110406-1 [2]
LED Lighting Controller
use them in order to simplify the routing of the prototype circuit board. For this reason, the PWM function is programmed in software. The LEDs are driven by the power MOSFETs T3, T4 and T5, which are designed to operated from TTL-level signals. The RGB LED strips (maximum 4) are connected to connectors K2 to K5. Each of the MOSFETs can easily supply several amps without extra cooling. Bz1 is a buzzer with a built-in oscillator, so you only need to apply the supply voltage to get a penetrating acoustic tone. The control elements consist of three rotary encoders with built-in pushbuttons. The RA0 and RA1 leads of the microcontroller are used as A/D converter inputs. The RA0 input measures the battery voltage, while the RA1 input detects whether a battery charger with a supply voltage above 14 V or so is connected. Voltage dividers R5/R4 and R6/R7 reduce the sensed voltages so they fall within the measuring range of the microcontroller. Capacitors C8 and C9 decouple any ripple voltage on the sense lines. The schematic also includes a serial to USB converter module (Elektor BOB, order no. 110553-91 [1]), which can be used for linking to a PC if so desired. The circuit can be controlled remotely using a number of commands in a terminal emulator program. For more information about this, see the user guide (free download [2]). The supply voltage is regulated by a conventional 7805 together with a few capacitors (IC1, C1–C4) and a diode (D2) for polarity protection. The value of fuse F1 in the power supply stage depends on the load. A 2-A slow blow fuse should be adequate with 6.5-ft (2-meter) LED strips, but to be on the safe side you should measure the load current in the actual application. Naturally, you should do this with all colors set to maximum intensity. Connector K7 is the power input connector for a gel-cell battery, and an AC adapter with an output voltage of approximately 15 V at 2 A or more can be connected to K1. Transistor T1 drives relay RE1, which in turn shorts out resistor R1 when the battery has to be charged. The relay type is not critical—as long as the contacts can switch 2 A and the coil voltage is 12 V. See “Operation” for more information about the relay. The circuit draws only 25 mA or so in operation, or approximately 50 mA with the backlight on.
PCB Figure 2 shows the PCB layout designed at Elektor Labs for this lighting controller. Only leaded components are used, so board assembly is easy even if you don’t have a lot of soldering experience. All components are fitted on the side with the component overlay. Using flat-jawed pliers, bend the leads of the voltage regulator and the MOSFETs at a right angle before fitting them to the board, so that they lie flat on the board after they are soldered. These components do not need heat sinks for normal use. The microcontroller (optionally available preprogrammed) should be fitted in a socket. If you want to use a serial link to a PC, you should install the Elektor USB FT232R breakout board. It can be fitted directly on the PCB, or you can use a pair of 9-pin SIL socket strips.
Software The program for this circuit was written in ANSI C using MPLAB and compiled using a full-function Hi-Tech C compiler running in evaluation mode (45 day trial license). The “lite” version of this compiler is not suitable in this case because it does not provide sufficient optimization, with the result that the executable code is too large for the 8 KB of program memory in the microcontroller. The source code and hex code, as well as the PCB layout, are available on the Elektor website [2] for free download. As usual, you can order a pre-programmed microcontroller in the Elektor Shop. The key component of the software is the interrupt service routine (ISR). This routine was optimized using the stopwatch function of MPLAB to minimize its execution time. The ISR is divided into several subroutines that can be executed every 100 µs, 5 ms, 100 ms or 1 s. The ISR is called every 100 µs, and it uses counters to ensure that the subroutines are executed at the previously mentioned intervals. To reduce memory usage, a counter was initially used to determine the 1-ms and 100-ms intervals. A modulus calculation (which yields the remainder of a division operation) was performed each time the interrupt was called (every 100 µs), and if the remainder was zero, a 1 ms interval had expired. During debugging with the stopwatch function it turned out that this modulus calculation took so much time that it would be better to use a second counter to determine the 1 ms intervals.
www.elektor-magazine.com | July & August 2013 | 45
•Projects The automatic light level control works as follows. The nominal PWM clock frequency is 100 Hz at 11 V. If the battery voltage is higher than 11 V, the LEDs will be brighter if the duty cycle remains the same. If the duty cycle is adjusted according to the battery voltage, a new duty cycle has to be calculated for each color. A much simpler method is to leave the ‘on’ time the same and reduce the PWM clock frequency as the voltage rises. This means that the calculation only has to be performed once to obtain the same result.
Listing 1 fade_step_red = current_red_value - next_red_value; fade_step_green = current_green_value - next_green_value; fade_step_blue = current_blue_value - next_blue_value;
increments of 100 ms). The result of the division is typically a decimal fraction, which means that floating point variables have to be used for the calculation and for storing the values. The PIC16F microcontrollers are simple 8-bit devices, and the compiler had a lot of trouble handling these “big” floating-point variables. This led to timing problems and errors in the compiled code. The solution to this problem was relatively simple. Multiplying and dividing integers takes less time and memory than working with floating point numbers. Accordingly, the difference between the PWM values for each color is first multiplied by 100 and then divided by the transition time, as shown in the following code segment (Listing1).
fade_step_red = fade_step_red * 100; fade_step_green =
fade_step_green * 100;
fade_step_blue = fade_step_blue * 100; fade_step_red = fade_step_red / fade_time; fade_step_green =
fade_step_green / fade_time;
fade_step_blue = fade_step_blue / fade_time;
At every step during the transition interval (every 100 ms), the current PWM value is calculated and then divided by 100. The result is an integer “rounded off” to two decimal points, rather than a decimal number (Listing 2). With this approach, an 8-bit microcontroller can handle color transitions without significant performance problems.
Listing 2 tmp_red_value = fade_tmr * fade_step_red;
Operation
tmp_green_value = fade_tmr * fade_step_green;
After the controller is switched on, it first shows a welcome message on the display consisting of its name and version number. The menu becomes available 1 second later. Operation of the controller is self-explanatory, but an extensive User Guide is also available as a free download [2]. You can scroll through the menu using rotary encoder ENC1. First you see the three options Run Program (where x is 1, 2 or 3) for running one of the defined programs. Select one of the three programs and press Enter (the pushbutton of ENC2). To return to the menu, press Back (the pushbutton of ENC3). The menu option Charge Battery selects monitored battery charging mode. First connect a 15-V battery charger, and then select this option. In this mode the relay is energized and shorts out resistor R1, so that more current can flow into the battery. The color LED strips are switched off to prevent potential damage from the higher than usual input voltage. When the battery voltage reaches 13.8 V, the relay is released. This reduces the battery charging current to the trickle
tmp_blue_value = fade_tmr * fade_step_blue; tmp_red_value = tmp_red_value / 100; tmp_green_value = tmp_green_value / 100; tmp_blue_value = tmp_blue_value / 100; red_value = next_red_value + tmp_red_value; green_value = next_green_value + tmp_green_value; blue_value = next_blue_value + tmp_blue_value;
The difference between PWM clock frequencies of 100 Hz and 90 Hz is not visually noticeable. Another bit of software that caused headaches for the programmer with the code for the color transitions. The calculation is very simple in principle: take the PWM value for each color, calculate the difference between this value and the next value, and spread the result over the transition time. Then raise or lower the PWM value for each color at each step during the transition interval (here the transition interval is given in
46 | July & August 2013 | www.elektor-magazine.com
LED Lighting Controller
charge level, and the color LEDs are switched on again. The Battery Charge option shows the charge level of the battery in steps of 10%. The value is determined by measuring the battery voltage and expressing it as a percentage, where 0% corresponds to 0% and 13.8 V corresponds to 100%. LED D5 indicates the charge state of the battery. The LED is lit constantly when the battery is fully charged (13.2 V). When the battery starts to get low, it blinks for one second with a duty cycle that depends on the remaining battery charge. If the battery is nearly empty, the LED lights up very briefly. When the battery is so low that the color LEDs must be switched off, the buzzer start beeping. Switch S2 provides a Child Lock function. When it is closed, the Edit Program and Edit menu options are not available. To adjust a color setting, select Edit , press Enter, and use the rotary encoders to set the red, green and blue levels over the range of 0 to 100%, in steps of 1%. Press Enter to save the new settings, or press Back to return to the menu without saving the new settings. To configure a program, first select Edit Program and then press Enter. Then use rotary
encoder ENC1 to select the color, rotary encoder ENC2 to set the Hold time, and rotary encoder ENC3 to set the transition time. (110406-I)
Internet Links [1] www.elektor.com/110553 [2] www.elektor.com/110406
Advertisement
www.elektor-magazine.com | July & August 2013 | 47
•Projects
PWM Step Up Converter Get up, stand up... With an input voltage in the range from 8 to 16 V this circuit produces an adjustable output voltage up to 42 V at approximately 1 A. It can for example be used as a mobile charger for up to three series connected 12 V Lead-Acid batteries.
can be said that the energy in the coil’s magnetic field—which is stored largely in the ferrite core—is transferred through the diode to the capacitor during the switch-off stage. Those of you who want to explore the subject a little deeper can go to this introduction [1]. By Wolfgang Schmidt (Germany)
The circuit
A step-up or boost converter circuit converts a low voltage into a higher value output voltage. The circuit consists of an inductor, a capacitor, a diode and a switch (transistor) that’s turned on and off by a pulsewidth modulated (PWM) signal. One switch cycle has a period T made up of an on-time t1 and an off-time T – t1. During the PWM signal on-time the switch is closed (lower diagram Figure 1). The input voltage Ue is connected across the inductor L1 and providing the supply U e has low enough impedance will produce a linearly rising current IL through the coil, storing increasing energy in the magnetic field. When the switch opens, the coil’s collapsing magnetic field induces a reverse voltage across the coil. This induced voltage is added to the supply voltage in the circuit, and provides a forward current flow through the diode where the energy is stored in the capacitor. It
48 | July & August 2013 | www.elektor-magazine.com
Figure 2 shows how the step-up converter circuit with L1, D1, C8 and MOSFET T1 is configured. An Atmel ATmega8-16PU microcontroller together with the appropriate firmware produces the PWM signals to switch MOSFET T1. The PWM signal is produced from pin PB1 with a frequency of 66 kHz, using the internal fast-PWM mode. The output voltage is controlled by the mark/space ratio of the PWM switching waveform, and the microcontroller must be able to sense the output voltage level in order to control the waveform. This voltage feedback takes place over the voltage divider network formed by R6, R7 and P2. The preset is necessary because the data sheet indicates that the reference voltage level may be between 2.3 and 2.9 V and P2 allows some degree of calibration of the circuit. If the resistor values do not allow enough adjustment or if the value of R7 (43 kΩ) is difficult to source, adjustments in the firmware can be made to compensate. To set up the circuit you can use a known accurate DVM to measure the output voltage and tweak the preset until the displayed value corresponds
PWM Step Up Converter
to the value on the DVM. The microcontroller’s built in A/D converter gives a resolution of 10 bits. The firmware calculates the voltage using a voltage divider network consisting of 47 kΩ (R7+P2) and 2.7 kΩ (R6). This set up gives a measuring resolution of 46 mV (((49.7 kΩ/2.7 kΩ)×2.56 V)/1023). The voltage reading shown on the 2×16 character LCD can be seen to change in steps of 0.04 V or 0.05 V. Step-up converters using this topology do not have any built-in current limiting. To reduce the possibility of overload a shunt resistor R5 is included in the ground output pin, and the voltage drop is measured by a second A/D input of the controller. The firmware now regulates the mark/ space ratio of the converter switching waveform to reduce output current before the converter enters into discontinuous mode. The networks formed by C10, C11/R8 suppress any RF noise on the analog A/D inputs. The LCD is used to display operational parameters (via menu selection) such as the output voltage and current. The circuit is provided with three push buttons: S1 resets the microcontroller while S2 and S3 provide increment/decrement control of the output voltage. With both buttons pressed at the same time the software will enter cur-
Ue
Ua
L
20V
12V
L discharge Ue
Ua
L1
12V
20V
Figure 1. The two phases of the stepup conversion process.
L charge 120460 - 12
rent limit mode as shown on the display. In this mode S2 and S3 can now be used to increase and decrease the current limit setting. A short time after the last push button activity the display reverts to voltage display. LED D3 indicates that an input voltage is present, if its goes out fuse F1 may have blown indicating that the circuit is possibly drawing excessive current or that the external power supply has developed a fault. D2 indicates that the current limiter is active.
+5V
10k GND
DOWN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
AREF
7 VCC
17 PB3 (MOSI/OC2) 18 PB4 (MISO) 19 PB5 (SCK)
X1
GND
R4 UP
4R7
2 3 4 5 6 11 12 13
+5V
MOSI MISO SCK RESET
1 3 5
K5
2 4 6
ISP
8
10k
C8 1000u 63V
R6 2k7
R3
ATmega8-16PU
14 PB0 (ICP) 15 PB1 (OC1A) 16 PB2 (SS/OC1B)
JP1
R2 10R
XTAL2
MBR 3100G T1
PC0 (ADC0) PD0 (RXD) PD1 (TXD) PC1 (ADC1) IC1 PC2 (ADC2) PD2 (INT0) PC3 (ADC3) PD3 (INT1) PC4 (ADC4/SDA) PD4 (XCK/T0) PC5 (ADC5/SCL) PD5 (T1) PC6 (RESET) PD6 (AIN0) PD7 (AIN1)
10
10n
21
20 L1
AVCC
23 24 25 26 27 28 1
22
1k5 0R22
K4
100n
C10
1 2 R5
JP2
10k
C1
R7 43k
100uH
P1
100n
R1 R8
42V
100n
XTAL1
10k D1
100n
GND
10n
C5
9
P2
1 2
+5V C2
C6
2k7
K3
1000u 25V
POWER
C11
3
R10 C7
D3
K2
100n
R9 10k
12V 1 2
7805
1
5A T
C9
+5V
IC2 F1
1 2
2
K1
VSS VDD VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LED-C LED+A
LCD1 TC1602C-01YA0_A00 2 x 16
IRL540NPbF S2 UP
S3 DOWN
S1 RESET
D2 PB2
C4
C3
22p
22p X1 = 16MHz
120460 - 11
Figure 2. The microcontrollerregulated step-up converter.
www.elektor-magazine.com | July & August 2013 | 49
•Projects Putting it all together The reset button S1 is fitted directly to the board because it should only be necessary to access it occasionally. Push buttons S2 and S3 are connected by flying leads to the pads on the PCB: Up, GND and Down. The buttons can be either two PCB mounted push buttons fitted to a small square of perf board or the larger panel mounted type fitted directly on the front face of the enclosure. The two LEDs should, of course also be mounted where they can be seen. Preset P1 provides contrast adjustment of the LCD module. Jumper JP2 enables the LCD back light and can be replaced by a switch if required. A small finned heat sink is used to keep the MOSFETs cool. A heat sink with a thermal resistance of 21 K/W is sufficient for output current up to 1 A. A standard radial-leaded or TO220 outline version of diode D1 can be used. Check the corresponding data sheet to ensure the correct polarity of the TO220 outline. The electrolytics C7 and particularly C8 used in the switching circuit require some attention. At a switch frequency of 66 KHz it is important to use the low-loss type capacitors specified in the parts list. Standard electrolytic capacitors are unsuitable for this application. For testing the unit in the lab we fitted the LCD display board with a pin header strip and plugged it directly into a box header strip fitted to the edge of the PCB. This proved ideal for testing purposes but when the unit is fitted into a project box or some other form of enclosure it may, for example be more practical to mount the display on the underside of the PCB. Fit a small square of insulating material between the display and the PCB to avoid any possible short circuits. (I normally fit a thin sheet of Pertinax or Paxoline between the boards). A standard ISP connector is fitted at K5 to enable microcontroller programming. The controller needs to be powered up via the 7805 voltage regulator IC2 during the programming process. The supply voltage on pin 2 of K5 is used by the programming adapter (the AVRISP mkII for example) to determine the microcontroller’s supply voltage (3.3 V or 5 V). During the programming phase the controller’s outputs are undefined so a jumper (JP1) is included in the connection to the MOSFET’s gate.
50 | July & August 2013 | www.elektor-magazine.com
This should be removed during programming to ensure that the MOSFET remains off. Otherwise the MOSFET can switch on via PB1 and short circuit the supply voltage causing the fuse to blow. R3 pulls the gate to ground when JP1 is removed ensuring it remains off. Be careful to remember to remove this jumper before programming! R2 reduces switching point instability produced by the high gate capacitance of T1. The MOSFET gate capacitance introduces a delay whenever the MOSFET switches on or off. This gives rise to increased power dissipation in T1 because the source-drain is not switching immediately between off and on but passing through a resistive stage where power is dissipated in the device. A higher switching current would be able to remove the gate charge faster and result in a faster MOSFET switching times with less heat dissipation. A standard ATmega output can only supply around 30 mA drive current and is therefore a relatively weak current source. The maximum output voltage level is limited by the voltage rating of D1 and T1. These two components would therefore be some of the first candidates to consider replacing to improve the circuit specification. The circuit as it stands is only really intended to show how a basic stepup converter can be built and act as a stimulus for further improvement.
Work in progress; the firmware The source code as it stands is written in BASCOM-AVR, and as usual it is available for free from the Elektor website [2]. As it stands it implements a very basic charge pump regulator and there is certainly plenty of room for improvement. These improvements include some critical points like the implementation of a true lead-acid battery charger with several charge phases. The input current is approximately 3.5 times higher than the output current, hence the slowblow fuse with a value of 5 A at the input. The prototype was tested on two different lead acid batteries. A curious behavior was noted during testing; with a current setting of 0.2 C for example (which is relatively high for a Lead-Gel battery) the battery voltage quickly dropped after the maximum voltage setting had been reached and the charger switched off. In practice, using this software it is necessary to observe the charging process and know when to terminate the charge cycle.
PWM Step Up Converter
COMPONENT LIST
Inductors L1 = 100µH 5A 20%, radial 25mm, 8mm pitch (Würth Elektronik 7447070, Avnet/Farnell # 2082537)
Semiconductors D1 = MBR3100G D2 = LED, red, 3mm
Figure 3. The step-up converter PCB.
D3 = LED, green, 3mm T1 = IRL540NPbF IC1 = ATmega8-16PU, programmed, Elektor # 120460-41) IC2 = 7805
to
r p c bs
v i c e.c
A suggestion: The complete recharge cycle of a lead-acid (Gel) type battery should consist of two to four phases [3]. A (not fully) flat battery can be charged in the ‘bulk-phase’ using a constant current (0.1 to 0.2 C is reasonable), until a terminal voltage of 2.4 V per cell is achieved (This is as far as we go in the firmware in its present form. The battery will have approximately 80 % of a full charge at this point). Now the voltage is limited to the final terminal voltage, while the charge current is measured until it sinks to below one tenth of its maximum value. This second, so-called ‘absorption-phase’ almost completely charges the battery to around 98%, and the final ‘float-phase’ requires the terminal voltage to be reduced to 2.23 V per cell. The battery can now remain connected to the charger in this phase without the cell starting to gas.
You may be wondering what happened to the fourth phase; well this is only necessary when the battery is deeply discharged (below 1.75 V per cell). In this state the battery is nursed back to health using a small trickle charge until the cell reaches its lower voltage threshold.
er
The software as it stands does not provide a slick user interface offering a selection of sophisticated battery charging methods. The aim of this project is more to demonstrate how such a charger could be made and due to the open nature of the design and software, gives an opportunity for interested readers to hack as required and implement their own improvements.
.e l e k ww
Capacitors C1,C2,C5,C6,C9 = 100nF 5% 63V, ceramic, 5mm or 7.5mm pitch C3,C4 = 22pF 5% 50V, 5mm pitch C7 = 1000µF 20% 25V, radial, Ø12.5mm, 5mm pitch (Panasonic EEUTP1E102, Avnet/Farnell # 1890543) C8 = 1000µF 20% 63V, radial, Ø16mm, 7.5mm pitch (Nichicon UPW1J102MHD, Avnet/Farnell # 2112865) C10,C11 = 10nF 10% 100V, 5mm pitch, ceramic
Miscellaneous F1 = fuse, 5A, slow, with PCB 20x5 mm holder and cap JP1,JP2 = 2-pin pinheader, 0.1’’ pitch, with jumper K1-K4 = AMP plug, PCB mount, 0.2’’ K5 = 6-pin (2x3) pinheader, 0.1’’ pitch S1 = tactile switch, 6x6 mm, SPST-NO S2,S3 = pushbutton, SPNO, PCB or chassis mounting * PC1,PC2,PC3 = solder pin, 1.3mm diam. for S2, S3 Heatsink type FK230SAL1 (Fischer Elektronik) X1 = 16MHz quartz crystal, HC49/ US, 50ppm, Cload 18pF LCD1 = LCD 2x16 characters (Elektor # 120061-71) PCB # 120460-1
w
R1,R3,R9 = 10kΩ 5% 250mW R2 = 10Ω 5% 250mW R4,R6 = 2.7kΩ 5% 250mW R5 = 0.22Ω 5% 1W R7 = 43kΩ 1% 600mW R8 = 1.5kΩ 5% 250mW R10 = 4.7Ω 5% 250mW P1,P2 = 10kΩ 20% 0.15W, preset, horizontal
om
Resistors
If you have been working on software improvements to this design or have started, but reached an impasse, why not visit our project page [4] and share your experiences! (120460)
Internet Links [1] Switch mode basics: http://schmidt-walter.eit.h-da.de/smps_e/ smps_e.html [2] www.elektor.com/120460 [3] Charging lead-acid batteries: www.batterystuff.com/kb/articles/battery-articles/battery-basics.html#9 [4] www.elektor-projects.com
www.elektor-magazine.com | July & August 2013 | 51
•Projects
Charge-a-Phone on NiMH with the Elektor USB Power Pack By Ton Giesberts (Elektor Labs)
The goal of this project is to allow standard AA size rechargeable batteries, like NiMH, to effectively charge portable devices like smartphones and tablets through the USB connector.
How many batteries to use? The circuit has to produce 5 V and be able to deliver up to 1 A of output current. Four freshly charged NiMH batteries can have a voltage well above 5 V, so it seems prudent to keep the number at three. However, in USB speak ‘5 V’ is nominal, the actual range being 4.35 V to 5.40 V. Although that’s in favor of four batteries again, we still wish to produce a 5.00 V supply that’s accurate, if only because some designers use the USB voltage as a reference (keep that limited to non-critical applications). Three.
Boost converter TPS61030
In numbers, there are probably more chargers around for NiMH than for Lithium-ion or Lithiumpolymer batteries. If you wanted to use the latter you’d have to integrate the charger circuit, making the ‘battery pack’ more expensive and complex. Keeping the batteries separate from the enclosure still leaves the option to use Liion or LiPo. Luckily their initial voltage (3.6–3.7 volts) is almost the same as three NiMH batteries in series. Also, by using a separate battery holder, you’re able to exchange discharged batteries with fresh ones without having to charge first, or open the enclosure. That’s a big plus if your phone, tablet or e-gizmo is in serious need of charging and you’re in the middle of nowhere.
52 | July & August 2013 | www.elektor-magazine.com
The lower voltage of three batteries implies the use of a smaller battery holder but also the need for a boost converter. There’s an excellent device available from Texas Instruments, the TPS61030. It’s a synchronous boost converter with an internal 4-amp switch and an efficiency of 96 % (dependent on input voltage and output current of course). The converter also has an (optional) Low Battery Comparator to prevent deep discharging of the batteries. An extra undervoltage lockout (1.6 V) prevents the converter from malfunctioning. The internal reference voltage is 0.5 V, making it easy to calculate the voltage divider for the correct output voltage. Here 1.8 MΩ is used for R3, and 200 kΩ for R4. According to the datasheet, only if R4 is significantly lower than 200 kΩ then an extra capacitor for stability is necessary in parallel with R3. Here a 10 pF cap is used just to be sure. Resistor R2 should be low enough to eliminate the input current of the comparator (about 10 nA). A value of 500 kΩ is recommended. The comparator level is around 500 mV with a hysteresis of
USB Power Pack
10 mV. A threshold of 1.1 V was chosen to define one fully drained battery. Values of 1.8 MΩ for R1 and 330 kΩ for R2 result in a theoretical threshold of 3.23 V. If the total battery voltage drops below this threshold the output of the comparator goes Low (LBO). This output is used to disable the output circuit. The decoupling of the input voltage by C1, C2 is in accordance with the recommendations in the datasheet. The decoupling of the output voltage depends on the maximum output ripple. A few millivolts is ideal, but the ESR of the capacitors in particular, as well as the board layout will result in a higher value in practice. Theoretically the ripple should be around 1 mV with an output buffer capacitor of 220 µF. In practice about 60 mV was measured across C5 (3.50 V in, and 1 A load). C5 has a rated ESR of 20 mΩ at 100 kHz. The switching frequency of 600 kHz is a lot higher, and the higher switching current accounts for the higher ripple voltage. To suppress switching noises a ferrite bead (L2) is placed in series with the output circuit. This way the ripple voltage is also reduced. The final output capacitor (C8) reduces the ripple voltage even further. For the calculation of the inductor a change of 10 % of the maximum average inductor current was taken into account. At 3.20 V the average
Measurements and Specifications Input voltage range . . . Maximum input current . Output voltage . . . . . . . .............. .............. Low battery threshold . . Overvoltage protection . Efficiency . . . . . . . . . . . .............. Supply current (no load) Power LED lights at . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. 3.3 – 4.1 V . 1.7 A (Vin = 3.33 V) . 4.93 V (no load) . 4.92 V (0.3 A load) . 4.82 V (1 A load) . 3.25 V . 4.30 V . 95 % (3.52 Vin; 0.3 A out) . 90 % (3.52 Vin; 1 A out) . 4.5 mA (Vin = 3.6 V) . 1.6 V
Losses measured at 1 A output current: Across T1 and T3 (each) . . . . . . . . . . . From L2 to USB connector on PCB . . . . . Across IC2 . . . . . . . . . . . . . . . . . . . . . USB connection (each) . . . . . . . . . . . .
. . . .
. . . .
. 23 mV (1.7 A input current) . 85.3 mV . 80 mV . 13 mV
inductor current is close to 2 A. Given de formula in the datasheet (SLUS534E), this gives an inductor value of about 10 µH. The Sync pin can be used to operate the converter in different modes. We selected Power Save by connecting Sync to ground, which improves efficiency at light loads (the device then operates discontinuously). The converter only oper-
+VBATT S1
1k5
R12
D2 5V1 0W5
1M
K2
1
D3
R10 18k
2 T1
R8
1k
R11
10k
R9
BT1
BC847B
C9
T2
120u 6V3
PCB1
C10 T3
1n
DMS3016SSS-13
DMS3016SSS-13 For Hammond 1593K enclosure
100n 7 LBI
PAD
8 SYNC GND
LBO
1M8
2k7
4
EN
IC2
DM DP
CS
8
1 2 3 4
7 6
K1
6 5
TPS61030 FB
12
5
10p
OUT
IN
TPS2511
10 R4
C4
C5
C6
C7
2u2
220u 6V3
10u
100n
R6
2 ILIM_SET PAD
GND
330k
9 EN
C3
3 R7
0.022ohm/3.5A [email protected]
1
10u R2
C2
L2 R3
47k
C1
IC1
11
1M8
R1
15 VOUT 14 VOUT 13 VOUT
200k
1 SW 2 SW 6 VBAT
10uH
3 PGND 4 PGND 5 PGND
L1
R5 200k
D1
+VBATT
C8 120u 6V3
120631 - 11
www.elektor-magazine.com | July & August 2013 | 53
•Projects ates when the output voltage drops below a set threshold. On the down side, the output ripple voltage increases slightly. With no load, an 80-mV sawtooth was noticed with a 150-ms period. But it got better rapidly with increased loading.
TPS2511: glue for USB A special IC type TPS2511 is used for controlling the output. Texas Instruments calls it a USB Dedicated Charging Port Controller and Current Limiting Power Switch but we still liked it. Here’s why. It’s often not enough to just put 5 V on a USB connector and get a device to work.
For an exhaustive description of all possibilities of the TPS2511, please refer to the Texan datasheet (SLUSB18). The TPS61030 can deliver 2 A at a battery voltage of 3.3 V, and the TPS2511 can handle this current also. But at 1 A output current and 3.33 V input voltage the converter already draws 1.7 A from the batteries. At 2 amps output current this will be more than doubled, because of the higher losses. Also, the battery capacity drops at higher output currents. That’s why the TPS2511 is connected to work as a 5-watt charger. Its DP pin is connected to the D– line, and the DM pin to the D+ line of the USB connector. The current limit is set marginally higher than needed (R6 = 47 kΩ), preventing the TPS2511 from premature output voltage limiting. The Current Sensing Report pin is not used in the expected way. Instead of compensating voltage loss by changing the feedback of the converter (not really necessary at 1 A maximum output current) the pin is used to drive an LED (D1). When D1 lights up you know that more than half of the maximum output current is being drawn. The LED current is a little over 1 mA. As already mentioned, the Low Battery Comparator output drives the EN (Enable) pin of the TPS2511. This way the output voltage is cut off in case the batteries are flat. R5 is needed because the comparator output is in high impedance state when not active.
Polarity and overvoltage guard circuits
It’s great that phone & gizmo manufacturers increasingly fit their devices with USB connectors as the charge port, but chargers are unlikely to be compatible between fruit and non-fruit platforms, and different manufacturers. For example, some devices expect specific voltages on the data lines, or simply a connection (resistor) between the data lines to recognize a charger (Dedicated Charger Port or DCP). The TPS2511 supports three of the most common protocols: • USB Battery Charging Specification, Revision 1.2 (BC1.2); • Chinese Telecommunications Industry Standard YD/T 1591-2009; • Divider Mode.
54 | July & August 2013 | www.elektor-magazine.com
The battery pack connection to the PCB is by way of a screw header (0.15’’ lead spacing). So in practice it’s possible for the batteries to be connected the wrong way around. To prevent damage to the circuit and still have virtually no losses when properly connected, a small n-channel power MOSFET (T1) is used, purposely the wrong way around. When connecting the batteries with the proper polarity, the body diode is in the conducting direction, and the MOSFET is fully turned on, its gate positive with respect to the source through R12. There’s no problem with the current flowing from source to drain. In case the batteries are connected the wrong way around the gate is negative and the MOSFET is turned off and the body diode effectively blocks the battery voltage. The maximum permissible gate voltage of the MOSFET used is 12 V, which also constitutes the maximum voltage the circuit will sur-
USB Power Pack
Inductors L1 = 10µH, 5A, 0.025Ω, 20% (Würth Electronics 74477110) L2 = ferrite bead, 70Ω @ 100MHz, 3.5A, 0.022 Ω, 0603 (Murata BLM18KG700TN1D) Semiconductors D1,D3 = LED, red, 3mm through hole (low current) D2 = 5.1V zener diode, 0.5W (SOD123), Diodes Inc. MMSZ5231B-7-F IC1 = TPS61030PWPG4 (Texas Instruments) IC2 = TPS2511DGN (Texas Instruments) T1,T3 = DMS3016SSS-13 (SO8) T2 = BC847B Miscellaneous K1 = USB connector, type A, receptacle, PCB mount, SMD K2 = 2-way vertical screw header, 0.15’’ (3.81mm) pitch (Phoenix Contact MKDS 1/2-3.81) S1 = Slide switch, SPDT, right angle, 100mA (C&K Components OS102011MA1QN1) Enclosure, 66.22 x 67.22 x 28.00 mm (Hammond Manufacturing 1593KBK) PC board screws (#4 x 1/4” self-tapping, 6.4mm, Hammond Manufacturing 1593ATS50) BT1 = 3 AA battery holder, snap contact (Keystone 2475) + battery clip (BUD Industries HH3449) 3 NiMH batteries. PCB # 120631-1 v3.0
is not connected to ground but the net between T1 and T3. Connecting this net to ground will not cause any damage but simply turn on the circuit. The other three holes are connected to ground, however the hole next to IC2 is specifically output ground. It’s assumed the PCB is placed in the above mentioned hard plastic (ABS) enclosure. Finally, do not touch junction R3/C3/R4 with the circuit in operation. This is a high impedance point and any hum introduced here may destroy IC1.
.e l e k ww
to
r p c bs
v i c e.c
The holes for fixing the PCB are also used to connect the board’s top and bottom power planes. Be aware that the hole next to screw header K2
Capacitors C1,C6 = 10µF 10V 20%, X5R, 0805 (Taiyo Yuden LMK212 BJ106MG-T) C2,C7 = 100nF 50V 10%, X7R, 0805 C3 = 10pF, 50V, ±0.5pF, C0G/NP0, 0805 C4 = 2.2µF 6.3V, 10%, X5R, 0805 C5 = 220µF 6.3V, 20%, SMD, Ir=2.8A (Nichicon PCS0J221MCL1GS) C8,C9 = 120µF, 6.3V, 20 %, SMD, Ir=2.8A (Nichicon PCS0J121MCL9GS) C10 = 1nF, 50V, 10%, X7R, 0805
er
The PCB is specifically designed for a Hammond Manufacturing enclosure (see parts list). It’s cheap and easy to adapt to our application. The PCB is fixed with four self-tapping screws, and the top and bottom halves with two longer ones. The front and back are separate panels. In one panel only, three holes have to be drilled. The holes for the USB connector and switch should be aligned with the parts on the PCB. The same is true for two holes for the LEDs in the top cover. The exact placement of the hole for the two wires to the external battery holder is not that critical—there’s a large margin to play with. It can be located anywhere else for that matter. A power jack may also be used—there’s more than enough room in the other panel. Avoid any extra contact resistance where possible, as it will reduce the efficiency of the device as a whole.
Resistors (0805, 125mW) R1,R3 = 1.8MΩ 1% R2 = 330kΩ 1% R4,R5 = 200kΩ 1% R6 = 47kΩ, 1% R7 = 2.7kΩ, 5% R8 = 10kΩ, 5% R9 = 1kΩ, 5% R10 = 18kΩ, 5% R11 = 1.5kΩ, 5% R12 = 1MΩ, 5%
w
Construction
COMPONENT LIST
om
vive. At 1.7 A input current the MOSFET(s) drop a minuscule 23 mV (measured on prototype). To avoid having to use an expensive heavy duty on-off switch, the overvoltage protection is combined with a smaller—hence much cheaper— switch. The overvoltage protection is kept simple. When the supplied voltage is too high a zener diode (D2) is used to switch on an n-p-n transistor (T2) which in turn cuts off the gate voltage of MOSFET T3, which is connected as you would expect. The 5.1-V zener diode already conducts below the specified zener voltage. At a battery voltage of 3.60 V the current through D2 is about 12 µA. At 4.25 V, it’s over 30 µA. This can easily be measured across R9, which prevents the current through the zener diode from snowballing when the input voltage exceeds 5.70 V or so. In case the overvoltage protection acts too early (due to possible tolerance of the zener diode), feel free to adapt R10, remembering that a lower value gives a higher threshold. The overvoltage protection is needed in case an AC power adaptor—hopefully set to less than 12 V out—or a 9-V battery is connected. The TPS61030 can withstand 7.00 V (absolute maximum, 5.50 V recommended). The problem with the boost converter is that the output voltage rises when the input voltage exceeds the regulated output voltage (here, 5.00 V nominal).
(120631)
www.elektor-magazine.com | July & August 2013 | 55
•Projects
Big Amps DC Motor Driver D3 at the output suppresses the reverse energy (back emf) generated by inductive loads, which includes all DC motors.
By Ton Giesberts
(Elektor Labs)
This simple circuit is designed for use with all kinds of DC motors up to 40 amps. Basically it’s just a simple oscillator driving a bunch of power MOSFETs. The oscillator is a rudimentary RC type around a single Schmitt trigger device (IC1a) from a 40106 hex inverter package. When the wiper is turned towards D2, potentiometer P1 gives maximum voltage to the output. The two diodes prevent short-circuiting the output to the input. At the extremes of P1, the charge and discharge times are minimal. In the prototype of the circuit the negative-going pulse was found to be 1 µs wide, and 1.6 µs for the positive pulse. The next two inverters, IC1b and IC1c, clean up the oscillator signal, driving a buffer stage comprised of three inverters in parallel, IC1d, IC1e and IC1f. Resistor R1 was added to hold off the MOSFETs in case the 40106 is absent. The total input drive capacitance of the four MOSFETs amounts to almost 8 nF—clearly too much for the buffer to fully charge and discharge when P1 is turned to its extreme positions. That’s convenient however because in practice it allows the motor driver to manage the full output voltage span (i.e. 0–100 %). The operating frequency is in the 1 kHz ballpark. On a prototype 1.07 kHz was measured. Diode
56 | July & August 2013 | www.elektor-magazine.com
High output currents and back emf are issues here. On an early prototype of the board, the tracks to D3 were too narrow, and when testing the circuit with one of the motors in an Elektor Wheelie one of the tracks burned out. Fully loaded, each of the two motors used in the Wheelie draws up to 20 A at 24 V. The circuit was tested at 40 A and 24 V with a resistive load. However, the PCB as designed and supplied is not able to handle such high currents. The solution is to beef up the copper tracks carrying high current with pieces of 13 or 14 AWG (approx. 2.5 mm2) massive copper wire. Possibly two paralleled pieces of 16 AWG (approx. 1.5 mm2) are easier to get into place. For this reason the PCB does not have solder stop masks. The thicker lines in the schematic provide a global indication of where high currents can be expected to flow. The supply for the 40106 is no more than a 78L12 voltage regulator (IC2) with the usual entourage of decoupling capacitors large & small. The speed control potentiometer may be mounted off the board and connected with light duty wires. The heatsink is best secured to the PCB with 3-mm (6 BA) screws. Make sure the heatsink doesn’t come in contact with the solder pads for the MOSFETs. Then determine the correct positions of the transistor mounting screws, and D3. To prevent mechanical stress within the semiconductor legs, give them a light bend—there are special tools available for this—and only then locate the positions for the holes. Tap 3-mm (approx. 1/8’’, 6 BA) threading. Don’t forget to isolate all semiconductors on the heatsink. Because of the low switching frequency there’s a good chance you can hear a whine from the DC motor—it’s pretty normal and no cause for alarm. (120406)
Big Amps DC Motor Driver
K1.1
K2.1 IC2 78L12 D3 C1
C2
470u
10u
14
C3
RURP8100
IC1 100n
7
K1.2
K2.2
T1
IC1.D 9
P1 11
D2
2x 1N4148
IC1.A 1
1
IC1.B 2 3
1
IC1.C 4 5
T2
1
1 IC1.F
6
13
1
T3
10
T4
R1 12
10k
100k
8
IC1.E
IC1 = 40106 D1
1
C4 22n
4x
IRFP150N 120406 - 11
COMPONENT LIST Resistors R1 = 10kΩ, 5%, 0.25W P1 = 100kΩ, 20%, linear potentiometer, 0.2W
T1-T4 = IRFP150N IC1 = 40106 IC2 = 78L12
Capacitors
Miscellaneous
C1 C2 C3 C4
4 pcs. FastOn spade terminal (tab), straight, PCB mount, 0.2’’ (5.1mm) lead spacing Heatsink, 1.9K/W, 100 x 40 x 50 mm, Fischer Elektronik type SK 92/50 SA TO-3P silicone elastomer insulation (T1-T4) TO-220 device insulating kit; mica sheet + bush (D3) PCB # 120406-1 v1.0
= = = =
470µF 35V, 20%, 3.5mm lead spacing 10µF 25V, 20%, 2mm lead spacing 100nF, 50V, 20%, ceramic, 5mm lead spacing 22nF, 100V, 20%, ceramic, 5mm lead spacing
Semiconductors D1,D2 = 1N4148 D3 = RURP8100
www.elektor-magazine.com | July & August 2013 | 57
•Projects
X-Treme Inrush Current Limiter A controlled start for Big Electrolytics & Co.
By
Raymond Vermeulen (Elektor Labs)
Figure 1. A Bob Pease style sketch of an idea for an inrush current limiter.
This all-analog, microcontroller free (!) project got designed in response to cries for help from a diehard model plane enthusiast on the Elektor staff. He likes to fly large high powered models. One problem he ran into was self-destructing power connectors when connecting the battery pack to the plane (i.e. the motor controller). Every time the damage was due to heavy sparking, due in turn to high inrush currents. Those were expensive sparks as it turned out, because the connectors are 6-mm diameter, gold plated types. Clearly an inrush current limiter is called for to ensure a controlled, spark-free initial current flow rather tth than a thump and a small exploex xp sion. Such a regulator regula at did not drop from tthe skies however, a and took some ttim time p at to develop La Elektor L Labs. i a Below is dige es digest off
58 | July & August 2013 | www.elektor-magazine.com
how the project evolved from doodling to a working model keeping everyone happy. Good guidance was found in Motorola Application Note number AN1542 [1]. Using rough concept sketches (Figure 1) an inrush current limiter got designed for 37 volts battery power and a 200 amp load in normal operation. To achieve a low overall Rds(on) it is best to use a couple of MOSFETs in parallel. After an LTspice simulation run, the pain appeared to be not in the amps but in the load capacitance responsible for the inrush current, so the circuit got designed for the worst case scenario. Still, there were concerns about the safe operating area of the MOSFETs. To test the water, measurements were carried out on a small 10-A 3-phase BLDC motor driver, and that turned out to have “just” 120 µF input capacitance. A bit later a bigger motor controller turned up specified for 120 A, and this was found to represent an input capacitance of 13,800 µF (13.8 mF) at an ESR of about 2.7 mΩ. Moving towards a practical circuit the type IPB017N06N3 MOSFET from Infineon was chosen mainly based on the promise of 1.7 mΩ of ‘on’ resistance per device, not forgetting relatively low cost and ready availability from the distributors.
Inrush Current Limiter
K4
VBATT
10k
*
R8
R9
T1
3k3
R3 3k3
2k74
R1
K3
LOAD
C3 470n 100V
PMEG6010CEH T2 D2
1SMB5925B
R5
R7 470k
T3
R6
10V 3W
R10
D4
D3
T4
0R
10u 25V
1M8
D1
3k3
C1
T5
IC1 3
T7
5
T8
1
1k5
R2
2
LT1716CS5#PBF
T6
2N7002
2N7002 R4
C2
470k
4
10u 25V
VBATT HSME-A401-P4PM1
T1...T6 = IPB017N06N3
SM6T12CA
K2
120733 - 11
Now the question remains: how many MOSFETs do we need? Back to the LTSpice simulation, now using the IPB017N06N3 model, some component values were in need of tweaking. Also, a heatsink was found—cheap, standard size (1/2-brick) and with predrilled holes. Looking at the schematic in Figure 2 there are some marked differences with the version proposed in AN1542. Motorola shape the current into a square wave, causing a sudden current and power surge which slowly dies out. By contrast, the circuit shown here has the current increase slowly, resulting in a sawtooth shaped current. Consequently, the power dissipation graph (PFET) looks like an inverted parabola. Figure 3 shows the basic waveforms—arguably they respect the safe operating area of the MOSFETs far better than AN1542. A TVS (transient voltage suppression) diode, D3, helps to protect the MOSFETs in case of accidental polarity reversal. An early prototype was tested with a 15,000 µF (15 mF) capacitor with and without a resistive load, connecting to a 40-V supply through the
K1
BATT
Figure 2. Schematic of the X-Treme Inrush Current Limiter. High current PCB tracks are highlighted and thicker.
Table 1. Trip value / battery voltage dependency Battery Type (Lithium)
Battery Volts
Vtrip
R1
4S
12 – 16.8 V
11 V
180 Ω
5S
15 – 21 V
14.2 V
620 Ω
6S
18 – 25.2 V
16.8 V
1 kΩ
8S
24 – 33.6 V
22.9 V
1.87 kΩ
10S
30 – 42 V
28.9 V
2.74 kΩ
11S
33 – 46.2 V
31.8 V
3.16 kΩ
12S
36 – 50.4 V
34.9 V
3.6 kΩ
X-Treme circuit. Everything seemed to function as expected, although with no resistive load connected, the undervolts lockout did not function correctly on the falling edge. As a final test, the circuit was used with a BLDC controller driving a 10 kW motor, unloaded, drawing 8.5 amps at continuous speed and 20 to 30 amps when throttling. Tests were done at 37 V and 48 V, doing ‘cold starts’ several times over. Although cables and connectors got noticeably warm, the MOSFETs and the rest of the circuit remained cool. No “thump” sounds were heard (so customary from high-current loads), or exploding capacitors.
www.elektor-magazine.com | July & August 2013 | 59
•Projects tice, the circuit should not be used with battery voltages lower than 12 volts. Fortunately that’s a rare occurrence in high-power (BLDC) motor applications—you can easily see why.
VDS
The circuit board potentially carries extremely high currents, both ‘surge’ and ‘continuous’, meaning you have to strengthen all MOSFET source and drain PCB tracks, and the whole length of the BATT– and BATT+ PCB tracks, with pieces of 2.5 mm2 (13 AWG) solid copper wire, preferably two in parallel. Most of this plumbing work is in the area covered by the heatsink later. If you find 1.5 mm2 copper wire (16 AWG) easier to juggle with, that’s fine also but do three or even four pieces in parallel. Also apply generous amounts of solder along the tracks and the copper wires—it’s a bit like Plumbing-4-Beginners. If for some reason your board comes with a solder mask on the above mentioned tracks, remove the masking material and expose the copper by scratching with a sharp hobby knife. The pre-tin and install the helper wires.
t
VGS
t
ID
t
PFET Figure 3. Our circuit results in a reverse-parabolic shape for the power dissipation of the MOSFETs.
t 120733 - 13
This flagged the go-ahead for the design and production of a single-sided (!) TH/SMD circuit board—the component layout is shown in Figure 4. The value of R1 sets the trip voltage, hence is dependent on the battery voltage. The interdependencies are listed in Table 1. In prac-
The battery and load connections K1-K2 and K3-K4, must be made using high quality terminals of your choice, preferably gold plated. Get the best you can find, round or flat (‘FastOn’ / spade type), whichever you prefer, as long as you solder them straight to the PCB tracks. Remember, every milliohm counts in this circuit and you do not want to lose motor power or torque during takeoff, now do you. To prevent polarity reversal, consider using a ‘socket’ (female) and
COMPONENT LIST Resistors (All 0.25 W, 1%, SMD 1206) R1 = 2.74kΩ * R2 = 1.5kΩ R3,R6,R8 = 3.3kΩ R4,R5 = 470kΩ R7 = 1.8MΩ R9 = 10kΩ R10 = 0Ω
Capacitors C1,C2 = 10µF 10% 25V, X5R, 1206 C3 = 470nF 10% 100V, X7R, 1206
Semiconductors D1 = 1SMB5925B zener diode, SMB (Newark/Farnell # 1894811) D2 = PMEG6010CEH, Schottky diode, NXP, SOD-123F (Newark/Farnell # 1510694)
60 | July & August 2013 | www.elektor-magazine.com
D3 = SM6T12CA, TVS diode, STmicroElectronics, SMB (Newark/Farnell # 9885870) D4 = HSME-A401-P4PM1, LED, green, Avago, PLCC-4 (Newark/Farnell # 1058419) IC1 = LT1716CS5#PBF, comparator, Linear Technology, SOT-23-5 (Newark/Farnell # 1417738) T1,T2,T3,T4,T5,T6 = IPB017N06N3, N-MOSFET, Infineon, TO-263-7 (Newark/Farnell # 1775519) T7,T8 = 2N7002, N-MOSFET, Diodes Inc., SOT-23 (Newark/Farnell # 1713823)
Miscellaneous K1-K4 = high current connectors, male & female pairs, gold plated * Heatsink, ½ brick form, Aavid Thermalloy type 241204B92200G, dim. 60.96mm x 57.91mm x 11.4mm (Newark/Farnell # 1703176) PCB 120733-1 * user configurable component, see text
Inrush Current Limiter
a ‘plug’ (male) connector on the + and – battery lines. The same can be done on the + and – output lines. The MOSFETs are flat on the board, and the heatsink is on top of them with thermally conductive sheet material held pressed in between. The heatsink is secured with four corner M3 bolts or screws, with two M3 nuts on each bolt acting as standoffs, i.e. between the board surface and the flat side of the heatsink. The total standoff height is approximately 5 mm. The bolts should be lightly tightened so as to barely compress the heat conductive sheet material. Although we’ve talked mostly about motor controllers for R/C models here, the circuit is suitable for any 12-40 V DC load that represents a very low resistance initially, including big electrolytic reservoir capacitors and lamp filaments.
Figure 4. The circuit board design is compact and designed for the heatsink to physically cover the MOSFETs. The copper track layout as shown is not suitable for direct use. You have to strengthen all PCB tracks carrying the load current with pieces of solid copper wire.
(120733)
[1] AN1542: www.bonavolta.ch/hobby/files/MotorolaAN1542.pdf [2] IPB017N06N3 datasheet: www.infineon.com/dgdl/IPB017N06N3_Rev2. 2.pdf?folderId=db3a30431441fb5d01148ca9 f1be0e77&fileId=db3a30431ddc9372011e26 4a7ab746ea
www.elektor-magazine.com | July & August 2013 | 61
•Projects
Acoustic Spirit Level / Tilt Alarm An ATtiny45 design with many uses This little project was inspired by a tilt sensor circuit which first appeared in our
By Jörg Trautmann (Germany)
2010 Special Projects Edition. The idea was to build a simple multi functional tilt sensor. The resultant design has two main uses; it functions as an acoustic threeaxis spirit level or a security movement detector.
The original purpose of this device was to assist in leveling large garden tables on uneven ground. Away from buildings it is difficult to find any reference points to assist in setting up the tables, and conventional spirit levels can be a bit cumbersome. It is however not only useful for leveling tables, it also serves as a security monitor to sense the movement of some object; place it on a table or any other item worth protecting, if anyone tries to move it the alarm sounds and the thief is sent off with a start.
How it works The circuit shown in Figure 1 comprises an Atmel ATtiny 45 microcontroller and an MMA7260QT. The MMA7260 is an integrated 3-axis acceleration sensor which has already featured in this magazine back in 2007 and also in the Special Projects (summer) Edition of 2010 where it was used in a large USB tilt sensor with an LCD screen [1]. The small integrated circuit is fixed to a small PCB
Figure 1. The tiny circuit can be fitted onto a small piece of breadboard.
IC2 LP2950CZ-3.3 S2
K1
1 C1
C2 2
4...9 V 0
+3V3
3
1u
D1
R8 220R
100n
100n
R2
C3
S1
PB5
VCC
PB4 PB3 PB2 PB1 PB0
IC1 ATtiny45 GND
C4
100R
R4
R7
3 2 7 6 5
BZ1
4
C5
470k
470k
470k
R6
R1
330k
+3V3
R3
330k
MOD1 090645-91
5 Xout 6 Yout 7 Zout 8 Sleep
R5
330k
4 VSS 3 VDD 2 g-Select2 1 g-Select1
+3V3
1
8
100n
100n 120633 - 11
62 | July & August 2013 | www.elektor-magazine.com
(Figure 2) and has three analog output signals. The signal produced is proportional to acceleration; at +1 g the output voltage is 2.45 V. The ATtiny45 microcontroller from Atmel [2] includes a number of built-in A/D converters, three of which we use here to measure acceleration or level of tilt from the three sensors. The A/D converters use an internal voltage reference of 1.1 V so it is necessary to scale the three sensor output voltages using a voltage divider network. Based on the sensor parameters the resistors R1, R3 and R5 have a value of 470 kΩ and resistors R2, R4 and R6 have a value of 330 kΩ. The 2.45V maximum output voltage from each of the sensors is thereby scaled down to around 1 V and optimal measurement resolution is achieved in the A/D conversion process. The microcontroller firmware uses changes in the X, Y and Z parameters to influence the output frequency of three tone generators. When the sensor is on a flat and level surface the tone generators remains quiet. As soon as one of the sensors detects a movement of more than approximately ±2° on any axis, the tone begins to sound and varies as the tilt increases. The push button S1 is use to calibrate the unit and also to select operational mode. When the button is held down for longer than 5 s the unit is switched into alarm mode. The voltage on the board is regulated by a lowdrop voltage regulator type LP2950CZ3.3, producing an optimal 3.3 V for both the microcontroller and tilt sensor. A 9-V 6LR22 (PP3) size battery will provide enough energy to keep the circuit running for a long time. During testing
An ATtiny45 design with many uses
it was found that the circuit would still function with a supply voltage as low as 3.6 V. Maximum current was measured at 4.56 mA and averaged around 3.06 mA with the LED blinking and the tone sounding.
Construction and operation Construction of the circuit is relatively simple and can be made using small piece of breadboard such as the prototyping board called ELEX-1. When the finished circuit is first powered up the red LED will light continuously and the loudspeaker should remain silent. If this is not the case then remove power and double check your circuit construction. The first time the circuit is switched on it is necessary to carry out a calibration process which will then act as the reference attitude. Place the circuit board on a flat, level surface and hold down button S1 for approximately 1 s. When the push button is released the LED will extinguish indicating that the calibration is complete and the values have been stored. The unit should not be emitting any sounds now. When the board is waggled you should hear three over lapping beep tones. The LED will also flash and the tone frequencies increase as the angle of tilt increases. With the PCB returned to a level position the tones cease and the LED turns off. Once the unit is fitted into a project case you can quickly begin to develop a feel for when the unit is level. To use the unit as a movement alarm first place it on the device you want to protect (the surface does not need to be horizontal) and press button S1 now hold down S1 again for a few seconds until the LED starts to flash regularly. Once the
push button is released the circuit is primed. Now when the unit is tilted by more than approximately 20 degrees it sets off a loud rising and falling alarm siren. A brief press of S1 silences the siren. The unit still functions in alarm mode until power is turned off. It will always power up in ‘spirit level’ mode. The most recently stored attitude calibration values are again used as the reference plane.
The program The firmware for this project is written in BASCOM AVR and can be downloaded from the project web page [3]. Port pin PB1 is configured as an output to drive the piezo buzzer. PB0 is used as an input with its internal pull up resister enabled. The A/D converters ADC0, ADC1 and ADC2 use the internal voltage reference of 1.1 V. When push button S1 is pressed (PB0=Low) for approximately 1 s the measured values are stored in EEPROM and used as the calibration values. The next time
Figure 2. The sensor chip on the adapter PCB.
www.elektor-magazine.com | July & August 2013 | 63
•Projects
Please note The MMA7260QT from Freescale is no longer manufactured. It may still be possible to find examples at some stockists but the outlook is not good. At the time of writing (April 2013) we have 67 modules reference number 090645-91 in the Elektor warehouse. These are available on a first come, first served basis! The software (BASCOM-AVR) should however be fairly easy to adapt to enable other types of sensor to be used in this design [4].
the circuit is powered up, the same values will be used as reference. The logic used to evaluate the switch status on PB0 is so programmed that calibration of the unit is only possible when the unit is not in alarm mode. In alarm mode a press of S1 resets the alarm. The button S1 therefore performs two functions. A full measurement cycle consists of seven readings from each of the three analog channels taken within 210 ms, the values given are then aver-
aged. This method has shown to give excellent measurement accuracy and stability. It is relatively easy to alter the sensitivity of the unit operating in either mode by changing the Trigger_value variables declared in the software. If you want to use the firmware as it stands and don’t feel the need to make any alterations, it’s a simple job to order a pre-programmed controller from the Elektor shop. Alternatively, go ahead and program your own micro. (120633)
Internet Links [1] www.elektor.com/070829 [2] www.atmel.com/devices/ATTINY45.aspx [3] www.elektor.com/120633 [4] Low-g acceleration sensor: www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=01126911184209#2
2-Wire Interface By John Hind (UK) UB
R2 VCC
Uf S1
If
R1
U in D1
I/O
Controller GND
130115 - 11
Klaus Jürgen Thiesler’s ‘2-Wire Interface’ was published in Elektor magazine in the form of both basic [1] and low-current [2] versions. Each vari-
64 | July & August 2013 | www.elektor-magazine.com
ant used two transistors and a handful of other components to hook up an LED and a pushbutton to a microcontroller. The author still felt driven to simplify this arrangement further and can now provide a solution that, with only two resistors and a single I/O pin, could hardly be minimalized any more. Unless you know better! Reducing the number of components means the microcontroller has to work somewhat harder. This solution makes the assumption that an I/O pin can be toggled between input and output, which is virtually always the situation. The circuit is able to light the LED as output in ‘High’ state and assess the status of the switch when the LED is not alight. If you take a look at the state table, the first two lines (numbered 1 and 2) should
2-Wire Interface
Table 1 Status
I/O Pin
State
Switch
LED
If
Uin
1
Input
High
open
off
(UB – Uf) / (R1 + R2)
Uf + If * R1
2
Input
Low
closed
off
UB / (R1 + R2)
If * R1
3
Output
High
open
on
(UB – Uf) / R1
UB
4
Output
High
closed
off
UB / R1
UB
Table 2 LED color
Uf
If
@ 5 V: R1 | R2
@ 3.3 V: R1 | R2
@ 2.1 V: R1 | R2
Red
1.7 V
10 mA
330 Ω | 470 kΩ
160 Ω | 220 kΩ
39 Ω | 56 kΩ
Orange, Yellow
2.1 V
10 mA
300 Ω | 430 kΩ
120 Ω | 180 kΩ
-
Green
2.2 V
10 mA
270 Ω | 390 kΩ
110 Ω | 160 kΩ
-
Blue, White
3.6 V
20 mA
68 Ω | 200 kΩ
-
-
make things clear. The I/O pin is switched as an input and the voltage Uin applied to it, according to the status of the switch, is interpreted as ‘low’ or ‘high’ so long as resistors R1 and R2 have been selected correctly to match the supply voltage UB (most microcontrollers have an upper switching threshold in the region of 0.5 UB). So far, so good. But how can the switch be polled in states 3 and 4, when the I/O pin is functioning as an output? Quite simply in fact. Several times a second the pin is turned into an input for an extremely short period. In this way, for less than a blink of the eye, we have state 1 or 2, which thanks to the sluggishness of the human eye (persistence of vision, as it is called) is not even noticeable. If it is established then that the pushbutton switch is depressed, the pin remains in state 2 until it is released again, as state 4 would not make any difference (the LED remaining unlit), other than unnecessary current flows. Following this the controller switches back immediately into state 3, making the LED illuminate again. In the firmware of the microcontroller we can implement not just basic debouncing but also ‘de luxe’ functions such as variable brightness for the LED, achieved very simply by toggling rapidly between states 1 and 3. Imagination knows no boundaries here!
on the well-known AVR controllers. In principle, particularly if you reduced UB, you could replace R2 with this internal resistor. Unfortunately these pull-ups have values exclusively in the range from 10 to 50 kΩ, which could lead to the LED lighting dimly (but definitely visibly) in state 1. The firmware therefore enables the pull-up only as long as necessary for polling the pushbutton switch, to ensure this effect is not bothersome. In any event R2 must be selected so that the switching threshold of the input is definitely exceeded, since the forward voltage Uf drops with small currents. This very effect can become a problem when using a red LED and 5 V operating voltage. In this situation an ordinary silicon diode in series with the LED will help. Dimensioning the resistors relative to the supply voltage and according to LED color is set out in another table. With differing currents you will need to do some calculation. (130115)
[1] 2-Wire Interface for Illuminated Pusbuttons, Elektor April 2012, www.elektor.com/110572 [2] 2-Wire Interface version 2.0, Elektor January & February 2013, www.elektor.com/120071 [3] Firmware: www.elektor.com/130115
The author developed his solution around the PIC16F883 [3]. This type operates with internal pull-up resistors that can be activated exactly as
www.elektor-magazine.com | July & August 2013 | 65
High-End Performance with Embedded Ruggedness
Single Board Computers TS-7800 500MHz ARM9
$229
Low power - [email protected]
qty 100
128MB DDR RAM
Unbrickable design
512MB high-speed (17MB/sec) onboard Flash
$269 qty 1
12K LUT customizable FPGA Internal PCI Bus, PC/104 connector 2x USB Host 2.0 480 Mbps
shown w/ optional SD Cards
TS-FASTBOOT boots Linux 2.6 in 0.7 seconds
Gigabit ethernet
2x SD sockets
10x serial ports
110x GPIO
5x ADC (10-bit)
2x SATA ports
Sleep mode uses 200 microamps 3x faster, backward compatible w/ TS-72xx Linux 2.6 and Debian by default
TS-SOCKET Computer-on-Modules Jump Start Your Embedded System Design TS-SOCKET Macrocontroller CPU core modules securely connect to a baseboard using the TS-SOCKET connector standard. COTS carrier boards are available or design your own carrier board for a custom solution with drastically reduced design time and complexity. Start your embedded system around a TS-SOCKET Macrocontroller to reduce your overall project risk and accelerate time to market.
55 mm / 2.165 in.
series starts at
$ 99 qty 100
$ 139 qty 1
75 mm / 2.953 in.
TS-SOCKET COMs Include: TS-4200: 400MHz Atmel ARM9 with super low power NE NE NE
W! W!
TS-4600: 450MHz ARM9 at very low cost
W!
TS-4712: like TS-4710 with 2x Ethernets
TS-SOCKET Specs:
TS-4710: 1GHz Marvell ARM9 w/ video & 0.5 second boot
Secure connection w/ mounting holes Common pin-out interface
TS-4800: 800MHz Freescale iMX515 with video Several COTS baseboards for evaluation & development
Over 25 years in business Open Source Vision Never discontinued a product Engineers on Tech Support
Dual 100-pin connectors
Low profile w/ 6mm spacing
Custom configurations and designs w/ excellent pricing and turn-around time Most products stocked and available for next day shipping
Design your solution with one of our engineers (480) 837-5200
pricing starts at
Touch Panel Computers
$409 qty 1 $369 qty 100
TS-TPC-8380 800MHz Fully Enclosed DIN Mountable Plastic Enclosure 7-inch 800x480 Touchscreen 800MHz ARM9 CPU 512MB RAM Headphone connector & Speaker 2x microSD with DoubleStore 2x Ethernet 2x USB Host 1x RS485 2W-Modbus Optional Cellular, WIFI & XBEE Radios 8-28VDC Power Input Fanless -20C to +70C
Other Touch Panel Computers with Panel Mount (Open Frame) also available
Linux 2.6.34 w/ TS-FASTBOOT
Industrial Controllers 250MHz to 1GHz (CPU Controllers start at
$199 qty 100
Modbus Peripherals start at
Fast startup (under 3 seconds) Opto-isolated ports available Industrial screw-down connectors Digital counters, quadrature Flexible programming with Debian Linux
Modbus Peripherals
$ 119 qty 100
TS-1400 6 relays TS-1700 DIO and One -Wire
picture of TS-8820-BOX
TS-1720 Thermo Couple temp sensor Technologic Systems now offers four powerful computers targeting industrial process control. Implement an intelligent automation system at low cost with a minimal number of components.
TS-1740 RTD temp sensor TS-1760 Thermistor temp sensor Peripherals in development feature analog and digtal inputs and outputs
Technologic Systems We use our stuff. Visit our TS-7800 powered website at
www.embeddedARM.com
•Projects
Accurate Universal Measurement Interface Accuracy—quite simply Most microcontrollers have a built-in digital-to-analog converter (DAC), but what
By Michel Defrance (France)
can we do when this isn’t accurate enough? Look no further: the solution is right in front of you.
+5V
Electronics engineers very often need to measure low voltages with great accuracy, for example, the voltage from a pressure or temperature detector, or the output voltage of a Wheatstone bridge (often of the order of a millivolt). Microcontrollers are handy and fairly easy to program, but everyone knows that the accuracy of their converters isn’t brilliant (often 8/10/12 bits). In addition, to measure low voltages, these need to be processed, often with the help of op amps.
+5V C4 R5 1u 22k
+5V
C6
LL4148
IC2
3
Ex+
IC2 = MCP602SN
M--
1u
10n
470R
R2
R4
5
Vref 2.048V
PGA
6
ADC CONVERTER
R8 2k2
C2
2
I2C INTERFACE
MCP3421 3
4
6 5
IC2.B
7 R11
R12 470R
SDA
R9 470R
SCL
4k7
R6 22k
4k7
R10 D2
4
G = 1. 2. 4. 8
1
C3
10n
IC1
R7 2k2
C1
Ex--
R3
10u
100n
1
220R
M+
2
IC2.A
220R
470R
R1
8
C7
CLOCK
D1
C5
LL4148
130150 - 11
1u
+5V
Confronted yet again by this same problem, I decided to find a solution that would be both satisfactory and reusable. The inspiration was there alright, all it now needed was the perspiration bit. The requirements were clear: I needed an interface that would be easy to connect to any microcontroller and easy to put together using common, cheap components. Two ICs in the Microchip catalogue caught my eye: - the MCP602 high-performance amplifier; - the MCP3421 18-bit programmable ADC with I²C interface, built-in 2.048 V reference, and programmable amplifier.
+5V
Instrumentation amplifier
Figure 1. Circuit of the measurement interface.
Table 1. Input voltage range as a function of MCP3421 gain. MCP3421 gain
Input voltage range
1
−20 mV to +20 mV
2
−10 mV to +10 mV
4
−5 mV to +5 mV
8
−2,5 mV to +2,5 mV
68 | July & August 2013 | www.elektor-magazine.com
When we want to process low voltages for digitizing, we often use a configuration called an instrumentation amplifier, built using three op amps. Here, I’m using the MCP602’s two op amps IC2A and IC2B in a differential configuration to drive the programmable-gain amplifier in the MCP3421. The output voltage of this first stage will be proportional to the voltage difference between the circuit’s measuring inputs M+ and M− (Figure 1). The gain of the first stage is given by: G1+= 1 + R5/R3
Measurement Interface
G1− = 1 + R6/R4 Since we want the amplification of the voltage at the M+ input to be the same as that for the M− input, we’ll choose R5 = R6 and R3 = R4. With the values shown on the circuit, we’ll have:
Specifications • 18-bit conversion • I2C interface • Software-programmable gain
G1 = 1 + 100 = 101 Make sure you select 1% tolerance resistors for R3–R6, otherwise you risk having a serious asymmetry in the input stage. Let’s move on to the second stage, built around amplifier/ADC IC1. Used in symmetrical mode, it accepts voltages from −2.048 V to +2.048 V between its pins 1 and 6. Since the gain G2 of the amplifier it contains is software-programmable, it will be possible to select different ranges for the input voltage from the first stage. The total gain of the circuit G = G1 × G2 will thus vary between 101 for G2 = 1 and 808 for G2 = 8.
Resistors R1,R2R9,R12 = 470Ω 5% R3,R4 = 220Ω 5% R5,R6 = 22kΩ 1% R7,R8 = 2.2kΩ 5% R10,R11 = 4.7kΩ 5%
Capacitors C1,C2 = 10nF 50V 10% C3,C4,C5 = 1µF 50V 10% C6 = 100nF 50V 10% C7 = 10µF 16V 10%, electrolytic
Semiconductors
Internet Links [1] www.elektor-labs.com/node/3053
D1,D2 = LL4148 IC1 = MCP3421A1T IC2 = MCP602SN R3
C4
R4
C5 R6
R5 R7
R8 IC2
r p c bs
IC1
R10 R9
R2
R1
C6 C2
R11 R12
SCL
Ex--
M--
Ex+
C7
C3
SDA
130150-1
v i c e.c
C1
(C)Elektor
to
D2
D1
er
Construction of the 35 × 25 mm PCB (Figure 2) ought not to cause any problems for readers familiar with SMDs. If you design your own PCB, to obtain optimum performance, do adhere to the advice given in the MCP3421 data sheet. This is also very helpful when it comes to using the project. Watch out for the MCP3421’s I²C address: this depends on the exact type number of the device you buy. This is also detailed in the data sheet.
COMPONENT LIST
M+
Construction and use
(130150)
.e l e k ww
The interface is powered at 5 V. In the presence of weak signals, noise from the power supply can become a problem—and this circuit is no exception. Whatever type of supply you choose, it must be accurate and generate as little noise as possible. Using 18-bit accuracy conversion, the slightest supply noise will interfere with your measurements. I also recommend using a softstart power supply so as to reduce drift due to variations in component characteristics. It would be possible to use software delay timing for this, but that wouldn’t benefit all the components on the board. In [1] I suggest just such a power supply, based around an MIC2941 low-loss regulator from Micrel.
w
Powering
By way of an example, I’ve developed an application around a PIC18F452 (or PIC16F876A) microcontroller which displays the voltage read from the MCP3421 via the I²C bus on the LCD. You’ll find that elsewhere in this issue. It measures the low voltage (a few millivolts) from a strain gauge wired into a Wheatstone bridge. The PIC receives the digitized voltage from the MCP3421, and the PICBASIC program converts the value into pressure. The ADC output voltage and the pressure then appear on an LCD. This program shouldn’t be too hard to port to an Arduino, for example. You’ll be able to use this inexpensive circuit (less than $20) in lots of different projects. And you won’t have a reason any longer to curse the ADC in your favorite microcontroller.
om
Table 1 gives a list of the possible values. If these ranges don’t suit you, change the value of R3–R6.
Figure 2. View of the author’s PCB.
www.elektor-magazine.com | July & August 2013 | 69
•Projects
Solar-Powered Night Light with Li-ion Backup D1
IC1a is closed due to the High level at its control input (pin 13), so the Li-ion battery gets charged with about 10 mA through resistor R3 and diode D3 connected in series. At the same time LED D6 lights to indicate the battery is being charged. Switch IC1b is closed too, causing switch IC1c to be open and LED D5 to remain dark.
D2
1N4148
1N4148
14
IC1 IC1 = 74HC4066 7
IC1.A
S1
D3
R3
1
62R
1N4148
R1 100k
13
SC6V IC1.B
SOLAR CELL 6V
BATT 4V2
8 R6
R4 100k
330R
LI-ION4.2
3
4
D6
D4
D5
1N4731A
100k
R5
9
6
5 R2
IC1.C
120R
2
CHARGE
By
Michael A. Shustov (Russia)
NIGHT LIGHT
130178 - 11
This night light has two power sources: a solar cell with a peak output voltage of about 6 V, and a Li-Ion cell with a voltage between 3.7 V and 4.2 V. Three (of four) electronic switches in a 74HC4066N (IC1) control the device operation. IC1 gets its supply voltage through diode D1 or D2 depending on which power source supplies the highest voltage. Consequently the 4066 gets any value between 3.7 V and 6 V to operate off.
If the voltage supplied by the solar cell drops below 1/3 of IC1’s supply voltage, i. e. below 1.3 V or thereabouts, switch IC1a opens and the ‘Charge’ LED goes out. The voltage at the control input of switch IC1b drops to zero, causing he switch to open. Consequently switch IC1c closes, connecting the ‘Night Light’ LED to the battery through resistor R6, which sets the LED current to 10-13 mA. Feel free to select the color—the prototype had a green LED. The battery charging rate as well as the intensity of the LEDs may be adjusted by adapting R3, R2 and R6, observing a maximum current of 20 mA through the ‘4066 switches. Zener diode D4 prevents excessive battery charge voltage levels. Switch S1 when opened prevents the battery from being discharged when the circuit is in storage, or not in use for some reason. (130178)
At daytime the voltage supplied by the solar cell reaches the peak value typically around 6 volts.
COMPONENT LIST
.e l e k ww
om
w
70 | July & August 2013 | www.elektor-magazine.com
LI-ION4.2V
2 2 1
1
-
SC6V
+
R4
R6
R2
R3
R1
D4
+
-
IC1 R5 D1 D2 D3
D6
v i c e.c
Miscellaneous S1 = toggle switch, Newark/Farnell # 1310879 PCB # 130178-1
D5
r p c bs
er
to
Semiconductors D1,D2,D3 = 1N4148 D4 = 1N4731A zener diode (4.3V) D5 = LED, 5mm, color of choice D6 = LED, red, 5mm IC1 = 74HC4066
S1
R1,R4,R5 = 100kΩ 1% 0.25W R2 = 330Ω 1% 0.25W R3 = 62Ω 1% 0.25W R6 = 120Ω 1% 0.25W
130178-I v1.00 Elektor (c)
Resistors
Connectors marked SC6V and LI-ION4.2V = PCB terminal block, lead pitch 5mm
www.elektor-projects.com
elektor
labs
Sharing Electronics Projects Elektor.LABS is an online community for people passionate about electronics. Here you can share your projects and participate in those created by others. It’s a place where you can discuss project development and electronics. Elektor’s team of editors and engineers assist you to bring your projects to a good end. They can help you write an article to be published in Elektor.MAGAZINE or even develop a complete product that you can sell in Elektor.STORE!
GET ELEKTORIZED
Join or Create a Project at www.elektor-labs.com
•Projects
CDI Ignition For Spartam Spartamet and Saxonette mopeds
By Jan Visser (Elektor Labs)
This article artic describes a home-made CDI C unit for Spartamet and Saxonette motor-assisted bicycles (mopeds). Having been virtually forced to use a Spartamet to travel between home and work for three ee s, itt was as noticeable that weeks, although the moped ran fine, at full throttle and at top speed (15 mph) the ignition began to misfire. The ffuel consumption at full throttle also increased dramatically: ffrom 118 mpg at 3/4 throttle to t 71 mpg at full throttle. There Th was a strong suspicion that the higher fuel co consumption was relate related to the misfiring of the ignition; th this was confirmed a after some furtther thought and h having checked th the spark plug and exha exhaust after several rides. The ignition sta starts to skip sparks when the 30 cc two two-stroke engine is at full throttle and at top speed. s The man-
72 | July & August 2013 | www.elektor-magazine.com
ufacturer has used this method on purpose to build in an electronic speed limiter to ensure the moped is road legal. However, the carburetor is not limited and it happily continues to deliver the fuel mixture, which ends up unburnt in the exhaust. Apart from the fact that this has a negative impact on the fuel consumption, it doesn’t do the exhaust any good either. There will be more of a carbon build up in the exhaust, which means it has to be replaced sooner. You could of course open up the existing CDI (Capacitive Discharge Ignition) unit and modify it, but since this is completely encased in potting compound this is not something we would recommend. Instead, we investigated what was required to produce the sparks without limiting the rpm. The result of this can be seen in the schematic shown here. Since the ignition coil and pickup coil are mounted next to the flywheel of the engine we only have to concern ourselves with the electronics that make a capacitor discharge into a coil at just the right moment. The input is connected to a pickup coil that delivers a single pulse for every revolution of the flywheel. The output is connected to the ignition coil that supplies the high voltage pulse to the spark plug. Capacitor C1 stores the electrical energy and is charged up via D3. When there is
CDI Ignition
K1
Resistors
1N4007 R1 560R
VR1
S10K140
K2
D3 C2 68n
BY329 D1
30V
1N4007
C1
Semiconductors
TIC126
1u 400V
Capacitors C1 = 1µF 400V MKP C2 = 68nF 400V MKS
DI1 400V
TH1
K3
R1= 560Ω VR1 = S10K140 varistor
120601 - 11
D1,D2 = 1N4007 D3 = BY329 DI1 = diac D30 (alternative: ER900 or DB3) TH1 = TIC126N
Miecellaneous 3 pcs 6.3-mm (0.25’’) Fast-on (spade) terminal plugs, PCB mount PCB 120601-1, see [1]
r p c bs
v i c e.c
.e l e k ww
to
er
w
A single sided PCB has been designed for the circuit (the layout can be downloaded from [1]). However, note that the components are mounted on both sides of the board. This was necessary in order to keep the circuit the same size as the original CDI unit. Its dimensions are 59x38x24 mm. The photos of the prototype make this clearer. First mount D1, D2, DI1 and C2 onto the component side. You should then solder diode D3 and thyristor TH1 onto the board. These should be bent over so they’re level with the board, with D3 ending up on top of D2 and T1 on top of D1 and DI4. The MKP capacitor (C1) ends up alongside the board. The varistor (VR1) and resistor (R1) are then mounted onto the solder side of the board. And finally you should solder the three spade terminals onto the board. For the enclosure you can use a small box from Hammond (001100), Conrad Electronics part number 540830-89, although an acrylic homemade box (cassette or cd case) is an alternative. Once the board has been populated and connected you can check if the ignition produces any sparks. If it all works and the spark plug is sparking happily you can put the circuit in its enclosure and fill it with potting compound. If you fail to do this it is very likely that the circuit will soon stop working properly, since the ignition is subject to quite a lot of vibration. There are two types of CDI unit in use, one made by Motoplat (red) and one made by Prüfrex (blue). In both cases the earth is connected to the middle connector of the CDI unit. If you accidentally connect the input and output the wrong way round the CDI unit won’t produce a spark. All you need to do when this happens is to swap the red and blue wires over. When the circuit was installed and put into use the effect was immediately noticeable. The engine runs much smoother at full throttle and it no longer misfires. The average fuel consumption was also found to have improved considerably to 166 mpg. Since the little engine has its own mechanical limitations (carburetor, exhaust, compression ratio), the top speed won’t increase by a huge amount: we found it to be about 2 to 2.5 mph higher. The biggest advantages are of course the
COMPONENT LIST
D2
om
a pulse at the input it triggers the thyristor into conduction, which connects C1 to ground so it can discharge into the ignition coil. That is all there is to it!
better running of the engine and the improved fuel consumption. (120601)
Internet Link [1] www.elektor.com/120601
Connection Details for the CDI Unit Motoplat: black coil with a red CDI unit Prüfrex: blue/gray/red coil with a blue CDI unit Motoplat a = yellow b = blue c = red
Prüfrex a = black b = red c = blue
The connection details are shown on top of the CDI unit. Should you connect the red and blue wires the wrong way round you won’t get a spark, and you won’t damage the coil or CDI unit.
www.elektor-magazine.com | July & August 2013 | 73
•Projects
Simple Servo Tester Basic test gear for modelers By Bernhard Kaiser and Michael Gaus (Germany)
When a servo motor starts to malfunction there is generally not much to see from the outside to help diagnose the problem. That’s why every modeler’s toolbox should have one of these handy units!
+5V R2 1k
P1
50k
+5V GND
10k
R1 100n 220k
R3
K1
C3
1
14 2 6
2
1
VCC THR1 TRIG1 DIS1
RST1
IC1
OUT1 CV1
4 5 3
NE556CN 12 8 13
Figure 1. The circuit uses a dual timer IC.
C4
C2
47n
47n
THR2
/NOPB
TRIG2
RST2 OUT2
DIS2
CV2 GND 7
K2
10 9 11
PULS
1
+5V
2
GND 3 C1
Servo 10u 16V 120474 - 11
Servos are one of the basic components used in all branches of model building. They are small, lightweight, low cost and are remarkably easy to control. Model building servos connect directly to an RF receiver unit. They typically have just three connections: positive supply (+5 V), ground (GND) and control (Pulse) lead, which supplies a control signal to move the servo arm. The signal on this lead is pulsewidth modulated and supplied by the receiver. Positive pulses with a length of 1 ms cause the servo arm to move fully to one end of its travel while 2 ms pulses move the
v i c e.c
om
.e l e k ww
r p c bs
er
to
w
Figure 2. The ready made PCB makes circuit construction a cinch.
COMPONENT LIST
arm fully in the opposite direction. Pulse widths between these limits move the arm to an intermediate position proportional to the pulsewidth. A pulsewidth of 1.5 ms centers the arm. The pulse repetition rate is approximately 20 ms i.e. 50 Hz but this rate is not too critical. When you suspect that the model is not behaving as it should it could be a problem with the remote control transmitter, receiver or a servo motor. This handy unit allows you to quickly test the servo and eliminate it (or otherwise) from your lines of enquiry. This pulse generator design
Semiconductors IC1 = NE556CN
Resistors R1 = 220kΩ R2 = 1kΩ R3 = 10kΩ P1 = 50kΩ linear potentiometer Capacitors C1 = 10µF 16V, 7.5mm pitch C2,C4 = 47nF C3 = 100nF
74 | July & August 2013 | www.elektor-magazine.com
Miscellaneous K1 = 2-pin pinheader, 0.1’’ pitch K2 = 3-pin pinheader, 0.1’’ pitch PCB 120474-1 DesignSpark-project files can be downloaded from [1].
Servo Tester
shown in Figure 1 is one of the basic bread and butter circuits known to almost all engineers.
A Two timing circuit The pulse generator is made up of a dual timer chip type NE556, the output pulse width is controlled by the position of a potentiometer. The combination of resistor R1 and capacitor C2 in timer 1 of the NE556 produces the repetition rate of the pulse. This timer output signal at pin 5 has an approximately symmetrical mark space ratio. The negative going edge of the output signal is used via C3 to trigger the second timer which then produces a positive going output pulse at pin 9. The width of this pulse is defined by the values of capacitor C4 and the combined resistance of R3 and P1. Pot P1 thereby gives control of the pulse width. During tests it was found that the circuit with the component values specified here produced a pulse width in the range of 0.5 to 2.6 ms which more than covers the standard pulse width range used
by these types of servomotors. For this reason P1 should not be turned fully to either end of its travel otherwise the connected servo will go past its intended end position and hit the mechanical stops, possibly damaging the servo. Before the circuit is powered up ensure that the control knob P1 is roughly mid position. The pulse repetition rate of the circuit was found to be 18 ms. The vast majority of servos operate with a supply in the range of 4.8 to 6 V. Here the operating voltage is in the range of 5 to 6 V which can be supplied by four AA primary cells or rechargeables. To make a neat job and simplify construction we have made a PCB for this design (Figure 2) which is available from the Elektor Shop [1]. All components have standard (non SMD) outlines so fitting the components should not pose any problems. (120474)
Internet Link [1] www.elektor.com/120474 Advertisement
FRONT PANELS & HOUSINGS Cost-effective single units and small production runs
Customized front panels can be designed effortlessly with the Front Panel Designer. The Front Panel Designer is available free on the Internet or on CD.
· automatic price calculation · delivery in 5 – 8 days · 24 - Hour-Service if required Sample price: 34,93 € plus VAT/shipping
Schaeffer AG · Nahmitzer Damm 32 · D –12277 Berlin · Tel + 49 (0)30 8 05 86 95 - 0 Fax + 49 (0)30 8 05 86 95 - 33 · Web [email protected] · www.schaeffer-ag.de
www.elektor-magazine.com | July & August 2013 | 75
•Projects
Slow-Start Stabilizer
By Michel Defrance (France)
K1 3 2
FL1
D4
1
DSS6NE52A222Q55B R1
R4
5
C3
R2 10u 16V
3k09
4
1k
3k3
LL4150
IC1 ADJ
D1
1
MIC2941 ON/OFF
3
2
R3
C5
100n
22u 26V
D2
C1 100n D3
2k2
C2
C4
470n
3.3kΩ 3.09kΩ 2.2kΩ 1kΩ
Capacitors C1,C4 = 100nF (SMD 1206) C2 = 470nF (SMD 1210) C3 = 10µF 16V (SMD 1210) C5 = 22µF 10V (SMD 2312)
Semiconductors D1,D2 = LL4148 D3 = LED, low current, shape 1206 D4 = LL4150
R1
C3
D1
IC1
D2
C2
K1
I GO
D4
= = = =
R4
FL1
R1 R2 R3 R4
C4
D3
R2
C5
Resistors (SMD 1206)
R3
The circuit described here meets all conditions mentioned and can easily serve as a replacement for an ordinary 7805, because the circuit board has about the same size, and the connections are identical. That does mean however that everything got designed in SMD technology due to limited space.
C1
COMPONENT LIST
130173 - 11
LL4148
(C) Elektor 130173-1
D1, D2 =
Your everyday 7805 regulator is not the best choice for powering accurate measurement circuits and A/D converters, mainly because it generates too much noise, and exhibits spurious behavior at power on. Taking our Universal Precision Measuring Interface as an example we have a type MCP3421 A/D converter with a resolution of 18 bits. To be able to exploit the high resolution to the last bit, the supply rail must be absolutely stable and free of noise. In addition, the supply voltage should rise slowly when turned on, allowing the components in the measuring circuit to stabilize in terms of bias voltages and temperature. Of course, that can also be accomplished by using a software timer, but doing so has an effect for a couple of components only.
3
2
IC1 = MIC2941AWU TR (TO-263)
Miscellaneous EMI suppression filter type DSS6NE52A222Q55B (Murata) PCB # 130173-1, see [1]
76 | July & August 2013 | www.elektor-magazine.com
1
The regulator used is a MIC2941 from Micrel. It’s is a low-dropout regulator in which the output voltage is set using a resistance divider, just as with an LM317. The design is simple but effective. The supply voltage is set by (R1 + R2)/R3, resulting in 5 V here. Diode D4 serves as polarity protection. Furthermore, a bunch of capacitors is present for decoupling and noise suppression. At the output an EMI filter is included (FL1). The DSS6NE52A222Q55B is a 3-pin component
Slow-Start Stabilizer
from Murata, containing two coils separated by a capacitor to ground.
.e l e k ww
w
[1] www.elektor.com/130173
om
Internet Link
r p c bs
v i c e.c
(130173)
to
er
The delayed appearance of the supply voltage is accomplished by capacitor C3. When the supply is switched on, initially the voltage at junction R2/R3 remains at virtually 0 V. Next, the capacitor is charged via R3 charged in a about 20 ms, causing the output voltage to rise slowly (see screendump). Diodes D1 and D2 prevent negative voltage ending up at the regulation input, causing the capacitor to be discharged via R2. The circuit can deliver an output current of at least 1 A. With no cooling however a few tens of mA are possible at an input voltage of 12 V. The PCB artwork is available as a free download of the Elektor website [1].
Advertisement
www.elektor-magazine.com | July & August 2013 | 77
•Projects
8x Relays and Much More Expansion modules for Linux and other controller boards In the April edition we presented an expansion PCB
By Benedikt Sauter and Jens Nickel
for the Elektor Linux board and mentioned at the same time that this could be used with other controller boards as well. Meanwhile the development team at Embedded Projects has been working hard designing a whole raft of extra extension boards that are available from Elektor. As an appetizer, so to speak, here is a card with eight relays.
Figure 1. Relay module.
The relay module (Figure 1) is driven using the 14-pin Gnublin Connector, just like the Linux Extension Board featured back in April. As an Embedded Extension Connector it is also used on the Xmega Webserver Board from Elektor (see next issue) and we are planning further controller boards equipped with this connector. The expansion board is ideal for newbies for whom Linux is (still) too complicated and equally suited to ‘power users’ who prefer to develop their programs using ‘bare metal’, in other words without the aid of an operating system. The relay board, like the Elektor Linux board, originated from the firm Embedded Projects, run by Benedikt Sauter [1]. It’s one of a whole series of expansion boards (see boxout) that all mate with the EEC connector mentioned above, pro-
78 | July & August 2013 | www.elektor-magazine.com
viding as it does pins for SPI, I2C, PWM, analog inputs and digital inputs/outputs. On the other hand, Elektor Labs have been working on modules using a 10-pin expansion connector (Embedded Communication Connector) for UART/TTL connections with one another (see boxout). A small zoo is growing up of controller boards and expansion boards that can be combined flexibly—microcontroller fans can look forward to an interesting time over the coming six months!
Relay card The circuit diagram of the relay card can be seen in Figure 2. As with the Linux Extension Board, a port expander PCA9555 (IC1) addressed over the I2C bus increases the number of digital outputs available to 16, of which eight are used here. The address of the I2C module can be preset using
Expansion modules
+5V
+5V
R8
+5V
K1
2
LED2 L4
R24
-I/CHY
C3
R22
2
C4
4u7
+5V
4u7
+5V
R10
+3V3
5
4
3
2
1
GPA1 I2C SDA
4u7
100n
GPA3
24
GPA0
VDD 22
I2C SCL
23
I/O0.0
SCL
I/O0.1
SDA
I/O0.2 I/O0.3
+3V3
I/O0.4 I/O0.5
K9
1
IC1
1
21 A1
K11
2
1
I/O0.6 I/O0.7
PCA9555D
A0
K10
T4
R6
K13 1 K14
3
I/O1.0 A0
I/O1.1
A1
I/O1.2
A2
I/O1.3
A2
I/O1.4 1
I/O1.6 VSS
10k
R15
I/O1.5 INT
I/O1.7
R7
BSS123
10k
PWM DATA
SPI MOSI 1
BSS123
4 5 6 7
+5V
+5V
8 9 R14
10 11 13
K5
1 2
LED6
14
R16
X3.A D5
3 4
BAT54 T5
16
K6
LED7
BAT54
15
X3.B D6
T6
17 18
R12
19 20
R13
BSS123
BSS123
12
+5V
+5V
R19
R20
270R
K7
1 2
BAT54 K1...K8 = G6D-1A-ASI5VDC
X4.B D8
270R
X4.A D7
LED8
3 4
BAT54 T8
R18
BSS123
10k
10k
K8
LED9
T7
R17
Figure 2. Circuit diagram of the relay module.
3
BAT54 T3
10k
7
6
C2
270R
8
SPI MISO
SYSCLOCK O
C1
K4
4
10k
9
R4
X2.B D4
LED5
BAT54 R3
GPIO14
270R
10
1 2
LED4
10k
11
K3
2k2
13
12
2k2
SPI SCK
14
R11
X2.A D3
270R
+3V3 K12
GPIO11
BSS123
4
VFB
GND
R5
BSS123
270R
EN
R2
976k
270R
3
T2
10k
VOUT
IC2 MCP1640BT
LED1
BAT54
5
10k
VIN
3
309k
SW
K2
4
T1
1 R1
X1.B D2
LED3
BAT54
4uH7
6
1
270R
270R
+3V3
R9
X1.A D1
BSS123
130157 - 12
www.elektor-magazine.com | July & August 2013 | 79
•Projects
Expansion modules for the Gnublin/ Embedded Extension Connector (selection) 8x relays (130212-91) 4x20 text display (130212-92) Stepping motor driver (130212-93) I/O expander (130212-94) Temperature sensor (130212-95) Distributor board ‘Bridge Module’ (130212-71) Raspberry Pi adapter ‘GnuPi’ (130212-72) These and other boards are available from Elektor [2]. In each case the boards come with SMD components preinstalled, with leaded components supplied in the kit for DIY assembly.
Raspberry Pi Adapter The Raspberry Pi adapter board ‘GnuPi’ increases the system’s flexibility even further for using expansion boards. It plugs directly into the Raspberry Pi and in turn enables the use of a range of Gnublin/ EEC plug-in connectors [2]. In this way all the expansion boards shown can also be used with the new computer platform that’s all the rage. This is neat: the C/C++ API from Embedded Projects can also be used with the Raspberry Pi. To convert a Gnublin/Elektor Linux board application to work on the Raspberry Pi all you need do is alter one single line of code: #define BOARD_GNUBLIN
#define BOARD_RASPBERRYPI
Expansion modules for the Embedded Communication Connector RS485 interface (under development) RS232 interface (planned) 433 MHz radio module (under development) Bluetooth using the BTM-222 (planned) WLAN using the WizFi220 (planned) USB using BOB (planned) More on this subject at the Elektor.Labs website [8].
80 | July & August 2013 | www.elektor-magazine.com
jumpers K9 to K11. Pull-up resistors for the I2C bus can be implemented using K13 and K14. The digital outputs IO 0.0 to IO 0.7 of the port expanders each drive a FET, with in turn operates a relay. An LED for each serves as status display. The Gnublin/Embedded Extension Connector is equipped with a 3.3 V pin, which enables the expansion boards to be powered from the controller board. A step-up converter (IC2) is built in to provide the 5 V coil voltage for the relay. A length of flat ribbon cable serves to connect the controller board and the relay board. The Embedded Projects development gang have already thought about the option of hooking up several expansion boards at the same time; a distributor board (Figure 3) is available from Elektor too [2].
C/C++ API We have already shown in [3] and [4] how you switch the outputs of the port expander ICs in Linux. But there is now an even simpler option. Benedikt Sauter and his comrades-in-arms have written a complete C/C++ API for controlling the expansion cards with great ease. You can incorporate the functions in programs that you write yourself but a number of short command line tools are also available. More on this in the next edition, in which we’ll introduce the other extension boards. A first taster of the C/C++ API is given in the listings. Listing 1 shows how you can access the digital inputs and outputs of the Elektor Linux board easily. Listing 2 demonstrates how you can read in values via the analog input. And Listing 3 shows how you operate the relay card. The new API [5] also clarifies the route into the world of Embedded Linux for beginners, managing without the more complex features of C like, for example, the Pointer. For the names of functions the developers have in part borrowed from the corresponding Arduino functions. If you’re interested, you are of course welcome to cast a glance at the source code [6].
Debian for the Elektor Linux board Not only has the Gnublin Linux system been enhanced with new hardware but the software side has also been updated. If you feel inclined,
Expansion modules
Listing 1: Digital output control on the Elektor Linux board. #define BOARD_GNUBLIN #include “gnublin.h” int main() { gnublin_gpio gpio; gpio.pinMode(3,OUTPUT); Figure 3. Bridge module (distributor board).
while(1){ gpio.digitalWrite(3,HIGH); sleep(2); gpio.digitalWrite(3,LOW); sleep(2); } }
you can now equip the Elektor Linux board with a Debian system (in place of the ELDK file system). Debian is very easy to install on the SD card (it doesn’t matter whether you are using the 8 MB or 32 MB version of the board); you can find instructions on the Internet [7]. (130157)
Listing 2: Reading a value on the analog input. #define BOARD_GNUBLIN #include “gnublin.h” int main() { gnublin_adc ad;
Internet Links
while(1){
[1] [email protected]
printf(“AD value %i n”,ad.getValue(1));
[2] www.elektor.com/gnublin [3] www.elektor.com/120596
} }
[4] www.elektor.com/120518 [5] http://wiki.gnublin.org/index.php/API [6] https://github.com/embeddedprojects/ gnublin-api [7] http://wiki.gnublin.org/index.php/ GNUBLIN-Elektor [8] www.elektor-labs.com/ECC
Listing 3: Driving the relay card. #define BOARD_GNUBLIN #include “gnublin.h” int main() { gnublin_module_relay relay; relay.setAddress(0x24); relay.switchPin(4, ON); sleep(2); relay.switchPin(4, OFF); }
www.elektor-magazine.com | July & August 2013 | 81
•Projects
Store it Quickly 2.0 D1
TR1
1N4001 230V 115V
D1
IC1 = LM393; TLC372
IC2
IC1 = LM393; TLC372
IC2
B1 1N4001 R1
2 3
R3
8
IC1.A
1
INT
MCU
230V 115V
2
Power Supply
3
4
100n
R4
By Jürgen Werner (Germany)
R2
120674 - 11
2
Some microcontroller applications require status information or other important data to be stored to EEPROM immediately as power to the equipment is turned off or fails. When power is resumed this information will then be available for use as required. To solve this problem Rainer Reusch developed a circuit (Figure 1) and it appeared in Elektor magazine as a Design Tip [1]. The principle behind this original circuit is that the voltage at the anode of D1 falls sooner than voltage across reservoir capacitor C2. A comparator evaluates these levels and outputs a signal to the microcontroller indicating that the input voltage has fallen. Thanks to D1 and C2 voltage at the non-inverting input to IC1.A falls faster than the voltage at the inverting input. This produces a Low level at the comparator output, triggering an interrupt. As long as there is sufficient energy stored in the reservoir capacitor, the microcontroller now has time to store all important data to EEPROM before the supply rail sinks too low. The circuit functions effectively, at least in simple situations. One problem is that it takes a few milliseconds to write data to EEPROM cells. The value of C2 must therefore be larger than is strictly necessary since it must also act as a reservoir to supply the regulator when input voltage falls. Apart from that the calculation of C1, for the ripple voltage is not so easy. Even more of a problem is if the power is supplied from a wall wart type adapter which includes built-in voltage regulation or switch-mode supply. In this case the circuit cannot work because the voltage at the input to R1 does not fall fast enough thanks to the
82 | July & August 2013 | www.elektor-magazine.com
C1 100
100n
1
1
INT
MCU
C2
R4 47k
1000
C3
47k
C2
8
IC1.A 4
470k
R2 220k
C1
R5 10k
47k
10k
82k
470k
R5
10k
R3
R1
100n 120674 - 12
reservoir capacitors integrated into the adapter. These shortcomings led the author to set about tweaking the original design; the result can be seen in Figure 2 which is both a better and simpler solution. The comparator has now been moved to after the voltage regulator. With this configuration we are comparing the input voltage with the voltage output from the regulator. We no longer need the diode in series with the voltage regulator. The reservoir capacitor C1 does not need to be so big now. The biggest improvement however is that now the circuit is not dependant on how quickly the input voltage falls. When the voltage from the power adapter sinks the level on the output of the regulator is held constant by regulator action. When dimensioned correctly the voltage divider at the non inverting input of the comparator produces an input voltage lower than the level at the inverting input, generating a low output to trigger an interrupt in the microcomputer. The circuit values have been calculated assuming the mains adapter has a 9 V output and the voltage regulator produces 5 V. D1 protects the regulator from current flowing in the reverse direction. With C1 equal to 100 µF and a load current of 5 mA the microcontroller has at least 17 ms in which to store data to EEPROM. An edge triggered interrupt is used here. When it is possible to disable power-hungry features of the microcontroller such as any A/D converters, that’ll give extra time to store data. (120674)
[1] Store it Quickly! Elektor January 2009, www.elektor.com/080379
Take out a FREE membership to Elektor.POST s 4HE LATEST ON electronics and information TECHNOLOGY s 6IDEOS HINTS TIPS offers and more s %XCLUSIVE BI WEEKLY PROJECT FOR '2%%. AND '/,$ MEMBERS s %LEKTOR BEHIND THE SCENES s )N YOUR EMAIL INBOX EACH &RIDAY
Ultra Small Panel PC ŸARM9 400Mhz Fanless Processor ŸUp to 1 GB Flash & 256 MB RAM Ÿ4.3' WQVGA 480 x 272 TFT LCD ŸAnalog Resistive Touchscreen
PPC-E4+
Ÿ10/100 Base-T Ethernet Ÿ3 RS232 & 1 RS232/422/485 Port Ÿ1 USB 2.0 (High Speed) Host port Ÿ1 USB 2.0 (High Speed) OTG port Ÿ2 Micro SD Flash Card Sockets ŸSPI & I2C, 4 ADC, Audio Beeper ŸBattery Backed Real Time Clock ŸOperating Voltage: 5V DC or 8 to 35V DC ŸOptional Power Over Ethernet (POE) ŸOptional Audio with Line-in/out ŸPricing starts at $375 for Qty 1
Designed and Manufactured in the USA the PPC-E4+ is an ultra compact Panel PC that comes ready to run with the Operating System installed on Flash. The dimensions of the PPC-E4+ are 4.8” by 3.0”, about the same as that of popular touch cell phones. The PPC-E4+ is small enough to fit in a 2U rack enclosure. Apply power and watch either the Linux X Windows or the Windows CE User Interface appear on a vivid 4.3” color LCD. Interact with the PPCE4+ using the responsive integrated touch-screen. Everything works out of the box, allowing you to concentrate on your application rather than building and configuring device drivers. Just Write-It and Run-It.
www.emacinc.com/panel_pc/ppc_e4+.htm Since 1985 OVER
28 YEARS OF SINGLE BOARD SOLUTIONS
Register today at www.elektor.com/newsletter
EQUIPMENT MONITOR AND CONTROL
Phone: ( 618) 529-4525 · Fax: (618) 457-0110 · Web: www.emacinc.com
Electric Guitar Sound Secrets and technology
BESTSELLER
What would today’s rock and pop music be without electric lead and bass guitars? These instruments have been setting the tone for more than sixty years. Their underlying sound is determined largely by their electrical components. But, how do they actually work? This book answers many questions simply, in an easily-understandable manner. For the interested musician (and others), this book unveils, in a simple and well-grounded way, what have, until now, been regarded as manufacturer secrets. The examination explores deep within the guitar, including pickups and electrical environment, so that guitar electronics are no longer considered highly secret. With a few deft interventions, many instruments can be rendered more versatile and made to sound a lot better – in the most cost-effective manner. 001200180017 PAGES s )3'. 001900170018 0011 001900100017001900120010 00110013 0014 a00120019000e00150010 s € 00130014000e00150010 s 53 000400140017000e00160010
Further information and ordering at www.elektor.com/electricguitar
•Projects Another Look at Some Specific Points of the
500 ppm LCR Meter The luxury of precision within everyone’s reach These corrections do not affect the operation of the circuit. The PCB and the ready-to-use module are unchanged, and as everything is working well, to date (May 23, 2013) there have been no updates since the 3rd article came out. And while we’re talking details, at the start of the “First time Setup” document downloadable from our site, the firmware file is wrongly called LCR3A_ update_Vxxx.hex. The correct name is LCR3A_ firmware_Vxxx.hex. The author will be happy to answer any other questions directly on Elektor’s English language forum too, and will gladly discuss points with users of his precision LCR meter.
Jean-Jacques Aubry, Ollioules
The success of the Elektor 500 ppm LCR Meter The enthusiastic, attentive reactions from a great many readers to the publication of this project show that high-quality measuring instruments are still among their favorite constructional projects. The author, Jean-Jacques Aubry, has issued a correction in the French forum [4] — the only significant error so far noted — for the USB connector and SW1 cut-outs drawing. For the SW1 cut-out, the 1.16 mm dimension should be 0.96 mm. For the J19 cut-out, the 8.03 mm dimension should be 5.39 mm and the 3.97 mm dimension should be 6.61 mm. A corrected drawing has been included in the download on the website, as has a new version of the schematic which corrects a few points of detail. In the components list for the main circuit, J17, listed along with J7, J8, … should in fact be J9. R81 appears twice; the correct value is 7.5 kΩ, R81 = 10 kΩ should be deleted. On the main circuit diagram, R31 = 750 Ω and on the extension circuit, the resistor in series with LED D5 is R8 = 1 kΩ. And lastly, C30 = 1.5nF 5% NP0.
84 | July & August 2013 | www.elektor-magazine.com
In the three articles describing the LCR meter [1], certain aspects were glossed over, to avoid making the articles excessively long. We propose here to go back over some details that may also be interesting outside the context of the device described. This is the case for a special routine for displaying icons on a graphics screen, which takes a bit of gymnastics. We’re also going to discuss the accuracy of the measurements, the factors affecting accuracy, and errors. Reading this article will only be of any use if you have already also read the three preceding articles – particularly the description of the circuit and measuring principles.
Graphics display library Where necessary, the bootloader and firmware use the graphics display (GLCD) to display messages and images. The display’s RAM is organized into 128 columns and 8 lines of bytes (64 bits or pixels). Now the height of the elements to be displayed (icons) exceeds 8 bits and they are described using several bytes: the height of the two fonts used is e.g. 11 and 16 bits. All the icons are defined in the file glcd_bitmaps.c (or bootloader_glcd_bitmaps.c for the minimalist version, minus some of the icons and fonts used by the
500 ppm LCR Meter
firmware). If we want to be able to write in any position, e.g. spanning byte boundaries, and if writing into the GLCD’s RAM is done in whole bytes at well-defined addresses, we need to: know the contents of the RAM before writing, and perform some clever calculations between the old and new bytes so as to only modify the required pixels (bits). The number of port lines available for the display means we are obliged to use the serial mode. Unfortunately, this mode does not allow us to
read the display’s RAM. So we have to create a mirror of the GLCD’s RAM in the MCU RAM: uchar xdata GLCD_Array[LCD_COLS] [LCD_ROWS];
These calculations between old and new bytes quickly seem inextricable, as there are so many different cases to resolve. The solution I’ve adopted consists in representing a column as 64 bits instead of as 8 bytes! This solution requires:
1. Creating an image in the MCU RAM of the columns where each byte represents a single pixel in the GLCD RAM column, hence a value of 0 or 1. uchar xdata Column_Array[(LCD_ROWS + 1) * 8]; // + 1 for 2nd byte of char in last line
2. Creating a routine to read the display column (in fact the mirror) and write, after converting to equivalent bits (0 or 1), into Column_Array []. void GLCD_read_column(uchar col) { uchar rows, pix, i, j; i = 0; // read column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = GLCD_Array[col][rows]; // write pix, bit after bit for (j = 0; j < 8; j++) { Column_Array[i] = pix & 0x01; pix >>= 1; i++; } } }
3. Creating a routine to read the contents of Column_Array[], write to the GLCD RAM, and update the mirror: void GLCD_write_column(uchar col) { uchar rows, pix, i, j; i = 0; // write column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = 0; // read pix, bit after bit for (j = 0; j < 8; j++) { pix += Column_Array[i] >= 1; if (k height) break; i++; k++; } } GLCD_write_column(tx + x); } }
5. And lastly, creating a write routine for text, which just means writing a succession of icons that are defined in a font. void GLCD_draw_text( uchar x, uchar y, uchar *text , uchar mode ) { uchar i, posx, posy; uchar *pt; posy = y - font_height + 1; for( pt = text, i = 0; *pt; i++, pt++ ) { posx = x + i * font_width; if( posx + font_width > LCD_COLS ) { i = 0; posx = x; posy += font_height; } GLCD_show_icon( font + (*pt - font_offset) * font_charsize, font_ width, font_height, posx, posy, mode ); } }
86 | July & August 2013 | www.elektor-magazine.com
500 ppm LCR Meter
Measurement accuracy The impedance to be measured can be written:
Zx =
Vp + j Vq I p + j Iq
×
Vq I p − Vp I q ⎤ Gi Rsense Gi Rsense ⎡ Vp I p + Vq I q +j =⎢ ⎥× I p2 + I q2 ⎥⎦ Gv Gv ⎣⎢ I p2 + I q2
where Gi and Gv are the current and voltage gains of the amplifier chain, and Rsense is the IU_converter resistor.
G i = GINA128 × GBUFFER × GPGAi × GDAC i
G v = GINA128 × GBUFFER × GPGA v × GDAC v
Hence again, using the series representation of an impedance
RS =
Vp I p + Vq I q I p2 + I q2
×
GPGAi GDAC i Rsense GPGA v GDAC v
Z = RS + j XS
XS =
Vq I p + Vp I q I p2 + I q2
×
GPGAi GDAC i Rsense GPGA v GDAC v
If we ignore the digitizing errors, as explained in the “We need to keep an eye on the gain” paragraph in the first article [1], then:
0003 0001 GDAC i 0001 GDAC v 0006 0001 RS 0001 XS 0003 0001 GPGAi 0001 GPGA v 0006 0001 Rsense = =0004 + +0004 + + 0007 0007 GPGA v i0002v 0005 GDAC i GDAC v i0002v Rsense RS XS 0005 GPGAi We can split the overall error into two main parts: • the error due to the inaccuracy in the PGA103 and DAC8811 gains • the error in the true value of the resistors in the IU_converter (calibration error). To this will be added an error due to: • the display (± 1 bit in the last digit) • the residual phase error (after phase error compensation) • the fluctuation caused by amplification noise and stray signals picked up by the measuring leads (power line, etc.) And then the digitizing error will appear in ranges 1 and 8, when the amplitudes of the voltage or current signals become too different through lack of gain.
Factors affecting accuracy Gain error According to the BURR-BROWN (TI) documentation for the PGA103 Gain
1
10
100
Typical gain error
±0.005%
±0.02%
±0.05%
Max gain error
± 0.02%
±0.05%
±0.2%
For ranges 3–6, the PGA103 programmable amplifier always has unity gain and the term
0002 0001 GPGAi 0001 GPGA v 0005 0003 G i + G v 0006 0004 PGA PGA 0007
is zero.
For ranges 2 and 7, this term introduces a maximum error of ±0.07 % (typically ±0.025 %). For ranges 1 and 8, this term introduces a maximum error of ±0.07 % (typically ±0.025 %).
www.elektor-magazine.com | July & August 2013 | 87
•Projects
According to the TI documentation for the DAC8811C, its max. relative precision is ± 1 LSB Hence the maximum gain error will be ± 1/N, where N is the code defining the final amplifier gain. post_Ampli. step
0
1
2
3
4
5
6
7
N
7 500
8 700
10 000
11 600
13 500
15 500
18 000
20 700
post_Ampli. step
8
9
A
B
C
D
E
F
N
24 000
27 600
32 000
36 900
42 600
49 100
56 700
65 500
When the post_amplification_U and post_amplification_I steps are equal, the term
0002 0001 GDAC i 0001 GDAC v 0005 0003 G i + G v 0006 0004 DAC DAC 0007 is zero. Otherwise, it is maximum when one is 0 and the other 1; it then has a value of
1 1 0010 7500 8700
i.e. 0.025 %.
Note: Using the B version (DAC8811B) doubles this error. The IU_converter, whose open-loop gain is not infinite, also introduces a measurement error. As the closed-loop gain is ≤1 in ranges 3–6, its open-loop gain of around 80 dB (10,000) @ 10 kHz introduces an additional error of around 0.01 %. This will be negligible at the lower frequencies. Note: On the computer, the AU2011 program lets you display the gain error value. Phase error The use of a very wide bandwidth (50 MHz) amplifier in the IU_converter and the various phase compensations (described in the downloadable document “First time Setup” [3]) allow us to reduce spurious phase shifts to a minimum. However, they are not completely eliminated. What’s more, the phase of the final amplifier is assumed to be independent of the gain, which is only true to a first approximation, as with data between 0x2000 and 0xFFFF, its bandwidth is fairly constant (around 8 MHz) within the operating range of the DAC8811. This residual error will have an effect on the value of the secondary parameter, which will be all the more pronounced the closer the component under test’s phase is to 0 ° or ±90 °. Calibration error The initial error is that of the precision resistors fitted on the PCB, i.e. ±0.05 %. It is possible to improve this by following the indications given in paragraph 7 Calibrating the resistors in the downloadable document “First Time Setup” [3].
Internet Links & References [1] 500 ppm LCR meter, Part 1 www.elektor. com/110758 [2] 500 ppm LCR meter, Part 2 www.elektor. com/130022 [3] 500 ppm LCR meter, Part 3 www.elektor. com/130093 [4] www.elektor.fr/forumLCR
88 | July & August 2013 | www.elektor-magazine.com
(130174)
powered by Eurocircuits
PCBs Prototypes Multilayer Small series
0ROFESSIONAL 1UALITY 4RUSTED 3ERVICE 3ECURE /RDERING
Elektor PCB Service at a glance: x0003 s0003 0014 4ARGETED POOLING SERVICES AND 0011 NON POOLING SERVICE x s &REE ONLINE 0#' DATA VERIlCATION SERVICE x s /NLINE PRICE CALCULATOR AVAILABLE x s .O MINIMUM ORDER VALUE x s .O lLM CHARGES OR START UP CHARGES
$ELIVERY from 2 WORKING DAYS
Further information and ordering at www.elektorpcbservice.com
SPOT THE DIFFERENCE By Wisse Hettinga
In line with a strong trend in the industry, Renesas underscore that their latest GR Sakura board is Arduino compatible. This overview allows you to check for yourself just how far that compatibility goes.
Difference #1 Okay, the GR Sakura board is pink! But then, look at the specs—Pink is Power!
Difference #2 It’s 8 bit, 16 MHz and limited memory of the AVR controller against full 32 bit, 96 MHz and massive memory capacity of the Renesas processor. The real question is, which applications will actually unleash GR Sakura’s full potential.
Difference #3 The USB Host functionality on the Sakura board shows potential. It is implemented with a Mini-B connector, while a Type-A connector can be fitted on the back side of the board.
Arduino Uno
GR Sakura
Supply Voltage(s)
5 V processor operating voltage
3.3 V processor operating voltage 5 V board supply voltage
USB
Type B connector Board runs off USB voltage by default.
Mini B connector Type A connector provides Host support Board runs off USB voltage by default
Network
None
Ethernet RJ45
90 | July & August 2013 | www.elektor-magazine.com
Spot the Difference
ARDUINO UNO vs. GR SAKURA FULL Difference #4 You can’t deny that the true power of the Arduino concept is due to the huge and easily accessible program library (at www.arduino.cc), rather than the hardware. However, don’t underestimate the programming options available for the Sakura board either. It has lots of features that come to life once you start using the Cloud Base Compiler. Just hook up the board to your PC, push the right buttons—all well documented— and watch the board appear as a new drive connected to your PC. With the new drive a link is provided that takes you straight to the website. If you have an Android phone, have a look at Gadget Director—an easy, ‘icon’ based programming language.
Find all the references at www.designspark.com and go to the Design Centers.
(130177)
Arduino Uno
GR Sakura
Processor
ATmega328 8 bit 16 MHz operating frequency
RX63N 32 bit 96 MHz operating frequency
Memory
32 KB Flash of which 0.5 KB used by bootloader SRAM: 2 KB EEPROM: 1 KB
1 MB Flash RAM: 128KB Data Flash: 32 KB MicroSD socket
www.elektor-magazine.com | July & August 2013 | 91
Wideband Wien Oscillator with Single-Gang Pot By Merlin Blencowe (United Kingdom)
This Wien bridge oscillator (after Max Wien, 1866– 1938) produces a low-distortion sine wave of constant amplitude, from about 15 Hz to 150 kHz. It requires just four opamps and will work off a single 9-volt battery. Also, unlike most Wien bridge oscillators, it does not require a dual-gang potentiometer for tuning. Op amp IC2b provides an artificial ground so that the circuit will operate from a unipolar supply (9 V battery or power pack). IC2a is the main amplifier for the oscillator. The frequency range is divided into four decades by 2-pole, 4-way rotary switch SW1. Only one arm of the Wien network is varied, but
the change in positive feedback that would normally result is compensated for by IC1b, which works to bootstrap R2, thereby changing the negative feedback enough to maintain oscillation. A linear change in the resistance of the tuning pot results in a roughly logarithmic change in frequency. To get a more conventional linear change a log-taper pot is used wired so that rotating the knob anticlockwise causes frequency to increase. You could use an anti-log pot the other way around if you prefer, but these things are notoriously hard to find.
C9
+4V5
R12 100R
47u D1
R6
1
1
R1 10k
R7
10k
1N4148
1k
IC1.A
10k
R8
2
100k
3
R3
C10
C1
C2
1u
100n 2
IC2.A 2
C4
10n
1n
3
1
47u
C3
8
3 10
R2
100R
10k
R9
P2
K2
SW1 RANGE
R4
2
100R
LEVEL 10k 7 D4
R13
1N4148
5
R5 12k
D2
LDR
7 P1
IC1.B 6
+9V
14
5
10k FREQ
13 C6
1u
100n
C7
C8
10n
1n
+4V5
D3
R10
1N4148
10k
BATT+
C5
12
K1 2
C12
1 47u 16V
8
8
IC1
IC2
4
4
5 6
7
+4V5
R11 10k
C11
IC2.B
47u 16V
BATT–
IC1, IC2 = TL072
92 | July & August 2013 | www.elektor-magazine.com
120330 - 11
1
Test & Measurement
IC1A is an integrator that monitors the amplitude of the output signal and drives an LED (D2). This must be mounted facing the LDR (light dependent resistor) and shielded from ambient light (for example, with a piece of heatshrink tubing). IC1a is then able to control the gain of IC2a so that oscillation is maintained with minimum distortion. The maximum output amplitude of the generator is about 2 Vp-p when the LED and LDR are mounted as close as possible. Distortion is less than 0.5 % in the lowest range, and too low for the author to measure in the higher ranges. Any
LDR should work, provided its dark resistance is greater than 100 kΩ. If you do not have an LDR with such high resistance, try increasing R5 until oscillation starts. Breadboarded prototypes of the circuit were built by the author using dual and quad opamp packages, and both work equally well. The DesignSpark schematic and circuit board design files for this project are available for downloading from www.elektor.com/120330. (120330)
COMPONENT LIST Resistors R1,R2,R3,R6,R10,R11 = 10kΩ R7 = 100kΩ R4,R9,R12 = 100Ω R5 = 12kΩ R8 = 1kΩ P1,P2 = 10kΩ potentiometer, logarithmic law R13 = LDR, R(dark) >100kΩ, e.g. Excelitas Tech type VT90N1 (Newark/Farnell # 2568243) Capacitors C1,C5 = 1µF solid C2,C6 = 100nF C3,C7 = 10nF C4,C8 = 1nF C9-C12 = 47µF 16V, electrolytic, radial Semiconductors D1,D2,D3 = 1N4148 D4 = LED, red, 5mm IC1,IC2 = TL072ACP Miscellaneous SW1 = 2-pole 4-position rotary switch, C&K Components type RTAP42S04WFLSS K1,K2 = PCB terminal block, 5mm pitch PCB # 120330-1
www.elektor-magazine.com | July & August 2013 | 93
DesignSpark-PCB esignSpark-PCB •D
4 Amps Photovoltaic Charge Controller The use of solar photovoltaic (PV) energy sources is increasing due to global warming concerns on the one hand, and cost effectiveness on the other. Many engineers involved in power electronics find solar power tempting and then addictive due to the ‘green’ energy concept. The circuit discussed here handles up to 4 amps of current from a solar
By T. A. Babu (India)
panel, which equates to about 75 watts of power. A charging algorithm called ‘pulse time modulation’ is introduced in this design. The current flow from the solar panel to the battery is controlled by an N-channel MOSFET, T1. This MOSFET does not require any heat sink to get rid of its heat, as its RD-S(on) rating is just 0.024 Ω. Schottky diode D1 prevents the battery discharging into the solar panel at night, and also provides reverse polarity protection to the battery. In the schematic, the lines with a sort-of-red highlight indicate potentially higher current paths. The charge controller never draws current from the battery—it is fully powered by the solar panel. At night, the charge controller effectively goes to sleep. In daytime use, as soon as the solar panel produces enough current and voltage, it starts charging the battery.
94 | July & August 2013 | www.elektor-magazine.com
The battery terminal potential is divided by resistor R1 and trimpot P1. The resulting voltage sets the charge state for the controller. The heart of the charge controller is IC1, a type TL431ACZ voltage reference device with an open-collector error amplifier. Here the battery sense voltage is constantly compared to the TL431’s internal reference voltage. As long as the level set on P1 is below the internal reference voltage, IC1 causes the MOSFET to conduct. As the battery begins to take up the charge, its terminal voltage will increase. When the battery reaches the charge-state set point, the output of IC1 drops low to less than 2 volts and effectively turns off the MOSFET, stopping all current flow into the battery. With T1 off, LED D2 also goes dark. There is no hysteresis path provided in the regulator IC. Consequently, as soon as the current to the battery stops, the output of IC1 remains low, preventing the MOSFET to conduct further even if the battery voltage drops. Lead-acid battery chemistry demands float charging, so a very simple oscillator is implemented here to take care of this. Our oscillator exploits the negative resistance in transistors—first discovered by Leo Esaki and part of his studies into electron tunneling in solids, awarded with the Nobel Prize for Physics in 1973. In this implementation, a commonplace NPN transistor type 2SC1815 is used. When the LED goes out, R4 charges a 22-µF capacitor (C1) until the voltage is high enough to cause the emitter-base junction of T2 to avalanche. At that point, the transistor turns on quickly and discharges the capacitor through R5. The voltage drop across R5 is sufficient to actuate T3, which in turn alters the reference voltage setting. Now the MOSFET again tries to charge the battery. As soon as the battery voltage reaches the charged level once more, the process repeats. A 2SC1815 transistor proved to work reliably in this circuit. Other transistors may be more temperamental—we suggest studying Esaki’s laureate work to find out why, but be cautioned that there are Heavy Mathematics Ahead.
Power Supplies
D1
MBR1645G
R3 3k3
R2 3k3
15k
R1
IC1 K1
K2 2
2
TL431ACLP
1
SOLAR
12V
1 P1
R4 2M2
T2
BC547
R5
12V BATTERY
D2
C1
1k
5k
2SC1815
T3
CHARGE
IRFZ44NPBF
to
r p c bs
v i c e.c
.e l e k ww
(110751)
er
To adjust the circuit you’ll need a good digital voltmeter and a variable power supply. Adjust the supply to 14.9 V, that’s the 14.3 volts battery setting plus approximately 0.6 volts across the Schottky diode. Turn the trimpot until at a certain point the LED goes dark, this is the switch point, and the LED will start to flicker. You may have to try this adjustment more than once, as the closer you get the comparator to switch at
exactly 14.3 V, the more accurate the charger will be. Disconnect the power supply from the charge controller and you are ready for the solar panel. The 14.3 V setting mentioned here should apply to most sealed and flooded-cell lead-acid batteries, but please check and verify the value with the manufacturer. Select the solar panel in such a way that its amps capability is within the safe charging limit of the battery you intend to use. The DesignSpark schematic and circuit board design files for this project are available for downloading from www.elektor.com/110751.
w
As the battery becomes fully charged, the oscillator’s ‘on’ time shortens while the ‘off’ time remains long as determined by the timing components, R4 and C1. In effect, a pulse of current gets sent to the battery that will shorten over time. This charging algorithm may be dubbed Pulse Time Modulation.
110751 - 11
om
22u 25V
T1
COMPONENT LIST Resistors R1 = 15kΩ R2,R3 = 3.3kΩ 1% R4 = 2.2MΩ R5 = 1kΩ P1 = 5kΩ preset Capacitors C1 = 22µF 25V, radial
T1 = IRFZ44NPBF (International Rectifier) T2 = 2SC1815 (Toshiba) (device is marked: C1815) T3 = BC547 Miscellaneous K1,K2 = 2-way PCB terminal block, lead pitch 5mm PCB # 110751-1
Semiconductors D1 = MBR1645G (ON Semiconductor) D2 = LED, 5mm IC1 = TL431ACLP (Texas instruments)
www.elektor-magazine.com | July & August 2013 | 95
Starting a Schematic Design By Neil Gruending (Canada)
Last time I talked about how DesignSpark uses technology files to store configurations settings. In this article we’ll start a new project and start a schematic design. We’ll start by configuring the DesignSpark libraries and then we’ll set up a schematic title block so we can create a nice looking schematic.
DesignSpark’s library search paths. You do that by going into the ‘Files -> Libraries...’ menu and selecting the ‘Folders’ tab. Here you will see a screen that looks something like Figure 1. You want to make sure that the directory where you are storing your library files is listed as the first item in the ‘Folders and Search Order’ box which in my case is ‘C:UsersNeil Gruending Documentsdspcb2liblibrary’. You can reorder the directory list by selecting the directory that you want to move and using the Up/Down buttons. I would recommend that you don’t save any changes or new files into the DesignSpark system default library folders just in case the libraries get overwritten in a future upgrade. Now that the library paths are set up, you can create a new schematic symbol library to store our schematic title block by selecting the ‘New Lib…’ button on the ‘Schematic Symbols’ tab. Then select the ‘New Item…’ button to open up a blank schematic symbol page. For more information you can review the symbol creation tutorial on the DesignSpark website [1].
Creating a schematic title block
Figure 1. Inspecting DesignSpark’s library paths.
Configuring the libraries DesignSpark uses library files to organize all of your design information. Schematic symbols are one library type and PCB footprints are another. They are then combined to make a component library that you can use to place parts and documentation symbols into your design. The only difference between a documentation symbol and a regular component is that a documentation symbol contains either a schematic symbol or a PCB symbol, but not both. If you would like more information about DesignSpark’s library system and how it works, there is a good tutorial at [1]. In this article we will make a schematic documentation symbol to use a title block in a schematic but before we do that we need to double check
96 | July & August 2013 | www.elektor-magazine.com
I personally always use title blocks on a schematic to make them look much more professional and to help to document a design. DesignSpark is different from other packages because schematic title blocks are stored in a schematic component library instead of a template file or technology file which means that DesignSpark will ignore any drawing elements in a schematic technology file. DesignSpark comes with several title block templates in its Schema library in several different sizes like A4 and Letter, but I prefer to use Tabloid (11 in. × 17 in.) for my designs. I also prefer to use a more traditional documentation area that takes up less of the drawing area. In my last article I showed you how to use truetype fonts in a schematic technology file, but there is a downside to using them in a schematic title block. That’s because DesignSpark shifts truetype fonts slightly downwards when printing
Tips & Tricks
a schematic to a PDF file. That normally doesn’t matter for things like reference designators but in title blocks where text alignment is more important you’ll definitely notice. Therefore I chose to use stroke fonts for my title block, which is shown in Figure 2. I recommend that you name the various text styles so that they’re easy to modify later. In my case I ended up with the styles shown in Figure 3. The numbers and letters around the drawing area frame use the text style ‘Frame’ and the field descriptions use the text style ‘Title-small’. Field items use the style ‘Title’. Since DesignSpark doesn’t support project variables you have to add the text strings to the title block manually, which is why all of the title block fields are blank in the schematic component. Also, you don’t have to add these text styles to the schematic technology file because they will be copied into the schematic when you add the title block. Once you’ve finished editing the title block, save it to the schematic symbol library you created earlier so that we can create a schematic document symbol. The first step is to open the Library Manager (‘File->Libraries…’) and go to the Components tab. You can create a new component library by selecting the ‘New Lib…’ button and then create the document symbol by clicking on the ‘New Item…’ button which will open the ‘New Component’ window. Here you can give the component a name and select your title block symbol. Unchecking the ‘PCB Symbol’ check box will make the component a schematic document symbol like we need. Save your changes and let’s start a new DesignSpark project.
the new project and then a blank project will be created for you. Now you can add existing files to the project by using the ‘Project -> Add Files to Project…’ menu. Adding new items to a project is done by opening the ‘New Design’ window, but before clicking on OK make sure you check the ‘Add to Open Project’ box. Figure 2. Structure and layout of the schematic title block.
Conclusion Now that we can create projects and create nice looking schematic templates, the next step is to start drawing your design using components from the D e s i g n S p a r k l i b r a ries. You can also create and use your own libraries with some extra component attributes that will make it easier to generate bill of material (BOM) listings later. The title block I’ve drawn here (Figure 4) is available from my dsppcb2lib project on Bitbucket at [3].
Figure 3. Text formatting in the title block.
(130181)
Creating a new project DesignSpark uses projects to collect all of the relevant information about a design like schematics and PCB documents in one place. The main reason for using a project is to allow a set of schematic sheets to be linked to a PCB design. The linked schematic sheets can then act as one large project where global net information is shared and all component designators are unique. Creating a new DesignSpark project is simple. Go into the ‘File -> New’ menu to open the ‘New Design’ window, select ‘Project’ and then press ‘OK’. You will then be prompted where to save
Internet References [1] www.designspark. com/tutorial/ components-librarystructure-librarymanager
Figure 4. A completed schematic title block.
[2] www.designspark.com/tutorial/componentscreation-with-symbol-footprint-wizards [3] https://bitbucket.org/neilg/dspcb2lib
www.elektor-magazine.com | July & August 2013 | 97
•Labs
Celebrate! By Clemens Valens (Elektor.Labs)
This month we party because Elektor.LABS has passed the 5,000 registered participants mark. Thank you! Also we are happy to start awarding Gold Memberships for outstanding .LABS performers. Another excellent reason to
Join Us… *
D Return of D Formant Most people posting a project on .LABS limit themselves to a few lines of text and maybe a photograph or a schematic. But not Greek contributor “AChorevas”, hell no! Not being an Elektor member this OP contacted us to post his d-Formant project on Elektor.LABS, a digital version of the legendary Elektor Formant modular analog music synthesizer from the late seventies. After reading the project summary he kindly provided, we were more than happy to grant him free access to the .labs website. Not even in our wildest dreams did we expect that this would result in fifteen posts containing detailed descriptions, sound samples, schematics and source code files. The OP’s d-Formant is an all digital sound synthesizer. In the instrument all the analog signals of the original Formant got replaced by 16-bit digital streams, while PIC24 microcontrollers have taken the place of the transistors and operational amplifiers. The design is fully modular and offers the patching capabilities of the original Formant, allowing the user to rewire sounds on the fly. All the original controls can be implemented, although the prototype has a much simpler and cheaper user interface: an LCD, some pushbuttons and a rotary encoder (that alone is enough for me to like it ;-). To play the synthesizer you can use a standard MIDI keyboard or any other MIDI device capable of sending ‘note on’ and ‘note off’ commands. We are definitely going to write about this excellent project in the printed magazine. Meanwhile we have awarded AChorevas a free Elektor Gold Membership. Congratulations! www.elektor-labs.com/node/3124
’S EDITOIRCE CHO
(130098-I) * Quote from The Evil Dead (1981).
www.elektor-labs.com Note: OP stands for Original Poster, the person who started an online project or discussion. OPs who want to have a chance of appearing in the printed edition of Elektor must (regularly) check the email address they use to access Elektor.Labs. This is our only means of contact.
98 | July & August 2013 | www.elektor-magazine.com
Desoldering Tip
SMD Desoldering Tip If an engineering problem appears daunting and complex that does not always equate to the solution being expensive and/or high tech. Elektor Labs resident Luc Lemmens supplied a valuable tip on a method of desoldering surface mount ICs he found on the Internet. All you need are precision pliers, a short piece of solid copper wire— like electrical installation wire—a decent solder iron and some solder tin, and a pair of tweezers. When desoldering ICs with leads at two opposite sides of the case, it is suggested you start by folding the copper wire as shown in the first photo. Make sure the wire contacting the pins is as straight as possible, making sure it touches as many IC pins as possible. Now apply some solder to the wire where heat needs to be transferred (second photo). This improves the heat transfer to the IC pins and the PCB pads significantly. Press the wire on the chip pins as shown in the third photo and heat it with a decent soldering iron, all the while making sure the pins at both sides of the IC are in full contact with the wire. When the solder has melted, quickly remove the IC from the PCB using tweezers.
With a little custom folding of the copper wire, even ICs with pins at all four sides of the package can be desoldered using the above method. Shape the copper wire in a similar way, as pictured in the fourth image.
By Thijs Beckers, Associate Editor
Watch out for damage to the IC as well as the PCB by overheating, and keep the time you apply heat limited to just melt the solder and be able to securely remove the IC. An IC that’s been subjected to overheating, meaning it’s been soldered on either too long or at an excessive temperature will obviously be DBR (damaged beyond repair). As is the precious circuit board, where too much heat will result in copper pads becoming detached from the PCB surface. Once you get the hang of it and perform this little trick correctly wielding your solder, solder iron and copper wire, you will damage neither IC nor PCB. (130099)
Found on http://youtu.be/dCUSwADP6DE.
www.elektor-magazine.com | July & August 2013 | 99
•Industry
v i c e.c
om
.e l e k ww
r p c bs
er
to
Professional PCB Manufacturing
w
How your four-layer PCB gets produced at Elektor PCB Service The technology of manufacturing printed circuit boards professionally has evolved immensely since Elektor published its first “panels” some 50 years ago. In this article we venture into the kitchen of our Elektor PCB Service, powered by our production partner Eurocircuits, to check out how we bake our —multi-layer— cakes.
Understanding the manufacturing process is sure to enable you to design PCBs that can be produced easier and cheaper while also improving long-term reliability, so that your customers will keep coming back to you. So let’s have a look at the manufacturing process of a 4-layer PCB. Professional PCB manufacturers usually don’t manufacture PCBs as one-offs. Instead they combine several circuits onto one large production panel, which is much more efficient to produce and handle throughout the production process. This is often called ‘order pooling’. Eurocircuits also produce their PCBs this way. In the illustrations you should be able to discern four individual designs combined in a single panel.
(1) From Gerber to production data 1
The board designer has prepared his/her track layout on a CAD system (Computer Aided Design). In response to each system using a proprietary data format, the PCB industry developed a standard output (file) structure to ensure a uniform format is used to describe the physical properties of a PCB. This is format is called “Extended Gerber” or “RS274X”. The Gerber files define the layers of copper tracks as well as the solder masks and component positions and designations. The first job in the whole process is to check whether the data submitted by a client meets the manufacturing requirements. This is mostly done automatically. Track widths, space between tracks, pads around holes, smallest hole size and the likes are pitched against manufacturability. Once the design is approved, an engineer will output all tool files needed to run the machines that produce and test the PCB.
2
(2) Photo tools for PCB image transfer A laser photo plotter prints the films needed for the production. These are automatically developed and held ready for the PCB fabrication process. For every PCB layer one film or photo tool is generated. The films are aligned with each other by punching precisely located alignment holes in each sheet. These holes will align with the alignment pins on the imaging equipment so the different layers of the board will be perfectly aligned.
(3) Inner layer imaging 3
To produce the inner layers of a multilayer PCB, manufacturers like Eurocircuits typically start with a panel of laminate, which is an epoxy resin and glass-fiber core with
100 | July & August 2013 | www.elektor-magazine.com
Info & Market
copper foil pre-bonded onto each side. First the copper is cleaned and the panel is transferred to a clean room to ensure no dust gets onto the surface where it could cause a short or open circuit. The cleaned panel is given a coat of photosensitive film, the photoresist. Next the image on the film is transferred to the PCB by a ‘printer’ using powerful UV lamps to cure the photoresist through the clear film, thus defining the copper pattern. The bed of the printer has alignment pins matching the holes in the photo tools and panel. The operator positions the first film using the pins, then the coated panel, and then the second film. The pins ensure that the top and bottom layers are precisely aligned.
4
When ‘printed’, the panel is sprayed with a powerful alkali solution to remove any resist that failed to cure completely. The panel is then pressure-washed and dried. The copper pattern is now covered by the cured resist. The operator checks the panel to make sure that the copper surface is clean and all the unwanted resist has been removed.
(4) Etching the inner layers The copper layout is now etched using a powerful alkaline solution to dissolve the exposed copper. The process is carefully monitored to ensure that the final conductor widths are exactly as designed. Next, the blue photoresist protecting the copper image is stripped off. The operator checks that all the photo-resist has been removed.
4
(5) Alignment and inspection of inner layers The inner core of our multilayer board is now complete. The operator punches alignment holes in the panel to align the inner and outer layers. Since there is no way to correct any mistakes on the inner layers once the outer layers are attached, a full inspection is given to the panel. An automatic optical inspection system scans the board and compares it with the digital image generated from the original design data. 5
(6) Bonding the inner and outer layers The outer layers consist of sheets of glass cloth pre-impregnated with uncured epoxy resin (‘prepreg’) and a thin copper foil. First a copper foil and two sheets of prepreg are placed on the heavy steel base plate. Then the pre-treated core is carefully positioned using the alignment pins. Lastly two more sheets of prepreg, another copper foil and an aluminum press plate are put on top. This stack is loaded into the bonding press, which uses heated press plates and pressure to bond the layers of the PCB together. The heat melts and cures the epoxy resin in the prepreg, while the pressure bonds the layers together. The bonding process is computer controlled, so a permanent bond that will last the lifetime of the PCB is ensured. 6
(7) Drilling X-ray drilling of reference holes. Before etching the outer copper layers, all holes for leaded components and vias are drilled. First an X-ray equipped drill is used to locate the drill positions in the copper of the inner layers. The machine drills alignment holes to ensure precise drilling through the center of the inner layer pads. Prepare the stacks for drilling To set up the drill the operator first puts a panel of disposable material on the drill bed to keep the drill from tearing the copper foil as it exits at the bottom side. Then he loads the panel and a sheet of aluminum entry foil.
www.elektor-magazine.com | July & August 2013 | 101
7
•Industry Drilling the holes The drilling machine is computer-controlled. The operator selects the correct drilling program. This tells the machine which drill to use at what XY coordinates. The drill uses air-driven spindles which can rotate up to 150,000 rpm. High speed drilling ensures clean hole walls to provide a secure base for plating. Drilling is a slow process as each hole must be drilled individually. So depending on the drill size up to three PCB panels are drilled in one run. The machine selects the drill to use from the drill rack, checks that it is the correct size and loads it into the drill head.
7
Cut-off excess resin During the bonding process excess resin from the prepreg is squeezed to the edge of the panel outside the image area. This is cut off on a computer controlled profiling machine. The drilled panel is now ready for plating.
(8) Plating – first part First a conductive layer is deposited over the hole walls. The operator clamps the panel into a jig so the panels can be taken through a series of chemical and rinsing baths, where the hole walls are seeded with micro particles of palladium, and a layer of copper about 1 micron thick can be deposited. The remaining copper is up for “electroplating”, a process to deposit a layer of metal onto an electrically conductive surface. But first...
8
(9) Outer layer imaging ... the panel is transferred to the clean room again and coated with a layer of photoresist, which is hot-rolled onto the copper using a cut-sheet laminator. The operator loads the first film onto the alignment pins, followed by the laminated panel, and finally the second film. After removing the Mylar film protecting the photoresist, the uncured resist is removed in a developer. The operator checks the panels again to make sure that the copper surface is clean and all the unwanted resist has been removed.
8
(10) Plating – second part Now the boards are electroplated with copper. The operator starts the automated plating line, where the copper surface is cleaned and activated in a number of baths and then electroplated. The whole process is computer controlled to ensure that each panel stays in each bath exactly the right amount of time. To ensure good conductivity through the holes about 25 microns of copper are needed on the hole walls. Due to the way electroplating works, 25–30 microns gets effectively plated onto the rest of the surface tracks as well. Thus starting off with a 17.5-micron copper foil will result in a 40–42 micron copper layer after processing.
9
9
10
102 | July & August 2013 | www.elektor-magazine.com
10
Info & Market
11
11
12
For the next step—etching off unwanted copper foil—a thin layer of tin is plated onto the copper. When the plating is completed the operator uses a non-destructive test to check the copper and tin plating for correct thickness.
(11) Etching the outer layers Now the outer layers are etched. First the resist covering the unwanted copper is dissolved and washed off. Then a powerful alkaline solution etches away any exposed copper. The process is carefully controlled to ensure sideways etching is prevented, so the finished track widths are exactly as designed. Finally the thin tin coating which used to protect the copper image, is stripped off.
12
(12) Solder mask coating Before applying the solder mask, the panels are first cleaned and brushed to remove any surface tarnish. Then they are loaded into the vertical coating machine which simultaneously covers both sides of the panel with the epoxy solder mask ink. The panel is racked and put through a conveyorized drier which cures the resist just enough to allow it to be printed (“tack-dried”). The operator checks for a complete and even coating. Next, the coated panels are imaged using a UV printer. The operator mounts the photo tool films on the machine and places the panel onto the alignment pins. As with the etching and plating resists used earlier in the process, the UV lamps in the machine cure the ink where the film is clear. This is where solder mask will be on the finished board.
13
The imaged panels are put on a conveyor moving them out of the clean room and into the developer, which strips off the uncured and unwanted resist. The operator checks the alignment of the solder mask on the panel and makes sure there are no traces of ink on the pads or through the holes. To provide a robust and permanent coat the resist gets cured once more in a conveyorized oven. 13
(13) Pad and hole finishing The copper pads and holes for the component wires or terminals do not have solder mask material on them. A solderable surface finish is now applied to protect the copper until the components are soldered onto the board. The image shows a gold finish, which is achieved by chemically depositing 5 microns of nickel onto the copper followed by 0.1 microns of gold over the nickel. Under the EU Reduction of Hazardous Substances (RoHS) legislation, lead cannot be used in the finishes, so gold over nickel is offered, as well as a sterling silver finish or lead-free hot-air leveling. For the last option the panel is lowered into a bath of molten tin. As it is lifted from the bath, hot air jets blast the surplus molten metal from the panel to leave a coating of tin of about 2 microns thick.
www.elektor-magazine.com | July & August 2013 | 103
14
•Industry (14) Hard gold electroplating Electroplated gold is needed for edge connectors getting repeatedly inserted in, and removed from, a bus connector. First, the operator puts protective tape on the board above the connectors. Then he mounts the panel on a horizontal electroplating bath. Between 1 and 1.5 microns of gold are then electroplated over 4–5 microns of plated nickel.
(15) Silk screen printing 15
A special inkjet printer is used to print the silk screen directly onto the board. This printer works just like a conventional inkjet printer where minute droplets of ink are sprayed onto the panel to generate the image. Now both the epoxy ink solder mask and the silk screen are finally cured. This takes about 10 minutes using a five-stage conveyorized oven.
(16) Routing out the panels The panel is now ready for separating the different PCBs by routing them out. A computer controlled milling machine mills out any small slots or internal cutouts first. Then the milling head automatically picks up a 2 mm cutter, checks the diameter and mills around each PCB. 15
(17) Electrical testing At the end of the PCB production process every multilayer PCB is electrically tested against the original board data. A flying probe tester checks each net to ensure that it is complete (no open circuits) and does not short to any other net. A faster method using an Acceler8 machine is optional. This uses 4000 tiny probes like a brush. It builds an electronic map of the PCB from a pre-tested board. Then it compares each board with its map. This cuts test times by 90%.
(18) Final inspection 16
In the last step of the process a team of eagle-eyed inspectors carefully check each PCB. If everything is OK, a release note is printed. The PCBs are vacuum-sealed to keep out dirt and moisture. Next they get bubble-wrapped, securely boxed, sealed and shipped out to customers. Now you know how we produce your PCB at elektor PCB Service and what happens after you order it at www.elektorpcbservice.com. In the next installment we will focus on design requirements you have to comply with considering several physical properties of the production process described here. (130061) Illustrations courtesy of Eurocircuits.
.e l e k ww
v i c e.c
om
t
er
17
o r p c bs
Internet Link www.elektorpcbservice.com
w
Eurocircuits are a European based manufacturer of standard technology printed circuit boards. Its headquarters are located in the picturesque Belgian town of Mechelen, while production units are near Aachen in Germany, and in Eger, Hungary. Eurocircuits specialize in providing prototypes and small batch PCBs for designers, product development departments, niche market electronics companies, universities and research institutions.
18
104 | July & August 2013 | www.elektor-magazine.com
An Exclusive Offer in your Email Inbox each Tuesday
S K E E W Y Z A R C ! R O T K E L E @ 21, 2013 r e b m e t p e S 1 2 e n Ju Books
Kits
SAVE s p i UP TO h s r e b m e M s D V CD/D 50%! Modules And more... TAKE ADVANTAGE OF OUR WEEKLY SUMMER DEALS! Register for our FREE Elektor.POST newsletter to receive our weekly Summer Deals*
www.elektor.com/newsletter *If you already receive Elektor.POST you don’t have to act. You’ll automatically receive our Summer Deals.
•Industry
ByPic Dev Board is Text Oriented The ByPic development board from ByVac is a unique concept in microcontroller development that allows you to “program with text”. The ‘intelligence’ is within the IC. This means that no IDE is necessary, no complex C code, no compiling , and no programmer is required, just a serial interface. Build, connect and it’s ready to go; simply download your text and the IC will take care of the rest. The concept is ideal for beginners and rapid prototyping as there is no need to learn any complex IDE systems, a free terminal emulator is available. Perfect for ‘what if’ scenarios and to test out new ideas. The IC is a PIC32MX150F128 that has 128 K of flash, 32 K RAM and operates at 40 MHz. Loaded into the flash is the unique ByPic development system that gives you access to all of the internals of the microcontroller without having to know how it all works. As a great confidence booster, once connected to a serial port it gives an ‘ok’ prompt to let you know everything is working okay. The language will interpret commands typed directly into the IC but will also compile any functions that you write and so you have the interactivity of an interpreted language and the speed of a compiled language. As an example, typing: adc_init(0) will set up ADC channel 0 and print adc_get(0) will get the value of the channel The IC can be purchased on its own to built into your own projects, the BP1 is an Arduino™ shaped board with a large prototyping area that is supplied in kit form. The kit costs just £9.95 and £12.95 with a USB to serial adapter. www.byvac.com
USB 3.0/WiFi Mixed Signal Oscilloscope with Protocol Analyzer USBee.com, the w e b s i t e f o r C WAV, has introduced the first PC-based mixed signal oscilloscope (MSO) integrated with a protocol analyzer utilizing USB 3.0 and WiFi technology. The USBee QX is a 600 MHz MSO with 24 digital channels and 4 analog channels, resulting in the highest integrated MSO in the PC-based test instrument category. While competitive MSOs provide protocol decoders that display data in complex HEX format, the USBee QX utilizes a protocol analyzer to display serial or parallel protocols in human readable format using a packet presentation layout. By eliminating the tedious tasks of constantly converting HEX data to meaningful interpretations, firmware developers and verification engineers are more productive in their debug process, saving man-days or man-weeks of effort.
106 | July & August 2013 | www.elektor-magazine.com
(130223-III)
With a large buffer memory of 896 Msamples coupled with data compression capability, the USBeeQX can capture up to 32 days of traces, allowing developers to find and resolve the most obscure and difficult defect. The USBee QX includes popular serial protocols such as RS232/UARTs, SPI, I2C, CAN, SDIO, Async, 1-Wire, and I2S that are typically costly add-ons for benchtop oscilloscopes. In addition, the USBee QX has the unique capability to support any custom protocol, utilizing APIs and Tool Builders that are integrated into the USBee QX software. With protocol packets to wire behavior on a single time correlated screen; external triggering with multiple test instruments are no longer needed, enabling the capture of symptoms and root cause in a single trace. The new WiFi capability in the USBee QX allows the test set-up to be in the lab while the developer or engineer is at their desk. WiFi also creates electrical isolation of the device under test to the host computer. With a price of $2495, the USBee QX is 85% lower price than equivalent benchtop MSOs. Being extremely small, portable, and affordable, every firmware and electronic hardware engineer or firmware developer can have a debug system at their disposal, eliminating wasted time for scheduling lab time or accessing shared test instruments. www.usbee.com
(130223-IV)
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
Fundamental Amplifier Techniques with Electron Tubes
THUMP
800+ pages!
The ultimate tube amplifier reference book! This book is a must-have for all tube fans and the growing circle of RAFs (retro-audio-aficionado’s)! In a mind blowing 800+ pages Rudolf Moers covers just about everything you need to know about the fundamentals of electron tubes and the way these wonderful devices were designed to function at their best in their best known application: the (now vintage) tube audio amplifier. The aim of the book is to give the reader useful knowledge about electron tube technology in the application of audio amplifiers, including their power supplies, for the design and DIY construction of these electron tube amplifiers. This is much more than just building an electron tube amplifier from a schematic made from the design from someone else: not only academic theory for scientific evidence, but also a theoretical explanation of how things work in practice. 001800130014 PAGES HARD COVER s )3'. 001900170018 0010 001900100015001700100015 00190013 0014 a00160015000e00100010 s € 00170015000e00100010 s 53 0004001100100014000e00190010
Further Information and Ordering at www.elektor.com/electrontubes
•Industry
Myriad Open Source RF Project Gets US Backing Richardson RFPD has committed to the Myriad open source RF initiative. The US-based distributor will begin stocking and selling the Myriad-RF-1 board to customers around the world via its website’s online store immediately. Myriad was launched in March 2013 as an open source, non-profit initiative to increase access for easy-to-use, low-cost RF hardware and to drive innovation in the sector. Myriad-RF boards use field programmable RF (FP-RF) transceivers to operate on all mobile broadband standards—LTE, HSPA+, CDMA, 2G—including all regional variants; and any wireless communications frequency between 0.3 and 3.8 GHz, which includes the regulated, licensed bands and unlicensed / whitespace spectra. Lime is seeking to increase involvement and design contribution from the general RF design community — including both hobbyists and professional system designers. Myriad-RF-1 measures approximately 5x5 cm, uses a 5 V power supply and is software configurable to operate from 300 MHz to 3.8 GHz and on 2G, 3G and 4G communication networks. Pre-built boards will initially retail for $299 or less. “We’ve had a lot of interest in the project since its launch, and Richardson RFPD’s involvement is a great endorsement,” said Ebrahim Busherhi, Lime CEO and Myriad-RF creator. “RF has needed an open source model for a long time and as people from outside the RF sector begin to work with such technologies new inventions will come to the fore that overcomes the problems they face, but we had no idea existed.” http://myriadrf.org
www.limemicro.com
R&S High-Performance Vector Signal Generator The R&S SMW200A high-performance vector signal generator from Rohde & Schwarz enables faster time-
108 | July & August 2013 | www.elektor-magazine.com
www.richardsonrfpd.com
(130167-V)
to-market, improves end-device quality, and exceeds important 2G, 3G and 4G digital standards and applications. Featuring versatile configuration options, the range of applications extends from single-path vector signal generation to multichannel MIMO receiver testing. The R&S SMW200A vector signal generator is the only product on the market that provides a baseband generator, RF generator and real-time MIMO fading simulator in a single instrument. The vector signal generator covers the frequency range from 100 kHz to 3 GHz or 6 GHz, and features an I/Q modulation bandwidth of 160 MHz with internal baseband. Exceptional modulation and RF characteristics make it ideal for developing high-end components, modules and complete products for wideband communications
news & new products
systems such as LTE-Advanced and WLAN IEEE 802.11ac. The generator performs especially well in verification of 3G and 4G base stations, as well as aerospace and defense applications. The R&S SMW200A can be equipped with an optional second RF path for frequencies up to 6 GHz and with a maximum of two baseband and four fading simulator modules, giving users two full-featured vector signal generators in a single unit. Fading scenarios, such as 2x2 MIMO, 8x2 MIMO for TD-LTE and 2x2 MIMO for LTEAdvanced carrier aggregation, can be easily simulated. Previously, this had required complex setups consisting of multiple instruments. Higher order MIMO applications such as 3X3 MIMO for WLAN or 4X4 MIMO for LTE-FDD are easily supported by connecting a third and fourth source to the R&S SMW200A. The R&S SGS100A are highly compact RF sources that are controlled directly from the front
panel of the R&S SMW200A. Overall this solution takes up considerably less space with only a total of five height units for 4x4 MIMO receiver tests and provides correctly encoded baseband signals, real-time channel simulation, AWGN generation, and phase-locked coupling of multiple RF paths, if required. Options for every important digital communications standard are available from the start: LTE, LTEAdvanced, 3GPP FDD/HSPA/HSPA+, GSM/EDGE/EDGE Evolution, TD-SCDMA, CDMA2000®/1xEV-DO and WLAN IEEE 802.11a/b/g/n/ac. The standards run directly on the R&S SMW200A—without having to connect an external PC—making it possible to vary signals or specific parameters quickly and easily, as required to test multi-standard radio base stations, for example. www.rohde-schwarz.us (130223-V)
Manchester and NRZ Configurable Protocol Decoders Teledyne LeCroy Corporation Manchester and NRZ (nonreturn-to-zero) configurable protocol decoders enable users to specify a broad range of physical layer characteristics for Manchester- or NRZ-encoded signals. The decoders define the grouping of bits into words, and words into frames, which makes short work of analysis for custom and/or proprietary protocols based on those generic encoding schemes. Decoded information is then shown in a color-coded overlay directly on top of the physical layer waveform. Many of today’s. 001900170018 0011 001900100017001900120010 00110018 0019 a00120014000e00180010 s €00120019000e00190015 s 53 000400140010000e00100010
NEW!
10% OFF fo GR EEN a r nd G OLD Me mbe r
s
Further information and ordering at www.elektor.com/retronics
RFID MIFARE and Contactless Cards in Application
NEW BOOK
MIFARE is the most widely used RFID technology, and this book provides a practical and comprehensive introduction to it. Among other things, the initial chapters cover physical fundamentals, relevant standards, RFID antenna design, security considerations and cryptography. The complete design of a reader’s hardware and software is described in detail. The reader’s firmware and the associated PC software support programming using any .NET language. The specially developed PC program, “Smart Card Magic.NET”, is a simple development environment that supports sending commands to a card at the click of a mouse, as well as the ability to create C# scripts. Alternatively, one may follow all of the examples using Visual Studio 2010 Express Edition. Finally, the major smart card reader API standards are introduced. 001400180014 PAGES s )3'. 001900170018 0011 001900100017001900120010 00110014 0011 a00140014000e00190010 s €00140019000e00190010 s 53 000400170012000e00150010
10% OFF fo GR EEN a r nd G OLD Me mbe r
s
Further Information and Ordering at www.elektor.com/rfid
•Gerard's Columns
Penny Wise and Pound Foolish By Gerard Fonte (USA) What this means is that the larger concerns are neglected in favor of the small or immediatee on concerns. This is a common sier to human trait. It’s much easier address small, urgent problems than big, important ones. Up in Smoke Hobbyists are perpetually short on cash (me too). So we try to do the most with the least. There’s nothing wrong with this unless you end up spending more over time by trying to cut corners. A classic example of this is the humble power supply. I’ll bet that the large majority of readers don’t have a dedicated, adjustable voltage, current limited power supply for their bench. I didn’t for a very long time. I used the typical cheap ones based on the ubiquitous three-terminal regulators. And I accepted the occasional fried component when I made a wiring error. But these smokers add to the cost of using a non-current regulated power supply. Let’s look at the numbers. You spend $20 for a cheap kit. There’s no voltmeter so either you have to add one (another $10) or go through the bother of measuring it every time you use it. (How much is your time worth?) Suppose you destroy one $2 part every 3 months. Over 5 years you’ve blown $40 in parts. Total cost: $70 (including $10 for the meter you finally added because you got so annoyed at having to measure the voltage every time). However, for about $60 you can get a nice current regulated power supply (from a number of on-line sources). It includes a voltmeter and ammeter. (Knowing how much current your project actually draws is very important and useful information.) And by limiting the current to a very low value, there are no more bad smells coming from your circuit when you make a mistake. The point is to examine the future before you make a decision. It’s a lot less expensive to buy something marginal now, but it will cost more in the long run. It makes sense to spend more for quality tools that you use a lot (soldering iron, meters, etc.). While you may be able to get by with penny-pinching equipment, the results will be better and faster with superior tools. That also makes your hobby much more fun. Upscale The same thing happens at the other end of the economic spectrum as well. Large companies consistently fail to examine the consequences of short-term decisions. Managers and VPs work hard to provide the largest profit for the year-end report to the share-holders. You can’t argue with success, can you? However, the situation is a bit more complex in this situation. Here there is a clear conflict of interest.
122 | July & August 2013 | www.elektor-magazine.com
Human beings are naturally selfish ccreatures. We all want as much as w we can get. And executives often get a sizeable portion of their salaries in the form si of performance bonuses. If the company does well that year, they get a big bonus do and perhaps a promotion. If the company an does poorly, there are smaller pay-outs and doe maybe it’s golden parachute time. Obviously, it is in the best interest of the executive to provide the maximum performance for that year so he or she can get the biggest paycheck. But this may not be the best for the company. For example, the Research and Development (R&D) department rarely shows a profit for any year. In terms of straight economics, R&D is a major drain on the company. Money goes in to support expensive employees (with PhD’s) and costly equipment. But no money ever seems to come out. If you are interested in a quick boost to the bottom line, cutting R&D funds is the way to go. The yearly profits are increased in direct proportion to the reduction in R&D. Obviously, this is a very short-sighted approach to increasing the company’s profits. However, this is done with regularity. Down to Earth Human nature is amplified with powerful people. Politicians, and the wealthy people that influence them, can manipulate matters on a world-wide scale. But politicians are people, too. They each have an agenda that they think is important. The only way that they can pursue their goals is to be in office. In order to remain in office, they must please the voters on a regular basis. So, naturally, they are under pressure to provide immediate results that will get them re-elected. Important long-term issues that benefit the country are neglected in the urgency to maintain popularity with the political base. Even the issues with global reach are postponed. There are a growing number of academics who think that the human race may face a serious downward population adjustment or even extinction within a century or two (or less). The primary possible causes are: global population, climate change, energy availability, fresh water supplies, nuclear war, or disease (man-made or otherwise). There is no doubt that humans have the power to exterminate themselves by simply being short-sighted. This was not true even a hundred years ago. And while there is some political talk, there’s not much action. Square One Curiously, individuals do have the capability to set and achieve longterm goals at the expense of short-term amusements. You spend four years to get your EE degree, eight for a PhD or twelve for an MD. So while human nature tends to be penny wise, we certainly don’t have to be pound foolish. (130224)
EAGLE V6 Getting Started Guide Learning to fly with Eagle
NEW BOOK
This book is intended for anyone who wants an introduction to the capabilities of the CadSoft’s EAGLE PCB design software package. After reading this book while practicing some of the examples, and completing the projects, you should feel confident about taking on more challenging endeavors. The book will quickly allow you to: s OBTAIN AN OVERVIEW OF THE MAIN MODULES OF %!',%001a THE SCHEMATIC EDITOR001b LAYOUT EDITOR AND AUTOROUTER IN ONE SINGLE INTERFACE001b s LEARN TO USE SOME OF THE BASIC COMMANDS IN THE SCHEMATIC AND LAYOUT EDITOR MODULES OF %!',%001b s APPLY YOUR KNOWLEDGE OF %!',% COMMANDS TO A SMALL PROJECT001b s LEARN MORE ABOUT SOME OF THE ADVANCED CONCEPTS OF %!',% AND ITS CAPABILITIES001b s UNDERSTAND HOW %!',% RELATES TO THE STAGES OF 0#' MANUFACTURE001b s CREATE A COMPLETE PROJECT A PROVEN DESIGN FROM the engineering team at Elektor), from design through to PCB fabrication. 001200100018 PAGES s )3'. 001900170018 0011 001900100017001900120010 00120010 0012 )NCL000e #$ 2/- CONTAINING %!',% 0016000e0014000e0010 FOR -3 7INDOWS ,INUX AND -AC a00120019000e00150010 s € 00130014000e00150010 s 53 000400140017000e00160010
10% OFF fo GR EEN a r nd G OLD Me mbe r
s
Further information and ordering at www.elektor.com/eagle
powered by Eurocircuits
s B C P r o t k e l E w e n 5% Discount on
2
Benefit now: Elektor PCB Service offers a permanent 90-day launch discount on new Elektor PCBs! Check www.elektor.com/pcb for an overview of all Elektor PCBs
MISSED an issue? LOST an issue?
No problem! Circuit Cellar issue PDFs are always available at www.cc-webshop.com. Save $2 off every issue PDF now through the end of July. Use coupon code CCPDF713 Each issue of Circuit Cellar contains: UÊ0001>ÞÃÃÊvÊÌ iÊiÜiÃÌÊiLi``i`ÊÌiV }ià UÊ iVÌÀVÃÊi}iiÀ}ÊÃ} Ì UÊ0015>À`Ü>ÀiÊ`iÃ} UÊ*À}À>}ÊÌ«Ã UÊ/iV µÕiÃÊvÀÊÌiÃÌ}
PLUS! Want the complete issue archive? Get a CC Gold USB drive today. It’s packed with every Circuit Cellar issue published through date of
www.cc-webshop.com
purchase. Ends July31,2013
Join the Elektor Community Take out a GOLD Membership now! Your GOLD Membership contains: s 0018 2EGULAR EDITIONS OF %LEKTOR MAGAZINE IN PRINT AND DIGITAL s 0012 *UMBO EDITIONS OF %LEKTOR MAGAZINE IN PRINT AND DIGITAL *ANUARY000f&EBRUARY AND *ULY000f!UGUST DOUBLE ISSUES s %LEKTOR ANNUAL $6$ 2/s ! MINIMUM OF 001100100005 $)3#/5.4 ON ALL PRODUCTS IN %LEKTOR000e34/2% s $IRECT ACCESS TO %LEKTOR000e,!'3 s $IRECT ACCESS TO %LEKTOR000e-!'!:).%001b OUR ONLINE ARCHIVE FOR MEMBERS s %LEKTOR000e0/34 SENT TO YOUR EMAIL ACCOUNT INCL000e 00120015 EXTRA PROJECTS PER YEAR s !N %LEKTOR 'INDER TO STORE THESE 00120015 EXTRA PROJECTS s %XCLUSIVE '/,$ -EMBERSHIP CARD
ALSO AVAILABLE: The all-paperless GREEN Membership, which delivers all products and services, including Elektor.MAGAZINE, online only.
Take out your Membership now at www.elektor.com/member
Subscribe Now!
Subscribe now to the leading computer applications magazine specializing in embedded systems and design!
12 issues per year for just Print OR Digital: $50 : : Combo (Print + Digital): $85
www.circuitcellar.com/subscription
Ordering Information
ORDERING INFORMATION To order, contact customer service for your region: USA / CANADA Elektor US 111 Founders Plaza, Suite 300 East Hartford, CT 06108 USA Phone: 860.289.0800 E-mail: [email protected]
TERMS OF BUSINESS Shipping Note: All orders will be shipped from Europe. Please allow 2–4 weeks for delivery. Returns Damaged or miss-shipped goods may be returned for replacement or refund. All returns must have an RA #. Call or email customer service to receive an RA# before returning the merchandise and be sure to put the RA# on the outside of the package. Please save shipping materials for possible carrier inspection. Requests for RA# must be received 30 days from invoice.
Customer service hours: Monday-Friday 8:30 AM-4:30 PM EST.
Patents Patent protection may exist with respect to circuits, devices, components, and items described in our books, magazines, online publications and presentations. Elektor accepts no responsibility or liability for failing to identify such patent or other protection.
UK / ROW Elektor International Media 78 York Street London W1H 1DP United Kingdom Phone: (+44) (0)20 7692 8344 E-mail: [email protected] Customer service hours: Monday-Thursday 9:00 AM-5:00 PM CET. PLEASE NOTE: While we strive to provide the best possible information in this issue, pricing and availability are subject to change without notice. To find out about current pricing and stock, please call or email customer service for your region. COMPONENTS Components for projects appearing in Elektor are usually available from certain advertisers in the magazine. If difficulties in obtaining components are suspected, a source will normally be identified in the article. Please note, however, that the source(s) given is (are) not exclusive.
Copyright All drawings, photographs, articles, printed circuit boards, programmed integrated circuits, discs, and software carriers published in our books and magazines (other than in third-party advertisements) are copyrighted and may not be reproduced (or stored in any sort of retrieval system) without written permission from Elektor. Notwithstanding, printed circuit boards may be produced for private and educational use without prior permission. Limitation of liability Elektor shall not be liable in contract, tort, or otherwise, for any loss or damage suffered by the purchaser whatsoever or howsoever arising out of, or in connection with, the supply of goods or services by Elektor other than to supply goods as described or, at the option of Elektor, to refund the purchaser any money paid with respect to the goods.
MEMBERSHIPS Membership renewals and change of address should be sent to the Elektor Membership Department for your region:
USA / CANADA
UK / ROW
Elektor USA
Elektor International Media
P.O. Box 462228
78 York Street
Escondido, CA 92046
London W1H 1DP
Phone: 800-269-6301
United Kingdom
E-mail: [email protected]
Phone: (+44) (0)20 7692 8344 E-mail: [email protected]
!
Do you want to become an Elektor GREEN or GOLD Member or does your current Membership expire soon? Go to www.elektor.com/member.
www.elektor-magazine.com | July & August 2013 | 127
•Store
3
1
2
Limited Time Offer for GREEN and GOLD Members!
4
16% DISCOUNT + FREE SHIPPING www.elektor.com/july
Ideal reading for students and engineers
microcontroller programs, as well as read and
on selected PCB areas and export circuit diagrams and
Practical Digital Signal Processing using Microcontrollers
understand programs written by other people. You
illustrations to other programs.
learn the function of JAL commands such as include,
ISBN 978-90-5381-273-0
pin, delay, forever loop, while loop, case, exit loop,
£23.50 • € 27.50 • US $37.90
This book on Digital Signal Processing (DSP) reflects the
repeat until, if then, as well as the use of functions,
growing importance of discrete time signals and their
procedures and timer- and port interrupts. You
use in everyday microcontroller based systems. The
make an LED blink, build a time switch, measure a
Display, buttons, real time clock and more
author presents the basic theory of DSP with minimum
potentiometer’s wiper position, produce sounds,
4
mathematical treatment and teaches the reader how
suppress contact bounce, and control the brightness
to design and implement DSP algorithms using popular
of an LED. And of course you learn to debug, meaning:
This extension board was developed to further
PIC microcontrollers. The author’s approach is practical
how to spot and fix errors in your programs.
propel our Embedded Linux series of articles and the
and the book is backed with many worked examples
284 pages • ISBN 978-1-907920-17-2
matching GNUblin board. It has a display, buttons,
and tested and working microcontroller programs.
£29.50 • € 34.50 • US $47.60
a real time clock and 16 GPIOs. Linux devotees,
1
Elektor Linux Board Extension
switch on your solder irons. The Linux extension
The book should be ideal reading for students at all
board includes everything needed to provide the user
levels and for the practicing engineers who may want to design and develop intelligent DSP based systems.
A whole year of Elektor magazine on a single disk
428 pages • ISBN 978-1-907920-21-9
3
£44.90 • € 49.90 • US $72.50
The year volume DVD/CD-ROMs are among the most
LCD1, X1, K1-K4, BZ1, BT1 for home assembly
popular items in Elektor’s product range. This DVD-ROM
Art.# 120596-91
contains all editorial articles published in Volume 2012
£31.10 • € 34.95 • US $50.20
10 captivating lessons 2
PIC Microcontroller Programming
DVD Elektor 2012
interface for a wide variety of projects! Module, SMD-populated and tested board, incl.
of the English, American, Spanish, Dutch, French and German editions of Elektor. Using the supplied Adobe Reader program, articles are presented in the same
LabWorX 2
Using the lessons in this book you learn how to
layout as originally found in the magazine. An extensive
5
program a microcontroller. You’ll be using JAL, a free
search machine is available to locate keywords in any
but extremely powerful programming language for
article. With this DVD you can also produce hard copy
This book takes you on a crash course in
PIC microcontrollers. Assuming you have absorbed
of PCB layouts at printer resolution, adapt PCB layouts
techniques, tips and know-how to successfully
all lessons you should be confident to write PIC
using your favorite graphics program, zoom in / out
introduce surface mount technology in your
128 | July & August 2013 | www.elektor-magazine.com
Mastering Surface Mount Technology
Books, CD-ROMs, DVDs, Kits & Modules
5
6
7
workflow. Even if you are on a budget you too
noises with each device, depending on the type and
readers to use EDA tools and software that is readily
can jumpstart your designs with advanced fine
frequency of the emitted field.
available online, free to download. The hardware
pitch parts. Besides explaining methodology
Kit of parts, incl. PCB
projects inside can be built using easily obtainable
and equipment, attention is given to SMT parts
Art.# 120354-71
parts, in the comfort of your own home, on single sided
technologies and soldering methods. Many
£13.30 • € 14.95 • US $21.50
PCBs, or professionally manufactured with output files generated by you. Open Source Electronics on Linux
practical tips and tricks are disclosed that bring
is about changing today’s electronics enthusiast into
surface mount technology into everyone’s reach of parts comprising all SMT components, circuit
OS Hard- and Software for Electronics Applications
boards and solder stencils is available for readers
7
without breaking the bank. A comprehensive kit
wishing to replicate three projects described in
empowered, savvy, discerning engineers capable of building and modifying their creations, be it solely on
Open Source Electronics on Linux
Linux or in tandem with your current operating system. 272 pages • ISBN 978-1-907920-19-6
this book.
If you have ever wanted to take advantage of the
282 pages • ISBN 978-1-907920-12-7
expanding field of open source software for electronics
£29.50 • € 34.50 • US $47.60
and everyday applications, this book is for you. Using
£29.50 • € 34.50 • US $47.60
the Linux OS, Warwick A. Smith guides you through the world of open source hardware and software, teaching
Ultrasensitive wideband E-smog detector 6
TAPIR Sniffs it Out!
www.elektor.com/store
Attention boy scouts, professionals and grandfathers!
Further Information and Ordering:
This ultrasensitive wideband E-smog detector offers
or contact customer service for your region
you two extra senses to track down noise that’s normally inaudible. TAPIR — short for Totally Archaic but Practical Interceptor of Radiation — also makes a nice project to build: the kit comprises everything you need. Even the enclosure, ingeniously consisting of the PCB proper! Using the TAPIR is dead easy. Connect the headphones and an antenna and switch it on. Move it around any electrical device and you’ll hear different
UK / ROW
USA / CANADA
Elektor International Media 78 York Street London - W1H 1DP United Kingdom Phone: +44 20 7692 8344 E-mail: [email protected]
Elektor US 111 Founders Plaza, Suite 300 East Hartford, CT 06108 USA Phone: 860.289.0800 E-mail: [email protected]
www.elektor-magazine.com | July & August 2013 | 129
•Magazine NEXT MONTH IN ELEKTOR MAGAZINE
Compact Audio Power Amp
Numitron Clock
Xmega Webserver
Audio projects have been thin on the ground recently in Elektor. Next month we make amends with the publication of a cracker power amplifier built around a special driver IC from Texas Instruments. Operating at supply voltages up to ±100 V, a single pair of output transistors supplies more than 200 watts continuously into 4 ohms, still maintaining pretty low distortion figures. The compact amplifier board also contains switch-on delay and DC protection circuitry.
Elektor magazine is increasingly home to advanced projects built on the Arduino platform. In this case we strove to blend old and new technologies in a stylish way using an Arduino-compatible microcontroller system with some add-ons electronics to drive a couple of Numitron tubes for a digital clock/thermometer. A Numitron is a vintage electron tube that can be used as a seven-segment display. Remarkably, each segment consists of a filament. Numitrons are generally affordable, and available from several online resources.
In the next issue we present a versatile microcontroller board designed around a very powerful AVR microcontroller. In terms of I/O we have 4 LEDs, 4 pushbuttons and a (separately installed) display. For interfacing, you can choose between RS485 and various UART/TTL connectors, allowing our BOB USB-TTL converter to be connected, for example. The Embedded Extension Connector makes the board pretty versatile. The board also has a Micro SD connector, and there is room for a TCP/IP module that allows web server and other network applications to be realized.
Article titles and magazine contents subject to change; please check the Magazine tab at www.elektor.com. Elektor September 2013 edition is published to members on August 13, 2013.
See what’s brewing @ Elektor Labs 24/7 Check out
www.elektor-labs.com and join, share, participate!
130 | July & August 2013 | www.elektor-magazine.com
WHY COMPROMISE
SPEED v ACCURACY? HAVE IT ALL
PicoScope
PicoScope 5442$
Channels
4 8 to 15-bit modes: 100 MHz 8 to 15-bit modes: 200 MHz $ll modes: 60 MHz 16-bit mode: 60 MHz 16-bit mode: 60 MHz 200115 GS/s 5 GS/s 10 GS/s 16 MS 32 MS 64 MS 128 MS 256 MS 512 MS 8 MS 16 MS 32 MS 64 MS 128 MS 256 MS 8 bits, 12 bits, 14 bits, 15 bits, 16 bits (hardware resolution + 4 bits) Function Function Function $:G $:G $:G generator generator generator
Bandwidth
Sampling rate - real time BuIIer memory (8-bit) * BuIIer memory (« 12-bit)* Resolution (enhanced)** Signal Generator
PicoScope 5442B
PicoScope 5440016$
PicoScope 5443B
PicoScope 5444$
PicoScope 5444B
2 Channel models also available * Shared between active channels ** Maximum resolution is limited on the lowest voltage ranges: ±10 mV = 8 bits f ±20 mV = 12 bits0011 $ll other ranges can use Iull resolution0011
FLEXIBLE RESOLUTION OSCILLOSCOPE
ALL MODELS INCLUDE PROBES, FULL SOFTWARE AND 5 YEAR WARRANTY. SOFTWARE INCLUDES MEASUREMENTS, SPECTRUM ANALYZER, SDK, ADVANCED TRIGGERS, COLOR PERSISTENCE, SERIAL DECODING (CAN, LIN, RS232, I²C, I²S, FLEXRAY, SPI), MASKS, MATH CHANNELS, ALL AS STANDARD, WITH FREE UPDATES.
www.picotech.com/PS218
CAD CONNECTED
PROTEUS DESIGN SUITE VERSION 8 Featuring a brand new application framework, common parts database, live netlist and 3D visualisation, a built in debugging environment and a WYSIWYG Bill of Materials module, Proteus 8 is our most integrated and easy to use design system ever. Other features include: < < < < <
Cast Wysiwyg R35 Cracked Magazine Free
- This is the full cracked version of the software. Download, extract, install, enjoy.
- Inside the archive there is'crack' folder wich contains everything you need to crack the software.
- https://safelinking.net/p/9ae14fd92e
- Perform indicates the significant importance of connecting to consoles. Maximize your creativity. Save time and money! Use wysiwyg to pre-cue your show.
- With the addition of a simulation component, wysiwyg Perform is an end-to-end, comprehensive, all-in-one solution. 3D CAD, paperwork, rendering, and pre-visualization are integrated into one sophisticated tool. A DMX console or compatible offline editor can be connected to the computer and wysiwyg Perform will simulate the exact effect of the console/editor’s output in real time.
- Layout your cue structure and have the console programmed before you even getto the venue. Guarantee that what you see is what you get. wysiwyg Perform is the ideal solution for designers and console operators who need to maximize their time onsite and cut production costs.
- Its strong previz in Shaded View competes with its infamous renderings. Power users can previz and plot the entire event without even stepping into the venue! The ability to import files from many sources, its simple 3D CAD suite, the new super-friendly UI, robust dependability and portability are only a few of the tributes that make wysiwyg the software of choice by all production professionals and the reputation for being indubitably the industry standard.
- Comparing the list of additional functions available in Perform to Design in the Product Comparison, the premium price for Perform indicates the significant importance of connecting to consoles and, with that, the huge time and $$ savings delivered chiefly by CAST's copyright protected innovations called AutoFocusTM and AutoPatchTM.
- AutoPatch is a protocol by which wysiwyg can transfer the patch hookup to a compatible console. AutoPatchis only available in wysiwyg Perform. You must be connected to a compatible console for this feature to be enabled. All ports for which you want the patch information to be transferred must be properly bound. Only the hookup information in patch universes bound to the console's outputs will transfer.
- is the protocol that wysiwyg uses to'talk back'to a compatible console. Using the mouse in a Wireframe view or using the concept shortcuts and design tools at any time, you can direct the console toselect fixtures, set focus, and control intensity, iris, and colour. Autofocusis connected through MIDI, Serial, or Ethernet.
- Whatelse does Perform do?
- Building on Report + Design, Perform adds even more features including connectivity. Multiple DMX over ethernet protocols. Programand playback complex lighting sequences from cues on your lighting console.
- Extended video interface of live streaming video from capture device or through CITP protocol. Connect up to51200 channels of DMX - nearly limitless patching options.
- CAST's own AutoPatchTM (available with consoles that supports AutoPatchTM ) transfers patch information from your plot to a lighting console. CAST's own AutoFocusTM (available with consoles that supports AutoFocusTM ) provides two-way console communication, sending fixture data to a lighting console.