|
@@ -44,6 +44,15 @@ static SPISettings spiConfig;
|
44
|
44
|
// Public functions
|
45
|
45
|
// --------------------------------------------------------------------------
|
46
|
46
|
|
|
47
|
+#if ENABLED(SOFTWARE_SPI)
|
|
48
|
+
|
|
49
|
+ // --------------------------------------------------------------------------
|
|
50
|
+ // Software SPI
|
|
51
|
+ // --------------------------------------------------------------------------
|
|
52
|
+ #error "Software SPI not supported for ESP32. Use Hardware SPI."
|
|
53
|
+
|
|
54
|
+#else
|
|
55
|
+
|
47
|
56
|
// --------------------------------------------------------------------------
|
48
|
57
|
// Hardware SPI
|
49
|
58
|
// --------------------------------------------------------------------------
|
|
@@ -61,13 +70,14 @@ void spiInit(uint8_t spiRate) {
|
61
|
70
|
uint32_t clock;
|
62
|
71
|
|
63
|
72
|
switch (spiRate) {
|
64
|
|
- case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV2; break;
|
65
|
|
- case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break;
|
66
|
|
- case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break;
|
67
|
|
- case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break;
|
68
|
|
- case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break;
|
69
|
|
- case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break;
|
70
|
|
- default: clock = SPI_CLOCK_DIV2; // Default from the SPI library
|
|
73
|
+ case SPI_FULL_SPEED: clock = 16000000; break;
|
|
74
|
+ case SPI_HALF_SPEED: clock = 8000000; break;
|
|
75
|
+ case SPI_QUARTER_SPEED: clock = 4000000; break;
|
|
76
|
+ case SPI_EIGHTH_SPEED: clock = 2000000; break;
|
|
77
|
+ case SPI_SIXTEENTH_SPEED: clock = 1000000; break;
|
|
78
|
+ case SPI_SPEED_5: clock = 500000; break;
|
|
79
|
+ case SPI_SPEED_6: clock = 250000; break;
|
|
80
|
+ default: clock = 1000000; // Default from the SPI library
|
71
|
81
|
}
|
72
|
82
|
|
73
|
83
|
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
|
|
@@ -106,4 +116,6 @@ void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode)
|
106
|
116
|
SPI.beginTransaction(spiConfig);
|
107
|
117
|
}
|
108
|
118
|
|
|
119
|
+#endif // !SOFTWARE_SPI
|
|
120
|
+
|
109
|
121
|
#endif // ARDUINO_ARCH_ESP32
|