As part of a university project I am trying to read an analog signal and transmit it at the maximum data rate over ESB. But I cant seem to get above 1700kbps without any of my payload writes failing. I have disabled acking, I am using the highest bitrate, lowest CRC and fast ramp up. Are there specific timing settings that I am missing or does anyone else have any experience trying to achieve this feat. (at the moment my timing settings are linked to ADC acquisition rate and increasing the rate above a certain amount causes payload_write issues). Aplogies if this has been properly answered before but I have tried searching.I am using the NRF Connect SDK. I am looking to get as close to 2000kbps with minimal latency.
Included is my ESB config and conf settings.
config.protocol = ESB_PROTOCOL_ESB_DPL; config.retransmit_delay = 10; config.retransmit_count = 1; // Default retransmit count config.tx_output_power = ESB_TX_POWER_8DBM; config.bitrate = ESB_BITRATE_2MBPS; // Fixed bitrate config.event_handler = event_handler; config.mode = ESB_MODE_PTX; config.selective_auto_ack = true; config.payload_length = 252 config.crc = ESB_CRC_8BIT; // NRF_ESB_CRC_OFF config.use_fast_ramp_up = true;
CONFIG_NCS_SAMPLES_DEFAULTS=y CONFIG_ESB=y CONFIG_DK_LIBRARY=y CONFIG_CLOCK_CONTROL=y CONFIG_ESB_NEVER_DISABLE_TX=n CONFIG_ESB_RX_FIFO_SIZE=256 CONFIG_ESB_TX_FIFO_SIZE=256 CONFIG_ESB_MAX_PAYLOAD_LENGTH=252 # Enable logging subsystem CONFIG_LOG=y # Enable logging for the ESB module CONFIG_ESB_LOG_LEVEL_DBG=y # Enable heap memory pool for dynamic memory allocation CONFIG_HEAP_MEM_POOL_SIZE=16384 CONFIG_NRFX_SAADC=y CONFIG_NRFX_PPI=y CONFIG_NRFX_TIMER0=y CONFIG_NRFX_TIMER2=y