Hi,
I am using the nrf52840DK development board and running the SDK of version ncs/v2.6.0. When I flash the samples/esb/esb_ptx and samples/esb/esb_prx projects onto the two development boards respectively with the default configuration, the operation seems normal. However, when I change the protocol from ESB_PROTOCOL_ESB_DPL to ESB_PROTOCOL_ESB without modifying any other configurations, after running, the PTX device keeps reporting a TX FAILED EVENT, and the PRX device does not report any events (it is found through some logged information that this is a CRC check error). May I ask why this is the case?
int esb_initialize(void)
{
int err;
/* These are arbitrary default addresses. In end user products
* different addresses should be used for each set of devices.
*/
uint8_t base_addr_0[4] = {0xE7, 0xE7, 0xE7, 0xE7};
uint8_t base_addr_1[4] = {0xC2, 0xC2, 0xC2, 0xC2};
uint8_t addr_prefix[8] = {0xE7, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8};
struct esb_config config = ESB_DEFAULT_CONFIG;
config.protocol = ESB_PROTOCOL_ESB; //just change here
config.bitrate = ESB_BITRATE_2MBPS;
config.mode = ESB_MODE_PRX;
config.event_handler = event_handler;
config.selective_auto_ack = true;
err = esb_init(&config);
if (err) {
return err;
}
err = esb_set_base_address_0(base_addr_0);
if (err) {
return err;
}
err = esb_set_base_address_1(base_addr_1);
if (err) {
return err;
}
err = esb_set_prefixes(addr_prefix, ARRAY_SIZE(addr_prefix));
if (err) {
return err;
}
return 0;
}