As one of the options for my
function generator kit, I'm investigating a digital control/PLL feature (allowing you to dial in a desired frequency, lock references with another generator, follow an external signal, etc). Right now, it's looking like the best way (in terms of both price and board area - I want this small) to do the frequency control is to put a 16-bit* divide by N and a phase/frequency detector into a small CPLD. Believe it or not, the cost of an appropriate CPLD is about the same as a 4059 and 4046, and those need additional glue logic as well.
I do not want the kit builder to have to program a CPLD. I'd have liked to use a PLCC one, since I can program them in a socket. Unfortunately, all the CPLDs above about 64 elements don't seem to be available in PLCC anymore, and I'm having a hell of a time fitting everything into 64.
I absolutely refuse to spend $100 on a TQFP-100 ZIF socket. I suppose I could print the SMD footprint onto a board and just hold the chip in place... but with 100 pins at half-millimeter pitch, the risk of shorting is high and the ass-pain is monumental.
Does anybody have any clever ideas to program them? Maybe I could have the MCU program the device after the board has been built? Not sure how I'd go about that, it doesn't have enough ROM to hold the CPLD code and I don't plan on USB connectivity. Or does anybody know of any programmable-division PLL chips targeted at the DC-ish to 10 MHz range, around $5 or $6? I don't see any.
I did investigate ways of synthesizing a frequency directly using the MCU, then I could just use a simple phase detector to lock, but I couldn't get the resolution I wanted that way without either having to divide down to a really low frequency or incurring a shitload of jitter, and I used more MCU resources than I wanted to anyway.
*Yup, I know that only gives 4.5-digit control. The MCU can divide the reference clock from 10 MHz to 1 MHz or 100 kHz or lower with an unused timer, and I'm not really interested in millihertz resolution on top of 5 MHz...