[sdiy] 4046 VCO overclocking a PIC
tom at electricdruid.net
Fri Aug 28 21:38:31 CEST 2015
Yeah, I think under-clocking might be the way to go too. (I love the idea of running it down to DC, stopping it, and then starting it up again. Clocking a PIC with a LFO, anyone?!)
I've got a "Note divider" running which generates 12 octaves of a given equal-tempered note, based on a 4-bit number given on it's input pins at start-up.
Twelve such chips will replace a traditional top-octave-generator and dividers. They all run the same code and all run off the same clock. The only thing that changes is the binary number on the four inputs, to indicate C-Bb. I used the same ratios as the typical TOG, so the sound and result is the same. The ability to speed up the master clock on modern chips lets me go an octave higher than the typical TOG. But that's where the under-clocking comes in. It might be more fun to run the chip at the *same* rate as the traditional TOGs and then have at least at octave of modulation up or down available. My over-clocking experiments suggest that in practice, you'd get closer to two octaves up, but you could at least guarantee one octave before you left the spec.
I haven't investigated what happens when the PIC totally wigs out. So far, the VCO bottles it before the PIC does. But there are pretty good crash-recovery resources available, so I doubt it's too difficult to get the chip to pick itself up and start up again once the clock comes back into a reasonable range. That said, I used to work with processors that went into some hideous high-current state when they crashed and the only way to get them back was to remove the power and cold start them. No software recovery was ever possible. So we'll see, I guess. More experiments required.
On 28 Aug 2015, at 19:55, rsdio at audiobanshee.com wrote:
> Agreed. It's important to note that under clocking the PIC is fully within spec, as the data sheet says it will operate down to DC (where it stops).
> If you can find a way to make sure that over clocking doesn't cause your product to fail - either by allowing the user to set a hard maximum, or by somehow allowing the PIC to recover if it freaks out - then you have the best of both worlds.
> On Aug 28, 2015, at 11:47 AM, Tim Ressel <timr at circuitabbey.com> wrote:
>> I need to add that this is a clever idea -- using a VCO to clock a processor to get an effect. Kudos for coming up with it. I was only taking issue with the over clocking bit.
>> On 8/23/2015 7:09 PM, Tim Ressel wrote:
>>> Good point, Tom. The specs can be conservative. But you can't count on it. The op amp failures I spoke of were caused by an input going more than 0.3V lower than the negative pin. In that case, for that manufacturer, there was no wiggle room in the spec at all. Perhaps I am too conservative -- I do make stuff to sell these days -- but better safe than sorry.
>>> There is a filter called a Bi-n-Tic that needs a V/Oct expo VCO that is 8 times higher than normal. That design could benefit from your nifty VCO.
>>> On 8/23/2015 2:54 PM, Tom Wiltshire 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.
>>>> 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?
>>>>> Quick story: One fine day a production product stared failing the production test. It was found that an op amp was getting toasted. Further investigation revealed the circuit was, and had always been, violating the spec sheet. The Nat Semi amps originally used could handle the violation, but they switched to a 3rd party amp of the same part number and it could not handle it, and fried. A simple change fixed the violation.
>>>>> If you need more processor power, get a bigger processor. I don't know about Microchip, but my fav Atmel has processors that can do 300 MHz or more. Just in case I need it...
>>>>> 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:
>>>>>> 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
More information about the Synth-diy