Enable esb ack, ptx will tx successfully even if prx is not set ack

Dear Nordic:

Environment

NCS: V2.4.0

code: nrf/sample/esb

hardware: nrf52832dk or nrf5340dk

Enable esb ack, ptx will tx successfully even if prx is not set ack. 

ptx log:

I: Tx start
I: [start_tx_transaction-876] ack=1 esb_state=0
I:I: [on_radio_disabled_tx-1015] esb_state=2
I: [on_radio_disabled_tx_wait_for_ack-1049]tx_fifo.count=0 esb_state=3
D: TX SUCCESS EVENT
Tx end

prx log:

D: Packet received, len 8 : 0x01, 0x77, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
I: [on_radio_disabled_rx-1246] esb_state=4
I: [on_radio_disabled_rx_ack-1280] esb_state=5
D: Packet received, len 8 : 0x01, 0x78, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
I: [on_radio_disabled_rx-1246] esb_state=4
I: [on_radio_disabled_rx_ack-1280] esb_state=5
D: Packet received, len 8 : 0x01, 0x79, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
I: [on_radio_disabled_rx-1246] esb_state=4
I: [on_radio_disabled_rx_ack-1280] esb_state=5
D: Packet received, len 8 : 0x01, 0x7a, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08

Look forward to your reply.

thank you

    

  • Hello,

    The PTX when it transmit packet can use the .noack field to request an ACK or not from the PRX. If .noack field is set, then the PTX will always trigger the TX SUCCESS event (even if there are no receivers), since the packet was sent (even if it may not be received by anyone).

    The PRX will always execute what the .noack field from the PTX states, with the exception if .selective_auto_ack is set, in that case the PRX will ignore the .noack field and ACK all packets.

    Kenneth

Related