High phase noise on Lime xtrx

I have an lime xtrx v1.2 board. If apply a sine wave to the input, the timing diagram shows high phase noise. I think this is due to the instability of lo. Please tell me how to fix this. The temperature of the board at the time of the test is 40 degrees.



Same test with USRP B200:

update:
with gw 1.2 signal is much better but there is also phase noise and i can not set max sample rate

[12:14:10] INFO: Sampling rate set(110.000 MHz): CGEN:440.000 MHz, Decim: 2^8, Interp: 2^8
[12:14:10] ERROR: PLL Clock[1] PHCFG_START error, reg:0x0021=0x000D, errorBits:0x0008
[12:14:10] ERROR: PLL Clock[1] PHCFG_START error, reg:0x0021=0x000D, errorBits:0x0008
[12:14:10] ERROR: LML TX phase search FAIL


same signal with gw 1.19

Hi @mll2,

I think the issues that you are seeing is discontinuity in received data due to high sample rate and host inability to process everything. On your screenshot RX buffer status indicates that it is constantly full. If you try to check box “Freeze FFT” probably Buffer status will no longer indicate full RX buffer and discontinuities should be gone.

Regards,
Vytautas

Hi, @VytautasB,

I see same problem with lower sample rate (10MS/s)

I wrote a simple program to record files and check stream state, there are no lost samples

Which LimeSuiteNG version (git hash) you are using?

i tried latest 0.2.0-ge66f6c98 master and stable 0.2.0-gb458fa1d
same result

The Rx data transfer is managed by the board hardware, and the data buffers are looped, so if Software cannot keep up reading data buffers, they will be overwritten by the hardware creating a discontinuity.

Did you compile the software in “Release” or “Debug” configuration?

with the board configured you can run in the command line limeTRX --log=debug it will show more internal counters of what’s going on in regards to data transfer, like:

/dev/limepcie1/trx0 Rx0: 30.632 MB/s | TS:9999360 pkt:39060 o:0(+0) l:0(+0) dma:13020/13024(+4) swFIFO:0
Samples received: 10043392
Samples received: 15056896
/dev/limepcie1/trx0 Rx0: 30.632 MB/s | TS:20001792 pkt:78132 o:0(+0) l:0(+0) dma:26044/26048(+4) swFIFO:0
Samples received: 20070400
Samples received: 25083904
/dev/limepcie1/trx0 Rx0: 30.632 MB/s | TS:30004224 pkt:117204 o:0(+0) l:0(+0) dma:39068/39072(+4) swFIFO:0

I compile for this instruction GitHub - myriadrf/LimeSuiteNG (linux).
Tried force set flag CMAKE_BUILD_TYPE=Release - same result. I see this discontinuity on lower sample rate (10ms/s), 10Ms/s to low for overflow.


result for limeTRX --log=debug

FPGA: StopStreaming
FPGA: StopWaveformPlayback
FPGA: ResetPacketCounters
FPGA: ResetTimestamp
Rx0 Setup: usePoll:1 rxSamplesInPkt:1360 rxPacketsInBatch:4, DMA_ReadSize:16192, link:I12, batchSizeInTime:0us
SetOSThreadPriority: Failed to set priority(6), sched_prio(2), policy(1), ret(99)
RxSetup wait for Rx worker thread.Rx worker thread ready.

FPGA: StartStreaming
Rx receive loop start.
Samples received: 16384
Samples received: 5013504
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:9977856 pkt:7424 o:0(+0) l:0(+0) dma:1856/1860(+4) swFIFO:0
Samples received: 10027008
Samples received: 15040512
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:19993344 pkt:14876 o:0(+0) l:0(+0) dma:3719/3720(+1) swFIFO:1
Samples received: 20054016
Samples received: 25067520
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:29992704 pkt:22316 o:0(+0) l:0(+0) dma:5579/5580(+1) swFIFO:1
Samples received: 30064640
Samples received: 35078144
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:39997440 pkt:29760 o:0(+0) l:0(+0) dma:7440/7444(+4) swFIFO:0
Samples received: 40091648
Samples received: 45105152
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:50007552 pkt:37208 o:0(+0) l:0(+0) dma:9302/9304(+2) swFIFO:2
Samples received: 50118656
Samples received: 55115776
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:60017664 pkt:44656 o:0(+0) l:0(+0) dma:11164/11164(+0) swFIFO:1
Samples received: 60129280
Samples received: 65142784
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:70017024 pkt:52096 o:0(+0) l:0(+0) dma:13024/13028(+4) swFIFO:0
Samples received: 70156288
Samples received: 75169792
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:80032512 pkt:59548 o:0(+0) l:0(+0) dma:14887/14888(+1) swFIFO:2
Samples received: 80183296
Samples received: 85180416
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:90031872 pkt:66988 o:0(+0) l:0(+0) dma:16747/16748(+1) swFIFO:1
Samples received: 90193920
Samples received: 95207424
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:100036608 pkt:74432 o:0(+0) l:0(+0) dma:18608/18612(+4) swFIFO:0
Samples received: 100220928
Samples received: 105234432
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:110041344 pkt:81876 o:0(+0) l:0(+0) dma:20469/20472(+3) swFIFO:1
Samples received: 110231552
Samples received: 115245056
/dev/limepcie0/trx0 Rx0: 30.122 MB/s | TS:120056832 pkt:89328 o:0(+0) l:0(+0) dma:22332/22336(+4) swFIFO:0
Samples received: 120258560
Samples received: 125272064
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:130066944 pkt:96776 o:0(+0) l:0(+0) dma:24194/24196(+2) swFIFO:2
Samples received: 130285568
Samples received: 135282688
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:140077056 pkt:104224 o:0(+0) l:0(+0) dma:26056/26056(+0) swFIFO:1
Samples received: 140296192
Samples received: 145309696
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:150076416 pkt:111664 o:0(+0) l:0(+0) dma:27916/27920(+4) swFIFO:0
Samples received: 150323200
Samples received: 155336704
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:160081152 pkt:119108 o:0(+0) l:0(+0) dma:29777/29780(+3) swFIFO:1
Samples received: 160350208
Samples received: 165347328
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:170096640 pkt:126560 o:0(+0) l:0(+0) dma:31640/31640(+0) swFIFO:1
Samples received: 170360832
Samples received: 175374336
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:180096000 pkt:134000 o:0(+0) l:0(+0) dma:33500/33504(+4) swFIFO:0
Samples received: 180387840
Samples received: 185401344
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:190106112 pkt:141448 o:0(+0) l:0(+0) dma:35362/35364(+2) swFIFO:2
Samples received: 190398464
Samples received: 195411968
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:200116224 pkt:148896 o:0(+0) l:0(+0) dma:37224/37224(+0) swFIFO:1
Samples received: 200425472
Samples received: 205438976
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:210115584 pkt:156336 o:0(+0) l:0(+0) dma:39084/39088(+4) swFIFO:0
Samples received: 210452480
Samples received: 215449600
/dev/limepcie0/trx0 Rx0: 30.122 MB/s | TS:220136448 pkt:163792 o:0(+0) l:0(+0) dma:40948/40952(+4) swFIFO:0
Samples received: 220463104
Samples received: 225476608
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:230141184 pkt:171236 o:0(+0) l:0(+0) dma:42809/42812(+3) swFIFO:1
Samples received: 230490112
Samples received: 235503616
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:240151296 pkt:178684 o:0(+0) l:0(+0) dma:44671/44672(+1) swFIFO:2
Samples received: 240517120
Samples received: 245514240
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:250156032 pkt:186128 o:0(+0) l:0(+0) dma:46532/46536(+4) swFIFO:0
Samples received: 250527744
Samples received: 255541248
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:260166144 pkt:193576 o:0(+0) l:0(+0) dma:48394/48396(+2) swFIFO:2
Samples received: 260554752
Samples received: 265568256
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:270176256 pkt:201024 o:0(+0) l:0(+0) dma:50256/50256(+0) swFIFO:1
Samples received: 270565376
Samples received: 275578880
/dev/limepcie0/trx0 Rx0: 30.152 MB/s | TS:280175616 pkt:208464 o:0(+0) l:0(+0) dma:52116/52120(+4) swFIFO:0
Samples received: 280592384
Samples received: 285605888
/dev/limepcie0/trx0 Rx0: 30.117 MB/s | TS:290185728 pkt:215912 o:0(+0) l:0(+0) dma:53978/53980(+2) swFIFO:2
^CTRXLooper::Stop()
FPGA: StopStreaming
TRXLooper: wait for Rx loop end.
Rx receive loop end.
Rx0 stop: packetsIn: 216080
RxTeardown wait for Rx worker shutdown.
Rx worker thread shutdown.
DeviceRegistry Removed: LimePCIe
DeviceRegistry Removed: FTDI
DeviceRegistry Removed: FX3

hmm, the log looks correct.
The discontinuities in the graphs are suspiciously the length of DMA transfer chunk size.
Just to avoid confusion between different gateware and software versions mismatching.
Please use the latest 1.19 gateware, and compile and install the latest LimeSuiteNG version.
Check if you still have discontinuities with 10Ms/s, select 16bit samples format.

What is your system platform (x86 or Arm), 32bit or 64bit?
After installing LimeSuiteNG, check the sudo dmesg | grep limepcie if there are no error messages.

I think i bricked the board during flashing. If led’s do not flashing when powered via pcie or usb, it means the firmware was not loaded or there is power failure?

Both LED’s are connected directly to FPGA, if there are no lights at all then gateware is not loaded properly. If this happened after unsuccessful gateware update then you can recover it using JTAG cable and LimeFEA mPCIe Carrier Board. Can you tell steps how you tried to flash your board?

regards,
Vytautas

Updated via limeGui from gw1.2 to gw1.19

  1. Select Modules->Programming
  2. Select combined_flash_programming_file.bin
  3. Clicked Program and wait for flashing end
  4. Rebooted pc
  5. No device in lspci

Can i use this pads for recover without carrier board? 3P3 is VCC from waveshare JTAG cable?


Hi,

Yes, you can use those pads. That’s exactly how I’ve recovered my XTRX after a mistake. I’ve made a little press jig for it. Wasn’t super reliable, but preserved the plating. Think soldering to the pads and then wicking the solder off would be easier and more reliable way.

The 3P3 is indeed VCC.

PC reboot is not enough, you have to fully power off and power on again after flashing.

Yes, you can solder wires and connect JTAG cable to these pads.

Tried that too. No led’s flashing. No device in lspci. I’ll try JTAG for flashing.

Strange, can you tell which LimeSuiteNG version (Git SHA, commit, branch) you have used?

There should be an option in LimeSuiteNG to chose which image to update user/gold - Software programming — LimeSDR XTRX v1.2 Board 23.01 documentation

Also you have to chose correct image, depending from your previous gateware version: Multiboot — LimeSDR XTRX v1.2 Board 23.01 documentation

Anyway, I am pretty sure you should be able to recover it trough JTAG here are some guidelines JTAG programming — LimeSDR XTRX v1.2 Board 23.01 documentation.

Thanks,
When board bricked i used latest stable
hash: b458fa1d08c9a24bccf7602378a7996daf9850f0

Anyway when unbrick board i update for latest version and check signal quality again.

After gateware update, it’s boot timing might have changed and became unstable, you should check if your board has R114 component XTRX not found - #12 by ricardas
Otherwise the device detection can be unstable.

Gold/User image selection is available if the XTRX device has gateware >=1.13, before that there is only single FPGA/FLASH selection.

Update for latest verison:
Lime Suite version: 0.2.0-g8023cde0
GW: 1.19
Platform: x86-64

sudo dmesg | grep limepcie shows no errors: limepcie : module init v0.1.6-g8023cde0

Signal is still bad: