mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-09-09 09:55:37 +00:00
Upstream adds LoRaFEMControl for a KCT8103L pinout; this variant uses GC1109 (P_LORA_PA_*). Reintroduce the class with the same API and wire HeltecTrackerV2Board through it so FEM logic matches platformio.ini. Made-with: Cursor
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#include "LoRaFEMControl.h"
|
|
#include <driver/rtc_io.h>
|
|
#include <Arduino.h>
|
|
|
|
// GC1109 FEM (see platformio.ini): VFEM/CSD/CPS on P_LORA_PA_*; CTX from SX1262 DIO2.
|
|
|
|
void LoRaFEMControl::init(void) {
|
|
pinMode(P_LORA_PA_POWER, OUTPUT);
|
|
digitalWrite(P_LORA_PA_POWER, HIGH);
|
|
rtc_gpio_hold_dis((gpio_num_t)P_LORA_PA_POWER);
|
|
|
|
pinMode(P_LORA_PA_EN, OUTPUT);
|
|
digitalWrite(P_LORA_PA_EN, HIGH);
|
|
rtc_gpio_hold_dis((gpio_num_t)P_LORA_PA_EN);
|
|
|
|
pinMode(P_LORA_PA_TX_EN, OUTPUT);
|
|
digitalWrite(P_LORA_PA_TX_EN, LOW);
|
|
|
|
setLnaCanControl(true);
|
|
}
|
|
|
|
void LoRaFEMControl::setSleepModeEnable(void) {
|
|
digitalWrite(P_LORA_PA_EN, LOW);
|
|
}
|
|
|
|
void LoRaFEMControl::setTxModeEnable(void) {
|
|
pinMode(P_LORA_PA_TX_EN, OUTPUT);
|
|
digitalWrite(P_LORA_PA_TX_EN, HIGH);
|
|
}
|
|
|
|
void LoRaFEMControl::setRxModeEnable(void) {
|
|
digitalWrite(P_LORA_PA_TX_EN, LOW);
|
|
pinMode(P_LORA_PA_TX_EN, INPUT);
|
|
}
|
|
|
|
void LoRaFEMControl::setRxModeEnableWhenMCUSleep(void) {
|
|
digitalWrite(P_LORA_PA_EN, HIGH);
|
|
rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_EN);
|
|
rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_POWER);
|
|
}
|
|
|
|
void LoRaFEMControl::setLNAEnable(bool enabled) {
|
|
lna_enabled = enabled;
|
|
}
|