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

Is there a Windows driver for the nRF52840 USB CDC ACM?

Hi

I'm trying to use the nRF52840 USB Serial UART device (aka USB CDC ACM) however I can't find a Windows driver for this device

The VID is 0x1915 and the PID is 0x520F

I've looked in all the development files listed for the nRF52840 PDK www.nordicsemi.com/.../nRF52840-Preview-DK

But I can't find a driver.

I've tried forcing a CDC ACM driver using libwdi, but although the board then appears as a serial device, I can't see any data from the board, so I presume that method is not valid as it may be a composite device and i need a more complex install method (or the official driver)

  • OK. Partially fixed this (Though it still doesnt work in Hercules which is strange)

    There is a bug in your example code on line 293 (examples\peripheral\usbd_cdc_acm\main.c)

    You are using sizeof(m_tx_buffer) but this will be the entire buffer which is 64 x 16 characters

    The code should use strlen(m_tx_buffer)

    e.g.

        ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, m_tx_buffer, strlen(m_tx_buffer));
    

    Otherwise it sends the entire buffer including nulls etc

    Note. This still does not resolve the issue where it does not work with all terminals...

    I suspect there is another issue, possibly a bit deeper in the USB code.

  • Hi Roger,

    You are right, it should be strlen(m_tx_buffer), I will notify the developer.

    I tried with Hercules, seems that you need to set Mode to Data to make it works. I am not sure what is the "Mode" here about.

  • Hi Hung

    I tried Data mode in Hercules and it did work, however I have never needed to use that mode before, so I think the nRF52840 USB is not operating in the most compatible way.

    I'm not an expert in USB, but perhaps the problem is in the device descriptors.

    I will try to compare the descriptor with descriptors I have for STM32 devices which support CDC ACM

  • For me the matter is unsolved also when using latest SDK 13.1. OS is W10. Serial port is installed automatically by using W10 standard driver (usbser.inf). There is a message in the properties event window (device manager/serial ports) saying that more installation has to be done - maybe not important because W10 basically confirms functionality. Nevertheless data exchange is not possible. The .inf file delivered by Nordic is not accepted - W10 misses a digital signature. Could there be an uncomplete set of information inside the USB description records?

    I also want to ask for the present state in managing the VID/PID for users of Nordic chips. The typical procedure is that we can use Nordic's VID but will get one or some unique PID's by the vendor.

  • I suggest to start a new question, people will hardly notice one which is 8 months old...

Related