Full Duplex


#1

Hi,

Warning - Stupid question :smile: .

I assume - if I want to run full duplex must I use RX0 and TX1? From my tests I assume I cannot use RX0 and TX0 at the same time.


#2

Lime chipset is declared like Full-Duplex MIMO therefore must be possible to use RX0 and TX0
together. All within the same (if remember well) 30 MHz central frequency.


#3

Ah,

Thanks. maybe I should switch to RX0 / TX1 as I’ll sometimes be working with much greater frequency differences.


#4

There is no reason why you coud not use rx0 and tx0 at the same time, in fact it is expected to use them if you don’t need MIMO. Perhaps the problem for you was that you used different sampling rates for tx and rx.


#5

Hi,

Thanks - it’s a big learning curve for me. I think I’ll have to offer the user all the options. A bit more work for me but better in the long run.


#6

Hi,

Now back on this problem. I can run full duplex (transmit and receive at the same time) with two threads, one RX, the other TX:

  • Same samples rates 3.072 MHz
  • Same LO frequency
  • RX: channel 0, TX: channel 1

If I use TX: channel 0 then the RX thread’s calls to LMS_RecvStream always time out and return 0 samples.

So is my scenario realistic? If so then i need some help, maybe a flag / register must be set? If read the docs a million times :sunglasses: !

Back to reading for the 1,000,001th time…


#7

Can’t think of anything why would SISO could not work.
I guess try to save the config to file after starting the streams, and I’ll take a look if there is anything strange.
I haven’t been tracking what has changed in the samples streaming or firmware over 2 years now, so the issue might be somewhere in there. I see there was added END_BURST flag and the synchronization of the buffers is modified. FFTviewer seems to be running ok with both Rx and Tx, but it uses only one thread.
To narrow down the problem, I suggest to use debug build of LimeSuite library and see if logging is reporting any data reception RxMBps while streaming. If it shows data reception then the problem is in LimeSuite buffers, if it doesn’t then the problem is in chip or fpga configuration.


#8

Thanks. I’ll probably not get that far today - builders etc., tomorrow’s quite full as well but I will follow your advice and get info to you as soon as i can.


#9

Hi,

Below is the settings file, made while trying to run full duplex.

  • Works OK using RX1/TX2 :grinning:
  • When I use RX1/TX1: LMS_RecvStream always times out, returns 0 samples. No TX output (no error from LMS_SendStream). When I stop TX there is still no RX output.
  • RX and TX run in two threads.
  • RX and TX bandwidths are both 3.072MHz, RX LO is 89.2 MHz, TX LO is 145.752 MHz.

Settings file is here

Please let me know how I can help!


#10

So the chip config looks good, everything should be working. FFTviewer also works with your config.
I suspect there might be a problem how you setup streams, but can’t really help with that without seeing the code.
Could it be that you are using channel indexing starting at 1 instead of 0 in the stream configs?


#11

Hi,

Thanks for the feedback. All is OK with RX1/TX2, it’s just RX1/TX1 will not co-exist. I’ll provide more info tomorrow, I’ll show more diagnsotics…


#12

Hi,

Problem resolved by rewriting code, finding a few bugs etc.