concepts of USBD, CDC, and ACM

nRF52840_PS_v1.8.pdf

Hello,

I am programming BLE with the nRF52840-DK. [Toolchain Manager: v1.3.0, IDE: Visual Studio Code (VSCode), SDK: ncs v2.6.0, window11 pro]

My goal is to achieve a data rate of over 2Mbps between the PC and nRF52840-DK. (The PC and nRF52840-DK will be connected via a micro USB 5-pin cable.)

Therefore, I am  Googling CDC and ACM.

Meanwhile, I found something called USBD in the nRF52840-DK datasheet.

I have three questions:

  1. What are the differences between USBD, CDC, and ACM?
  2. For the CDC_ACM example, do I need to install a USB program compatible with Windows?
  3. The nRF52840-DK datasheet (p.533) states: "Full-speed (12 Mbps) device fully compliant to Universal Serial Bus Specification Revision 2.0, including following engineering change notices (ECNs) issued by USB Implementers Forum." I don't understand what this means. because I lack the background knowledge :(
Parents
  • Hi,

    What are the differences between USBD, CDC, and ACM?

    USBD is actually USB Device and this is a functionality which allows the device to communicate over USB. USBD is like a general term which includes functionality to allow a device to act as a USB device. It allows full-speed USB device function which meets the 2.0 spec of the USB specification. It is implemented in the nRF52840 SoC. 

    CDC (Communications Device Class) is a specific class of the USB and is included in the USB specification. It allows USB devices to emulate serial ports, making it easier to create devices that communicate over USB using traditional serial port communication methods. 

    ACM (Abstract Control Mode) is a subclass of the CDC class. It's job is to define the protocol for devices which emulate traditional serial ports, providing control signals (like RS-232) over USB. 

    Both the CDC and ACM are part of the USB specification. They define a framework for various types of communications devices to interact with a host system. In the context of the nRF52840, the CDC ACM class is used to emulate a virtual COM port over USB, allowing the device to communicate with the PC as if it were a traditional serial port . When people talk about CDC ACM, they are often referring to devices that act like serial ports (COM ports) on a computer, using USB.

    For the CDC_ACM example, do I need to install a USB program compatible with Windows?

    This will not be necessary because when you implement the CDC_ACM class on your nRF52840-DK, the device will appear as a virtual COM port on your Windows PC and Windows usually has built-in drivers for CDC ACM devices. When you connect the nRF52840-DK to your PC using a USB cable, it will enumerate as a COMx port on Windows hosts. Windows 8 and later versions will automatically pick the correct driver (usbser.sys)

    The nRF52840-DK datasheet (p.533) states: "Full-speed (12 Mbps) device fully compliant to Universal Serial Bus Specification Revision 2.0, including following engineering change notices (ECNs) issued by USB Implementers Forum."

    The nRF52840-DK supports USB Full-Speed communication, which operates at a maximum data rate of 12 Mbps. So, what this statement means is that the device (DK) obeys or adheres to the USB 2.0 specification, ensuring it meets all the requirements and standards for USB 2.0 devices. The "ECNs issued by USB Implementers Forum" are updates or modifications to the USB 2.0 specification that the device also complies with. 

    Hope this helps you. Slight smile

    Regards,

    Priyanka

  • I feel like I've put together scattered puzzle pieces. Thank you :)
    I need to focus on studying 'CDC_ACM' for my goal.

Reply Children
Related