NOTICE: This website will be shut down in the near future. Product content has moved to Forum content and FAQs have been moved to We encourage you to create a user account on to use the new community forums and access NXP microcontroller content. We greatly appreciate your contributions and look forward to seeing you at our new web location.


LPC1758 Interrupt IN endpoint does not retire blank DMA descriptors

No replies
Joined: 2016-01-27
Posts: 1


I'm running my LPC1758 as a USB device and sending data to the host over a bulk IN endpoint and an interrupt IN endpoint. In both cases the length of the data I'm sending is equal to the maximum packet size of the endpoint.

The user manual states that:

If the last buffer length completes on a MaxPacketSize packet boundary, the device software must program the next DD with DMA_buffer_length field 0, so that an empty packet is sent by the device to mark the end of the USB transfer for the host.

The weird thing is on the bulk endpoint these empty DMA descriptors will have their status set to retired, the interrupt endpoint doesn't retire them.

I've managed to fudge the code together to get everything working, just wondered if anyone understood why this is happening?

Your rating: None