Method #2 for tuning?

We are trying to use GPIO method of checking and tuning CW center frequency, so far have had no luck seeing output on GPIO0 pin 38; Can you make any suggestions as to what we might be missing;



I had to set these registers before radio initialization.
Please see device logs below.

[uwb-radio] [INF] deca_en_output_sysclk: GPIO_CTRL:de000000, PMSC_ID:f0300200 before
[uwb-radio] [INF] deca_en_output_sysclk: GPIO_CTRL:de000800, PMSC_ID:f0300201 after

Not directly answering your question, but here is a suggestion:

Use a near field probe and spectrum analyzer to sense 499.2 MHz. If you place the near field probe right over the DW1000, you can clearly see the PLL output of 499.2 MHz. The signal might be strong enough for some frequency counters if you don’t have a spectrum analyzer.

The beauty of this method is that it requires no connection to the device under test, and it requires no special software or setup, just that the DW1000 has the PLL operating (IDLE or above mode) which is often the natural case. Observe the 499.2 MHz signal and then adjust XTAL-TRIM until you get it near ideal.

Instead of 499.2 MHz, you can look for 124.8 MHz as well. Usually the 499.2 is easier to see in our experience. If you do enable the GPIO0 clock output, it operates at 62.4 MHz and you can see that as well with a near field probe, but there’s really no point to doing that IMO.

You can also near field the CW signal (say ch 5, 6489.6 MHz) as well. This requires putting the DW1000 into CW mode, of course. Outside of CW mode, there is no viable way to check carrier centering as the UWB signal is way too wide to make any such determination.

The use of a near field probe can help you check the health of the clock system on a DW1000 which is absolutely critical to proper function.

Observing the 38.4 MHz clock tells you if you are getting a good clock input and what is its offset from ideal. This check doesn’t involve any PLLs.

Observing the 124.8 MHz or 499.2 MHz clock shows you the health of the first PLL that most of the DW1000 depends on. By looking at the spectrum, you can see if it is sharp or has side lobes and/or broad width. This indicates a bad input clock (noisy, say), or bad PLL loop filter on CLKTUNE.

Observing the carrier in CW mode (depends on what frequency you select, channel 5 is 6489.6 MHz) tells you about the second PLL health and PLL filter on VCOTUNE.

You can buy near field probes, or you can make one. Take an SMA connector and put a small loop of wire on it. Presto, near field probe. A two turn loop of about 10 mm diameter is just about ideal for 499.2 MHz.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
+1 812 962 9408

Perhaps more on point with the original request, there are other methods for XTAL_TRIM calibration which require very little equipment (no spectrum analyzer) and no use of GPIO0 62.4 MHz output (which has to be measured in some way, so some connection and equipment). It would be best if you didn’t need expensive equipment and didn’t need to connect to the device under test.

The basic idea is to compare the timing of the node under test with a known accurate node, say one with a TCXO, or a node modified with an OCXO for even better accuracy, or a stable signal generator. So many things in the DW1000 are tied to the clock that all you need to do is find something to compare between nodes.

Idea #1:

Have the device under test transmit two packets with a precise SYS_TIME spacing. Receive those two packets at the known good node and record the receive times. The difference in the two transmit times and two receive times indicate the crystal offset and XTAL_TRIM can be adjusted.

Example using made up numbers:

DUT transmits at 0x00 0000 0000
DUT transmits at 0x00 03cf 0000

Delta time of 63,897,600 ticks.

Known device receives at 0x23 4562 9b4c
Known device receives at 0x23 4931 9b8b

Delta time of 63,897,663 ticks.

The receive measured delta time is greater by 63 ticks, which means the device under test is slow by 1 ppm.

You can also do this the other direction, transmit from the known device to the device under test. This method is highly accurate either way given the ~100 ps time noise in the time measurement. For example, for about 0.1 ppm accuracy, you need to send packets every 1 ms which is plenty for XTAL_TRIM work.

Idea #2:

The DW1000 has some offset measurement features such as DRX_CAR_INT and RX_TTCKO. Have one node transmit to the other and then use those features to measure the offset in the two nodes. Adjust XTAL_TRIM for best fit.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
+1 812 962 9408