[sdiy] Xpander

Rainer Buchty rainer at buchty.net
Wed Oct 21 14:43:04 CEST 2020


On Wed, 21 Oct 2020, Roman Sowa wrote:

> But if Matrix12 must communicate with 2 CPUs, then what?

One sender, any number of receivers. Doesn't matter how many if all 
receivers are on "the other" phase compared to the sender.

The synth CPUs don't need to actively DMA back and neither communicate 
with each other. If feedback is required, they could reserve a 
mailbox/flag memory area that is checked/processed by the control CPU 
and/or trigger an IRQ of the control CPU, just like it is done by 
peripheral chips.

> It wants write something only when a patch is changed or any parameter 
> changed from panel and to to pass info about note on and note off 
> events. That's not much of a time to be wasted.

The shared-bus way is cheaper in terms of parts as no arbitration logic 
is needed; depending on the CPU used, you wouldn't even need tristating 
bus drivers (6809E has these built-in together with a control input).

Likewise, the main CPU doesn't have to wait for the synth CPU(s) having 
halted and detached from the bus (or needing FIFOs for non-blocking/ 
posted writes and async reads), but can just read/write away.

Also, if you don't want to keep the entire patch memory on the synth 
boards but just the currently played patch, you might end up with patch 
memory writes with every new keypress (thinking multi-mode here).

Finally, it also does not induce different timing behavior of "free 
running synth" vs. "synth being parameterized", which might be an 
(audible) issue on slower CPUs.

Though it didn't really bug people e.g. on the JX8P which internally 
speaks MIDI between control and synth (even forwarding MIDI out that 
way, as that comes from the synth CPU's tx while MIDI in is handled by 
the control CPU).

Today of course there are other means.

With back-then typical timings, a 1MHz clock frequency would result in 
500kHz effective transfer rate on an 8-bit bus. 4MBit SPI is probably 
nowhere near "fast" anymore these days.

Rainer



More information about the Synth-diy mailing list