FX2LP - Difference between Port I/O, GPIF and Slave FIFO

Question: What are the key differences between the three modes: PORT, GPIF, FIFO. Once selected you can't really switch between the three can you?



The key difference is that in Ports I/O mode, devices can use FX2LP?s CPU to process USB data directly without the need of a Master control, whereas you require an external master like an FPGA in Slave FIFO mode and while using GPIF, the GPIF interface is the master. The part was designed to be used in either one of the modes Ports I/O, Slave FIFO or GPIF (see Endpoint FIFO Architecture of EZ-USB FX1/FX2(TM) - AN4067 application note).

It is possible to switch from one mode to another. Before switching from slave FIFO to GPIF or vice versa, you must make sure that there is no data transfer in progress as far as the physical interface is concerned or for that mateer on the USB end (host is not sending or receiving data from any of the endpoint). You must make sure that the FIFO are reset and the device is in a state (no data activity in progress). Once this is done you may switch from one mode to the other. Please be informed that this (being able to switch from one mode of operation to another) is not an intended feature but something that you may do as long as the device is in a stable state.