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 ?