AnsweredAssumed Answered

USB endpoint queue heads

Question asked by adb on Aug 19, 2019
Latest reply on Oct 16, 2019 by Alice_Yang


In my application the LPC4353 receives ADC samples from an external chip every 4 ms. I would like to buffer and stream this data over USB using interrupts so as to not interfere with the operation of the rest of my code.

As a starting point, I'm using the usbd_rom_bwtest example program. There are a few things that I don't understand in this program:

In function bwtest_USB_Prog_DTD the device transfer descriptor (dTD) struct array is initialised. Each buffer pointer page points to a 4kB chunk of RAM. 5 buffer pointers * 4 kB = 20 kB. Why do we need to loop around 8 times? All ep_TD[i].buffer0 point to the same memory location.

If I understand correctly, the IOC bit is set, so an interrupt should fire whenever each dTD has transmitted. Where is this interrupt serviced?

Thanks in advacnce for answering my questions,