From a0948ed849f30d48f91fc7fe2a6b2fb97df5f2a3 Mon Sep 17 00:00:00 2001 From: "Daniel A. Maierhofer" Date: Sat, 24 Jan 2015 14:13:15 +0100 Subject: [PATCH] Update RFM69registers.h --- RFM69.cpp | 3 +- RFM69registers.h | 75 +++++++++++++++++++++++++++++++++++++----------- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/RFM69.cpp b/RFM69.cpp index d0f6c97..77e897c 100644 --- a/RFM69.cpp +++ b/RFM69.cpp @@ -82,8 +82,7 @@ bool RFM69::initialize(uint8_t freqBand, uint8_t nodeID, uint8_t networkID) /* 0x3C */ { REG_FIFOTHRESH, RF_FIFOTHRESH_TXSTART_FIFONOTEMPTY | RF_FIFOTHRESH_VALUE }, // TX on FIFO not empty /* 0x3D */ { REG_PACKETCONFIG2, RF_PACKET2_RXRESTARTDELAY_2BITS | RF_PACKET2_AUTORXRESTART_ON | RF_PACKET2_AES_OFF }, // RXRESTARTDELAY must match transmitter PA ramp-down time (bitrate dependent) //for BR-19200: /* 0x3D */ { REG_PACKETCONFIG2, RF_PACKET2_RXRESTARTDELAY_NONE | RF_PACKET2_AUTORXRESTART_ON | RF_PACKET2_AES_OFF }, // RXRESTARTDELAY must match transmitter PA ramp-down time (bitrate dependent) - ///* 0x6F */ { REG_TESTDAGC, RF_DAGC_CONTINUOUS }, // run DAGC continuously in RX mode - /* 0x6F */ { REG_TESTDAGC, RF_DAGC_IMPROVED_LOWBETA0 }, // run DAGC continuously in RX mode, recommended default for AfcLowBetaOn=0 + /* 0x6F */ { REG_TESTDAGC, RF_DAGC_IMPROVED_LOWBETA0 }, // run DAGC continuously in RX mode for Fading Margin Improvement, recommended default for AfcLowBetaOn=0 {255, 0} }; diff --git a/RFM69registers.h b/RFM69registers.h index 9130e5b..6b8bf66 100644 --- a/RFM69registers.h +++ b/RFM69registers.h @@ -1,7 +1,7 @@ // ********************************************************************************** // Registers used in driver definition for HopeRF RFM69W/RFM69HW, Semtech SX1231/1231H // ********************************************************************************** -// Copyright Felix Rusu (2014), felix@lowpowerlab.com +// Copyright Felix Rusu (2015), felix@lowpowerlab.com // http://lowpowerlab.com/ // ********************************************************************************** // License @@ -51,10 +51,10 @@ #define REG_PALEVEL 0x11 #define REG_PARAMP 0x12 #define REG_OCP 0x13 -#define REG_AGCREF 0x14 -#define REG_AGCTHRESH1 0x15 -#define REG_AGCTHRESH2 0x16 -#define REG_AGCTHRESH3 0x17 +#define REG_AGCREF 0x14 // not present on RFM69/SX1231 +#define REG_AGCTHRESH1 0x15 // not present on RFM69/SX1231 +#define REG_AGCTHRESH2 0x16 // not present on RFM69/SX1231 +#define REG_AGCTHRESH3 0x17 // not present on RFM69/SX1231 #define REG_LNA 0x18 #define REG_RXBW 0x19 #define REG_AFCBW 0x1A @@ -111,13 +111,15 @@ #define REG_AESKEY16 0x4D #define REG_TEMP1 0x4E #define REG_TEMP2 0x4F -#define REG_TESTPA1 0x5A // only present on RFM69HW/SX1231H -#define REG_TESTPA2 0x5C // only present on RFM69HW/SX1231H +#define REG_TESTLNA 0x58 +#define REG_TESTPA1 0x5A // only present on RFM69HW/SX1231H +#define REG_TESTPA2 0x5C // only present on RFM69HW/SX1231H #define REG_TESTDAGC 0x6F //****************************************************** // RF69/SX1231 bit control definition //****************************************************** + // RegOpMode #define RF_OPMODE_SEQUENCER_OFF 0x80 #define RF_OPMODE_SEQUENCER_ON 0x00 // Default @@ -133,6 +135,7 @@ #define RF_OPMODE_TRANSMITTER 0x0C #define RF_OPMODE_RECEIVER 0x10 + // RegDataModul #define RF_DATAMODUL_DATAMODE_PACKET 0x00 // Default #define RF_DATAMODUL_DATAMODE_CONTINUOUS 0x40 @@ -146,6 +149,7 @@ #define RF_DATAMODUL_MODULATIONSHAPING_10 0x02 #define RF_DATAMODUL_MODULATIONSHAPING_11 0x03 + // RegBitRate (bits/sec) example bit rates #define RF_BITRATEMSB_1200 0x68 #define RF_BITRATELSB_1200 0x2B @@ -198,6 +202,7 @@ #define RF_BITRATEMSB_200KBPS 0x00 #define RF_BITRATELSB_200KBPS 0xa0 + // RegFdev - frequency deviation (Hz) #define RF_FDEVMSB_2000 0x00 #define RF_FDEVLSB_2000 0x21 @@ -284,6 +289,7 @@ #define RF_FDEVMSB_300000 0x13 #define RF_FDEVLSB_300000 0x33 + // RegFrf (MHz) - carrier frequency // 315Mhz band #define RF_FRFMSB_314 0x4E @@ -418,6 +424,12 @@ #define RF_OSC1_RCCAL_START 0x80 #define RF_OSC1_RCCAL_DONE 0x40 + +// RegAfcCtrl +#define RF_AFCCTRL_LOWBETA_OFF 0x00 // Default +#define RF_AFCCTRL_LOWBETA_ON 0x20 + + // RegLowBat #define RF_LOWBAT_MONITOR 0x10 #define RF_LOWBAT_ON 0x08 @@ -438,6 +450,14 @@ #define RF_LISTEN1_RESOL_4100 0xA0 // Default #define RF_LISTEN1_RESOL_262000 0xF0 +#define RF_LISTEN1_RESOL_IDLE_64 0x40 +#define RF_LISTEN1_RESOL_IDLE_4100 0x80 // Default +#define RF_LISTEN1_RESOL_IDLE_262000 0xC0 + +#define RF_LISTEN1_RESOL_RX_64 0x10 +#define RF_LISTEN1_RESOL_RX_4100 0x20 // Default +#define RF_LISTEN1_RESOL_RX_262000 0x30 + #define RF_LISTEN1_CRITERIA_RSSI 0x00 // Default #define RF_LISTEN1_CRITERIA_RSSIANDSYNC 0x08 @@ -449,9 +469,15 @@ // RegListen2 #define RF_LISTEN2_COEFIDLE_VALUE 0xF5 // Default + // RegListen3 #define RF_LISTEN3_COEFRX_VALUE 0x20 // Default + +// RegVersion +#define RF_VERSION_VER 0x24 // Default + + // RegPaLevel #define RF_PALEVEL_PA0_ON 0x80 // Default #define RF_PALEVEL_PA0_OFF 0x00 @@ -527,15 +553,15 @@ #define RF_OCP_TRIM_80 0x07 #define RF_OCP_TRIM_85 0x08 #define RF_OCP_TRIM_90 0x09 -#define RF_OCP_TRIM_95 0x0A -#define RF_OCP_TRIM_100 0x0B // Default +#define RF_OCP_TRIM_95 0x0A // Default +#define RF_OCP_TRIM_100 0x0B #define RF_OCP_TRIM_105 0x0C #define RF_OCP_TRIM_110 0x0D #define RF_OCP_TRIM_115 0x0E #define RF_OCP_TRIM_120 0x0F -// RegAgcRef +// RegAgcRef - not present on RFM69/SX1231 #define RF_AGCREF_AUTO_ON 0x40 // Default #define RF_AGCREF_AUTO_OFF 0x00 @@ -605,7 +631,7 @@ #define RF_AGCREF_LEVEL_MINUS143 0x3F -// RegAgcThresh1 +// RegAgcThresh1 - not present on RFM69/SX1231 #define RF_AGCTHRESH1_SNRMARGIN_000 0x00 #define RF_AGCTHRESH1_SNRMARGIN_001 0x20 #define RF_AGCTHRESH1_SNRMARGIN_010 0x40 @@ -649,7 +675,7 @@ #define RF_AGCTHRESH1_STEP1_31 0x1F -// RegAgcThresh2 +// RegAgcThresh2 - not present on RFM69/SX1231 #define RF_AGCTHRESH2_STEP2_0 0x00 #define RF_AGCTHRESH2_STEP2_1 0x10 #define RF_AGCTHRESH2_STEP2_2 0x20 @@ -685,7 +711,7 @@ #define RF_AGCTHRESH2_STEP3_15 0x0F -// RegAgcThresh3 +// RegAgcThresh3 - not present on RFM69/SX1231 #define RF_AGCTHRESH3_STEP4_0 0x00 #define RF_AGCTHRESH3_STEP4_1 0x10 #define RF_AGCTHRESH3_STEP4_2 0x20 @@ -835,9 +861,11 @@ #define RF_AFCFEI_AFC_CLEAR 0x02 #define RF_AFCFEI_AFC_START 0x01 + // RegRssiConfig -#define RF_RSSI_FASTRX_ON 0x08 +#define RF_RSSI_FASTRX_ON 0x08 // not present on RFM69/SX1231 #define RF_RSSI_FASTRX_OFF 0x00 // Default + #define RF_RSSI_DONE 0x02 #define RF_RSSI_START 0x01 @@ -895,6 +923,7 @@ #define RF_IRQFLAGS1_AUTOMODE 0x02 #define RF_IRQFLAGS1_SYNCADDRESSMATCH 0x01 + // RegIrqFlags2 #define RF_IRQFLAGS2_FIFOFULL 0x80 #define RF_IRQFLAGS2_FIFONOTEMPTY 0x40 @@ -903,17 +932,21 @@ #define RF_IRQFLAGS2_PACKETSENT 0x08 #define RF_IRQFLAGS2_PAYLOADREADY 0x04 #define RF_IRQFLAGS2_CRCOK 0x02 -#define RF_IRQFLAGS2_LOWBAT 0x01 +#define RF_IRQFLAGS2_LOWBAT 0x01 // not present on RFM69/SX1231 + // RegRssiThresh #define RF_RSSITHRESH_VALUE 0xE4 // Default + // RegRxTimeout1 #define RF_RXTIMEOUT1_RXSTART_VALUE 0x00 // Default + // RegRxTimeout2 #define RF_RXTIMEOUT2_RSSITHRESH_VALUE 0x00 // Default + // RegPreamble #define RF_PREAMBLESIZE_MSB_VALUE 0x00 // Default #define RF_PREAMBLESIZE_LSB_VALUE 0x03 // Default @@ -978,6 +1011,7 @@ // RegPayloadLength #define RF_PAYLOADLENGTH_VALUE 0x40 // Default + // RegBroadcastAdrs #define RF_BROADCASTADDRESS_VALUE 0x00 @@ -1059,10 +1093,17 @@ // RegTemp1 #define RF_TEMP1_MEAS_START 0x08 #define RF_TEMP1_MEAS_RUNNING 0x04 +// not present on RFM69/SX1231 #define RF_TEMP1_ADCLOWPOWER_ON 0x01 // Default #define RF_TEMP1_ADCLOWPOWER_OFF 0x00 -// RegTestDagc 0x6F: demodulator config and IO mode config + +// RegTestLna +#define RF_TESTLNA_NORMAL 0x1B +#define RF_TESTLNA_HIGH_SENSITIVITY 0x2D + + +// RegTestDagc #define RF_DAGC_NORMAL 0x00 // Reset value -#define RF_DAGC_IMPROVED_LOWBETA1 0x20 // +#define RF_DAGC_IMPROVED_LOWBETA1 0x20 #define RF_DAGC_IMPROVED_LOWBETA0 0x30 // Recommended default