Skip to content

Commit 432198f

Browse files
committed
disabling RF (work-in-progress)
1 parent aaf1f76 commit 432198f

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

cores/esp8266/Esp.h

+15-6
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,22 @@ typedef enum {
4545
#define cli() ets_intr_lock() // IRQ Disable
4646
#define sei() ets_intr_unlock() // IRQ Enable
4747

48-
enum WakeMode {
49-
WAKE_RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
50-
WAKE_RFCAL = 1, // RF_CAL after deep-sleep wake up, there will be large current.
51-
WAKE_NO_RFCAL = 2, // no RF_CAL after deep-sleep wake up, there will only be small current.
52-
WAKE_RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
48+
enum RFMode {
49+
RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
50+
RF_CAL = 1, // RF_CAL after deep-sleep wake up, there will be large current.
51+
RF_NO_CAL = 2, // no RF_CAL after deep-sleep wake up, there will only be small current.
52+
RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
5353
};
5454

55+
#define RF_MODE(mode) extern "C" int __get_rf_mode() { return mode; }
56+
57+
// compatibility definitions
58+
#define WakeMode RFMode
59+
#define WAKE_RF_DEFAULT RF_DEFAULT
60+
#define WAKE_RFCAL RF_CAL
61+
#define WAKE_NO_RFCAL RF_NO_CAL
62+
#define WAKE_RF_DISABLED RF_DISABLED
63+
5564
typedef enum {
5665
FM_QIO = 0x00,
5766
FM_QOUT = 0x01,
@@ -72,7 +81,7 @@ class EspClass {
7281
void wdtDisable();
7382
void wdtFeed();
7483

75-
void deepSleep(uint32_t time_us, WakeMode mode = WAKE_RF_DEFAULT);
84+
void deepSleep(uint32_t time_us, RFMode mode = RF_DEFAULT);
7685

7786
void reset();
7887
void restart();

cores/esp8266/core_esp8266_main.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,15 @@ void init_done() {
118118
esp_schedule();
119119
}
120120

121+
extern "C" int __get_rf_mode() __attribute__((weak));
122+
extern "C" int __get_rf_mode()
123+
{
124+
return 0; // default mode
125+
}
126+
121127
extern "C" {
122128
void user_rf_pre_init() {
123-
129+
system_phy_set_rfoption(__get_rf_mode());
124130
}
125131
}
126132

0 commit comments

Comments
 (0)