Merge branch 'feature/set_phy_cal_option_according_to_cal_data_check' into 'master'

feat(esp8266): set phy cal option according to cal data check

See merge request sdk/ESP8266_RTOS_SDK!1096
This commit is contained in:
Dong Heng
2019-09-17 10:44:01 +08:00
2 changed files with 9 additions and 29 deletions

View File

@ -560,39 +560,17 @@ endmenu
menu PHY menu PHY
choice ESP8266_PHY_CALIBRATION
prompt "RF calibration"
default ESP8266_PHY_FULL_CALIBRATION
help
If calibration data is not found, full calibration will be performed. To ensure better RF performance,
it is recommend to set RF_calibration to ESP8266_PHY_FULL_CALIBRATION, otherwise the RF performance may become poor.
Full calibration needs 170 - 180ms.
Partial calibration needs 35 - 40ms.
No calibration needs 3.260 - 3.264ms.
config ESP8266_PHY_FULL_CALIBRATION
bool "RF full calibration"
config ESP8266_PHY_NO_CALIBRATION
bool "RF no calibration"
config ESP8266_PHY_PARTIAL_CALIBRATION
bool "RF partial calibration"
endchoice
config ESP8266_PHY_CALIBRATION
int
default 3 if ESP8266_PHY_FULL_CALIBRATION
default 2 if ESP8266_PHY_PARTIAL_CALIBRATION
default 1 if ESP8266_PHY_NO_CALIBRATION
config ESP_PHY_CALIBRATION_AND_DATA_STORAGE config ESP_PHY_CALIBRATION_AND_DATA_STORAGE
bool "Store phy calibration data in NVS" bool "Store phy calibration data in NVS"
default y default y
help help
If this option is enabled, NVS will be initialized and calibration data will be loaded from there. If this option is enabled, NVS will be initialized and calibration data will be loaded from there.
PHY calibration will be skipped on deep sleep wakeup. If calibration data is not found, full calibration If calibration data is not found, full calibration will be performed and stored in NVS. Normally,
will be performed and stored in NVS. Normally, only partial calibration will be performed. only partial calibration will be performed. If this option is disabled, full calibration will be performed.
If this option is disabled, full calibration will be performed.
Full calibration needs 170 - 180ms.
Partial calibration needs 35 - 40ms.
No calibration needs 3.260 - 3.264ms.
If it's easy that your board calibrate bad data, choose 'n'. If it's easy that your board calibrate bad data, choose 'n'.
Two cases for example, you should choose 'n': Two cases for example, you should choose 'n':

View File

@ -85,10 +85,12 @@ esp_err_t esp_phy_rf_init(const esp_phy_init_data_t* init_data, esp_phy_calibrat
phy_check_data_table(phy_rx_gain_dc_table, 125, 1); phy_check_data_table(phy_rx_gain_dc_table, 125, 1);
phy_afterwake_set_rfoption(1); phy_afterwake_set_rfoption(1);
phy_set_powerup_option(CONFIG_ESP8266_PHY_CALIBRATION);
if (!cal_data_check) { if (!cal_data_check) {
phy_set_powerup_option(1);
write_data_to_rtc(calibration_data->rf_cal_data); write_data_to_rtc(calibration_data->rf_cal_data);
} else {
phy_set_powerup_option(3);
} }
esp_efuse_mac_get_default(sta_mac); esp_efuse_mac_get_default(sta_mac);