Add Heltec V4 R8 FEM LNA controls
This commit is contained in:
1 parent
8fc0733299
commit
0cc6fdfea6
5 files changed
+29
-5
No files matched your search
@@ -84,3 +84,21 @@ const char* HeltecV4R8Board::getManufacturerName() const {
|
||||
return "Heltec V4 R8 OLED";
|
||||
#endif
|
||||
}
|
||||
|
||||
bool HeltecV4R8Board::setLoRaFemLnaEnabled(bool enable) {
|
||||
if (!loRaFEMControl.isLnaCanControl()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
loRaFEMControl.setLNAEnable(enable);
|
||||
loRaFEMControl.setRxModeEnable();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HeltecV4R8Board::canControlLoRaFemLna() const {
|
||||
return loRaFEMControl.isLnaCanControl();
|
||||
}
|
||||
|
||||
bool HeltecV4R8Board::isLoRaFemLnaEnabled() const {
|
||||
return loRaFEMControl.isLNAEnabled();
|
||||
}
|
||||
@@ -25,6 +25,9 @@ public:
|
||||
void onAfterTransmit(void) override;
|
||||
void enterDeepSleep(uint32_t secs, int pin_wake_btn = -1);
|
||||
void powerOff() override;
|
||||
bool setLoRaFemLnaEnabled(bool enable) override;
|
||||
bool canControlLoRaFemLna() const override;
|
||||
bool isLoRaFemLnaEnabled() const override;
|
||||
uint16_t getBattMilliVolts() override;
|
||||
bool setAdcMultiplier(float multiplier) override {
|
||||
if (multiplier == 0.0f) {
|
||||
|
||||
@@ -21,6 +21,7 @@ void LoRaFEMControl::init(void) {
|
||||
digitalWrite(P_LORA_KCT8103L_PA_CSD, HIGH);
|
||||
pinMode(P_LORA_KCT8103L_PA_CTX, OUTPUT);
|
||||
digitalWrite(P_LORA_KCT8103L_PA_CTX, lna_enabled ? LOW : HIGH);
|
||||
setLnaCanControl(true);
|
||||
}
|
||||
|
||||
void LoRaFEMControl::setSleepModeEnable(void) {
|
||||
|
||||
@@ -15,10 +15,12 @@ public:
|
||||
void setRxModeEnable(void);
|
||||
void setRxModeEnableWhenMCUSleep(void);
|
||||
void setLNAEnable(bool enabled);
|
||||
bool isLnaCanControl(void) { return true; }
|
||||
void setLnaCanControl(bool can_control) { }
|
||||
bool isLnaCanControl(void) const { return lna_can_control; }
|
||||
void setLnaCanControl(bool can_control) { lna_can_control = can_control; }
|
||||
bool isLNAEnabled(void) const { return lna_enabled; }
|
||||
LoRaFEMType getFEMType(void) const { return KCT8103L_PA; }
|
||||
|
||||
private:
|
||||
bool lna_enabled = false;
|
||||
bool lna_can_control = false;
|
||||
};
|
||||
@@ -17,9 +17,9 @@ build_flags =
|
||||
-D P_LORA_SCLK=9
|
||||
-D P_LORA_MISO=11
|
||||
-D P_LORA_MOSI=10
|
||||
-D P_LORA_PA_POWER=7
|
||||
-D P_LORA_KCT8103L_PA_CSD=2
|
||||
-D P_LORA_KCT8103L_PA_CTX=5
|
||||
-D P_LORA_PA_POWER=7 ; VFEM_Ctrl - LDO power enable
|
||||
-D P_LORA_KCT8103L_PA_CSD=2 ; FEM_EN / CSD (HIGH=on)
|
||||
-D P_LORA_KCT8103L_PA_CTX=5 ; PA_CTX (LOW=RX LNA, HIGH=RX bypass)
|
||||
-D P_LORA_TX_LED=46
|
||||
-D PIN_USER_BTN=0
|
||||
-D PIN_VEXT_EN=40
|
||||
|
||||
Reference in new issue
Block a user