From c4e9f69c32732adbf42592c635bcd694f4e37286 Mon Sep 17 00:00:00 2001 From: Davide Mor <davide.mor@skywarder.eu> Date: Wed, 25 May 2022 23:08:30 +0200 Subject: [PATCH] [sx1278] Moved device sanity check before first device interrogation, caused stalling if the device was not responding --- src/shared/radio/SX1278/SX1278.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/shared/radio/SX1278/SX1278.cpp b/src/shared/radio/SX1278/SX1278.cpp index bed1ae549..00036c030 100644 --- a/src/shared/radio/SX1278/SX1278.cpp +++ b/src/shared/radio/SX1278/SX1278.cpp @@ -156,15 +156,16 @@ SX1278::SX1278(SPIBusInterface &bus, miosix::GpioPin cs) : bus_mgr(bus, cs) {} SX1278::Error SX1278::init(Config config) { - // Lock the bus - bus_mgr.lock(Mode::MODE_STDBY); - bus_mgr.waitForIrq(RegIrqFlags::MODE_READY); - + // Check if the device is sane before locking the bus if (getVersion() != 0x12) { return Error::BAD_VERSION; } + // Lock the bus + bus_mgr.lock(Mode::MODE_STDBY); + bus_mgr.waitForIrq(RegIrqFlags::MODE_READY); + setBitrate(config.bitrate); setFreqDev(config.freq_dev); setFreqRF(config.freq_rf); -- GitLab