IQ Imbalance Calibration

Greetings.

While reading the Calibration Guide in order to try to understand the process behind IQ Imbalance correction, I found the following sentence: “(…) Algorithm is then simple. First, alter on chip analog IQ phase correction parameters if available to minimize RSSI output.(…)”. However, I can’t find the registers associated to these analog IQ phase correction parameters. So far, the only parameters I have found are the digital Gain corrections and the digital phase corrections in both the TxTSP and the RxTSP logic blocks.

Are these the only parameters that are actually optimally changed when an IQ Imbalance Calibration must be done or am I missing some more sophisticated and accurate analog parameters?

Thanks

Tagging @andrewback to obtain a reply.

@Zack or @IgnasJ are better positioned to advise on such matters.

1 Like

Correct. Use these registers for IQ Imbalance correction.

@Zack,

Thanks for the reply. Indeed those were the registers I was working with and I have obtained some very good calibration results, compared to the stock calibration for the frequency range 20MHz-60MHz.

However, sometimes I start to receive a lot of “Write Param (64 byte) failed” and “Read Param (64 byte) failed” that crashes the application I’m developing. It is less likely for those errors to occur when I connect the LimeSDR and run the binary search algorithms after a long time inactive. Do you have any guess why this is happening or on how can I solve it? I’ve run the prompt command “LimeUtil --update” and the problem persists. I’ve also got the latest version from github but with no luck.

Thanks

Hi @OCB,

What board do you use and how it is connected to computer?

I use a LimeSDR v1.4 and is connected through a USB 3.0 cable. It is 18 months old and already has some rusty components, literally. This type of behaviour wasn’t common before. Now it seriously limits the development of apps with it.

I would suggest to try another USB cable.

Rusty components? Can you share a photo, please. This sounds very odd. I have multiple prototypes and early production LimeSDR boards and not one has rusty components. I cannot see how this has happened unless it’s an extremely humid environment. Saying that, some of the aforementioned older boards are stored in an unheated workshop area where it gets up to 80%RH at times…

Here is the photo. As you can see, at least those two components next to the FPGA and the USB3.0 MCU are getting rusty. And the board does not work on an extremely humid environment