Looking for controller build hints..

Mikko Helin helin at uta.fi
Wed Oct 27 12:01:04 CEST 1999


> Not knowing anything about how to build this (but well qualified on the
> low-level software department) I'm wondering if anyone has any hints..
> My question centres around the principle for handling such a large number of
> pots..
> I presume this kind of set-up would be done using an A/D for each pot, with
> some kind of wacky multiplexing to read the pots in a round robin fashion?
> Or perhaps not?
> Any recommendations on how to do this multiplexing?
All multichannel A/D's are practically one A/D plus
multiplexer which changes the input and one by one
reads and converts each input. So you need a huge
amount of multiplexers (20 x 8 channel for an example)
that connect to the input of the single A/D. Then you need
a couple of decoders that convert the binary address
to chip select lines. If you use 8 ch multiplexers
they have 3 address lines, these are the 3 LSB's. The
decoders then use 5 extra bits in 8 bit 'total' address
to select one of 20 (or 32) 8 ch muxes. I don't
know if there are 5-to-32 line decoders easily available
(or 16 ch muxes, so that you could use
10 pieces of 16 ch muxes and one 4-to-16 line decoder,
this is probably the most economical solution and easiest
to build).

> Any tips for a CPU that can be *easily* interfaced into such a set-up, with
> say onboard ram, flash rom, serial ports, and perhaps a simple way to
> interface to an LCD?

You need one 8 bit port for address, another for data
and third for R/W etc. handshaking signals. LCD's can
use single 8 bit port. Use serial EEPROM for data storage.
68HC11F1 would propably be ok with external EEPROM
for program code, it's got 1kbytes of internal RAM,
and you need just 160 bytes to store the data.
PIC16F877 is also sufficient with 368 bytes of
RAM (actually you'll need 320 bytes RAM when you
load a patch, as you have to store the A/D'ed data
in 160 bytes to see if the pots have been adjusted, and the
patch data to separate 160 bytes plus you'll need some bytes for
MIDI ch settings etc.) and 8kbytes if FLASH, you will need 
just the PIC, LCD and external serial EEPROM for patch storage.

I'm also planning a MIDI CV processing unit with EG's and
LFO's, but I'm not yet sure if the PIC is the controller
I will use. HC11 can also do 8X8 multiply to 16 bit register
which PIC can't (though it CAN if programmed to do so
and it's no performance issue either, but needs more work).
I will also use the same PCB for MIDI controlling unit
and for MIDI drums, so I have to put the input buffers
there for A/D inputs (though these have not to be used with
pots, only with drum triggers). Easiest to program these
kind of stuff would be for x86 like old 386 mother boards
with printer ports, though the printer port should be
bi-directional.

> 
> And as a minor (but intriguing for me anyway) thought, how wacky would it be
> to implement all of these pots/faders as automated pots? Are these radically
> expensive and difficult to implement into such a scheme, or should I just
> forget this?

I don't know why do you in first hand want to use 160 pots?
I think you could propably cope with 8-16 if they are automated
and the LCD tells the functions currently assigned to them.
Anyway, I don't know much about these.

-Mikko












More information about the Synth-diy mailing list