[sdiy] 4046 VCO overclocking a PIC

rsdio at audiobanshee.com rsdio at audiobanshee.com
Mon Aug 24 00:33:52 CEST 2015


Interesting discovery.


As for the 4046 VCO, I'm reminded of the Sequential Circuits Model 600 Analog Sequencer and Wave Generator. I never even knew about this product until purchasing and reading "The Prophet from Silicon Valley." Considering that only 5 were made, perhaps it's not surprising that Dave's first product has basically been a secret. In a way, the Model 600 is like the PPG Wave digital oscillator, but analog. If only the Model 600 had 256 steps instead of 48, then you'd have an impressive analog wave generator. Maybe you could build a modern SCI Model 600, but expand the features and call it something else.


Back to over-clocking - I assume that most people are surprised that a chip can run faster than the data sheet claims, because the manufacturer would surely want to brag about the faster frequency. The problem is that a processor has many components, and they all have to work at the maximum speed. If your software is not using all of the silicon features on the PIC, then it makes sense you could get by with running at double the maximum speed. But if you used more features you might find that it breaks down at lower clock speeds.

For example, external interrupts usually go through several clocked steps before the external voltage change results in the interrupt service routine running. If any of those transistors cannot keep up with the double clock rate, then you might not get interrupts, or you might suffer intermittent interrupts. I don't know that the interrupt logic specifically has tighter requirements, but it's an example of a circuit you might not always use and which might have different limits.

Another example might be the multiply unit. I seem to recall that the PIC has a special multiply opcode that stores the 16-bit result in a pair of dedicated registers. If this sub circuit cannot run at double clock rates, then firmware using multiply would not work. There could be many possible firmware solutions that never use multiplication, and thus they could be clocked much faster than that circuit could handle, but with no ill effects.

Basically, the maximum rated clock speed on the data sheet is the absolute lowest common denominator. That doesn't mean none of the circuits will run as high as double the clock rate. It just means that the chip as a whole is not guaranteed to run.

Then there are process changes in the way that the chip is made which could truly double the maximum clock rate for everything. But, sometimes it's more expensive to discover the new limits after a process change, rather than just continue to run the existing tests for the original data sheet specs. I think that companies tend to launch new products at the limits of current technology and process, and they might upgrade old products to new process technologies, but they maybe don't have the resources to test how fast the old, refreshed products can run.

Brian


On Aug 23, 2015, at 2:54 PM, Tom Wiltshire <tom at electricdruid.net> wrote:
> I've got no particular desire to overclock the chip, except that it enables me push the modulation range further upwards than might have appeared possible from the datasheet specs. I was reporting on a discovery, rather than trying to promote an idea.
> 
> As to "people way cleverer" - well, mostly those people have bosses who aren't as sharp as they are telling them that they better make sure that 99.99% of all the chips go out the door! So the specs tend to be pretty conservative ;-)
> 
> I agree, though. If I was making a product where I expected 10K units to go out of the door, I'd be damn sure to stay within the specs. Then it's Microchip's problem , not mine, if it doesn't work. But as I said at the beginning, I've been doing some experiments. It is at least *interesting* that you can run a Pic at nearly twice it's rated speed with no short-term il-effects. I hadn't realised their margin for error was quite so large. Ok, I' guessed you could over clock them 10%, maybe 20%, or 25% pushing it a bit. But nearly x2? Nope, wouldn't have considered it possible. But it is.
> 
> So, are there other musical circuits using the 4046 as a high frequency VCO? What can i do with a uP with a variable frequency clock? Wavetable oscillator? The uP would only have to deal with outputting waveforms, and the VCO could handle the frequency, for example. What else?
> 
> On 23 Aug 2015, at 19:57, Tim Ressel <timr at circuitabbey.com> wrote:
>> Honestly I've never understood this need to overclock devices. I was taught that the datasheet is to be followed as closely as possible. If you intentionally violate the specs then you are on your own and you don't get to call the manufacturer for help
>> 
>> People who are way cleverer than me came up with the specs, not to mention the device itself. Who am I to disregard them?
>> 
>> On 8/23/2015 9:36 AM, Tom Wiltshire wrote:
>>> I've recently been doing some experiments using a 74HC4046 VCO as an external clock for a PIC microprocessor.
>>> 
>>> The nice thing about the PIC is that it doesn't care what rate its clock goes. You can run it down into 10s of hertz if you want, then speed it back up, no problems. I've also discovered that I can overclock the chip significantly. I'm using a 16F1828, which is supposed to go to 32MHz. I've set up the internal PLL at x4, so this equates to an external clock from the VCO of 8MHz. Pushing the 74HC4046 up to 14MHz (as fast as it goes for the chip I've got) doesn't crash the PIC, implying that it's successfully running code at 14 x 4 = 56MHz!
>>> 
>>> For VCO modulation, I used a exponential current sink instead of the usual R1 on pin 11, as  done by Thomas Henry, and described here by Scott Stites:
>>> 
>>> 	http://www.birthofasynth.com/Thomas_Henry/Pages/X-4046.html
>>> 
>>> I've tweaked it for my situation (+/-12V, MHz output frequencies not audio, etc etc). I also simplified it a bit, leaving out the linear FM input and the high-frequency trim. I was thinking that this combination of VCO->PIC could form the basis of some kind of top-octave-divider, so I was only really looking for a bit of vibrato or a pitch bend over a few semitones. I'd vaguely thought I might get an octave up and down, but that would mean getting the VCO up to 16MHz, which it doesn't seem keen to do, so I'll have to settle for 8 semitones either way or so. Since this is a fairly limited range, I'm not demanding much of the exponential convertor. Alternatively, I could lower all the pitches by an octave so I don't have to push the VCO and PIC so hard, and then I might be able to use a wider modulation range.
>>> 
>>> Has anyone else tried anything like this? Are there other musical circuits using the 4046 as a high frequency VCO? Any other thoughts or comments?
> 



More information about the Synth-diy mailing list