Some background.
I have a system that uses a PC to transfer data to an external USB device using the USB2
port. The data transfer has to be relatively hi-speed and ideally not require the PC to be involved in this data transfer, once initiated.
To do this I use a Digital I/O card that has a USB2 interface. Origially I had a different device that used the standard HID USB driver. However, that driver was too slow. I then changed to the device that I now use, that comes with its own fast driver for USB2.
With the DIO USB device, I am able to send data to it using USB, then I signal that device to now transfer that information to external hardware using 3 signal wires, Clock, data and strobe. The DIO card does this very nicely without requiring the PC.
This setup has been satisfactory for several years, meeting all my requirements. The problem I now have is that this particular device is becoming quite expensive.
So my thinking was, I could use an Arduino. It has a USB interface. I have previously written code that addressed the internal functions of the AtMega chip directly, so I have some experiance coding the chip registers directly.
All I need to do is send 16 bytes twice to the Arduino. Then the Arduino would generate from this data, appropiate clock/data/strobe signals to the external hardware.
The 32 byte data transfer needs to be no more than 1mSec to complete. In other words, 256 bits transfered in 1mSec. That is 256kHz bit rate to transfer.
The USB serial connection to the Arduino seems to be only sending information to the PC. Except when downloading the code to the Arduino. I want to go the other way, that is, have the PC send information to the Arduino.
My questions are can this be done ?
Are there any projects provided by other users that meet this specification ?

