Is it possible to have "direct control" of the GPIF II data bus pins, synchronized to the clock, via streaming bytes over USB?
For Example, let's assume a 16-bit data bus width.
For every two bytes I send over USB I could change the state of the 16 data pins on the output so all of their transitions are synchronous to the clock rising edge (or falling edge), which could be running at up to the max of 100MHz?
So if I send the following bytes (assuming all 16 bits are at a value of zero initially): (0xFF, 0x00, 0xFF, 0x00, 0xFF) I would measure a square wave with 50% duty cycle on all 16 pins of the data bus. Sending 0x01 would set all pins on the data bus to zero except for Bit 0 which would be set high, etc.
I am trying to create an RGB888 video output stream from the GPIF II, and it occurred to me that if this approach may avoid a more complex GPIF II state machine setup with counters for the frame valid, line valid, etc. and just have the state machine map the input direct to the data pins??
Basically, this is how the FTDI USB2 HS USB bridge ICs work, but this could enable the same function for USB3 speeds.
I'm guessing there's got to be some examples like this??
As per my understanding, you would like to transfer the data received from the host over USB to a slave device that is connected to the FX3 over GPIF II interface. Please let me know if my understanding is correct.
Also, all the bits in the data bus should be synchronized to the output PCLK (clock to the slave device). For meeting this requirement, we recommend you to use GPIF II interface itself. We do not recommend to use bit banged GPIOs for driving the data and control signals as this would cause issues in synchronization of data.
Currently, we do not have a GPIF II state machine that accepts video data from the USB host and sends it out over GPIF II interface. So, please develop your own custom GPIF II state machine for transferring video data over GPIF II interface to the slave device. You can refer to the documents in the following location of FX3 SDK for developing the custom state machine: