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

USBD CDC ACM 64 Byte Limit

Hi,

I have a simple question ... I think.

I have been limiting my USBD reads/writes to 64 bytes as NRFX_USBD_EPSIZE and NRF_DRV_USBD_EPSIZE are set to 64 bytes. I have read that the CDC ACM standard supports larger packet sizes (I recall up to 1024). 

I would like to to support 256 byte buffer read and writes. Can I just ignore the defines and write more data (ie. up to 256 bytes)? 

Do I need to change any defines to support larger read/writes?

If it matters, I am using nRF52840 and SDK 15.3 with S140.

Thanks in advance.

Mark J

Parents Reply
  • Careful: USB on the host works a lot different than on the NRF µC.

    The host will assemble a large transaction from smaller 64 byte packets (as mandated by USB spec) - this works for both IN and OUT bulk endpoints.

    The NRF USB peripherial has a hard 64 byte limit for bulk ep EasyDMA. The CDC API can work around this limit IIRC by splitting larger transactions into 64 byte packets.

Children
Related