From 1ddc54c229d4270136eef49632d39c71f19746e6 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sat, 28 Sep 2019 12:22:31 +0200 Subject: [PATCH] [SX126x] Added SX126X_STATUS_SPI_FAILED --- src/modules/SX126x.cpp | 16 ++++++++-------- src/modules/SX126x.h | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/modules/SX126x.cpp b/src/modules/SX126x.cpp index 8745f41d..74029d5f 100644 --- a/src/modules/SX126x.cpp +++ b/src/modules/SX126x.cpp @@ -1294,13 +1294,13 @@ int16_t SX126x::SPItransfer(uint8_t* cmd, uint8_t cmdLen, bool write, uint8_t* d RADIOLIB_VERBOSE_PRINT(in, HEX); RADIOLIB_VERBOSE_PRINT('\t'); - // check status - if(((in & 0b00001110) == SX126X_STATUS_CMD_TIMEOUT) || + // check status - SX126X_STATUS_CMD_TIMEOUT is disabled due to regular timeouts + if(//((in & 0b00001110) == SX126X_STATUS_CMD_TIMEOUT) || ((in & 0b00001110) == SX126X_STATUS_CMD_INVALID) || ((in & 0b00001110) == SX126X_STATUS_CMD_FAILED)) { - status = in; + status = in & 0b00001110; } else if(in == 0x00 || in == 0xFF) { - status = ERR_CHIP_NOT_FOUND; + status = SX126X_STATUS_SPI_FAILED; } } RADIOLIB_VERBOSE_PRINTLN(); @@ -1313,12 +1313,12 @@ int16_t SX126x::SPItransfer(uint8_t* cmd, uint8_t cmdLen, bool write, uint8_t* d RADIOLIB_VERBOSE_PRINT('\t') // check status - if(((in & 0b00001110) == SX126X_STATUS_CMD_TIMEOUT) || + if(//((in & 0b00001110) == SX126X_STATUS_CMD_TIMEOUT) || ((in & 0b00001110) == SX126X_STATUS_CMD_INVALID) || ((in & 0b00001110) == SX126X_STATUS_CMD_FAILED)) { - status = in; + status = in & 0b00001110; } else if(in == 0x00 || in == 0xFF) { - status = ERR_CHIP_NOT_FOUND; + status = SX126X_STATUS_SPI_FAILED; } for(uint8_t n = 0; n < numBytes; n++) { dataIn[n] = spi->transfer(SX126X_CMD_NOP); @@ -1353,7 +1353,7 @@ int16_t SX126x::SPItransfer(uint8_t* cmd, uint8_t cmdLen, bool write, uint8_t* d return(ERR_SPI_CMD_INVALID); case SX126X_STATUS_CMD_FAILED: return(ERR_SPI_CMD_FAILED); - case(ERR_CHIP_NOT_FOUND): + case SX126X_STATUS_SPI_FAILED: return(ERR_CHIP_NOT_FOUND); default: return(ERR_NONE); diff --git a/src/modules/SX126x.h b/src/modules/SX126x.h index 80a3841e..641d6445 100644 --- a/src/modules/SX126x.h +++ b/src/modules/SX126x.h @@ -289,6 +289,7 @@ #define SX126X_STATUS_CMD_INVALID 0b00001000 // 3 1 invalid SPI command #define SX126X_STATUS_CMD_FAILED 0b00001010 // 3 1 SPI command failed to execute #define SX126X_STATUS_TX_DONE 0b00001100 // 3 1 packet transmission done +#define SX126X_STATUS_SPI_FAILED 0b11111111 // 7 0 SPI transaction failed //SX126X_CMD_GET_PACKET_STATUS #define SX126X_GFSK_RX_STATUS_PREAMBLE_ERR 0b10000000 // 7 7 GFSK Rx status: preamble error