This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Early packet reception detection

I am looking at using a customized version of ESB on the nRF52 where there will be multiple remote devices that share a time period to transmit to a central node (no ACKs). I don't want to use full packet time slots for each remote device as there could be 30 or more, and they will generally transmit infrequently. So I would like to use a series of time slots that are less than the full packet time but long enough that the remote device can check if a different device has started transmitting in a preceding slot. Effectively it would be a combination of clear channel assessment and time slots.

So my question is, what is the earliest indication in receive mode that a packet reception has started? I know there is an event at the end of address reception, but ideally I would like to get notification when the preamble is complete and address reception is starting. Is there any way to do this?

An alternative could be to check the receive power level rather than trying to identify an actual packet reception. I could check the RSSI in the preceding slot, but this will also detect non network interference, so I would prefer to know if a valid packet is actually being received.

  • Hi,

    I would like to get notification when the preamble is complete and address reception is starting. Is there any way to do this?

    It makes no sense - if you look at received noise as a bitstream, you'll see that every 2-3 byte contains a preamble pattern. A possible solution is to listen for two first bytes of access address. In fact, you'll win not too much - two bytes of received AA mean that transmission is started about 64 usec ago (with fast ramp-up), vs 80 usec using full 4-byte AA.

    An alternative could be to check the receive power level rather than trying to identify an actual packet reception.

    I think this way is better - you can detect start of transmission at ramp-up stage. Yes, you will also detect foreign noise, but it's rather an advantage of this method.

  • Thanks for the reply. It likely is better to use the RSSI measurements. Do you know how far into the Tx ramp up that the carrier will be present and detectable over the air? This could certainly give an early indication that another node is starting to transmit.

  • There's no indication until after you have an address match. The reason for this is that the receiver is constantly clocking data into a shift register and compares this to the addresses of the different "pipes". If there's no transmission going on, the data will be random. The the packet starts there's a match and it starts to clock in the data and eventually, evaluates the CRC. So until you have an address match, the receiver doesn't know what's going on.

    RSSI is usually triggered by the address match event.

  • That makes sense. My understanding is that RSSI can be triggered any time that the receiver is active, even if it is not receiving a packet. So I would like to poll the RSSI periodically to look for an increase in Rx power potentially indicating the start of a packet transmission. I would like to know still how long after a node issues a TXEN will the carrier power be present and detectable with RSSI on a receiver node. I assume it will be present sometime before the preamble starts. Thanks.

  • You can trigger the RSSI measurement any time.

Related