Skip to content

Commit 579e04b

Browse files
muman613me-no-dev
authored andcommitted
Cleanup SPI_Multiple_Buses (#3527)
* Utilize prepoc symbols for SPI pins * Adjusts for GPIO pins when ALTERNATE_PINS is set
1 parent 5443d7c commit 579e04b

File tree

1 file changed

+40
-10
lines changed

1 file changed

+40
-10
lines changed

Diff for: libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino

+40-10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,30 @@
1515
*/
1616
#include <SPI.h>
1717

18+
// Define ALTERNATE_PINS to use non-standard GPIO pins for SPI bus
19+
20+
#ifdef ALTERNATE_PINS
21+
#define VSPI_MISO 2
22+
#define VSPI_MOSI 4
23+
#define VSPI_SCLK 0
24+
#define VSPI_SS 33
25+
26+
#define HSPI_MISO 26
27+
#define HSPI_MOSI 27
28+
#define HSPI_SCLK 25
29+
#define HSPI_SS 32
30+
#else
31+
#define VSPI_MISO MISO
32+
#define VSPI_MOSI MOSI
33+
#define VSPI_SCLK SCK
34+
#define VSPI_SS SS
35+
36+
#define HSPI_MISO 12
37+
#define HSPI_MOSI 13
38+
#define HSPI_SCLK 14
39+
#define HSPI_SS 15
40+
#endif
41+
1842
static const int spiClk = 1000000; // 1 MHz
1943

2044
//uninitalised pointers to SPI objects
@@ -28,22 +52,28 @@ void setup() {
2852

2953
//clock miso mosi ss
3054

55+
#ifndef ALTERNATE_PINS
3156
//initialise vspi with default pins
3257
//SCLK = 18, MISO = 19, MOSI = 23, SS = 5
3358
vspi->begin();
59+
#else
3460
//alternatively route through GPIO pins of your choice
35-
//hspi->begin(0, 2, 4, 33); //SCLK, MISO, MOSI, SS
36-
61+
vspi->begin(VSPI_SCLK, VSPI_MISO, VSPI_MOSI, VSPI_SS); //SCLK, MISO, MOSI, SS
62+
#endif
63+
64+
#ifndef ALTERNATE_PINS
3765
//initialise hspi with default pins
3866
//SCLK = 14, MISO = 12, MOSI = 13, SS = 15
39-
hspi->begin();
67+
hspi->begin();
68+
#else
4069
//alternatively route through GPIO pins
41-
//hspi->begin(25, 26, 27, 32); //SCLK, MISO, MOSI, SS
70+
hspi->begin(HSPI_SCLK, HSPI_MISO, HSPI_MOSI, HSPI_SS); //SCLK, MISO, MOSI, SS
71+
#endif
4272

4373
//set up slave select pins as outputs as the Arduino API
4474
//doesn't handle automatically pulling SS low
45-
pinMode(5, OUTPUT); //VSPI SS
46-
pinMode(15, OUTPUT); //HSPI SS
75+
pinMode(VSPI_SS, OUTPUT); //VSPI SS
76+
pinMode(HSPI_SS, OUTPUT); //HSPI SS
4777

4878
}
4979

@@ -60,18 +90,18 @@ void vspiCommand() {
6090

6191
//use it as you would the regular arduino SPI API
6292
vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
63-
digitalWrite(5, LOW); //pull SS slow to prep other end for transfer
93+
digitalWrite(VSPI_SS, LOW); //pull SS slow to prep other end for transfer
6494
vspi->transfer(data);
65-
digitalWrite(5, HIGH); //pull ss high to signify end of data transfer
95+
digitalWrite(VSPI_SS, HIGH); //pull ss high to signify end of data transfer
6696
vspi->endTransaction();
6797
}
6898

6999
void hspiCommand() {
70100
byte stuff = 0b11001100;
71101

72102
hspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
73-
digitalWrite(15, LOW);
103+
digitalWrite(HSPI_SS, LOW);
74104
hspi->transfer(stuff);
75-
digitalWrite(15, HIGH);
105+
digitalWrite(HSPI_SS, HIGH);
76106
hspi->endTransaction();
77107
}

0 commit comments

Comments
 (0)