Request for help with VCTCXO measurements

Harald Welte laforge at
Wed May 5 11:41:19 UTC 2010

Hi all!

Right now, one of our many issues in L1 is the frequency stability
(or lack thereof).

What we do right now is very primitive and is mostly based on guesswork,
rather than measurements and good algorithms.

In order to change this, we need some measurements to be done.  As I am
currently again travelling a lot, and my time for OsmocomBB is more
limited now, I hope that somebody else will be able to take the
measurements as described below.

There is a big number of people in this project who now have a Racal 6103 (or
similar) measurement device.  Also, for those in Berlin, the CCC Berlin has 
one in its basement lab.

What needs to be done:

1) Determine the relation between AFCDAC output and actual carrier

All that is needed is some manual control over the AFCDAC value (e.g. based on
keypad events) while the AFC is disabled.

Then we continuously transmit bursts (content is unimportant) to the
Racal 6103 and note the measured frequency error by the 6103 for every
AFC value that we input.  Those measurements should then be repeated
for each supported band of the phone, preferrably each with a low-frequency
channel, a medium frequency and a high-frequency channel.

This means something like 10 different AFC values for 3 different channels
of each of the 2 bands that the c123/c155 support.

Basd on those measurements (preferrably do that series with 2-3 phones)
we can construct a function that will tell us which AFCDAC value we
should program if we want a given carrier frequency increase/decrease.

2) Determine the temperature related frequency drift and corresponding
   temperature ADC reading

Especially when we transmit, the temperature in the RF section of the
phone is assumed to change quite a bit.  This means we need to measure
the temperature in the oscillator (using the RITA-internal temperature
sensor connected to one of the ADC channels of IOTA) and compare that
with the frequency drift.

In order to measure this, we first need a temperature-ADC driver. Once
that exists, we can lock onto a BCCH, then make sure the AFC is disabled
and the AFCDAC output value will be stable.  Next, one can use e.g. a
hairdryer or ice spray to change the temperature.  While doing that, we can
measure the difference in carrier frequency with the Racal 6103.

The absolute temperature in centigrade/kelvin is not actually interesting to
us all.  All we want to know is: What is the 6103-measured frequency error at
a given temperature-ADC-reading.

Once again, the measurements should be done for high (1800) and low (900)
band independently, just to be sure.

Based on their relation we can also model a function, table or other
approximation and include that in our AFC code.

I think I'll be able to write the code even while I'm on the road - if
somebody is able to do the measurements and post them to the mailing list.

Thanks in advance,

- Harald Welte <laforge at> 
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)

More information about the baseband-devel mailing list