We're developing a semi-duplex FHSS system using Picozed SDR platforms. The frequency jumps in RX/TX chains are controlled by the software application.
We are able to jump from one frequency to another every 100 ms or so and that's more than enough for our project requirements. So far the implementation is working really well despite this little problem:
If I time how much it takes to change frequency using this call:
wr_ch_lli(chn, "frequency", cfg->lo_hz);
It turns out to be around 1.7 ms. But sometimes (really unpredictable) the execution gets stucked for a while here.
Once it's stucked, it can stay there an arbitrary time, sometimes 1 second, and sometimes it stays longer (Once I had to wait 153 seconds until it got out...).
Any idea what could be happening?