[sdiy] Which programable chip?

Joe Grisso jgrisso at det3.net
Wed Apr 15 22:34:07 CEST 2009


On 4/15/09, Ian Smith <taciturn_unquiet at hotmail.com> wrote:
>
>  Hey all,
>  While in the lull of waiting for things to arrive so I can test a design,
> I came up with an idea that will probably have to be implemented
> with some sort of programmable chip because a CMOS chip count
> of 32+ is a bit hideous.

Yes, it is. However, a hybrid approach may work just as well.

>  Here's the description:Sequential patch matrix...8 inputs8 outputs
> LEDs to indicate which input is currently linked to which output
> one sequencer to cycle through the inputs one sequencer to
> cycle through the out putseither can count up or downboth
> sequencers have a separate internal clock and external clock
> inbeen thinking about a random mode, because who doesn't
> like randomness?

What kind of patch matrix - gate, CV? Both? That will determine how
much "hybrid" you have. The way I see it is a digitally controlled
analog patch matrix, with the MCU or whatever logic playing conductor
to the rest of the circuitry.

>  It's a simple module, really, but to do it fully in analog would render a nasty part count and large boards. So, what sort of chip should I use? PIC, CPLD, PLD, FPGA? I 'd rather just program in the switches and Multiplexers and leave the clocking to analog circuitry.

Personally, if I were to use an MCU I would use an AVR. There are free
tools available (winAVR), including a C compiler and debugger. The
AVRs also run off of 5V, so level shifting may not be a problem
depending on the analog circuitry you're using.

This is the approach STG + I used with the Mini-Store modules. We had
an AVR processor controlling a set of CMOS muxes to rotate through the
pots and switches. The firmware was made easier because the AVRs have
a facility called a pin change interrupt. It works exactly as it
sounds - when there's a change on a pin, it interrupts the processor.
For an external clock, it makes timing and decision-making MUCH
easier, knowing the code you have is only executing when a change
happens on the inputs you're interested in.

Another nice thing about modern MCUs is that most of them have
on-board oscillators, so you don't need to hang a crystal off of them
too.

One chip to look at would be the new Atmel AVR Xmega series, they have
a built in 12-bit ADC and DAC, so you could possibly do away with all
of the analog mux/demux hardware and have data conversion taking
place, but that's only if you can deal with 12-bit resolution.


-- 
Joe Grisso
Detachment 3 Engineering




More information about the Synth-diy mailing list