Now I want a packet (8 bytes) to be sent out at 8k, but now it is only about 5k, I did not set the ack, is there a way to verify that the ack reaches 8k,The library currently in use is nrf5_sdk_17.1.0
Now I want a packet (8 bytes) to be sent out at 8k, but now it is only about 5k, I did not set the ack, is there a way to verify that the ack reaches 8k,The library currently in use is nrf5_sdk_17.1.0
Hi,
nRF52-series (and beyond) can use the radio in "fast ramp-up" mode, which uses 40 us to start up the radio.
We recommend that you use NCS to get the latest updates, but that being said; there is a modified esb version available in this thread that enables fast ramp-up:
RE: How to use the CONFIG_ESB_NEVER_DISABLE_TX?
Could you try this and see if it is per your requirements?
Kind regards,
Håkon
Thank you, I have reached 8K without confirmation, I want to know if 8K can open ACK. TX transmission failed after ACK was enabled at 8khz。Can you speed up the RX confirmation package。
Hi,
Glad to hear that this showed improvements for the no-ack scenario.
shsh said:TX transmission failed after ACK was enabled
Did you run the same code on both sides? This is important.
Do you mean that it takes longer time, or that the evt "NRF_ESB_EVENT_TX_FAILED" is being raised?
If you use 2 MBit on-air data rate (0.5 us per bit, 4 us per byte), and we assume 1 byte preamble, 5 byte address, 1 byte length/PCF, and 2 byte CRC, the total time on air is:
tTX = 40us + 8 bit * 0.5 us (1 + 5 + 1 + 2 + 8 byte user payload) = 40 + 68 = 108 us.
If you then add the tRXACK time, of a minimum of (40 us + 8 byte * 0.5 * 8) = 72 us.
This will exceed your requirement of 8 kHz (125 us) sending rate.
Kind regards,
Håkon
Thank you very much, but how can I communicate with TX without ack? RX sends 1 or 2 packets of data to TX from time to time.
Hello, can I find a way to remove the activated 40us?
Hi,
40 us is the ramp-up time of the radio. This will be required when the radio changes mode (ie. TX->RX or RX->TX).
NCS has the configuration of always keeping the radio in TX mode, via config CONFIG_ESB_NEVER_DISABLE_TX. This is not a feature that is available in nRF5 SDK "nrf_esb".
shsh said:Thank you very much, but how can I communicate with TX without ack? RX sends 1 or 2 packets of data to TX from time to time.
You could buffer up samples (ie. 2 x 8 bytes), and send them with auto-acking enabled for instance. This should allow you to use 2*125 us for specific frames, which should allow you to use ACK-payload with a small payload from the PRX device.
Or you can manually go into RX on the PTX side to receive from the PRX.
Kind regards,
Håkon
Hi,
40 us is the ramp-up time of the radio. This will be required when the radio changes mode (ie. TX->RX or RX->TX).
NCS has the configuration of always keeping the radio in TX mode, via config CONFIG_ESB_NEVER_DISABLE_TX. This is not a feature that is available in nRF5 SDK "nrf_esb".
shsh said:Thank you very much, but how can I communicate with TX without ack? RX sends 1 or 2 packets of data to TX from time to time.
You could buffer up samples (ie. 2 x 8 bytes), and send them with auto-acking enabled for instance. This should allow you to use 2*125 us for specific frames, which should allow you to use ACK-payload with a small payload from the PRX device.
Or you can manually go into RX on the PTX side to receive from the PRX.
Kind regards,
Håkon
I found a very interesting phenomenon that if RX enables automatic ACK, regardless of whether TX requests ACK or not, RX receives 220us. This period is the same as TX requests ACK, and RX will return to normal only when RX's automatic ACK is turned off
Hi,
Can you share your configuration (both PRX and PTX) and how you send the payload (ie. if noack flag is set / unset)?
This question seems to have been missed as well:
Håkon Alseth said:Do you mean that it takes longer time, or that the evt "NRF_ESB_EVENT_TX_FAILED" is being raised?
It is important to check the events on both sides to see if the procedure goes as expected.
Kind regards,
Håkon