Quellcode durchsuchen

Fix SPISettings frequency parameters in ESP32 HW SPI (#13573)

Kajetan Rzepecki vor 6 Jahren
Ursprung
Commit
692a0198f9
1 geänderte Dateien mit 19 neuen und 7 gelöschten Zeilen
  1. 19
    7
      Marlin/src/HAL/HAL_ESP32/HAL_spi_ESP32.cpp

+ 19
- 7
Marlin/src/HAL/HAL_ESP32/HAL_spi_ESP32.cpp Datei anzeigen

44
 // Public functions
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
 // Hardware SPI
57
 // Hardware SPI
49
 // --------------------------------------------------------------------------
58
 // --------------------------------------------------------------------------
61
   uint32_t clock;
70
   uint32_t clock;
62
 
71
 
63
   switch (spiRate) {
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
   spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
83
   spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
106
   SPI.beginTransaction(spiConfig);
116
   SPI.beginTransaction(spiConfig);
107
 }
117
 }
108
 
118
 
119
+#endif // !SOFTWARE_SPI
120
+
109
 #endif // ARDUINO_ARCH_ESP32
121
 #endif // ARDUINO_ARCH_ESP32

Laden…
Abbrechen
Speichern