This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52840 Custom Board - USBD not listed

Good morning everyone,

we have developed a custom board featuring the NRF52840. The device works fine, but I am having a hard time in making the USBD work.

I took most of the code from the usbd_cdc_acm example, just disabling the bsp, cli and led controls to meet the pins of my board.

I see that the board is not listed as a peripheral, as it should be, and when I debug the code I see that it is stuck at this instruction

    while (0 == (NRF_USBD_EVENTCAUSE_READY_MASK & nrf_usbd_eventcause_get()))
    {
        /* Empty loop */
    }

in the file nrf_drv_usbd.c, which is called from the main.c file with the function app_usbd_enable().

I found in the devzone a hint about a wrong errata which should be modified (I am working on SDK 15.0.0), but replacing the value with the recommended one did not change anything.

It may be a hardware problem, but as far as I understood, the only things we need to do are to connect D+ and D- to the USB connector, the GND to GND and VUSB to NRF52's VBUS and to VDDH. And this is what we did.

Is there anything else I need to do to have the device showing up on the computer?

By the way, the NRF52840DK programmed with the example code works perfectly, so at least on the computer's side I think things are ok. 

Thanks for anyone for the help, I'll keep this thread updated in case I find a solution.



Related