Most Arduino SPI tutorials show this simple but poor SPI bus design:
A much better SPI bus design can prevent conflicts. 3 simple improvements are needed:
Use pullup resistors on all chip select signals.
Verify tri-state behavior on MISO: use a tri-state buffer chip if necessary.
Protect bus access with SPI.beginTransaction(settings) and SPI.endTransaction().
Click "Read more" for details on these 3 steps.