[SX126x] Added option to set LoRa sync word control bits

This commit is contained in:
jgromes 2020-01-14 18:08:45 +01:00
parent c40f382ed6
commit d892320637
2 changed files with 5 additions and 3 deletions

View file

@ -633,14 +633,14 @@ int16_t SX126x::setCodingRate(uint8_t cr) {
return(setModulationParams(_sf, _bw, _cr)); return(setModulationParams(_sf, _bw, _cr));
} }
int16_t SX126x::setSyncWord(uint8_t syncWord) { int16_t SX126x::setSyncWord(uint8_t syncWord, uint8_t controlBits) {
// check active modem // check active modem
if(getPacketType() != SX126X_PACKET_TYPE_LORA) { if(getPacketType() != SX126X_PACKET_TYPE_LORA) {
return(ERR_WRONG_MODEM); return(ERR_WRONG_MODEM);
} }
// update register // update register
uint8_t data[2] = {(uint8_t)((syncWord & 0xF0) | 0x04), (uint8_t)(((syncWord & 0x0F) << 4) | 0x04)}; uint8_t data[2] = {(uint8_t)((syncWord & 0xF0) | ((controlBits & 0xF0) >> 4)), (uint8_t)(((syncWord & 0x0F) << 4) | (controlBits & 0x0F))};
return(writeRegister(SX126X_REG_LORA_SYNC_WORD_MSB, data, 2)); return(writeRegister(SX126X_REG_LORA_SYNC_WORD_MSB, data, 2));
} }

View file

@ -586,9 +586,11 @@ class SX126x: public PhysicalLayer {
\param syncWord LoRa sync word to be set. \param syncWord LoRa sync word to be set.
\param controlBits Undocumented control bits, required for compatibility purposes.
\returns \ref status_codes \returns \ref status_codes
*/ */
int16_t setSyncWord(uint8_t syncWord); int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
/*! /*!
\brief Sets current protection limit. Can be set in 0.25 mA steps. \brief Sets current protection limit. Can be set in 0.25 mA steps.