Go Down

Topic: Digital I/O Recall (Read 2878 times) previous topic - next topic

Grumpy_Mike

Quote
Do we all agree that a crossbar topology is a good solution?
I think it is the only solution that does not involve mechanical connections.

Quote
Target is 50 in and 50 out.. but that's a little flexible.
I would not go bigger than 20 by 20, scaling up in electronics is not easy. Just like going from baking bread in your own kitchen for you, to making bread for the whole town.

In fact I would start with just a 4 by 4 to make sure the rest of the circuitry is sound.

Paul__B

Input signal level
up to 20 Vptp
OK, so we finally recognise something that is within the bounds of standard op-amps such as the old LM741, making it possible.

If you strictly restrict your operating voltages to 15 V peak-to-peak, you can use CMOS devices such as the CD4051.

And if you consider instead, using "patch-cords" instead of a crossbar, then it is probably somewhat manageable; four CD4051s for example, make a 16 to 16 patch-cord, eight for a 32 to 32. You just need to determine how many patch cords you actually need.


Paul__B

I thought you could use this https://uk.farnell.com/vishay/dg445dy-e3/switch-analog-quad-spst-soic16/dp/1102506
Except that is only four switches, you are going to want an awful lot of them.

Farnell off-line just now.  :smiley-eek:

This device - a 16 to 1 multiplexer rated for up to 30 V peak-to-peak - would be more practical - depending of course on price and availability but hey, we have already sorted out; money no worry.

Grumpy_Mike

#19
Oct 26, 2018, 06:03 am Last Edit: Oct 26, 2018, 10:27 am by Grumpy_Mike
Quote
depending of course on price
Not cheap.

https://www.mouser.co.uk/ProductDetail/Renesas-Intersil/HI3-0506A-5Z?qs=%2fha2pyFadugrzf8fEs83WFCIzfO%2fCUv02hBwK%2ffsZo4%3d

And how are you going to configure more that an 16 by 16 cross bar switch without resorting to having the path go through multiple multiplexers. So for a 32 by 32 switch you would need 64 of these chips plus 32 two input multiplexers. That is £687.36 worth Hi-506. I suspect extending to 50 by 50 will break the budget.

EDIT:- Sorry I miscounted you would need 128 of the Hi-506 chips, still you get the better +100 price bringing the cost up to £1210.88 for just these multiplexers

Smajdalf

What about digital approach? On each input one ADC, sample it and send data to corresponding output DAC. The switching may be implemented i.e. as switching address of DAC.
For 50x50 it will be awful lot of data to send. Surely out of reach of simple protocols like I2C. But maybe some modern protocol such as Gigabit ethernet or VDSL? I don't know how they are implemented but they are able to send lot of data to lot of devices.
Each input and output will be much more complicated but it scale linearly.

("Proof of concept": communication via nRF24L01, each input and output has own nRF. Each input has own fixed frequency and output "listens" to selectable frequency. I think similar concept but over wires may work. Maybe.)
How to insert images: https://forum.arduino.cc/index.php?topic=519037.0

Grumpy_Mike

Quote
What about digital approach? On each input one ADC, sample it and send data to corresponding output DAC.
Interesting idea.

However, that only covers switching any input to one output. The video in the link the OP posted shows multiple inputs being switched to one output so you have to consider the case of every input being switched to the same output. This is a point I missed initially in reply #19.

So you would need to add up the input samples for any input selected to go to each output before you sent the sample to the selected DAC. This gives you a massive problem about the dynamic range of the DAC, in the corner case of all inputs going to one output. Or for other cases you would have to do a bit of scaling that depends on the numbers of inputs connected to one output.

This approach could work, I suspect, if you implemented it in a large FPGA but such a project is beyond my FPGA skills. Also it would, I suspect, need the full FPGA suite and not the small free subset. Bang goes his budget on a years license fee.

boolrules

.
For 50x50 it will be awful lot of data to send. Surely out of reach of simple protocols like I2C. But maybe some modern protocol such as Gigabit ethernet or VDSL? I don't know how they are implemented but they are able to send lot of data to lot of devices.
Maybe look into T1/E2 channelizers. Telco style crossbars should be able to handle this.

MarkT

#23
Oct 28, 2018, 11:20 pm Last Edit: Oct 28, 2018, 11:26 pm by MarkT
An array of 50 x 50 LDRs and a laser scan system could be an approach.  LDRs have a long time constant
so can remain conducting between successive scans.

This assumes LDRs are available cheaply with appropriate power handling and low enough on-resistances,
and would require some sophisticated optical design.

Given suitable resources it would be possible to fabricate something like this on a wafer perhaps?

Another approach is to sample without using ADCs and DACs, just sample/hold and time-multiplex
via a 50-to-1 multiplexer and 50 receiving S/H circuits for the outputs - setting the timing of the
receiving sample clocks routes each output signal.  Would need some pretty fast settling times
though for full audio bandwidth.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

FantomT

I can understand why someone needs a mixer, to have many inputs routed into audio path. But why does someone needs 50 outputs?

http://www.doepfer.de/DIY/a100_diy.htm

Arduino could control digital pots, and memorise all settings into EEPROM.

Grumpy_Mike

Quote
I can understand why someone needs a mixer, to have many inputs routed into audio path. But why does someone needs 50 outputs?
Because the project is not about a mixer but about the solid state equivalent of a patch chord pad for routing synth modules together.

buildafriend

#26
Nov 02, 2018, 02:45 pm Last Edit: Nov 02, 2018, 02:53 pm by buildafriend
There are a lot of good ideas here now. I have an FPGA IDE for Xilinx and have messed with the spartan line.. if I could figure out the logic config via schematic drawing I might* be able to make this work with my Spartan line FPGA dev board.

The issue I have with Verilog and VHDL is the information I have on it.. I don't see many amazing entry level resources for it or that many classes on them tbh.

Anyway, I'm getting together with a friend to brain storm this month. I'll post back and thanks for stirring up some good ideas for me.

Side note - I much prefer the 5532 to the archaic 741.. but when getting really fancy discrete op amps sound amazing. They lose DC precision though by not sharing the same IC substrate. In this case I would opt for the 5532 if gain or buffers are needed
It's not a matter of what can or can't be accomplished. It's a matter of how much time you have in conjunction with your willingness, and budget.

buildafriend

#27
Nov 21, 2018, 06:07 pm Last Edit: Nov 21, 2018, 06:08 pm by buildafriend
Okay so here's my idea so far

I make a grid of VCA's each one associated with a button to engage it.. think of coordinates that respond to a grid for the inputs and outputs like a game of battleship. The button sends a command to the arduino to turn on the VCA via its voltage control pin and then it sends the input signal out of a unidirectional output. There's a buffer into and out of every VCA. This is a lot of VCA's, buffers, and control pins from the GPU but I think I could work.

I'm looking to make a 2 channel one for starters but I have no idea what code block to look at and experiment with.

What do you guys think? Any advice?
It's not a matter of what can or can't be accomplished. It's a matter of how much time you have in conjunction with your willingness, and budget.

PerryBebbington

I just found this after reading another post. All the discussion assumes that all 50 inputs can be connected to all 50 outputs at the same time. If (non IP) telephone exchanges had been built this way, with all the phones being able to connect to all the other phones at the same time then they would have been prohibitively expensive, not to mention there not being a building big enough to house them. They were not built like that, they were built with a blocking architecture, which means any phone can connect to any other phone, but not all at the same time. For 50 inputs / outputs to connect any to any but only 4 at a time, and assuming an unbalanced signal, 28 CD4051s will do it. I also vaguely remember a 4x4 cross point switch in the CMOS 4000 series family, but right now I can't find it. (Maybe my vague memory is the problem!) Anyway, assuming it does exist then with those you'd need 13 to connect any input to any output, up to 4 at a time.

Paul__B

I have pointed this out earlier in the thread.

You just have to decide how may "patch cords" you actually want.  Each such is composed of two selectors which each select n-1 of the available inputs and outputs.(74HC)4051s would be the obvious choice, each selecting one of eight options.

This is of course, exactly how telephone exchanges - manual and automatic - worked prior to crosspoint devices.  And worked quite well.

Go Up