After almost completing a development with the high speed USB device in a K70 I am wondering whether anyone knows the answer to the following two questions:
1. I didn't find it possible to send data directly from Flash.The USB OTG (full speed) device can do this when its bus master is given read rights in the flash controller (bus master 4 for K70) but the HS USB module doesn't have a bus master number. Can it be done?
2. I did some testing with single receive buffers for OUT pipes and the SDIS setting in the USBMODE register.
The SDIS (stream disable) causes a NYET to be returned to every OUT so that the USB host doesn't send more than a single OUT packet before the device has confirmed that its buffer is free.
However, whenever the host sent long bulk data blocks (eg. 4k of data as 8 x 512 OUT frames), each waiting until the following PING was acked, the data buffer error status was raised - meaning that there has been a data buffer overflow. In the test case of 4k blocks with 8 OUTs only 4 OUTs were actually received.
I don't however actually see which buffer is overrunning in this case since NYET/PING handshaking is operating correctly. Any explanations?