FIFOIN not working and programming failed because of iic file in FX2LP.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello,

I am trying to send data to FX2 - CY7C68013A from FPGA, but FIFOIN is not working.

When i try to program EEPROM by iic file, its failing. What can be the reason here?

Regards,

Avinash

0 Likes
1 Solution

Hello Avinash,

- You can use Tera Term to check if the data is being read. Tera Term does not recognize the ASCII equivalent of FF. So, use the logging feature of Tera Term to save and view the data.

- In case you are using the EEPROM to store the entire firmware file (.IIC file), the address lines of the EEPROM should be A2A1A0 = 001 and the EEPROM should be a double byte addressed EEPROM. In case you are using a small EEPROM to store only 8 bytes of data, the address lines should be A2A1A0 = 000 and the EEPROM should be a single byte addressed EEPROM. Use the appropriate vendor command from the Vend_Ax firmware to test the functionality of EEPROM.

Best regards,

Srinath S

View solution in original post

0 Likes
16 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Avinash,

I understand that the two scenarios are separate.

- If the FIFOIN is not working, connect the SLWR# line to GND, FIFOADR[1:0] pins according to the endpoint used. Then, use the Cypress USB Control Center to read the data from the IN endpoint. If the Control Center reads FF's, it means that the FX2LP firmware is fine and the issue is with the FPGA. If not, kindly, share the firmware source or mention the application note or the DVK example that you have referred.

- When the EEPROM programming is failing, please check if the address lines of the EEPROM are according to the booting method. You can also use the Vend_Ax example firmware that comes with the DVK to write/read data to/from the EEPROM thereby confirming its hardware connections.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

Yes the two scenarios are different.

-I have implemented virtual COM port, so i can't directly read from Control Center. So what will be alternative method to check that?

-Where can i check booting method?

Regards,

Avinash

0 Likes

Hello Avinash,

- You can use Tera Term to check if the data is being read. Tera Term does not recognize the ASCII equivalent of FF. So, use the logging feature of Tera Term to save and view the data.

- In case you are using the EEPROM to store the entire firmware file (.IIC file), the address lines of the EEPROM should be A2A1A0 = 001 and the EEPROM should be a double byte addressed EEPROM. In case you are using a small EEPROM to store only 8 bytes of data, the address lines should be A2A1A0 = 000 and the EEPROM should be a single byte addressed EEPROM. Use the appropriate vendor command from the Vend_Ax firmware to test the functionality of EEPROM.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

I have tried with COM port application "Terminal v1.93b - by br@y++", but i have not received FF.

I have shared my firmware file via email, please check it.

0 Likes

Hello Avinash,

I find that you are using external IFCLK in your application. Kindly, modify the same to internal and try reading the data in the method I had mentioned in my first interaction.

Change IFCONFIG = 0x03 to IFCONFIG = 0xE3.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

-- I have tried with interal clk.

   i made SLWR TO 0 all the time,

FD<= addr when (direct_data = '1');    -- else (X"FF");     --   (addr is zero )

So its receiving 0 with commenting else part and FF with uncommenting else part, but if i disconnect terminal and connect again then data is not coming. So is it behaving properly?

-- can you also explain me little bit more about Vend_Ax firmware. i am not able to find that.

Regards,

Avinash

0 Likes

Hello Avinash,

- Please let me know if you mean closing and opening the terminal. Doing this should not affect the data transfer. Kindly, explain what you see in this case.

- The Vend_Ax example is a part of the FX2LP DVK. This firmware example contains vendor commands that can read/write data from/to the EEPROM. After the installation of CY3684 DVK, the Vend_Ax example can be found in the below location.

C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Firmware\Vend_ax

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

Now it's coming fine,but addr is coming which is zero. I am not getting FF like you said.

Regards,

Avinash

0 Likes

Hello Avinash,

What do you mean by "addr is coming" ? Please check using the Cypress USB Control Center to read the data with the SLWR# pin driven LOW and FIFOADR[1:0] pins driven according to the endpoint.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

addr is a signal which is having fixed value. I have checked and everything is fine now.

Everytime i switch ON FX2 , I have to load hex file into RAM. Is there any solution to that?

Can we load program file directly into ROM, so i can directly use FX2?

Regards,

Avinash

0 Likes

Hello Avinash,

FX2LP firmware can be programmed into an EEPROM. For this you need to have a double byte addressed I2C EEPROM with the address lines tied up as A2A1A0 = 001. The hex2bix utility is used to generate the .IIC file that can be loaded into the EEPROM. The utility can be found at the following path after the installation of FX2LP CY3684 DVK.

C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Utilities\Hex2Bix\Release

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

As you can see below my folder path, instead of 1.1 i have 1.0 and hex2bix.exe is not getting open.

What can be the reason?

C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Utilities\Hex2Bix\Release

Regards,

Avinash

0 Likes

Hello Avinash,

Hex2bix.exe is a command line utility and should be run from the command prompt. Please use the below command in the prompt window.

Hex2bix.exe -i -f 0xC2 -o <your_output_file_name.iic> <your_input_file_name.hex>

Please go through the Readme.txt file in the below path in case you have queries on the use of arguments.

C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Utilities\Hex2Bix

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

I am using AT24C128 EEPROM (on my board of LCSOFT) and in there it have 2 address pins only A0 & A1, so i cant make A2A1A0 = 001 ,right?

what else can be done here?

Regards,

Avinash

0 Likes

Hello Avinash,

Upon looking into the EEPROM datasheet, I find that the A2 address bit is internally treated as 0. So, connect A1A0 = 01 to use the EEPROM for firmware loading.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hello,

Both my issues has been solved now.

- i have converted my hex file into iic file according to He2bix command and program it into EEPROM with jumper placing ON so A0 can connect to Vcc while programming. Now it works.

Thanks a lot.

Regards,

Avinash

0 Likes