Is it possible to have the SDO pin of the SPI buses switched in software to any of the general IO pins, or would I have to use an external multiplexer?
What are you trying to do?
I am communicating with 9 L6470 chips (drivers) along a single 16 position ribbon cable. The daisy link works by having the ics send their SDO to a specific wire in the cable. The next chip in sequence has it’s SDI on that wire. All wires to back to the µC. Therefore it is possible to the µC to bypass certain drivers in the chain. It also allows the µC to monitor the output of each driver to check if it’s working normally (in diagnostic mode).
This strategy however requires me to change the SDO of the µC to the various pins that the cable is connected to.
Unfortunately you can’t make any pin and SDO pin if you are using hardware SPI. You probably can get away with that by using software SPI, though. Another solution (speculating here) would be to use an AND gate for each line, but that would increase number of pins you will need to control all the gates.
I take it you meant can’t on the hardware SPI. Was planning to use a 16 channel multiplexer if the hardware thing didn’t work out. [url]https://www.sparkfun.com/products/299[/url]
Yes, I meant you can’t.
I’ve had another idea. There are typical 2 variations on the SDO port that I need to multiplex. Technically there are 3 but I can live with 2.
If I switch between SPI ports can I emulate this feature? e.g. Use SPI 1 for the main and SPI 2 for the subset. The CS, CK, and SDI pins are all common.
Draw the schematics and you will have a better idea if it makes sense or not.