Hi, In my application I want to communicate nRF24L01+ with nRF51822 with dynamic length. Some settings are:
In nRF24L01+ side (reference: devzone.nordicsemi.com/.../):
1. EN_AA = 1
2. EN_DPL = 1
3. EN_DYN_ACK = 1
4. Use "W_TX_PAYLOAD_NOACK" instead of "W_TX_PAYLOAD"
In nRF51822 side:
1. PCNF0.LFLEN = 6
2. PCNF0.S0LEN = 0
3. PCNF0.S1LEN = 3 (Bit 2:1 for PID and Bit0 for NO_ACK)
So in the Rx side (nRF51822), byte0 if the received packet will be LENGTH, and byte1 is for PID (bit2:1) and NO_ACK(bit0).
nRF51822 could receive the packet and everything is correct up till now, except that I found NO_ACK is always '0' in this setup. I think it should be '1' indicating that ack is not required for PRX, because I use 'W_TX_PAYLOAD_NOACK' in PTX.
And if I use 'W_TX_PAYLOAD', I found NO_ACK is '1'.
So it seems that the bit is reverted from PTX to PRX.
Is my conclusion TRUE? When sending packets from 'nRF51822' to nRF24L01+, what should be the value for this bit if ack is NOT required?
I tried to get some hints from "github.com/.../nrf51-micro-esb", and found that:
1. PTX should set this bit to 0 for ack not required and to 1 for ack required. That is, my conclusion above is correct.
2. PRX is not supported yet (micro_esb.h, line 64). So I didn't see how PRX processes this bit.