FreeCalypso > hg > fc-rfcal-tools
annotate doc/Tx-cal-theory @ 107:8205ce02eb44
txlevels/fcom1-1900: we are now able to get the full 30 dBm
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 13 Feb 2018 00:30:35 +0000 | 
| parents | 16aab86384a7 | 
| children | 7bcbbba94c41 | 
| rev | line source | 
|---|---|
| 
66
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 The Tx power levels put out by a GSM mobile station are subject to strict | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 specifications, and on the Calypso+Iota+Rita chipset they are produced by | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 writing different values into the APC DAC register. But what value should be | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 written into the APC DAC in order to produce a given Tx power level in dBm? | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 The answer varies from one produced device unit to the next, and even more from | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 one board design to the next, hence these APC values need to be calibrated. | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 The general procedure for calibrating Tx power levels is described in both Sara | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 and LoCosto calibration documents (see TI-docs), but the LoCosto document adds | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 one crucial detail which the Sara one fails to describe. The instructions given | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 in the Sara document appear to be perfectly intuitive at first: go through all | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 power levels in turn (PL numbers 5-19 for EGSM and GSM850 or 0-15 for DCS and | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 PCS), and for each power level command the DUT to transmit at that level, | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 measure the actual Tx output power with the CMU200 or other RF test equipment, | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 and adjust the APC DAC value up or down to make the output power match the spec. | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 The problem is with the very last part: the output power you get with the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 compiled-in APC DAC value is one number, the spec-defined target power is a | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 different number, exactly how do you adjust the APC DAC value to hit the target | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 power level? | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 The LoCosto document gives the answer which was not at all obvious to me at | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 first. I draw the reader's attention to section A.3.1 on page 43 of that | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 document. The trick is as follows: the relation between the APC DAC value and | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 the resulting Tx output power (or rather the equivalent in terms of voltage) is | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 modeled as a piecewise linear function, and this piecewise linear function is | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 constructed from a preliminary set of output power measurements with a fixed | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 set of APC DAC values. | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 We also have a strong piece of evidence that the Tx power level calibration | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 procedure performed by Openmoko at their factory was based on the same principle | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 as the LoCosto document version. If you look at the /gsm/rf/tx/levels.900 table | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 in Om-calibrated GTA02 units and compare it against the firmware's compiled-in | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 version, you will see that the APC DAC values for power levels 5-19 have been | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 replaced with calibrated ones as expected, but there is also this oddity: the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 APC DAC value for power level 0 (not a valid number for this band) has been | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 replaced with 600. Always 600, a perfect round number, on every unit. | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 Having understood the calibration method described in the LoCosto document, the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 mystery of this fixed number 600 becomes clear: the calibration program | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 establishes the basis for the calibration by temporarily overwriting the APC DAC | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 value in the power level 0 slot with a series of fixed values, 600 being the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 last of them. It constructs the piecewise linear model for the APC from power | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 measurements made with these fixed DAC values, and uses this model to compute | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 the DAC value for each target power level. The latter DAC values are then | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 written into Tx levels table slots 5-19 for EGSM and GSM850, or 0-15 for DCS | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 and PCS. In the case of DCS and PCS no visible artifacts remain from the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 calibration basis run (because slot 0 is a valid power level for these bands), | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 but an artifact remains in the levels.900 table in the unused slot 0. | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 | 
| 
98
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
51 Target power level numbers | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
52 ========================== | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
53 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
54 Ideally the power level numbers to be used as the targets for the calibration | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
55 process would be the levels given in the GSM 05.05 spec: from 33 dBm down to | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
56 5 dBm for the EGSM and GSM850 bands or from 30 dBm down to 0 dBm for DCS and | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
57 PCS, in 2 dBm steps in each case. However, the evidence from TI's calibration | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
58 documents (both Sara and LoCosto) is that some devices are not able to produce | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
59 the very highest and sometimes the very lowest power levels given in the spec, | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
60 and getting a successful calibration requires setting the calibration targets | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
61 to slightly shifted numbers, although still within the tolerances allowed by | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
62 the GSM 05.05 spec. The table in TI's Sara calibration document (page 26) has | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
63 the highest power level reduced by 1.2 relative to the spec, the next highest | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
64 by 0.5, whereas the lowest 4 (EGSM) or 6 (DCS) levels are raised and compacted | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
65 together. The table in the LoCosto document (page 44) has the highest power | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
66 level for each band reduced by 0.8, making it 32.2 dBm for EGSM and GSM850 and | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
67 29.2 dBm for DCS and PCS, while all other levels are set to the spec numbers. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
68 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
69 In my own experience with getting the Tx power levels calibrated on our current | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
70 FCDEV3B boards, our hardware is able to hit all of the lowest spec power levels | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
71 with good margin (the APC DAC value never goes below the 60-70 range), hence | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
72 the low targets did not need to be shifted, but the highest spec power level | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
73 could not be achieved in every band. Following TI's practice with LoCosto, I | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
74 set the highest power level target to 32.2 dBm for the EGSM band and to 29.2 dBm | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
75 for PCS, but I was consistently able to get the full 30 dBm out in the DCS band, | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
76 hence I set the DCS band highest power level target to the official number of | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
77 30 dBm. It needs to be emphasized, however, that these results are quite | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
78 specific to our current flock of FCDEV3B hardware, and your results will most | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
79 likely be different if you are working with a different hw design such as a | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
80 non-FreeCalypso derivative of Openmoko's GTA02 design. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
81 | 
| 
103
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
82 Update: the above calibration observations for the FCDEV3B should be held | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
83 doubly in doubt because the calibration status of my CMU200 itself is in | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
84 question, i.e., it is not currently known if the measurements it reports are | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
85 really trustworthy. After the above paragraph was written, I replaced the | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
86 Rx/Tx module inside my CMU (the original one was good for Rx, but the Tx side | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
87 was dead), and after this internal module replacement the power measurements | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
88 reported by the instrument are 0.5 dB less than what it reported before. Which | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
89 raises the questions: are the new measurements low by 0.5 dB relative to the | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
90 real truth, or were the old ones high by 0.5 dB relative to the real truth? Or | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
91 is the real truth something else altogether? Until we raise a LOT more money | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
92 to get this CMU200 properly calibrated, we are limited to guesswork and the | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
93 true transmitter behaviour of our FCDEV3B hardware remains unknown. | 
| 
 
16aab86384a7
doc/Tx-cal-theory: update regarding our current FCDEV3B calibration
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
98 
diff
changeset
 | 
94 | 
| 
98
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
95 Profiles for Tx levels calibration | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
96 ================================== | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
97 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
98 Our fc-rfcal-txband program that performs the actual per-unit calibration of Tx | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
99 power levels for each band requires a preconfigured txlevels calibration profile | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
100 for each band as one of its inputs; if you are performing calibration on | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
101 individual units of a board design for which the correct profiles have already | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
102 been crafted, you simply use those given profiles (fcom1 for our current flock | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
103 of FCDEV3B boards), but if you are doing Tx power level calibration on a new | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
104 board design for the first time, you first need to characterize the Tx output | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
105 level behaviour of your new board design and craft the appropriate set of | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
106 profiles. | 
| 
66
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 | 
| 
98
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
108 The profiles for txlevels calibration reside in /opt/freecalypso/rfcal/txlevels; | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
109 each per-band profile is sought in a file named profile_name-band_number, where | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
110 profile_name is the profile name argument given to fc-rfcal-txband and | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
111 band_number is one of 850, 900, 1800 or 1900. For example, the profile set for | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
112 our current FCDEV3B hardware is named fcom1 ("FreeCalypso hardware, Openmoko- | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
113 based, version 1"), this hw platform is 900/1800/1900 MHz triband, and the | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
114 individual profile config files are fcom1-900, fcom1-1800 and fcom1-1900. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
115 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
116 Each profile provides two key pieces of data: the list of fixed APC DAC values | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
117 to be used as the basis set for constructing the piecewise linear model, and | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
118 the list of power levels in dBm that will be the targets for the calibration. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
119 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
120 Crafting the txlevels calibration profiles for a new board design | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
121 ================================================================= | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
122 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
123 If you are working with a new (or new-to-you) board design with no previous Tx | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
124 levels calibration experience, you need to begin by characterizing its Tx | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
125 output level behaviour so you can determine what APC values are appropriate for | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
126 the basis set, whether or not you need to shift the highest and/or lowest | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
127 target levels from their nominal spec values, and if some target shifting is | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
128 needed, which levels need to be shifted and by how much. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
129 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
130 The tool you will need for this investigation is fc-rfcal-txbasis. It requires | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
131 fc-cmu200d and rvinterf to be running, talking to the CMU200 and to the DUT, | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
132 respectively, and it takes the band number (850/900/1800/1900) and a set of | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
133 APC DAC values on the command line; no pre-existing txlevels profile is needed. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
134 It commands the DUT to transmit at each of the specified APC DAC values in turn | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
135 and reports the power output levels measured by the CMU200. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
136 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
137 VERY IMPORTANT: You need to be very sure that your CMU200 or other measuring | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
138 instrument is itself in good calibration standing, i.e., that the measurements | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
139 it reports are trustworthy, and that the insertion loss in your cabling setup | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
140 (all the way from the actual DUT's antenna connector or RF test port to your | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
141 CMU200) really matches the numbers you have put in your cable configuration file | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
142 (see Cable-config-howto). If you fail to ensure these prerequisites, your | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
143 fc-rfcal-txbasis observations will be meaningless, as the cable insertion losses | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
144 are typically of the same order of magnitude as the transmitter differences you | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
145 are trying to determine. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
146 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
147 You will need to run fc-rfcal-txbasis with a guesstimated set of APC DAC values, | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
148 to be revised iteratively, and get a feel for what your DUT is putting out. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
149 Are you able to hit the lowest spec power level consistently while the APC DAC | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
150 value remains well above zero? Are you able to hit the highest spec power level | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
151 as well, or does the measured power output fall short of this target no matter | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
152 how high you crank the APC DAC? These observations will tell you whether or not | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
153 you need to shift the highest and/or lowest target power levels in your new | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
154 txlevels calibration profile. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
155 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
156 Regular calibration runs | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
157 ======================== | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
158 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
159 Once you have a good set of profiles for the type of Calypso GSM device you are | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
160 calibrating, just run fc-rfcal-txband with the band number and the name of your | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
161 profile. | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
162 | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
163 Checking existing calibration | 
| 
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
164 ============================= | 
| 
66
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 fc-rfcal-txcheck is a completely non-invasive program (does not make any writes | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 to any L1 RF tables or to FFS) that steps through all power levels for the | 
| 
 
8e675142cca7
doc/Tx-cal-theory written
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 specified band (5-19 for EGSM or GSM850, or 0-15 for DCS or PCS), performs a | 
| 
98
 
615df2fb1ec3
doc/Tx-cal-theory: update with both theory and practice
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
66 
diff
changeset
 | 
169 power measurement at each level, and displays the measured result. | 
