mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
59 lines
2.7 KiB
ReStructuredText
59 lines
2.7 KiB
ReStructuredText
RF 校准
|
||
==============
|
||
|
||
:link_to_translation:`en:[English]`
|
||
|
||
{IDF_TARGET_NAME} 在 RF 初始化过程中支持以下三种 RF 校准:
|
||
|
||
1. 部分校准
|
||
|
||
2. 全面校准
|
||
|
||
3. 不校准
|
||
|
||
部分校准
|
||
-------------------
|
||
|
||
在 RF 初始化期间,默认使用部分校准,该方法基于存储在 NVS 中的完全校准数据实现。要使用此校准方法,请前往 ``menuconfig`` 并启用 :ref:`CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE`。
|
||
|
||
全面校准
|
||
----------------
|
||
|
||
在以下几种情况下,使用全面校准:
|
||
|
||
1. NVS 不存在。
|
||
|
||
2. 存储校准数据的 NVS 分区已擦除。
|
||
|
||
3. 硬件 MAC 地址变更。
|
||
|
||
4. PHY 库版本变更。
|
||
|
||
5. 从 NVS 分区加载的 RF 校准数据损坏。
|
||
|
||
全面校准耗时比部分校准长约 100 ms。当启动时长的重要性不高时,建议使用全面校准。要切换到全面校准,请前往 ``menuconfig`` 并禁用 :ref:`CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE`。如果使用了默认的部分校准,作为最后补救措施,可以使用以下两种方法添加函数,触发全面校准:
|
||
|
||
1. 如果不介意擦除 NVS 分区中的所有数据,那么擦除 NVS 分区是最简单的方法。
|
||
|
||
2. 在初始化 Wi-Fi 和 Bluetooth®/Bluetooth Low Energy 前,根据某些条件(例如,在某些诊断模式下提供的选项)调用 API :cpp:func:`esp_phy_erase_cal_data_in_nvs`,此时仅会擦除 NVS 分区的 PHY 命名空间。
|
||
|
||
不校准
|
||
---------------
|
||
|
||
设备从 Deep-sleep 模式中唤醒时,可以不校准。
|
||
|
||
PHY 初始化数据
|
||
-----------------------
|
||
|
||
PHY 初始化数据用于 RF 校准,通过以下两种方法,可以获取 PHY 初始化数据。
|
||
|
||
一是使用默认初始化数据,该数据位于头文件 :idf_file:`components/esp_phy/{IDF_TARGET_PATH_NAME}/include/phy_init_data.h` 中。默认初始化数据会在编译后嵌入到应用程序的二进制文件,然后存储在只读存储器 (DROM) 中。要使用默认的初始化数据,请前往 ``menuconfig`` 并禁用 :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`。
|
||
|
||
二是将初始化数据存储在 PHY 数据分区中。默认的分区表中已经包含了 PHY 数据分区,但是使用自定义分区表时,请确保在自定义分区表中包含一个 PHY 数据分区(类型:``data``,子类型:``phy``)。无论使用自定义分区表还是默认分区表,只要初始化数据存储在分区中,就需要将其烧录到相应的分区中,否则运行时可能会出现错误。如果想要使用存储在分区中的初始化数据,请前往 ``menuconfig`` 并启用选项 :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`。
|
||
|
||
API 参考
|
||
-------------
|
||
|
||
.. include-build-file:: inc/esp_phy_init.inc
|
||
.. include-build-file:: inc/esp_phy_cert_test.inc
|