Dear DevZone,
our goal is to replace the RX side of an old system, which is using the nRF2401. For real-time capabilities, the Shockburst protocol was employed.
Reading through the DevZone and documentation we were under the impression, that the nRF5340 (or other new chips) are "Shockburst compatible". Adjusting the ESB sample including the NRF_RADIO parameters like PCNF0 to 0 0 0 seemed to be a workable solution.
But then, we stumbled across two topics.
1. The length of the payload can be defined in bits for the nRF2401, and in bytes ever since. Sadly our legacy TX solution is using 95 bits for the payload length. The CRC starts right after.
2.The length of the address can also be defined in bits for the nRF2401, and in bytes since. Our legacy TX solution is using 20 bits address.
For the payload topic, it may be an acceptable solution to
- receive more than 95 bits + 16 bits CRC (i.e. 14 bytes)
- disable NRF_RADIO in our RX, and calculate the CRC manually
An early proof of concept indicates this may work, and this also fits our understanding of the NRF_RADIO functionality: NRF_RADIO looks for the preamble and adress, and gives us the following 14 bits, with which we can do what we want.
The address topic is more bothersome. We are thinking of using only a 2 byte address, which leaves 4 bits of the legacy address which we will receive as payload, and eliminate going forward.
However, this seems to only work in theory. Using a 2 byte address, we are receiving many too many pakets, and most of all, no correct one.
In our office environment, an address length of 4 and 5 bytes does not generate any faulty pakets. An address lenght of 3 very rarely does so, and at 2 it's not usable anymore.
Do you have got other ideas how to solve this, and is it common that an address length of 2 will lead to too many pakets?
Thank you!
Uli