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