FAQ: Use different TCXO or XTAL with AXM0F343


The AXM0F343 supports multiple RF reference clocks: a standard XTAL (Crystal Oscillator) or TCXO (Temperature Controlled Crystal Oscillator).
As shown below (page 25 of datasheet) the AXM0F343 supports clocks between 10 and 50 MHz, and, when a XTAL is used, a dedicated programmable XTAL driver allows to adjust the tuning capacitor (XTALCAP, #0x184) and transconductance (XTALOSC, #0xF10) to match the selected XTAL.

Default HW/SW Settings

All the AXM0F343 Development Kits (868 and 915 MHz) mount a 48 MHz TCXO from NDK
For this reason the examples within the AXM0F343 CMSIS pack and the default settings of the AX-Configuration Utility assume that a 48 MHz TCXO is being used.

In case a different frequency and/or a different TCXO/XTAL is to be used, some HW and SW modifications must be done.

HW Modifications

As shown below, the following components should be switched when moving from a 2.0×1.6 mm2 TCXO (e.g. NT2016SA-48M-END4910A) to a same size XTAL (e.g. NX2016SA-48M-EXS00A):

  1. Remove (DNP): R2, C51, FB1, R1.
  2. Solder a 0 Ω jumper resistor: C50, R12, C102.

AX-Configuration Utility Settings

To move from TCXO to XTAL, and change the reference frequency, follow these steps:

  • Create a new project in the AX Configuration Utility, selecting the correct MCU (-64 or -256) and PCB frequency (868 or 915 MHz).
  • in “Pin Configuration” panel, change the field “Ref Osc Config” from TCXO to XTAL.
  • In “PHY Configuration” panel adjust:
    • the XTAL frequency (if different from 48 MHz),
    • the XTALCAP to match the load capacitance required by your XTAL,
    • the AFC to match the expected ppm. A guide on how to adjust the AFC can be found from page 22 in the AX Configuration Utility User Manual accessible in the GUI via Help/Documentation or at C:\Program Files (x86)\ON Semiconductor\AX-ConfigurationUtility\DOCU.

The AX Configuration Utility will automatically re-calculate the registers to match the newly selected settings.
In particular, when moving from TCXO → XTAL, the GUI will vary the following registers:

  • AX5043_REG_XTALOSC from 0x04 to 0x0D. Increases the transconductance of the XTAL driver.
  • AX5043_REG_XTALAMPL from 0x00 to 0x07. Sets a minimum oscillation amplitude for the XTAL (not needed for TCXO).
  • AX5043_REG_XTALCAP from 0x00 to 0x0C. Enables the loading capacitors (not needed for TCXO).

When changing the reference frequency and the AFC, many registers will change as several parameters are directly derived from the Fxtal. A quick comparison between two different automatically calculated config.c will show the differences.

Once done with the GUI, the project is ready to be imported in the onsemi IDE.

(Note [10-01-2022]: steps below will be automatized with the upcoming release of the AXM0F343-CMSIS-Pack)
The following changes to app.c code should be done once the project is imported inside the onsemi IDE:

  1. line 44, add in the header section: #include "easyax5043.h";
  2. line 185, modify to cmu.hsosc_cal_ref_clk_tcxo_feq = axradio_fxtal;

CMSIS Examples Settings

As mentioned before, the CMSIS examples assume that a 48 MHz TCXO is being used. If a different frequency from 48MHz is used and/or a XTAL is mounted instead of TCXO, some changes will be required by the CMSIS examples. (Note [10-01-2022]: steps below will be automatized with the upcoming release of the AXM0F343-CMSIS-Pack)

  1. Generate a new project in AX Configuration Utility with the desired settings.
  2. Copy the content of the newly generated config.c in the CMSIS example instead of the existing PHY settings (e.g. inside /AXRadio-TX-AXM0F343-64/RTE/Application/phy_1_config.c ).
  3. In app.c:
    • line 44, add in the header section: #include "easyax5043.h" ;
    • line 185, modify to cmu.hsosc_cal_ref_clk_tcxo_feq = axradio_fxtal;

thank you very much for your help