CC1312R: Radio frequency calibration for 48MHz crystal

Part Number: CC1312R

Tool/software:

I am looking for the best way to calibrate the 48MHz external crystal for each device (in production) for accurate radio frequencies in ISM band.

I see different calibration methods and wonder about their accuracy:

1) Measure frequency of a carrier wave at a specific frequency generated by the unit under test using a spectrum analyzer. Get the offset and apply it into command CMD_FS everytime we use the command.

2) Cap-array tuning: is there a formula for cap-array tuning based on frequency offset or we have to scan through multiple cap-array configurations until the output frequency is good. Also, TI's document mentioned using CCFG.c to apply cap-array tuning value, that will require project re-compile. How do I apply cap-array tuning value in runtime or using a Flash programming adapter?

3) Configure CC1312 to add frequency offset byte into received packets. Use that offset for calibration.

4) Use timer to measure actual frequency of 48MHz crystal in firmware.

Could you comment on the accuracy of each method and which one would you recommend?

Thank you so much!