-
-
Notifications
You must be signed in to change notification settings - Fork 731
Open
Labels
Description
Hello,
Here the list of default pins for SPI for Arduino Zero seems to be misaligned with its default variant.h, variant.cpp and SPI.cpp.
The default SPI is:
SPIClassSAMD SPI (&PERIPH_SPI, PIN_SPI_MISO, PIN_SPI_SCK, PIN_SPI_MOSI, PAD_SPI_TX, PAD_SPI_RX);
with
#define PIN_SPI_MISO (22u)
#define PIN_SPI_MOSI (23u)
#define PIN_SPI_SCK (24u)
#define PERIPH_SPI sercom4
#define PAD_SPI_TX SPI_PAD_2_SCK_3
#define PAD_SPI_RX SERCOM_RX_PAD_0
which are, by default:
const PinDescription g_APinDescription[]=
{
/**...**/
// 22..24 - SPI pins (ICSP:MISO,SCK,MOSI)
// ----------------------
{ PORTA, 12, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // MISO: SERCOM4/PAD[0]
{ PORTB, 10, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // MOSI: SERCOM4/PAD[2]
{ PORTB, 11, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // SCK: SERCOM4/PAD[3]
/**...**/
}
As a result, the default pins should be the ones on the ICSP header:
22 (MISO)
23 (MOSI)
24 (SCK)
and no default Chip Select (CS) pin.
Please correct me if I'm wrong. Maybe other boards are also misaligned, could be something to check.