I’ve been using the SX1276 in FSK mode. Early in the project, I found that it frequently appears to fully lock up when transmitting a message. There appeared to be some relation to timing of the various SPI operations I was performing, and by taking the following actions, I had the radio seemingly working very reliably:
- Inserting a ~30us delay immediately after reading the FIFO on Rx (or rather, by reading RSSI after the FIFO, which takes a similar length of time), and
- Inserting a ~150us delay between stopping the sequencer and restarting it in the relevant mode.
I was in contact with the support team via https://semtech.force.com/ (case #60661), but they closed the ticket due to “high number of support requests”.
At the time, I thought we had a reasonable handle on the situation, so let it be.
Unfortunately my customer has now reported symptoms in the field that align with the behaviour that this issue can exhibit… which may mean that the solution isn’t as robust as I had thought / hoped.
I wonder if this issue is similar or related to those reported here:
I’ve made some demo firmware and taken some logic analyser and RF captures showing the “broken” (i.e: without delays) behaviour, and another set showing the “working” behaviour. There doesn’t appear to be anything wrong in either captures from “my” side.
- The Tx firmware will transmit a message every 500ms, with an ASCII counter at the end of the message. This works fine.
- The Rx firmware will attempt to receive the message, and respond with an echo / ACK, substituting one byte (from
#). On a timeout (2 seconds), it will reset and reconfigure the radio to get things going again. This is problematic and the subject of this post.
In the “broken” case, the radio will reliably go non-responsive when attempting a Tx, claiming in the
RegOpMode register that it has entered the “frequency synthesis for Rx” state (i.e: completed Tx), but it never receives again until you reset it.
I’m not 100% sure if a soft reset will work - I’m performing a hard reset.
On the RF side, one of two things will happen:
- Nothing - i.e: no toggle on the
RXTXsignal, no transmit on the RF side (even very quiet)
- A continuous
0101010stream, with the
RXTXsignal high - seemingly forever
The capture files can be downloaded from here: 20220516-sx1276-lockup-report.tgz.
The logic analyser traces (
*.sal) can be opened with Saleae’s Logic 2 software, and have annotations on to help identify what’s going on.
The RF captures (
*.cfile.gz) can be decompressed and then opened with Inspectrum.
Please let me know if I can provide any additional information or context.