[sdiy] 4046 VCO overclocking a PIC

Richie Burnett rburnett at richieburnett.co.uk
Mon Aug 24 00:53:26 CEST 2015

Sums up the potential risks of overclocking perfectly.

An interesting experiment / discovery though, nonetheless.


-----Original Message----- 
From: rsdio at audiobanshee.com
Sent: Sunday, August 23, 2015 11:33 PM
To: Tom Wiltshire
Cc: synth-diy at dropmix.xs4all.nl
Subject: Re: [sdiy] 4046 VCO overclocking a PIC

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 

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.


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?
Synth-diy mailing list
Synth-diy at dropmix.xs4all.nl

No virus found in this message.
Checked by AVG - www.avg.com
Version: 2014.0.4830 / Virus Database: 4365/10496 - Release Date: 08/23/15 

More information about the Synth-diy mailing list