FTDI Community

General Category => Discussion - Hardware => Topic started by: antgol on October 11, 2017, 11:48:35 AM

Title: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on October 11, 2017, 11:48:35 AM
Hello, dear members of FTDI community!

I am trying to work with UMFT601X-B, I am FPGA developer. I want to use this board as a bridge between KC705 Evaluation Board (with Xilinx Kintex-7 FPGA) and a PC via USB. And I fail..

The problem is that I see no reaction from the board to anything. At first I made a simple FIFO master in FPGA according to “DS_FT600Q-FT601Q IC Datasheet”, synch FIFO 245 mode (read and write operations were supposed to be as in Figure 4.6 and Figure 4.7 “DS_FT600Q-FT601Q IC Datasheet”). I wanted to try to send something to PC and get something from PC. So if TXE_N = 0, FIFO master sends several bytes once per M clock cycles. If RXE_N = 0 (that means UMFT601X-B got some data from PC) FIFO master would read it. A programmer made a simple PC application that sends and receives data via UMFT601X-B.

I connected everything and started to monitor signals. First of all, if PC application does not read or write, then after several seconds clock from UMFT601X-B goes down. That is not convenient, but not the biggest problem. The main problem is that I see no changes on TXE_N and RXE_N lines whatever happens in the application. So at first after Reset TXE_N = ‘1’, RXE_N = ‘1’, then RXE_N = ‘1’ and TXE_N = ‘0’ forever. No reaction to read or write. I thought that it might be an application problem, so I tried FT600DataLoopbackDemoApp.exe, which I downloaded from http://www.ftdichip.com. But still no changes on TXE_N and RXE_N when I tried to write or read.

Ok, then I downloaded FPGA project for that FT600DataLoopbackDemoApp.exe, it is intended for Spartan6 Evaluation board SP601. I do not have that evaluation board, so I changed it for KC705 Evaluation Board (the changes are not so big: I regenerated memory and changed pins). But still I could run the test neither in Multi Channel nor in 245 Mode.

So I am puzzled. Surely I may have made mistakes somewhere, but what to do next? How can I check without Spartan6 Evaluation board SP601 that the module UMFT601X-B works at all? Maybe someone could give me test project for KC705 Evaluation Board? Or some advice about a simple basic check?

Jumper settings:
JP1: 1-2, JP2: 1-2 (that is power from VBUS)
JP3 1-2, JP6 open (VCCIO=2.5V)
JP4 and JP5: I tried both 1-2, 1-2 (Multi-channel mode, 4 channels) and 2-3, 2-3 (Synch FIFO 245 mode) for FT600DataLoopbackDemoApp.exe

I can also upload pins or the projects itself if anyone cares about it. Any help would be appreciated.

Anton

P.S. Here is the log of FT600DataLoopbackDemoApp.exe

Quote
List of Connected Devices!

Device[0]
   Flags: 0x2 [USB 2]  |  Type: 601 [FT60X]  |  ID: 0x0403601F  |  ftHandle: 0x0
   Description: FTDI SuperSpeed-FIFO Bridge
   SerialNumber: 000000000001

Device with Serial Number [000000000001] opened! Device[0]!

Device Firmware Version: 0x0109
D3XX Driver Version: 0x01020006 | D3XX Library Version: 0x01020006

[EP02] FT600DataLoopback_Output\20171011_170613_PayloadEP02.txt
[EP02] Written 3072 bytes to device!

WARNING!!!
Could not read anything from FIFO master. Please check if FPGA image is correct!
Troubleshooting Guide:
   1) Unplug device.
   2) Is FPGA image for 245 mode or 600 mode?
   Make sure chip is also configured using the same mode.
   3) Is FPGA image for FT601 (32-bit) or FT600 (16-bit)?
   Make sure PCB board has the matching architecture.
   4) Are the jumpers and switches correct?
   Make sure jumpers and switches are set correctly on the FPGA board and PCB board.
[EP82] Read 0 bytes from device!
[EP02] Written 0 bytes to device!
[EP02] Written 0 bytes to device!

WARNING!!!
Could not read anything from FIFO master. Please check if FPGA image is correct!
Troubleshooting Guide:
   1) Unplug device.
   2) Is FPGA image for 245 mode or 600 mode?
   Make sure chip is also configured using the same mode.
   3) Is FPGA image for FT601 (32-bit) or FT600 (16-bit)?
   Make sure PCB board has the matching architecture.
   4) Are the jumpers and switches correct?
   Make sure jumpers and switches are set correctly on the FPGA board and PCB board.
[EP82] Read 0 bytes from device!
So at first the application thought that something was written, reading never succeeded. But flags never changed during readings and writings as in the picture:
https://yadi.sk/i/6nprLjEV3NgTpx
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on October 12, 2017, 07:46:13 AM
Small additional question.

Let us imagine an experiment. UMFT601X-B is in 245 Mode. "FIFO master" in FPGA just sets OE_N = 1, WR_N = 1, RD_N = 1 and examines RXF_N, TXE_N, nothing more.
FT600DataLoopbackDemoApp.exe writes a packet to EP02.

Am I right to expect that RXF_N should go from 1 to 0 (inviting the FIFO master to perform a read operation) according to the Figure 4.6 “DS_FT600Q-FT601Q IC Datasheet”? And otherwise  UMFT601X-B probably does not work correctly?

Figure 4.6:  https://yadi.sk/i/9Q91oBvn3NgTdZ
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: FTDI Community on October 12, 2017, 10:53:00 AM
Hi,

Thanks for your question.

When there is no bus transactions on the FT601 for 10 seconds the device will enter selective suspend mode and the driver will suspend the device. Upon entering selective suspend the device will turn off the clock. 
 
This USB selective suspend can be turned off, or the idle interval at which suspend should occur can be controlled by the FT_SetSuspendTimeout API (detailed info can be found in the D3XX Programmers Guide http://www.ftdichip.com/Support/Documents/ProgramGuides/AN_379%20D3xx%20Programmers%20Guide.pdf (http://www.ftdichip.com/Support/Documents/ProgramGuides/AN_379%20D3xx%20Programmers%20Guide.pdf)),but Ive put basic info on the Set and Get APIs below:-
 
FT_SetSuspendTimeout
-          Takes handle and a timeout value in seconds as input.
-          When the timeout is set to zero, driver will disable the suspend feature.
 
FT_GetSuspendTimeout
-          Take handle and pointer to ULONG as inputs.
 
Note: The value for the idle timeout configured using FT_SetSuspendTimeout is valid only for the current instance of the driver. An unplug and re-plug will cause the driver to set the timeout to a default 10 seconds.

Please may I ask you to contact support1@ftdichip.com where we can assist you further with the rest of your questions.

Best Regards,
FTDI Community
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on October 12, 2017, 11:05:37 AM
Thanks for your answer,

I think we will turn off the suspend mode by the SetSuspendTimeout  function, thanks.

Ok, I shall write to the email of support. Later I will write here the results in case someone else faces the same problem.

Best Regards,
Anton
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on October 17, 2017, 12:08:18 PM
Hi,

I will continue writing here while I am waiting for the answer from support.

So, I wrote to support, describing the situation, and they confirmed that in my experiment RXF_N should go from 1 to 0 in 245 mode (if device is in 245 mode and the clock is on and PC sends data). They also asked to check Configurator Programmer´s settings.

As I said above, FTDI shares FPGA test project for loopback test for Spartan6 Evaluation board SP601. I do not have SP601 but I managed to get SP605 board for some time, which is really close to SP601. I changed SP601 test project to SP605. And again I saw nothing in FIFO 245 mode. But when I tried FIFO 600 mode, 4 channels, FT600DataLoopbackDemoApp.exe could write and read data. There were certain strange things, like the number of read bytes was not always the same as the number of previously written bytes, and I didn´t check the data itself, but still it started to communicate with the FPGA somehow.

I changed jumper settings back to FIFO 245 mode (JP4 = JP5 = 2-3). I started FT600ChipConfigurationProg.exe, read configuration and I was surprised to see that the FIFO mode was "600". I thought  that setting the jumpers is enough to change the configuration, is not that right? So in the program I changed the mode from 600 to 245, also checked "Keep FIFO clock ON in suspend", then I pressed "Write configuration". And at that point something had gone wrong. In the program log appeared "No device is connected to the machine! Please connect a device!", in the Device tree I now see "Unknown Device". Unplugging does not change anything.

What surprises me, before that we successfully wrote configuration using the same tool FT600ChipConfigurationProg (our programmer changed the option "Notification Message Enabled", that is why after reading the configuration of the device the value Config Used was CUSTOM, you can see it in the program log)

Below is the log of USB Device Tree Viewer:

Quote
=========================== USB Port1 ===========================

Connection Status        : 0x02 (Device failed enumeration)
Port Chain               : 3-1-1

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : Unknown Device
Device Path              : \\.\usb#vid_0000&pid_0000#6&2c24ce2e&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Device ID                : USB\VID_0000&PID_0000\6&2C24CE2E&0&1
Hardware IDs             : USB\UNKNOWN
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0064 (GUID_DEVCLASS_USB)
Driver Inf               : C:\Windows\inf\usb.inf
Legacy BusType           : PNPBus
Class                    : USB
Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Interface GUID           : {a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Enumerator               : USB
Location Info            : Port_#0001.Hub_#0004
Manufacturer Info        : (Стандартный USB хост-контроллер)
Capabilities             : 0x44 (Removable, RawDeviceOK)
Status                   : 0x01806400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 43 (CM_PROB_FAILED_POST_START)
Address                  : 1
Power State              : D3 (supported: D0, D2, D3, wake from D0, wake from D2)

        ---------------- Connection Information ---------------
Connection Index         : 0x01 (1)
Connection Status        : 0x02 (DeviceFailedEnumeration)
Current Config Value     : 0x00
Device Address           : 0x00 (0)
Is Hub                   : 0x00 (no)
Number Of Open Pipes     : 0x00 (0)
Device Bus Speed         : 0x00 (Low-Speed)

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x00 (0 bytes)

      -------------------- String Descriptors -------------------
String descriptors are not available  (because the device has problem code CM_PROB_FAILED_POST_START)

I also cite the log of FT600ChipConfigurationProg:

Quote
------------------------------------------------------------

| FT60X Chip Configuration Programmer
| Built   Sep 15 2016 15:50:33
| Started 10  14 2017 09:00:22

 ------------------------------------------------------------

[2017-10-14 09:00:22:531][004500] FT60X Chip Configuration Programmer
RecvData

[2017-10-14 09:00:27:773][007388] Device Firmware Version: 0x0109
[2017-10-14 09:00:27:773][007388] D3XX Driver Version: 0x01020006
[2017-10-14 09:00:27:773][007388] D3XX Library Version: 0x01020006
[2017-10-14 09:00:27:774][007388]

   ReadConfigureSettings SUCCESSFUL!
[2017-10-14 09:00:27:774][007388] READ CONFIGURATION
[2017-10-14 09:00:27:774][007388] 0000: 0304 1F60 0A03 4600 5400 4400 4900 3803
[2017-10-14 09:00:27:774][007388] 0010: 4600 5400 4400 4900 2000 5300 7500 7000
[2017-10-14 09:00:27:775][007388] 0020: 6500 7200 5300 7000 6500 6500 6400 2D00
[2017-10-14 09:00:27:775][007388] 0030: 4600 4900 4600 4F00 2000 4200 7200 6900
[2017-10-14 09:00:27:775][007388] 0040: 6400 6700 6500 1A03 3000 3000 3000 3000
[2017-10-14 09:00:27:775][007388] 0050: 3000 3000 3000 3000 3000 3000 3000 3100
[2017-10-14 09:00:27:775][007388] 0060: 0000 0000 0000 0000 0000 0000 0000 0000
[2017-10-14 09:00:27:775][007388] 0070: 0000 0000 0000 0000 0000 0000 0000 0000
[2017-10-14 09:00:27:775][007388] 0080: 0000 0000 09E0 6000 0000 0100 0000 0010
[2017-10-14 09:00:27:777][007388] 0090: 0008 0100 0000 0000
[2017-10-14 09:00:27:777][007388]

   Device Descriptor
   VendorID                 : 0x0403
   ProductID                : 0x601F

   String Descriptor
   Manufacturer             : FTDI
   Product Description      : FTDI SuperSpeed-FIFO Bridge
   Serial Number            : 000000000001

   Configuration Descriptor
   PowerAttributes          : 0xE0 (Self-powered | Remote wakeup)
   PowerConsumption         : 96

   Device Specific
   FIFOClock                : 100 MHz
   FIFOMode                 : 600 Mode
   ChannelConfig            : 4 Channels
   MSIOControl              : 0x00010800
   GPIOControl              : 0x00000000
   OptionalFeatureSupport   : 0
      NotificationEnabled      : 0 0 0 0
      BatteryChargingEnabled   : 0
      DisableCancelOnUnderrun  : 0
      UnderrunDisabled         : 0 0 0 0
   BCGPIOPinConfig          : 0x00
   FlashEEPROMDetection     : 0x10
      Custom Config Validity : Valid
      Custom Config Checksum : Valid
      GPIO Input             : Ignore
      Config Used            : CUSTOM

[2017-10-14 09:00:28:582][007388] DESCRIPTION:
[2017-10-14 09:00:28:582][007388] Custom Config Validity   : Valid
[2017-10-14 09:00:28:582][007388] Custom Config Checksum   : Valid
[2017-10-14 09:00:28:582][007388] GPIO Input      : Ignore
[2017-10-14 09:00:28:582][007388] Config Used      : CUSTOM
[2017-10-14 09:00:28:582][007388]

Interval                 : 0x09
SaveDataToUI

SaveDataFromUI

   Device Descriptor
   VendorID                 : 0x0403
   ProductID                : 0x601F

   String Descriptor
   Manufacturer             : FTDI
   Product Description      : FTDI SuperSpeed-FIFO Bridge
   Serial Number            : 000000000001


   Configuration Descriptor

   PowerAttributes          : 0xE0 (Self-powered | Remote wakeup)
   PowerConsumption         : 96

   Device Specific
   FIFOClock                : 100 MHz
   FIFOMode                 : 245 Mode
   ChannelConfig            : 1 Channel
   MSIOControl              : 0x00010800
   GPIOControl              : 0x00000000
   OptionalFeatureSupport   : 1024
      NotificationEnabled      : 0 0 0 0
      BatteryChargingEnabled   : 0
      DisableCancelOnUnderrun  : 0
      UnderrunDisabled         : 0 0 0 0
   BCGPIOPinConfig          : 0x00
Interval                 : 0x09

SendData

[2017-10-14 09:01:07:027][005660] WRITE CONFIGURATION
[2017-10-14 09:01:07:027][005660] 0000: 0304 1F60 0A03 4600 5400 4400 4900 3803
[2017-10-14 09:01:07:027][005660] 0010: 4600 5400 4400 4900 2000 5300 7500 7000
[2017-10-14 09:01:07:027][005660] 0020: 6500 7200 5300 7000 6500 6500 6400 2D00
[2017-10-14 09:01:07:027][005660] 0030: 4600 4900 4600 4F00 2000 4200 7200 6900
[2017-10-14 09:01:07:028][005660] 0040: 6400 6700 6500 1A03 3000 3000 3000 3000
[2017-10-14 09:01:07:028][005660] 0050: 3000 3000 3000 3000 3000 3000 3000 3100
[2017-10-14 09:01:07:028][005660] 0060: 0000 0000 0000 0000 0000 0000 0000 0000
[2017-10-14 09:01:07:028][005660] 0070: 0000 0000 0000 0000 0000 0000 0000 0000
[2017-10-14 09:01:07:028][005660] 0080: 0000 0000 09E0 6000 0000 0002 0004 0000
[2017-10-14 09:01:07:028][005660] 0090: 0008 0100 0000 0000
[2017-10-14 09:01:07:032][005660]

   WriteConfigureSettings SUCCESSFUL!


[2017-10-14 09:01:29:165][008108] No device is connected to the machine!
[2017-10-14 09:01:29:165][008108] Please connect a device!

[2017-10-14 09:01:51:968][005180] No device is connected to the machine!
[2017-10-14 09:01:51:969][005180] Please connect a device!

[2017-10-14 09:02:39:758][004200] No device is connected to the machine!
[2017-10-14 09:02:39:758][004200] Please connect a device!

[2017-10-14 09:02:40:903][007800] No device is connected to the machine!
[2017-10-14 09:02:40:903][007800] Please connect a device!

[2017-10-14 09:02:41:567][003016] No device is connected to the machine!
[2017-10-14 09:02:41:567][003016] Please connect a device!

I described the whole situation to the support but still got no answer after their first letter.
We need to know ASAP if it is possible to make the device available again. Any help is appreciated.

Best Regards,
Anton
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: FTDI Community on October 18, 2017, 09:11:42 AM
Hi Anton,

Could you please check whether the board is connected to a USB2 or USB3 port when doing the programming?

The utility requires a USB3 port in order to program the device and the error from a USB2 port looks the same as the one you mentioned here.

The board can be recovered by connecting to a USB3 port and repeating the programming and should then show up correctly programmed with your new settings.

Best Regards
FTDI Community
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on October 18, 2017, 10:09:25 AM
Hi,

Thank you so much, that really helped! I was thinking that the board was lost...

Yes, I was using USB2 while working and programming, I did not know that it is critical to use USB3, I thought that it would only give additional performance during work.

When I connected the device via USB3 I immediately saw it in the device tree, I could read and write configuration with FT600ChipConfigurationProg. I still cannot see the device via USB2 for some reason. Maybe I will just have to use USB3.

Best Regards,
Anton
Title: Re: Problems with UMFT601X-B, trying to connect it to KC705 (Kintex-7 board)
Post by: antgol on December 28, 2017, 09:50:53 AM
Hi!

I decided to write a little bit about my experience of working with UMFT601X-B from FPGA developer´s point of view. There is not much information on the web, so it may be useful for someone who is planning the work with this chip or having certain problems.

Below there will be a small summary and a piece of advice for FPGA designers.



Merry X-Mas and Happy New Year to everyone!

Best Regards,
Anton