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

USB Bulk Out hardware bug

I am working with production Rev 1 on nrf52840 DK v1.0.0 (2018.19). The spec section 6.35.10.2 Bulk and interrupt OUT transaction say

Until that transfer is finished, the hardware will automatically NAK any other incoming OUT+DATA packets.Only when the EasyDMA transfer is done (signalled by the ENDEPOUT[n] event), or as soon as any values are written by the software in register SIZE.EPOUT[n], the endpoint n will accept incoming OUT+DATA again.

However, this is only true with the first write to SIZE.EPOUT. Afterwards, the endpoint will always accept & ACK the Data from host whenever DMA is complete.

1. This is out of specs, Is it a bug ?,

2. Is there any other way to force the endpoint to NAK out token from host until we write to SIZE.EPOUT. again like the specs state ?

Related