BladeRF Finetuning / EVM

Discussions related to schematic capture, PCB layout, signal integrity, and RF development
Post Reply
polygon
Posts: 4
Joined: Tue Mar 18, 2014 8:51 am

BladeRF Finetuning / EVM

Post by polygon »

I'm currently fine-tuning a bladeRF chain for optimal RF performance and I'm seing some strange issues with the phase and amplitude of the signals.

A first test-signal I transmitted was a complex wave sampled at eight points per full wave (hence, a frequency 1/8th of the sampling frequency). Transmitting this wave at 384MHz gives this result
complex_wave_384MHz.png
Transmitting at 484MHz gives the following result
complex_wave_484MHz.png
For both transmissions, the other parameters are: 19.2MHz samplerate, 20MHz bandwidth, TxVGA1/2: -6/19, RxVGA1/2: 10/0, LNA Gain: MID. The transmission is through a coaxial cable which contains a 20dB attenuator. The transmitter bladeRF is a MIMO clock master for the receiver bladeRF.

The EVM I'm getting is constantly around -21dB to -23dB. However, I was expecting more in the direction of -30dB or -35dB.

For fine-tuning, I already disabled the other PLL (Rx for the TX board and Tx for the Rx board) which already gave a big performance improvement at 384MHz. Furthermore, I enabled the AUTOBYPASS of the fractional part of the PLLs when NFRAC=0 as described in the LMS6002D Programming and Calibration Guide. Before doing this, the results for 384MHz were much worse even.

The errors look like phase noise at a first glance, but especially in the 384MHz case there definitely also is an amplitude error. Any suggestions on what this might be and how I could possibly fix it?
bpadalino
Posts: 303
Joined: Mon Mar 04, 2013 4:53 pm

Re: BladeRF Finetuning / EVM

Post by bpadalino »

It looks like there may be a slowly time varying DC offset in the received samples.

There is an updated calibration routine that should yield more stable DC removal results, especially for the RXVGA2 output, but it still isn't perfect and at very high gains still requires a little IIR filter to remove the residual DC. I can push the routine to a dev branch if you'd like to try it out, but all those calibration routines are still not 100% verified and the loops do take a while to run in case you were doing quick tuning.

How many points did you take to make those pictures? Are you able to verify the output using just a spectrum analyzer versus going back into another bladeRF?

Can you share your received samples on some web space? What does the frequency response of the received samples look like?

Brian
polygon
Posts: 4
Joined: Tue Mar 18, 2014 8:51 am

Re: BladeRF Finetuning / EVM

Post by polygon »

Thanks for the response! Shown here were 50000 samples (roughly 2.5ms). Should not be the DC offset and besides, the result is not much different when having ten times more or less samples.

I've done some more research today to rule out more problems. First I was making sure that the signal coming out of the transmitter board is clean. Firstly, I just transmitted a DC signal which gave me a carrier. On a spectrum analyzer I measured this:

Image

Zooming in:

Image

This all looks relatively clean. I can't really to phase noise measurements with this spectrum analyzer here. That would require a different model and might need a few days/weeks to acquire. Next thing I tried was transmitting the 4-sample complex wave as in the first post. The following spectra are measured:

Image

The center point is the LO leakage which at this point is not compensated. The image rejection is roughly 32dB and should also be fine. There is a small signal at -15MHz which is probably coming from some Tx amplifier going into saturation (probably txvga1) but I can't seem to get it below roughly -55dBm under the desired signal. Zooming in on the desired signal shows:

Image

There seem to be some unwanted signals around the desired signal spaced roughly 40kHz apart. But with 37dB below the desired signal, those are probably fine as well. All in all, I can't see too much that is wrong with the transmitter signal. Replacing the spectrum analyzer with a bladeRF receiver shows the following spectrum:

Image

We see this behaviour on almost all measured spectra of the receiver. Next to the main signal, there seems to be the same signal again roughly 20-25dB weaker and spaced roughly +-230kHz next to the desired signal. It is also very prominent around DC (the spectral line for DC is not visible since the mean of the signal was subtracted before calculating the spectrum). Since this signal has the most power, we tried to find its source with priority but are so far left puzzled. We have also seen these two side-peaks when using a signal generator set to 389MHz instead of the bladeRF transmitter. So we're fairly certain that the problem is not caused by the signal source.

If you want to look at the signals, I've uploaded the transmit and receive signals here as well:

http://files.legxaro.de/bladerf/tx_cwave_4samps.dat
http://files.legxaro.de/bladerf/rcv_cwave_4samps.dat

Thanks so much for your help!
polygon
Posts: 4
Joined: Tue Mar 18, 2014 8:51 am

Re: BladeRF Finetuning / EVM

Post by polygon »

Another update from today. We tested all six boards with a signal generator set to 385.25MHz and the boards set to 384MHz. We then compared the phase of the resulting 1.25MHz complex wave with a digitally generated reference. Three boards had an RMS phase error of roughly 6 degrees while the other three boards were constantly below 1 degree phase error RMS. So we use the good boards as receivers now and the others as transmitters and in this configuration we get an overall phase error of roughly 1 degree RMS. However, it would still be good to find the reason for those performance deviations on three of those boards.
polygon
Posts: 4
Joined: Tue Mar 18, 2014 8:51 am

Re: BladeRF Finetuning / EVM

Post by polygon »

Final update for now:

We managed to get the phase noise of the "bad" boards down to roughly 1.4degrees RMS by tweaking the bias currents of the RX LNA/VGA/Mixer (registers 0x7A, 0x7B, 0x7C). If you see too much phase noise, tweaking this parameters might help.
Post Reply