[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.
-Richie,
-----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
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?
>
_______________________________________________
Synth-diy mailing list
Synth-diy at dropmix.xs4all.nl
http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
-----
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