[ESP32] RF Calibration 은 어떻게 하는가 ? (How to RF Calibraion)

ESPRESSIF|2021. 1. 12. 22:31

1     RF Calibration

ESP32는 자동 Calibration기능을 제공합니다. 사용자는 매번 Calibration파일을 별도로 생성하여 저장할 필요가 없습니다. RF Calibration은 아래와 같이 3가지 모드를 선택 가능합니다.

 

1.1     Partial calibration

 

RF초기화시는 기본적으로 Partial calibration을 수행합니다. NVS영역에 저장되어 있는 Full calibration 데이터(혹은 Phy init )를 기본으로 calibration을 수행을 합니다. Partial calibration이 기본 값이며, Full calibration은 아래와 같은 조건에서 실행 됩니다.

 

메뉴컨피그의 아래 메뉴가 Enable되어 있어야 합니다.

 

CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE

 

1.2     Full calibration 실행 조건

 

NVS 영역이 없을 경우

NVS 영역에 있던 data가 지워 졌거나, data가 깨져 있을 경우

Hardware MAC address가 변경 되었을 경우

Phy Library 버전이 변경되었을 경우

 

Full calibration은 약 100msec가 소요됩니다. 만약, 매번 full calibration을 할 경우, 아래 메뉴를 disable하면 됩니다.

 

CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE

 

만약, 강제로 full calibration을 할 경우 esp_phy_erase_cal_data_in_nvs() NVS영역을 지우고 WiFi/BT를 초기화 하면 됩니다.

 

1.3     PHY 기본값 (PHY initialization data)

 

PHY 기본값은 Header 파일로 만들어 Application Embeded 할 수도 있고(이 경우 ROM에 저장), 파티션 영역에 phy_init.bin 같은 형태로 저장도 가능합니다. 파티션 영역에 저장 할 경우 type : data, subtype : phy 입니다.

 

기본 값 Header 파일 위치

components/esp_wifi/esp32/include/phy_init_data.h

 

메뉴 컨피그에서 아래 메뉴를 Disable하면, Header file형태로 저장을 합니다. 만약 Enable을 하면 파티션 영역에 저장을 하는데, 기본적으로 자동으로 할당되어 파티션이 만들어 지며, Partition table에서 유져가 직접 지정하여 만들 수도 있습니다.

 

CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION

 

1.4     No calibration

Calibration을 하지 않는 선택인데, Deep sleep모드에서 깨어 났을 경우만 해당 합니다.

 

주의 사항 : Calibration을 시행하려면, ESP32는 반드시 안테나에 먼저 연결이 되어 있어야 합니다. 안테나에 연결이 안된 상태로 부팅을 하면 Calibration이 비정상적으로 이루어 질 수 있습니다.