Saturday, 12 August 2017

Joule Thief

Every once in a while, I get the itch to do something analog but doesn't require a major investment in time. This eventually lead me to the following experiment:

What do you do when your supply voltage is lower than the target voltage needed? For example, when your solar lamp receives less than the voltage necessary to light the LED? You use a Joule Thief circuit!

The Joule thief circuit is small and simple enough that it can be assembled in about 15 minutes. You need:
  • Variable power supply (or 1.5V battery)
  • A toroid core
  • Solid wire
  • 1 Kohm resistor
  • 2N3904 transistor or substitute
  • An LED
For demonstration purposes, I used a blue LED because these require higher voltages than say a red one. Figure 1 shows a hastily drawn schematic.

Figure 1. Joule Thief circuit.

Pay attention to the dots on the toroid windings. To create the transformer, twist a pair of solid wires together (cordless drills work great for this). Then wind as many turns as you can around the core (about 20).

Figure 2 illustrates my test setup, though you need not use special equipment. A 1.5V battery can substitute for a power supply.

Figure 2. Test setup.

If you have the polarity of the windings correct, your circuit should work the first time. Figure 3 illustrates the wave forms when 0.55 volts were supplied:

Figure 3. Input supply is 0.55 volts.

With 0.55V supplied, the frequency of oscillation was about 21.3 kHz. The upper trace in yellow shows the voltage appearing across the LED, which was about 2.65V max. The lower trace shows the base voltage varying between +1.08V and -2.04V. The pulse width is narrow at this minimum startup level and the average current flow was about 8 mA.

Figure 4 illustrates the wave forms when the input supply is 1.5V.

Figure 4. Input supply voltage is 1.55V.

The voltage across the LED increases slightly to 3.47V in this trace. The output frequency drops to about 14.7 kHz at this level. The average current was about 39.9 mA at this operating point. 

Conclusion

The circuit presents a very simple way to boost the voltage up to a level suitable for current consumption by an LED. It's only disadvantage is the requirement of an inductor or transformer.  Pull a toroid out of your junk box and give it a try. Perhaps even an junk audio transformer can be used.

Find the lowest input voltage for your circuit. Mine came to life at about 0.55V. Yours may be higher or lower, depending upon the parts used.


Wednesday, 1 February 2017

Ramp Generator: Inverse Ramp

Introduction

Last time we saw how one opamp (IC3A) would take a voltage from the 555 timer circuit and then level shift it. Using a gain of 3, it also amplified it so that the ramp would proceed range from  0V to +5V.  Finally, I noted that I had discovered that I needed an inverted ramp for the Topward 8110 Function Generator because it generates high frequencies at low ramp voltages and low frequencies at the high end of the ramp. It is highly desirable that frequency response shows from low to high on the scope, as left to right.

Figure 1 shows an inverting opamp amplifier added to the circuit to invert the ramp signal generated by IC3A.

Figure 1. Inverting amplifier IC3B
The resistor divider R6 and R7 simply provide a 2.5V middle point of reference for IC3B, since we are operating the opamp from a single ended power supply. This reference is fed into the (+) input on pin 5, so that when the (-) goes above it, the output voltages will go below, producing an inverted signal.

Notice that the gain calculation and resistor values of R9 and R10 are trivial. Gain for the inverting amplifier is simply:

Av = Rf / Rin
Av = R10 / R9

which is obviously 1.  If you're building this circuit, you might choose a 10k trimpot for R6 and R7, so that you can more accurately center the output of this stage. For my purposes, these levels didn't need to be exact, so some shift was tolerable. I also found that by playing with R15 and adjusting the IC3A stage, it would adjust IC3B also and allow me to arrive at a comfortable compromise for both.

Figure 2 illustrates the inverted ramp output of IC3B from pin 7.

Figure 2. Inverted ramp from IC3B output on pin 7
Figure 3 illustrates the same inverted ramp combined with the sync signal.

Figure 3. Inverted ramp signal shown with the NE555 generated sync signal.

From these scope shots you can see that the output does not go all the way down to 0V as intended. If that is critical for you, then substitute a trimpot in place of R6 and R7 and adjust for that.

Full Circuit

I have included the full circuit in Figure 4 (you should be able to click on the image for the full sized view).

Figure 4. Ramp generator schematic
Resistor R11 at the output of IC3B is provided to provide a load to the opamp in case the signal is capacitively coupled. Resistors R12, R13 and R14 provide some opamp and NE555 output protection, if the outputs should be shorted for any reason.

Figure 5 illustrates my breadboard setup for testing this circuit.

Figure 5. Ramp generator breadboarded

Topward Test

Figure 6 shows the function generator output with the ramp signal fed into the VCF input of the Topward 8110. The frequency range was selected to be at the high end of 1 kHz for this example, which is low enough that you can see the frequency modulation.

Figure 6. Ramp generator with Topward FG generated sine wave signal
It is plain to see that for the Topward 8110, the frequency (channel 3, purple) is lowest when the VCF input ramp (channel 1, yellow) was at its highest voltage. Frequency increased as the ramp proceeded toward 0V.

Summary

The next step here is to create a pcb and build it into some permanent case (I'm not sure if I will blog that). However, this is a low frequency circuit, which will tolerate prototyping of almost any kind. So don't feel that you must use a pcb for this project. 

I used the MC33202 opamp which supports low voltage and rail-to-rail at modest prices. If you try to use LM358/LM324 type devices, be aware that these will only output up to 3.5V. These will go to ground but need 1.5V headroom at the top end. If you insist on using these, then you may need to downgrade the gain in IC3A to 2 or raise the regulated power voltage.

Thanks for reading.

Monday, 30 January 2017

Ramp Generator: Level Shift and Gain

Introduction

In the last blog entry I outlined the design of the ramp generator's oscillator, using the NE555 timer chip. Using a constant current source for charging the capacitor, a linear ramp was generated by the timer chip. We also noted that we need to level shift and change the range of VC1 for our use with the FG (Function Generator).

Since the entire circuit is operating from 5V, it is necessary to use a low voltage opamp. In order for the output signals to include ground and near +5V, it is necessary to use a low voltage rail-to-rail opamp. The MC33202 is a low cost opamp that will serve the purpose in this low frequency application.

The temptation to use opamps like the LM358/LM324 should be avoided since these can't go to the +5V rail. If you were determined to use these, it could be accomplished if you changed the 7805 regulator circuit to provide +6.5V (or more) because about 1.5V of headroom will be required. This can be done by adding two diodes in the ground leg of the 7805 circuit.

We'll assume the use of the MC33202 or equivalent rail-to-rail opamp and a supply of +5V. Figure 1 illustrates the circuit surrounding IC3A.

Figure 1. MC33202 Level Shift and Gain Opamp (IC3A)
The top of the pot (R15) is +5V, and the bottom of the same pot goes to ground. The middle wiper arm is adjusted to about 1/3VCC (1.67V) so that pin 2 of the opamp IC3A sees that as its reference voltage. Note that IC3A is operating in single ended mode with +5V and ground for power.

The input is VC1 from the 555 timer circuit, which is delivered through the 10k R5. With R5 and the high input impedance of IC3A in the non-inverting configuration, no disturbing effects are felt by the capacitor C1.

Level Shifting

Level shifting occurs when R15 is adjusted to match VC1 when the ramp is at its lowest point (1.67V). In this way, when VC1 and V15 (wiper) match, the output of IC3A will be ground (0V). Also, when VC1 is less than the wiper level, IC3A will also output 0V when R15 is misadjusted.

As VC1 rises above R15 (wiper), IC3A will see a rise above its comparing inverting input. This causes the IC3A output to rise also. The use of pot R15 and IC3A allows us to shift 1/3VCC down to ground level at the output. The high point of the IC3A output is determined by gain.

IC3A Gain

Normally the non-inverting opamp gain is simply determined by the formula:

Av = 1 + Rf / Rin

where:
  • Rf is the feedback resistor (R8 in figure 1)
  • Rin is the input resistor (R15 in figure 1)
  • Av is the opamp's gain
The slightly tricky part is to determine what to use for Rin in this particular circuit.

Normally, opamps are described using bipolar power supplies where you have:
  • +VCC
  • Ground
  • -VCC
and Rin is always shown with respect to ground.

It should be remembered that in bipolar supply circuits, that the ground connection is actually a low impedance path to the rails in the Thevenin sense. This allows single ended opamp circuits to work equally well as the bipolar supply circuit.

Thevenin Rin

So what is Rin in IC3A's case at pin 2? It's a little bit tricky because this first depends upon where the wiper arm of R15 is adjusted to. We know that VR15 (wiper) is adjusted to match VC1 at its minimum. VC1min should be 1/3VCC (1.67V). With R15 adjusted to match, its wiper should be at 1/3 of its range, or:

  10k / 3 => 3333 ohms

This means that the other side of the wiper has 10k - 3.333k => 6667 ohms. If we treat R15 adjusted to 1/3, then in the Thevevin sense, we need to know the parallel resistance of 3333 || 6667 ohms. This turns out to be 2.22k.

What this means is that IC3A's (-) input sees a Rin of about 2.22k.

Computing Rf

Since VC1 has a range of one third of the 5V, we know that we need a gain of 3 to maximize the output ramp range (0 to +5V). So what Rf do we need to achieve that? Some simple algebra can re-arrange the formula for gain so that we solve for Rf. But if your algebra is too rusty, you can call upon wolfram alpha to help:

Figure 2. Wolfram Alpha solves for Rf

Wolfram Alpha needs single letter variables, so we have used:
  • g = Av
  • a = Rf
  • b = Rin
  • and asked it to solve for Rf, which is a
The formula was solved as:

  Rf = Rin ( Av - 1 )

Plugging in:

  Rf = 2.22k ( 3 - 1 )
  = 4.44k

In figure 1, I chose the value 4.7k, which is the nearest E12 value for Rf. This value introduces about a 6.9% errror, which is close enough.

Once IC3A is added to the ramp generator circuit, we get the following scope trace from IC3A's output pin 1, in Figure 3:

Figure 3. Output of IC3A, with level adjusted and full gain
From the Rigol measurements, we see that the output has a minimum of 0.36V and rises to 4.76V, which represents nearly the full 5V range. We also notice that the 1/3VCC has been shifted down to the ground level (360 mV). 

Next Steps

At this point, I thought I was pretty much done. But I discovered that the Topward 8110 Function Generator requires an inverted ramp signal, if we are to generate low to high frequencies in a given sweep! Instead, the Topward generates high frequencies when the ramp was low and low frequencies at the high point!

Fortunately this isn't too much of a hardship, since we have IC3B available. This stage can invert the beautiful ramp that we have presently. That will be the topic of the next post.

Thanks for reading.




Saturday, 28 January 2017

Ramp Generator: Oscillator

Background

A while back, I purchased a Topward 8110 Function Generator from eBay at a pretty good price. The unit had a dent in the front panel and was marked as needing repair.   I was able to remove and then flatten the front panel. No other physical damage was found. I did have to replace two driver transistors to get the unit working. But at the end of it all, I was pleased with the unit. Figure 1 shows the front panel.

Figure 1. Topward 8110 Function Generator
One of the reasons I wanted this unit, was that it had a VCF input (Voltage Controlled Frequency). Using a ramp signal, the FG (Function Generator) could be made to sweep a range of frequencies (1000:1 range). Using a scope, it is possible to view a filter response as the frequency is swept through its range.

Some FGs provide this sweep capability as a built-in feature. But to use the Topward 8110 in this way, I needed a ramp generator circuit. So why not build it myself?

Oscillator Design

The Topward FG accepts a range of 0 to +5V in the VCF input. So I decided that the entire circuit would run from a regulated power source of +5V.

The sweep (ramp) frequency was chosen to be under 100 Hz. It didn't need to be high and there was no reason to make it higher. The requirements so far, allowed the use of a NE555 timer and some low voltage rail-to-rail opamps.

The ramp could be generated using opamps but I settled on the 555 timer in order to keep this project simple. This would be the main generator for the whole unit. The one feature of the 555 timer that I liked is that the timing capacitor is charged and discharged within a strict range of 1/3 to 2/3 VCC. Using a +5V supply, this means that the capacitor would operate within a 1.67V to 3.33V range.

The next design problem is that normally a capacitor charges according to an exponential curve. What I needed was a linear ramp. So a constant current source for the charging circuit would be necessary. Figure 2 shows the NE555 circuit.

Figure 2. NE555 Ramp Generator

The LED1 componentwas chosen to have a forward voltage drop of about 1.2 V at about 10 mA. Red LEDs usually have some of the lowest VF values, so a red one was used. In this circuit however, the VR1 turns out to be 3.28V due to the lower current flow (VF=1.72V). It would have been best if VR1 was 2/3VCC + Vbe or higher, but I found that it worked well enough (ideally VR1 >= 3.93V). Voltage at the emitter of Q1 was measured to be 3.38V, with its base at 3.32V.

The PNP transistor Q1, combined with the LED1/R1 divider forms a simple constant current source with the caveat that some loss of linearity occurs at the top of VC1. The remainder of the 555 timer circuit is your standard astable timer configuration. The output on pin 3 will provide a square sync pulse, while the ramp signal of interest forms across C1.

Figure 3. NE555 timer signals C1, and output Pin 3.
From figure 3 you can see the square sync output on the scope channel 2, which varies between ground and about 4.57V. The signal output goes high until the capacitor starts to discharge. At the end of the discharge cycle, the sync output returns high again.

The VC1 is the sought after ramp signal. It rises after the discharge cycle completes. The ramp is very linear except perhaps at the end. Any non-linearity appears unnoticable here. On average, the ramp ranges in voltage from 1.65V to 3.32V before being discharged.

Next Objective

This circuit is not usable yet. We can't feed VC1 into the FG until we:
  1. Buffer VC1
  2. Level shift it for greater range
The charging circuit would be disrupted if we tried sending VC1 to the FG directly. It needs some kind of a buffer circuit. Further, we desire the full 0 to 5V sweep range, rather than the limited 1/3 to 2/3VCC. This will allow a greater frequency sweep.

In the next instalment, we'll design the level shift and correct the voltage range.

Thanks for reading.

Monday, 2 January 2017

Panasonic SV-3700 Repair

I have this used Panasonic SV-3700 digital audio tape unit, which I've had for some time now. This was a unit that I really liked owning but the problem was that I hadn't used it in probably over a year.

The service manual is available from here: http://elektrotanya.com/panasonic_sv-3700_sm.pdf/download.html

I recently needed a source of digital audio so when I went to use it, the old adage became real - "If you don't use it, you lose it!". I could eject and insert a new tape cassette but attempting to play or record only caused the unit to stop and refuse to respond to the play/record controls. The only way I could retry was to eject and insert a tape again. And of course, I tried several other tapes with the same result.

After some sputtering and muttering, I decided to clear the workbench and see if a fix could be had. Figure 1 shows the unit opened up, with the transport unscrewed and placed sideways over a folded piece of paper to avoid short circuits. This afforded greater visibility for troubleshooting. The transport is seen in the center behind the front panel.

Figure 1. Opened Panasonic SV-3700, with transport moved for better viewing and servicing.
I was of the opinion that the belts were probably ok. After all, the transport seemed to load, unload, and rewind ok. The problem only occurred when a play or record function was selected.

With the transport repositioned so that I could better view the action of the tape as it wrapped around the heads, I noticed that the head cylinder was never spinning. Could it really be this simple?

Figure 2.  View of the head cylinder from the end of the transport.
Reaching in carefully with the unit off, I touched the cylinder on the corner between side and top, to avoid putting any oil on the head. I noticed some resistance at first as I tried to make it turn. Then it seemed to break free but still had a noticeable amount of resistance. It was time for a power on test!

I powered the unit on and loaded a tape. I set it to record and then I saw a reluctant but spinning cylinder! Shortly after, the spinning overcame all resistance and seemed to continue with a proper smooth spinning action.

Rather than buttoning up the unit right away, I chose to allow it to continue recording for an hour or so (the length of the tape). I wanted to make sure that any built-in lubricants had a chance to reach places where they were meant to be. I also wanted any current "stickiness" to be eliminated by active wear.

And then there was more..

After it successfully recorded for an hour or so, I stopped the unit and requested a full rewind. The unit surprised me by doing a slow rewind and then stopping after about 10 seconds. And then it would retry about three more times. After the third stop, it simply gave up.

This didn't look hopeful but I unloaded the tape. Then I manually turned the spindle drives back and forth with my fingers to overcome some other potential "stickage". 

I reloaded the tape but was not at first successful. Then all of a sudden during a slow rewind attempt, the spindle sped up to full speed and has worked ever since. I naturally spun the tape back and forth a few more times to make sure.

Epilogue

I have since put the unit back together and it continues to work ok (though probably needs a head cleaning). 

So if you have mechanical devices, particularly tape devices, take them for a spin today. If you don't use them, you may lose them.

Thanks for reading!


Wednesday, 28 December 2016

Poor Man's Digital PGA - Part 2 of 2

No testing is complete until you try the final configuration. In the earlier post, I had simply grounded the extra resistor R7 to switch in the higher gain. Figure 1 below shows a capture of the signal at its base gain of 2.

In this capture, all extra AVR resistors R4, R6 and R7 are in the tri-state condition. It can be seen in Figure 1 that some noise exists on the output. Counting the bumps, there appears to be 20 per cycle amounting to about 100 kHz. The AVR device here is operating at about 1 MHz, using its built-in RC oscillator.

Figure 1. Noise on PGA Output
For use with the MSGEQ7, this should present no difficulty since the switched capacitance filters will eliminate this. This may present a difficulty when used in other audio work, however.

The good news is that this noise is reduced as the AVR resistors get switched in for higher gains.

You can watch an AVR switch between four gains here:

  https://youtu.be/iqPBaHtLFI0

Thanks for reading!


Monday, 26 December 2016

Poor Man's Digital PGA

Playing around with the MSGEQ7 chips it was readily apparent that the audio input level was critical to its graphic equalizer display. There have been many analog AGC (Automatic Gain Control) designs used over the years. Some designs using an opamp and a FET can be constructed but can be difficult to get right for students without an oscilloscope.

With an eye to reproducible circuits for readers, I was looking for a single-ended opamp design that was digitally controlled. Digital circuits tend to be easier to manage with the minimum of equipment. So I got to wondering if I could manage this with the use of the LM358 (or the LV rail-to-rail part MC33202).

I wondered if a Digital PGA (Programmable Gain Amplifier) could be constructed with a minimum of parts. Figure 1 shows a typical AC coupled non-inverting amplifier design. Because it is single ended, it needs the voltage divider consisting of R1 and R2. If VCC is 5 V, then the junction between them will be VCC/2 or 2.5 V.  C1 AC couples the signal into the non-inverting input of IC1. The feedback circuit is however a bit unusual because the gain for DC and AC signals differ.
Figure 1. AC Coupled Non-Inverting Amplifier
Those who know/remember their opamp theory, know that a non-inverting amplifier's gain is set by the ratio:

Av = (R5/R3) + 1

But in this circuit the capacitor C2 blocks DC current. The feedback current through R5 is so small, it behaves as if the output was wired directly to the inverting input. The net effect is that the Vout = V- = V+ for DC. The resistor R3 has no DC path to ground and as a result, can have no DC effect on the output.

Yet, the AC gain is however, still affected by R3. So the AC gain of the Figure 1 circuit is indeed:

Av = (500k/500k) + 1 = 2

It is well known that either R5 or R3 has to change to affect a change in this gain calculation. The good thing about this circuit is that the DC gain is not affected by resistance changes as long as R5 remains reasonable.

To change the AC gain, we could change out R5 using some FET switches but this proves inconvenient. Likewise R3 is inconvenient for switching resistors in and out. But if you stare at Figure 1 long enough, you have to start asking yourself "wouldn't it be nice if we could move R3 to ground?" Then you could easily add or subtract resistances to change gain. It turns out that we can!

Figure 2 shows the circuit modified so that R3 has one grounded leg and the capacitor C2 is moved above it. In this case R3 and C2 are simply in series and can be moved around.

Figure 2. AVR Controlled PGA
With R3 grounded, we can easily add resistances in parallel with it. R4 if placed in parallel with R3, is equivalent to:

R3 || R4 ~= 83k

This change alters the gain:

Av = (500k/83k)+1 ~= 7

So with the simple act of adding in R4 in parallel with R3, we've digitally changed the AC gain from 2 to 7. R4, R6 and R7 were chosen to be 10% tolerance resistances giving the following selection of gains:


ValueR3GaindBV
0500,0002.06.0
183,3337.016.9
242,96212.622.0
330,05117.624.9
421,07324.727.9
517,40529.729.5
614,54935.431.0
712,70140.432.1

With all resistors enabled by the AVR device, the maximum AC gain is about 32 dBV (40). With none of the added resistors connected in, the gain reduces to a minimum of 2 (6 dBV).

AVR Digital Control

The digital controls coming from the ATmega328P (Figure 2) must set the outputs of PD5, PB6 and PB7 along these lines:
  1. To enable a resistor, the port must be configured as an output port and have the level set to zero (low).
  2. To disable a resistor, the port must be configured as an input port and have the pull-up resistor disabled (thus achieving a tri-state condition).
Note that a tri-stated AVR input here is never left floating. It will assume the potential of the high side of R3, which will be ground effectively. R3 never switches out of the circuit.

The 'mega ports in Figure 2 were chosen to avoid some otherwise usable ports. You can of course change the ports to meet your own needs.

Function Generator Test

Figure 3 shows the scope traces of the 5 kHz function generator (channel 2) and the IC1A output in channel 1. Here it can be seen that the gain is 2.

Figure 3. R4, R6 and R7 disconnected (off), gain of 2

Figure 4 shows R4 grounded to enable it in parallel with R3. The gain is nearly 7 (422mV/64.3mV=6.56).

Figure 4. R4 || R3, gain near 7
Watch the gain change between four settings, driven by an ATmega328P:

  https://youtu.be/iqPBaHtLFI0

Thanks for reading!