You are right about the reaction to the new specs. I have a driver almost developed, and now I need to redesign some parts to take advantage of the new features “unlocked”. I find also useful the TX_NO_ACK feature, in order to have some packets acknowledged, and the broadcast ones sent without acknowledgement.
Does any of you have managed to use the new features ? Especially the dynamic payload length…I don’t know how to get the length of the packet by using that SPI command…
Well, in the meantime, I have managed to get them working. Reading the payload width is done like reading a normal register. There was a strange problem that it was returning sometimes values greater than 32. If I flush RX after receiving a packet, it works. The selective ACK feature also works OK, and I was expecting something like that, because it’s useful for broadcast packets, that need a special treatment. I plan to send the broadcasts a few times, in order to get them through. If you need help, I am available to answer your questions about what I’ve already got working with the nRF24L01.
Hello lucicop,
After you pointed me to take a look at my addresses in another thread, I got auto-ack to work. Shortly there after, I moved on to dynamic payloads which seems to work fine. Many thanks.
I wonder if the reason you are getting values greater than 32 is that there are really more than 32 bytes available in the FIFO? If I understand correctly, there are 3 - 32 byte FIFOs. According to note b. of table 24 of the v2 datasheet, you are supposed to read the payload, clear the RX_DR interrupt and then read FIFO_STATUS to see if there are more payloads available.
I don’t know if that explains it but apparently you can write up to 3 tx_payloads before initiating a transmission. I think I am going to try writing 3 32 byte payloads and see if the reported number of bytes is 96.
Regards,
kpainter
Hi,
I’m glad I could help.
Yes, your idea is interesting and worth checking. But according to the datasheet, this shouldn’t be the case. They say that the payload width is indicated for the top FIFO packet…
Regards,
Hi,
I tried loading up all three FIFOs and 32 bytes is reported on the receive side. I have not seen it report more than 32 bytes as of yet so not sure why you are seeing that. If you figure it out, I would like to hear what caused it.
Regards,
kpainter