FreeCalypso and CMU200 update

Mychaela Falconia mychaela.falconia at gmail.com
Sun Jul 16 18:43:23 UTC 2017


Hello FC community,

Although I haven't got the main signal generator on my CMU200 repaired
yet (the replacement RxTx module I bought on ebay is still on its way
to me from Israel), I have made some good progress with the calibration
of Tx power levels on FCDEV3B boards: for this calibration function
the CMU200 acts as an RF signal analyzer (measuring power levels), not
a generator, hence I can make progress in this direction without
waiting for the broken part of my CMU200 to be fixed.

Here is the fc-rfcal-txband output for the 900 MHz band on one of my
FCDEV3B boards:

Preparing RF test system for 900 MHz Tx calibration
Putting the DUT into Test Mode
Initializing calchan table
Performing the calibration basis run
Starting RF Tx on the DUT
APC DAC=70: 2.21 dBm
APC DAC=100: 10.28 dBm
APC DAC=150: 16.54 dBm
APC DAC=200: 20.14 dBm
APC DAC=300: 24.84 dBm
APC DAC=400: 27.80 dBm
APC DAC=500: 29.94 dBm
APC DAC=600: 31.66 dBm
APC DAC=700: 32.20 dBm
APC DAC=750: 32.28 dBm
Stopping RF Tx on the DUT
Calibrating Tx power levels
Starting RF Tx on the DUT
Tx power level #5: target 32.2 dBm, APC=702, meas 32.19 dBm (-0.01)
Tx power level #6: target 31.0 dBm, APC=559, meas 31.03 dBm (+0.03)
Tx power level #7: target 29.0 dBm, APC=452, meas 28.98 dBm (-0.02)
Tx power level #8: target 27.0 dBm, APC=369, meas 26.97 dBm (-0.03)
Tx power level #9: target 25.0 dBm, APC=304, meas 24.94 dBm (-0.06)
Tx power level #10: target 23.0 dBm, APC=254, meas 22.96 dBm (-0.04)
Tx power level #11: target 21.0 dBm, APC=214, meas 20.92 dBm (-0.08)
Tx power level #12: target 19.0 dBm, APC=181, meas 19.02 dBm (+0.02)
Tx power level #13: target 17.0 dBm, APC=155, meas 16.93 dBm (-0.07)
Tx power level #14: target 15.0 dBm, APC=134, meas 14.87 dBm (-0.13)
Tx power level #15: target 13.0 dBm, APC=117, meas 12.80 dBm (-0.20)
Tx power level #16: target 11.0 dBm, APC=104, meas 10.89 dBm (-0.11)
Tx power level #17: target 9.0 dBm, APC=93, meas 8.89 dBm (-0.11)
Tx power level #18: target 7.0 dBm, APC=84, meas 6.87 dBm (-0.13)
Tx power level #19: target 5.0 dBm, APC=77, meas 4.78 dBm (-0.22)
Stopping RF Tx on the DUT
Saving calibrated values in FFS

The calibration process is fully automated (the program talks both to
the CMU200 and to the DUT), and the above is simply what it printed on
stdout, captured with tee.  The program first measures the DUT's
output (with the CMU200) at a bunch of fixed APC DAC values, then it
uses these measurements to construct a piecewise linear model for the
Tx output as a function of the APC DAC value, and finally it uses this
constructed piecewise linear model to compute the APC DAC value for
each target output power level.  The final check with the CMU200 as
the DUT actually transmits at the computed APC DAC values confirms
that the actual output power levels are very close to the specified
targets.

The numbers for the DCS and PCS bands look just as good as the ones I
quoted above for 900 MHz, but there are some caveats:

* The calibration program unfortunately lacks psychic powers, hence if
  the CMU200 or other measuring instrument is itself out of calibration
  or if the dB loss in the connecting coax is different from what the
  program was told, there will be a discrepancy between what the DUT
  actually puts out and what the program thinks it puts out, and the
  program will steer the output power levels to the wrong targets.

* The loss in the coax between the CMU200 or other measuring instrument
  and the DUT cannot be neglected, it needs to be accounted for.  My
  calibration programs now have a provision for entering these cable
  loss numbers, but once again there is no reliable way of knowing if
  the numbers I put in are actually correct.

The coax I currently use is a 6 ft long piece of RG-316 with an N
connector on one end for the CMU200 and an SMA on the other end for
the DUT.  I got it on ebay for dirt cheap, so it most certainly is not
a high-end metrology-grade cable.  I found this site for the cable
loss estimate:

http://www.timesmicrowave.com/calculator/

Having entered the cable type as RG-316, the length as 6 ft and the
center frequency of each band, I got the following numbers:

cable-loss 850ul 1.5
cable-loss 850dl 1.5
cable-loss 900ul 1.5
cable-loss 900dl 1.6

cable-loss 1800ul 2.2
cable-loss 1800dl 2.2
cable-loss 1900ul 2.3
cable-loss 1900dl 2.3

(Yes, the above is the cable config file syntax my program takes.)
These numbers are what my Tx power levels calibration has been run
with, but naturally I have no way of knowing if these loss numbers are
actually correct for my coax for these frequencies and for the power
levels in question, nor do I have any way of knowing if the power
level measurements reported by my CMU200 are indeed within 0.5 dBm of
the true value like they are supposed to be per CMU200 specs.

One additional oddity deals with the highest Tx power level for each
band.  Per the spec (GSM 05.05) it is supposed to be 33 dBm for the
900 MHz band and 30 dBm for the DCS and PCS bands, but as you can see
in the quoted output above, the measured Tx output from the FCDEV3B in
the 900 MHz band never goes any higher than somewhere in 32.2 to 32.5
dBm range, no matter how high I crank the APC DAC, so I set the
calibration target for 900 MHz Tx power level #5 to 32.2 dBm instead
of the spec value of 33 dBm.

As it turns out, we are not the first ones to run into this issue, it
appears that TI themselves were dealing with something similar.  Look
at Table 4.8 on page 44 of this TI document:

https://www.freecalypso.org/LoCosto-docs/Production%20test%20and%20calibration/i_sample_rf_test_and_calibration_13_03_04_01991%20-%20v026.pdf

See how they set the calibration target for the highest power level to
32.2 dBm for the 850 and 900 bands and to 29.2 dBm for DCS and PCS.
With my current flock of FCDEV3B boards I am consistently able to get
the full 30 dBm out in the 1800 MHz band, so I set the 1800 band target
to the full 30, but in the PCS band at least one of the boards is not
able to hit the full 30 dBm, so I set the 1900 band target to 29.2 dBm.
(These targets are set in configuration files, not hard-coded.)

At this point I don't know if our current inability to get the full
33 dBm out in the 900 MHz band and the full 30 dBm out in the PCS band
and the resulting need to set the calibration targets to 31.2 and 29.2
dBm respectively is a true limitation of our hardware, or a measurement
artifact: perhaps the actual insertion loss in my coax setup is greater
than the estimate I run with, or perhaps my CMU200 is out of calibration
and reports numbers that are consistently lower than the truth.

Getting my CMU200 calibrated (or at least getting its calibration
checked against a trustworthy reference) and getting the coax cable
loss precisely under control (which would likely involve needing to
replace my current cheap coax with a fancy expensive metrology-grade
one) will probably require a massive investment of time, effort and
cost.  On the other hand, our current priority for FreeCalypso should
be getting our next batch of FCDEV3B boards made.  Given this priority
situation, I have decided to not treat the less-than-perfect status of
our current calibration as a blocker, i.e., to allow myself to proceed
with assembling the next batch of FCDEV3B boards with our calibration
capabilities being in their present state.

With our current calibration capability I can now rapidly test the RF
tract of a newly assembled board in all 3 bands in both Rx and Tx
directions, and immediately catch any defects.  As a point of reference,
out of the 5 boards I have left from the first batch, S/N 001 has a
broken 900 MHz Tx path (cannot put out any more than about 3 dBm max)
and S/N 002 appears to have a totally dead RF tract.  Both defects
were only caught in late May, almost two months after the boards were
assembled, and the 3 boards that went out to Das Signal, Harald Welte
and Serg weren't tested for all 3 bands either to the best of my
recollection, so there may be more defects out there which I am not
aware of.  Now that we have automated Rx band and Tx band calibration
software with the calibration procedure also serving as a hardware
pass/fail test, we won't have any more such undetected defects in the
future.

Aside from the pass/fail test aspect, with our current less-than-
perfect calibration capability I will be able to send boards out with
calibration that may not be perfect, but should be good enough for
practical use.  The GSM 05.05 spec gives an error tolerance of 2 dBm
for the highest Tx power level and even looser tolerances for lower
levels, and I while my current calibration isn't perfect, I doubt that
it can be off by as much as 2 dBm - so we are probably within the spec.

With RF calibration out of the way, the list of remaining issues to be
solved before we can assemble the next batch of FCDEV3B boards is now
down to:

* I need to perform a few board rework experiments to see if we can
  solve the sleep mode bug.  On our current boards we have to disable
  sleep modes with at%sleep=0, otherwise the board spontaneously
  reboots on its own; it must be a problem somewhere in the power
  supply circuits, and I have a few points of suspicion which I would
  like to test with relatively simple rework experiments.  If there is
  a rework that can fix the problem, I would naturally desire to
  assemble our next batch of boards with this rework incorporated from
  the start.

* I still haven't exercised the loudspeaker driver and microphone
  input circuits on our boards.  I would like to exercise them before
  assembling the next batch: if there are any changes needed to those
  circuits (e.g., different R or C values), we should know about them
  before we assemble our next batch so we can populate the new boards
  correctly from the start.

* I need to look into the SIM socket reliability problem.  Two boards
  out of the first batch have non-working SIM sockets, and I need to
  have Technotronix examine these boards to see what the problem is,
  so we won't have a bunch of unusable boards in our next batch
  because of this SIM socket issue.

The next step I am taking toward the above goals is that starting
tomorrow I will seek to get a hold of my contact at Technotronix, and
once I get a hold of him, I will seek to schedule some time soon
(hopefully this coming week) to bring the boards in and do my planned
rework experiments.

Hasta la Victoria, Siempre,
Mychaela aka The Mother


More information about the Community mailing list