I am using NRF52 SDK version 15.3. I am using the app_usbd_cdc_acm module to create a virtual serial port between an NRF52840 DK and a Linux laptop. I am sending messages from the NRF52840 to the Linux laptop using the app_usbd_cdc_acm_write function. Everything works great until my message size goes above 64 bytes and then I see data corruption in the remaining bytes. For example when I send 65 bytes the 65th byte is sometimes corrupted (but not always) but if I send 64 bytes I see no corruption at all. I do not see any error codes returned from the app_usbd_cdc_acm_write function.
The USB endpoint buffers are 64 bytes and given that I see data corruption for messages that are greater then 64 bytes seems suspicious.. Does this mean that messages greater than 64 bytes in size need to be sent in 64 byte chunks?