I'm working on the Stellaris Lauchpad, with the LM4F120XL processor.
Well, after quite an adventure, I got both ADCs working simultaneously, processed the measured data, and have the data ready to be transferred to the host. That initial part went quite well.
I tried simply pushing the data to the USB channel using USBEndpointDataPut(USB0_BASE, USB_EP_1,... and USBEndpointDataSend(), but that caused a lot of data loss, probably because of the unsynced data transfers.
Total transfer speed needs to be 400 kB/s (I'm now testing with 500 kB/s), which I suspect should be possible, as the USB channel bandwidth (at Full speed) is about 1.2MB/s, and no other traffic is on host port. I did find several posts on the 'net, indicating the speed is realizable (just not with the Stellaris).
Trying to combine the uDMA demo example with the usb_dev_bulk code caused a lot of confusion:
- I can't seem to find any example passing USB IN traffic through the uDMA controller.
- the Bulk Demo code uses USBDBulkInit() to initialize the USB device, but, as I understand it, I now need to pass other parameters to adjust for uDMA usage. Do I have to drop the use of the USBDBulkInit() code, and start defining everything myself, or edit USBDBulk.c code? Or is just changing the tables enough?
- At 64 bytes/packet at 1000 packets/second I think I actually need to use the uDMA controller to get around the 64kB/second limit. Is this correct?