Forráskód Böngészése

switch to using QSPI bus for external flash

taco 1 éve
szülő
commit
bdfe9ad27b

+ 4 - 2
examples/companion_radio/DataStore.cpp

@@ -1,7 +1,7 @@
 #include <Arduino.h>
 #include "DataStore.h"
 
-#if defined(EXTRAFS) || defined(SPIFLASH)
+#if defined(EXTRAFS) || defined(QSPIFLASH)
   #define MAX_BLOBRECS 100
 #else
   #define MAX_BLOBRECS 20
@@ -49,7 +49,9 @@ void DataStore::begin() {
 #elif defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
   // #include <InternalFileSystem.h> // disabled for now, leaving here for dual fs branch
   #include <CustomLFS.h>
-  #include <CustomLFS_SPIFlash.h>
+  #if defined(QSPIFLASH)
+    #include <CustomLFS_QSPIFlash.h>
+  #endif
 #endif
 
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)

+ 7 - 9
examples/companion_radio/main.cpp

@@ -14,11 +14,9 @@ static uint32_t _atoi(const char* sp) {
 
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
   #include <InternalFileSystem.h>
-  #if defined(SPIFLASH)
-    #include <CustomLFS_SPIFlash.h>
-    const int chipSelect = PIN_QSPI_CS;
-    SPIClass SPI_2(NRF_SPIM2, PIN_QSPI_IO1, PIN_QSPI_SCK, PIN_QSPI_IO0);
-    DataStore store(FlashFS, rtc_clock);
+  #if defined(QSPIFLASH)
+    #include <CustomLFS_QSPIFlash.h>
+    DataStore store(QSPIFlash, rtc_clock);
   #else
   #if defined(EXTRAFS)
     #include <CustomLFS.h>
@@ -131,12 +129,12 @@ void setup() {
   fast_rng.begin(radio_get_rng_seed());
 
 #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
-  #if defined(SPIFLASH)
-    if (!FlashFS.begin(chipSelect, SPI_2)) {
+  #if defined(QSPIFLASH)
+    if (!QSPIFlash.begin()) {
       // debug output might not be available at this point, might be too early. maybe should fall back to InternalFS here?
-      MESH_DEBUG_PRINTLN("CustomLFS_SPIFlash: failed to initialize");
+      MESH_DEBUG_PRINTLN("CustomLFS_QSPIFlash: failed to initialize");
     } else {
-      MESH_DEBUG_PRINTLN("CustomLFS_SPIFlash: initialized successfully");
+      MESH_DEBUG_PRINTLN("CustomLFS_QSPIFlash: initialized successfully");
     }
   #else
     InternalFS.begin();

+ 3 - 3
src/helpers/IdentityStore.h

@@ -4,9 +4,9 @@
   #include <FS.h>
   #define FILESYSTEM  fs::FS
 #elif defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
-  #if defined(SPIFLASH)
-    #include <CustomLFS_SPIFlash.h>
-    #define FILESYSTEM CustomLFS_SPIFlash
+  #if defined(QSPIFLASH)
+    #include <CustomLFS_QSPIFlash.h>
+    #define FILESYSTEM CustomLFS_QSPIFlash
   #elif defined(EXTRAFS)
     #include <CustomLFS.h>
     #define FILESYSTEM CustomLFS

+ 1 - 0
variants/nano_g2_ultra/platformio.ini

@@ -42,6 +42,7 @@ build_flags =
   -D OFFLINE_QUEUE_SIZE=256
   -D DISPLAY_CLASS=SH1106Display
   -D PIN_BUZZER=4
+  -D QSPIFLASH=1
 ;  -D MESH_PACKET_LOGGING=1
 ;  -D MESH_DEBUG=1
 build_src_filter = ${Nano_G2_Ultra.build_src_filter}

+ 1 - 0
variants/thinknode_m1/platformio.ini

@@ -80,6 +80,7 @@ build_flags =
   -D OFFLINE_QUEUE_SIZE=256
   -D PIN_BUZZER=6
   -D AUTO_SHUTDOWN_MILLIVOLTS=3300
+  -D QSPIFLASH=1
 ;  -D MESH_PACKET_LOGGING=1
 ;  -D MESH_DEBUG=1
 build_src_filter = ${ThinkNode_M1.build_src_filter}

+ 9 - 0
variants/thinknode_m1/variant.h

@@ -110,6 +110,15 @@ extern const int MISO;
 extern const int MOSI;
 extern const int SCK;
 
+////////////////////////////////////////////////////////////////////////////////
+// QSPI
+#define PIN_QSPI_SCK (46)
+#define PIN_QSPI_CS  (47)
+#define PIN_QSPI_IO0 (44)  // MOSI if using two bit interface
+#define PIN_QSPI_IO1 (45)  // MISO if using two bit interface
+#define PIN_QSPI_IO2 (7)   // WP if using two bit interface (i.e. not used)
+#define PIN_QSPI_IO3 (5)   // HOLD if using two bit interface (i.e. not used)
+
 ////////////////////////////////////////////////////////////////////////////////
 // Display
 

+ 1 - 0
variants/wio-tracker-l1/platformio.ini

@@ -86,6 +86,7 @@ build_flags = ${WioTrackerL1.build_flags}
   -D OFFLINE_QUEUE_SIZE=256
   -D DISPLAY_CLASS=SH1106Display
   -D PIN_BUZZER=12
+  -D QSPIFLASH=1
   ; -D MESH_PACKET_LOGGING=1
   ; -D MESH_DEBUG=1
 build_src_filter = ${WioTrackerL1.build_src_filter}

+ 1 - 1
variants/xiao_nrf52/platformio.ini

@@ -66,7 +66,7 @@ build_flags =
 ;  -D BLE_DEBUG_LOGGING=1
 ;  -D MESH_PACKET_LOGGING=1
   -D MESH_DEBUG=1
-  -D SPIFLASH=1
+  -D QSPIFLASH=1
 build_src_filter = ${Xiao_nrf52.build_src_filter}
   +<helpers/nrf52/SerialBLEInterface.cpp>
   +<../examples/companion_radio/*.cpp>