I am using an Arduino Zero for a school project so that I can communicate with more than one SPI system at the same time. However, the default SPI library, at least as far as I can find, only works with the standard pins of 10,11,12,13 on most arduinos. I need it to work with both that and the SPI interface on the ICSP header in order to make the system function, as I have a VS1063 audio chip connected to one, and an SD card connected to the other.
dnlgleason: However, the default SPI library, at least as far as I can find, only works with the standard pins of 10,11,12,13 on most arduinos
No that is not correct.
The default SPI library used the default hardware SPI pins, which are SCK, MOSI, MISO and NSS.
On a UNO these are indeed connected to pins 10-13, but they are not connected here on other Arduinos.
The proper place to pick up the default SCK, MOSI, MISO pins is the 6 pin ISP connector in the middle where you will find them on Arduinos such as UNO, MEGA, DUE, M0 etc.
The M0 does have another set of SPI pins on pins 11,12,13 but they are not the default ones connected to the ISP header.
Ok, regardless, as I have two SPI devices, and the zero, and by extension the SAMD21, offers up to 6, I know I can use more than just those pins on the ISP header. How can I go into the library and change which pins it connects to? Is there a separate SPI library where I can edit where these pins are bound to?
The standard SPI library supports multiple devices on the single, default, SPI bus, just use a different CS for each device.
I can't do that, as I want to be able to communicate through two SPI channels without having to deal with locking/unlocking etc. I've worked with devices using only one SPI channel before, but I don't want to do that here. It should be very simple to change the leads, as the schematic for the Zero shows that there are at least two lines, one through the ISP header, and one attached to one of the general IO buses, that will run SPI. I know from looking at the datasheet for the SAMD21 that it can run up to 6 SPI lines.