|
47 | 47 | #define IRQ_PAYLOAD_CRC_ERROR_MASK 0x20 |
48 | 48 | #define IRQ_RX_DONE_MASK 0x40 |
49 | 49 |
|
| 50 | +/*! |
| 51 | + * RegInvertIQ |
| 52 | + */ |
| 53 | +#define RFLR_INVERTIQ_RX_MASK 0xBF |
| 54 | +#define RFLR_INVERTIQ_RX_OFF 0x00 |
| 55 | +#define RFLR_INVERTIQ_RX_ON 0x40 |
| 56 | +#define RFLR_INVERTIQ_TX_MASK 0xFE |
| 57 | +#define RFLR_INVERTIQ_TX_OFF 0x01 |
| 58 | +#define RFLR_INVERTIQ_TX_ON 0x00 |
| 59 | + |
| 60 | +#define REG_LR_INVERTIQ 0x33 |
| 61 | + |
| 62 | +/*! |
| 63 | + * RegInvertIQ2 |
| 64 | + */ |
| 65 | +#define RFLR_INVERTIQ2_ON 0x19 |
| 66 | +#define RFLR_INVERTIQ2_OFF 0x1D |
| 67 | + |
| 68 | +#define REG_LR_INVERTIQ2 0x3B |
| 69 | + |
50 | 70 |
|
51 | 71 | #define MAX_PKT_LENGTH 255 |
52 | 72 |
|
@@ -464,6 +484,30 @@ void LoRaClass::disableCrc() |
464 | 484 | writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) & 0xfb); |
465 | 485 | } |
466 | 486 |
|
| 487 | +void LoRaClass::enableTxInvertIQ() |
| 488 | +{ |
| 489 | + writeRegister( REG_LR_INVERTIQ, ( ( readRegister( REG_LR_INVERTIQ ) & RFLR_INVERTIQ_TX_MASK & RFLR_INVERTIQ_RX_MASK ) | RFLR_INVERTIQ_RX_OFF | RFLR_INVERTIQ_TX_ON ) ); |
| 490 | + writeRegister( REG_LR_INVERTIQ2, RFLR_INVERTIQ2_ON ); |
| 491 | +} |
| 492 | + |
| 493 | +void LoRaClass::enableRxInvertIQ() |
| 494 | +{ |
| 495 | + writeRegister( REG_LR_INVERTIQ, ( ( readRegister( REG_LR_INVERTIQ ) & RFLR_INVERTIQ_TX_MASK & RFLR_INVERTIQ_RX_MASK ) | RFLR_INVERTIQ_RX_ON | RFLR_INVERTIQ_TX_OFF ) ); |
| 496 | + writeRegister( REG_LR_INVERTIQ2, RFLR_INVERTIQ2_ON ); |
| 497 | +} |
| 498 | + |
| 499 | +void LoRaClass::disableInvertIQ() |
| 500 | +{ |
| 501 | + writeRegister( REG_LR_INVERTIQ, ( ( readRegister( REG_LR_INVERTIQ ) & RFLR_INVERTIQ_TX_MASK & RFLR_INVERTIQ_RX_MASK ) | RFLR_INVERTIQ_RX_OFF | RFLR_INVERTIQ_TX_OFF ) ); |
| 502 | + writeRegister( REG_LR_INVERTIQ2, RFLR_INVERTIQ2_OFF ); |
| 503 | +} |
| 504 | + |
| 505 | +void LoRaClass::enableInvertIQ() |
| 506 | +{ |
| 507 | + writeRegister( REG_LR_INVERTIQ, ( ( readRegister( REG_LR_INVERTIQ ) & RFLR_INVERTIQ_TX_MASK & RFLR_INVERTIQ_RX_MASK ) | RFLR_INVERTIQ_RX_ON | RFLR_INVERTIQ_TX_ON ) ); |
| 508 | + writeRegister( REG_LR_INVERTIQ2, RFLR_INVERTIQ2_ON ); |
| 509 | +} |
| 510 | + |
467 | 511 | byte LoRaClass::random() |
468 | 512 | { |
469 | 513 | return readRegister(REG_RSSI_WIDEBAND); |
|
0 commit comments