I have used NRF52840 and SDK 13.0.0. When I have used USB or ESB one by one - all is Ok. But when they are used together - usb driver goes into an infinite loop here:
#if NRF_DRV_USBD_PROTO1_FIX
uint32_t cnt_end = (uint32_t)(-1);
do
{
uint32_t cnt = (uint32_t)(-1);
do
{
nrf_usbd_event_clear(NRF_USBD_EVENT_STARTED);
usbd_dma_start(ep);
nrf_drv_systick_delay_us(2);
++cnt;
}while (!nrf_usbd_event_check(NRF_USBD_EVENT_STARTED));
NRF_USBD_EVENT_STARTED does not occur. The most interesting: with even pipes(logical addresses) all works fine but with odd pipes works nothing. Just change:
tx_payload.pipe = 0; //2, 4, 6
To:
tx_payload.pipe = 1; //3, 5, 7
And you got crash.
For example, I have combine one project from Nordic SDK examples("usbd_cdc_acm" and "esb_ptx"). Push button 1 for sending data over USB, later push button 3 for sending data over radio. After this push button 1 again. This action blocks controller(infinity loop in IRQ).
Project(use folder "arm5_no_packs" or *.hex file): usbd_cdc_acm.zip
Unzip this archive in "nRF5_SDK_13.0.0\examples\peripheral" for testing.