If one device is interfering with another, it's usually the CS (chip select) lines between the arduino and devices that need fixing.Unless you need to run both SPI devices at the same time, you don't need another SPI bus.However, the stp16cp05 is not a SPI device! This is why it's not working on the bus as you expect. Looking at the datasheet, I think you can make it work but you can't use CS on the LE/DM1 pin, but you can overcome that by manually toggling it to latch in the data after the SPI transfer (the one intended for the stp16cp05). Data for the SD card will still go through the stp16cp05, which isn't a problem if you don't latch the data in during SD card transfers.Also, why are you trying to run the stp16cp05 at 30 MHz? unless you have lots of these cascaded and need a fast update time, I can't see the point, is that really what you need?
I know that the stp16cp05 is not a SPI device. Because I have to control it by very high speed like 30 MHz, so I use it by SPI. And why I have to run the stp16cp05 at 30 MHz is to control a dot matrix has 36 * 24 pixels. And I have to set brightness of each pixels differently, so I need to control the stp16cp05 in full speed.
And I use CS of the SD card and LE of the stp16cp05, but just after CS of the SD card is disabled, the data signal of the SD card does not disappear immediately. So the data signal of the stp16cp05 is interfered by it.
So I'm looking for multiple SPI masters on Arduino DUE.
The USART peripheral can be used as an SPI Master or Slave.From Sam3x datasheet page 802:126.96.36.199 Modes of Operation The USART can operate in SPI Master Mode or in SPI Slave Mode.Operation in SPI Master Mode is programmed by writing to 0xE the USART_MODE field in the Mode Register. Inthis case the SPI lines must be connected as described below:the MOSI line is driven by the output pin TXDthe MISO line drives the input pin RXDthe SCK line is driven by the output pin SCKthe NSS line is driven by the output pin RTS...An interesting thread:https://forum.arduino.cc/index.php?topic=283766.0And this:https://hackaday.com/2014/11/25/better-spi-bus-design/
You PWM each output? OK, I think I understand why you need speed But what have you connected to LE of the stp16cp05? a CS pin?You don't need to. connect LE to an output pin of your choice. When you want to set the stp16cp05, simply do a SPI Transfer then toggle the LE pin high then low to latch the data in. Don't use any CS pin for this SPI transfer. The SD card can't interfere with it if you do this.The problem you currently have isn't that the SD card data doesn't disappear immediately, it's the start of the SD card transfer when it first goes wrong, because your LE pin is high, so during the entire SD card transfer, the output stages of the stp16cp05 are getting updated with crap.