Forum Discussion
Altera_Forum
Honored Contributor
10 years agoFT2232H in Sync FIFO Mode - TXE# stuck high
hi,
I have a Moprh-IC-II board and I'm trying to communicate via USB with a FT2232H in Sync FIFO Mode and D2XX Drivers. I manage to have the 60MHz clock input (my main fpga clock) from the ft2232h, and i can transfer data from the PC to my fpga via ft2232h with FT_Write(). FIFO Mode seems to work as expected on this side. The RXF# signal is working, going low when needed (I'm checking signals with SignalTap). But I can't send data from my fpga to the pc, the TXE# signal (active low) is stuck high and I can't find how to have it low to be able to receive data... If you have any idea on what my issue could come from ? Tank you, Alexis17 Replies
- Altera_Forum
Honored Contributor
Yes, you're probably right if you're getting a 60Mhz clock.
- Altera_Forum
Honored Contributor
Hi,
--- Quote Start --- Do you realize that in Sync FIFO mode the FT2232 is a single channel device? When you load your fpga through channel B it must somehow reconfigure the FT2232 for dual channel mode. Are you sure you're switching back to single channel when you try to run in sync FIFO mode? --- Quote End --- I'm not sure to fully understand what you mean, I'm sure to use channel B to load my FPGA (with MorphLd utility) and then I use a little GUI made with CVI-LabWindows where I only connect to channel A. I manage to have the clock at 60mhz from the fifo in my fpga and the rxf# working fine make me think it's not a problem of channels. Alexis - Altera_Forum
Honored Contributor
Do you realize that in Sync FIFO mode the FT2232 is a single channel device? When you load your fpga through channel B it must somehow reconfigure the FT2232 for dual channel mode. Are you sure you're switching back to single channel when you try to run in sync FIFO mode?
- Altera_Forum
Honored Contributor
Hi,
--- Quote Start --- Check here http://electro-logic.blogspot.it/2014/03/fpga-comunicazione-ad-alta-velocita_99.html?m=1 --- Quote End --- I've already checked this useful blog, but I can't find what I did differently in my Software part, which I suppose being where my problem come from (receiving buffer not ready to receive). I'm using D2XX drivers and not libftdi this shouldn't make a huge difference... Here are my actions when trying to configure my device : - FT_OpenEx - FT_ResetDevice - FT_Purge - FT_SetBitMode - Reset Mode - FT_SetBitMode - Sync FIFO Mode - FT_SetLatency - 2ms - FT_SetUSBParameters (64 Bytes each) - FT_setTimeOuts Alexis - Altera_Forum
Honored Contributor
Hi,
--- Quote Start --- Have you checked the obvious, TXE# is connected to an FPGA input pin and not an output being driven high? --- Quote End --- Already checked, I proceeded the same way (with a different name of pin obviously, according to the datasheet) with TXE# and RXF# and RXF# works perfectly. --- Quote Start --- Have you tried clearing the transmit buffer with FT_Clear()? --- Quote End --- If by FT_Clear you mean FT_Purge without success, I've tried this (can't find any FT_Clear in the D2XX Programmer's guide). --- Quote Start --- Have you actually issued an FT_Read()? Does the FT_Read() come back with an error, timeout, etc? What is your host system/OS? --- Quote End --- I can call FT_Read() without any error but I will always have 0 BytesReceived (even if I ask to read several bytes), which is kind of normal because FT_GetQueueStatus always says there is nothing in the receiving buffer. TXE# high telling me the ft2232h is never ready to receive any data. I'm on Windows7 (32-bit). I load my fpga by USB through the channel B of my fifo with the MorphLd Utility, could this be somehow related? Edit : loading fpga by JTAG doesn't change anything. Many thanks for your help, I'm kind of new to this whole thing. Alexis - Altera_Forum
Honored Contributor
I can't say for sure, I've used the FT2232 many times and not had this problem. Have you checked the obvious, TXE# is connected to an FPGA input pin and not an output being driven high? Have you tried clearing the transmit buffer with FT_Clear()? Have you actually issued an FT_Read()? Does the FT_Read() come back with an error, timeout, etc? What is your host system/OS?
- Altera_Forum
Honored Contributor