Project

General

Profile

LMS6002DCalibration » History » Version 4

ipse, 02/19/2016 10:52 PM
Add a note that this page is very outdated

1 1
2 4 ipse
h1. !!!! IMPORTANT NOTE !!!!
3 1
4
5 4 ipse
+*This page is really old. You do NOT need to read it to calibrate your [[UmTRX]]. To calibrate your [[UmTRX]], use the "umtrx_auto_calibration":https://github.com/fairwaves/UHD-Fairwaves/blob/master/host/utils/umtrx_auto_calibration available from the "UHD-Fairwaves git repository":https://github.com/fairwaves/UHD-Fairwaves.*+
6 1
7 4 ipse
8
9
h1. LMS6002D calibration
10
11
12 1
LMS6002D should be calibrated to provide good results. Below we describe our own experience with LMS6002D calibration and any peculiarities we don't want to forget. Hopefully it will be helpful for other LMS6002D users also.
13
14
Most people start reading about the calibration procedures in the "Programming and Calibration Guide" and quickly find out that the description there is somewhat vague. A more hands-on description of calibration procedures can be found in the "EVB Quick Starter Manual" and thus it's recommended reading even if you don't have an LMS EVB.
15
16
LMS6002D calibration involves several parts:
17
18
1. DC calibration procedures:
19
  1. General DC calibration (automatic)
20
  2. DC Offset Calibration of LPF Tuning Module (automatic)
21
  3. Tx LPF DC Offset Calibration (automatic)
22
  4. Rx LPF DC Offset Calibration (automatic)
23
  5. RXVGA2 DC Offset Calibration (automatic)
24
2. LPF Bandwidth Tuning (automatic)
25
3. Tx LO leakage cancellation (manual)
26
4. Tx I/Q balance calibration (manual)
27 4 ipse
5. Tx PLL charge pump current @Icp@ (manual)
28
6. Rx PLL charge pump current @Icp@ (manual)
29
7. _... more to be added here._
30 1
31
32 4 ipse
h2. Automatic procedures
33 1
34 4 ipse
35
36
h3. General DC calibration
37
38
39 1
From "EVB Quick Starter Manual", section 4.5.2:
40
41
 Carries out the top level DC calibration for the device, this is the R component of the RC cal value which is used in each of the LPF (Tx and Rx) process calibration values.
42
43
44 4 ipse
h3. LPF Bandwidth Tuning 
45
46
47 1
From "EVB Quick Starter Manual", section 4.5.1 under "LPF Core Tuning":
48
49
 Executes the process related resistor capacitor (RC) calibration. LPF Core calibration is performed once per device to ensure that the corner frequencies of the LPFs are optimized. The calibration selects the LPF response which is closest and above the required bandwidth. This ensures modulation quality is not adversely impacted but sufficient rejection is provided for adjacent and alternate channel attenuation.
50
51
 This procedure should be run before any other Tx tuning/calibration, as optimum DC calibration values for LPF’s will change if this is done after the filter DC calibration.
52
53
54 4 ipse
h3. Tx LPF DC Offset Calibration
55
56
57 1
From "EVB Quick Starter Manual", section 4.5.1:
58
59
 This makes the DC contribution at output of filters zero so that DC level at the mixer input does not change when the TX VGA1 gain is changed.
60
61
 When executing this calibration make sure that no signal is applied to the transmit path. For better DC calibration low DC level signal can applied from baseband via DAC’s to transmit path.
62
63
64 4 ipse
h3. Rx LPF DC Offset Calibration and RXVGA2 DC Offset Calibration
65
66
67 1
From "EVB Quick Starter Manual", section 4.5.1:
68
69
 This minimizes the DC contribution at output of filters and Rx VGA2.
70
71
 When executing this calibration make sure that there is no signal applied to Rx input.
72
73
74 4 ipse
h2. Manual procedures
75 1
76 4 ipse
77
78
h3. Tx LO leakage calibration
79
80
81 1
Described in section 4.8 of the "Programming and Calibration Guide" and in section 6.1 of the "EVB Quick Starter Manual".
82
83
Performed in LMS6002D.
84
85
Near the optimum point even change of calibration registers by 1 makes big difference. When you're far off, a change of a calibration register could be almost unnoticeable.
86
87
88 4 ipse
h3. Tx I/Q balance calibration
89
90
91 1
Described in section 4.10 of the "Programming and Calibration Guide" and in section 6.2 of the "EVB Quick Starter Manual".
92
93 4 ipse
Performed in baseband, i.e. in UHD in the [[UmTRX]] case.
94 1
95 4 ipse
UHD stores its I/Q compensation values in a file under the @${HOME}/.uhd/cal/@ file under @*@nix and under the @%APPDATA%\.uhd\cal\@ under Windows. With the current version of UHD the file name is @tx_iq_cal_v0.1_<serial>.csv@. The file name is constructed in the @apply_fe_corrections()@ function in @lib/usrp/common/apply_corrections.cpp@.
96 1
97
UHD resets I/Q imbalance compensation values in the FPGA on startup, so you have to use this file to compensate I/Q imbalance. Setting those values manually before you run your application won't have any effect.
98
99 4 ipse
To manually calibrate your [[UmTRX]]:
100 1
101
1. Copy this text into the aforementioned file:
102 4 ipse
<pre>
103 1
name, TX Frontend Calibration
104
serial, 0
105
timestamp, 1335295846
106
version, 0, 1
107
DATA STARTS HERE
108
lo_frequency, correction_real, correction_imag, measured, delta
109
232.5e+06, -0.6, -0.55, 0, 0
110 4 ipse
</pre>
111 1
2. Tune LMS6002D to the desired frequency.
112 4 ipse
3. Transmit 1MHz sine, e.g. using @tx_waveforms@. Write down level of the unwanted (lower) sideband.
113 1
4. Change -0.6 and -0.55 values until you get the smallest level of the unwanted sideband. This will correspond to the minimum I/Q imbalance.
114
115 4 ipse
*To-do*: This calibration could be done automatically using @uhd_cal_tx_iq_balance@, but to do that we have to 1) implement PLL tuning in UHD and 2) implement RF loopback controls for LMS.
116 1
117
118 4 ipse
h3. Tx PLL charge pump current @Icp@
119 1
120 4 ipse
121
*Control*: Register 0x16, default @Icp@=1200mA.
122
123
Charge pump current affects LMS' internal PLL phase noise and we found that @Icp@=1900mA provides the best Tx phase noise performance.
Add picture from clipboard (Maximum size: 48.8 MB)