From 1770557d09ceb0e60c6ec0395974212412ae6635 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Wed, 7 Jun 2023 20:49:26 +0200 Subject: [PATCH] Added TCXO control functions --- Config.h | 2 ++ LoRa.cpp | 11 +++++++++++ LoRa.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/Config.h b/Config.h index d48b2e3..b17f694 100644 --- a/Config.h +++ b/Config.h @@ -87,6 +87,7 @@ #define HAS_DISPLAY false #define HAS_BLUETOOTH false + #define HAS_TCXO false #define HAS_PMU false #define HAS_NP false @@ -147,6 +148,7 @@ const int pin_led_tx = 4; #define HAS_DISPLAY true #define HAS_PMU true + #define HAS_TCXO true #define HAS_BLUETOOTH true #define HAS_CONSOLE true #define HAS_SD false diff --git a/LoRa.cpp b/LoRa.cpp index 6725e75..af64480 100644 --- a/LoRa.cpp +++ b/LoRa.cpp @@ -67,6 +67,7 @@ #define REG_HIGH_BW_OPTIMIZE_2 0x3a #define REG_DIO_MAPPING_1 0x40 #define REG_VERSION 0x42 +#define REG_TCXO 0x4b #define REG_PA_DAC 0x4d // Modes @@ -424,6 +425,16 @@ void LoRaClass::sleep() writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP); } +void LoRaClass::enableTCXO() { + uint8_t tcxo_reg = readRegister(REG_TCXO); + writeRegister(REG_TCXO, tcxo_reg | 0x10); +} + +void LoRaClass::disableTCXO() { + uint8_t tcxo_reg = readRegister(REG_TCXO); + writeRegister(REG_TCXO, tcxo_reg & 0xEF); +} + void LoRaClass::setTxPower(int level, int outputPin) { if (PA_OUTPUT_RFO_PIN == outputPin) { // RFO diff --git a/LoRa.h b/LoRa.h index e9efd2c..c4c290e 100644 --- a/LoRa.h +++ b/LoRa.h @@ -68,6 +68,8 @@ class LoRaClass : public Stream { uint8_t modemStatus(); void enableCrc(); void disableCrc(); + void enableTCXO(); + void disableTCXO(); // deprecated void crc() { enableCrc(); }