AnsweredAssumed Answered

LPC1837 USBD Custom Class driver help

Question asked by Jay Shroff on Nov 22, 2016

Hello all, 


I am trying to create a custom class driver using USBD by following the bwtest example... 


Some Background:

I am working on a project that requires dumping 1 Mega samples / sec of 16 bit ADC values using the HS USB peripheral on the LPC1837 device...


I have been trying to modify the USBD bwtest example to achieve this but am running into a number of problems - I am guessing mainly due to my lack of understanding around how the USBD stack works...



The bwtest example defines a transfer descriptor structure as shown below

/* dTD Transfer Description */
typedef volatile struct {
volatile uint32_t next_dTD;
volatile uint32_t total_bytes;
volatile uint32_t buffer0;
volatile uint32_t buffer1;
volatile uint32_t buffer2;
volatile uint32_t buffer3;
volatile uint32_t buffer4;
volatile uint32_t reserved;
} DTD_T;


It seems each buffer (0..4) points to 4096 bytes of data... What if I want to create a buffer with only 512 bytes of data? I am guessing the DTD structure is something hard coded in the USBD stack so I need to follow the same structure format and cannot change the mechanics around how the buffers are processsed?


 I have a circular buffer setup with 512 byte frames so it would make life a lot simpler if I could process data in 512 byte chunks...


Attached is the bwtest example if that helps...




Original Attachment has been moved to: bwtest.rar