From c66ff2b181c01eb5e0c86cb0bf8eadab175c7238 Mon Sep 17 00:00:00 2001
From: Davide Mor <davide.mor@skywarder.eu>
Date: Mon, 31 Jul 2023 13:57:06 +0200
Subject: [PATCH] [sx1278] Fixed a bug where the SPI would not work properly

---
 src/shared/radio/SX1278/SX1278Defs.h | 1 +
 src/tests/radio/sx1278/sx1278-init.h | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/shared/radio/SX1278/SX1278Defs.h b/src/shared/radio/SX1278/SX1278Defs.h
index 28dae0016..088564da4 100644
--- a/src/shared/radio/SX1278/SX1278Defs.h
+++ b/src/shared/radio/SX1278/SX1278Defs.h
@@ -50,6 +50,7 @@ inline SPIBusConfig getSpiBusConfig(SPI::ClockDivider clock_divider)
     bus_config.bitOrder     = SPI::Order::MSB_FIRST;
     bus_config.byteOrder    = SPI::Order::MSB_FIRST;
     bus_config.writeBit     = SPI::WriteBit::INVERTED;
+    bus_config.csHoldTimeUs = 3;
 
     return bus_config;
 }
diff --git a/src/tests/radio/sx1278/sx1278-init.h b/src/tests/radio/sx1278/sx1278-init.h
index 908425445..9a7bd5943 100644
--- a/src/tests/radio/sx1278/sx1278-init.h
+++ b/src/tests/radio/sx1278/sx1278-init.h
@@ -225,7 +225,7 @@ bool initRadio()
 
     sx1278 = new Boardcore::SX1278Lora(sx1278_bus, cs::getPin(), dio0::getPin(),
                                        dio1::getPin(), dio3::getPin(),
-                                       Boardcore::SPI::ClockDivider::DIV_32,
+                                       Boardcore::SPI::ClockDivider::DIV_256,
                                        std::move(frontend));
 
     printf("\n[sx1278] Configuring sx1278 lora...\n");
-- 
GitLab