I’m looking at controlling an array of servos with some with the PWM outputs of some Pico’s. The interface card I need to work with can write 32 bytes of output to the SPI bus but has no “Chip Select” functionality.
My question is whether I can connect a pile of pico’s up to the same SPI bus and have them listen to the same bus simultaneously but modify each’s program to only pay attention to the relevant 16bits (1 per PWM output per pico)
The pico’s don’t need to TX on the bus, they all listen only.
Sorry I never worked with Multiple Raspberry pico SPI slaves. However, I found some links that may help you.
You could do this, sure. You’d just need an addressing scheme. Is your interface card capable of prepending one to the SPI message depending on where it should go? Maybe a “servo ID”? Could you share some more details on this card?
For ideas, you might want to look at the ancient but still-used Modbus protocol:
I have only used it with UART interfaces, not SPI, but it should still apply.
Hi Peter, James
There is a daisy chain mode in SPI where data flows from the master through each of the servants.
Some documentation is here: https://www.best-microcontroller-projects.com/spi-interface.html