- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, I read through the posts about the I2C EEPROM bootloader in the forum. I am still not clear how to do this. My purpose is as following:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Lehua Chen,
Here are my answers to your questions:
In my understanding, I need to check the UsbI2cRegMode example as the first step. Once it works, I can insert these commands into my final program. Am I right? Could someone point me out what are the approximate steps I should do?
<RSKV>
To download the .img file into the EEPROMs connected to FX3 device, you don't need to add anything in the firmware.
You can directly programm the EEPROMs using the Control Center. Open USB control center --> Programm --> FX3 --> I2C EEPROM. Then it will automatically download a boot programmer and enumerate as "Cypress EZ-USB FX3 Boot Programmer". Then a pop up window will open and ask you for the .img file. Here you should be pointing the .img file that you want to put into EEPROMs.
<RSKV>
In the USB Control Center, when I choose Program->FX3->I2C E2PROM, the CYUSB3.sys for the CYUSB3.0 Driver is asked for. I link the original CYUSB3.sys to it, but it is invalid and the window appears again. What could I do about this?
<RSKV>
When it is enumerating as "Cypress EZ-USB FX3 Boot Programmer", it might ask you for the .inf file. Please point to the .inf file which has VID_04B4&PID_4720.
<RSKV>
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Right. As per the EEPROM data sheet A1 and A2 are used to address them.
Author of that application note might not have looked at this EEPROM from Microchip. If I remember correctly they had used the 24AA1025/24LC1025/24FC1025. I will initiate for a change in the application note.
In your application, you should be using A1 and A2.
I am just curious to know few things regarding your application requirement.
What is the size of the .img file.
Are you using the FX3 DVK. I am asking this because it has provision to connect only a single EEPROM. Also if you are using the DVK then you need to take care of the jumpers J42 and J45 (should be connected between 1 and 2).
Regards,
sai kirshna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Lehua Chen,
You need to build the elf2img.exe (check in the installation path; in my case: C:\Cypress\FX3 SDK\util\elf2img) by changing the "i2cConf" to "0x2E". Basically the default elf2img.exe is generated for a EEPROM that runs at 100KHz. In our case it is 1MHz. So we need to change that parameter.
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After doing the above mentioned task, then again you need to build the .img file using Eclipse IDE.
The newly generated elf2img.exe should be in the path: ${FX3_INSTALL_PATH}\util\elf2img\elf2img.exe.
Please let me know if I am not clear to you.
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
OK. Do one thing.
Copy the .elf file to the folder where elf2img.exe is present.
Open a command prompt (Start --> Run --> cmd). Go to the elf2img folder (in my case: C:\Cypress\FX3 SDK\util\elf2img) in the command prompt. Then give the following command:
elf2img.exe -i USBBulkLoopAutoEnum.elf -o USBBulkLoopAutoEnum.img 0x2E 0xB0 -vectorload yes
Here I am assuming the name of the .elf file as USBBulkLoopAutoEnum.elf. In your case it might be a different one.
After running the above mentioned command it will output a .img file. Use that .img file to program the EEPROM.
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Also there is a readme.txt in the elf2img folder. Please refer to that for more details.
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I downloaded the new or old .img file to the E2PROM, I could find the clock signal SCL (both are 100KHz) and the SDA signal. The voltages on write protect WP and Chip Address (A1, A2) are correct.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have a 24FC1025 EEPROM at my end. I tried programming it with default i2cConf and also with modified i2cConf. It is getting successfully programmed with both of the images.
Let us try the following thing at your end. Just use a single EEPROM and try to program it with the images that I am attaching here. If we get successful then we can confirm board settings are fine. I am attaching the snap shot of my DVK as reference. Keep the same switch and jumper settings. Mainly SW25, SW40, J96, J97, J98, J42, and J45. SW40 might be different for you (OFF, ON, ON, OFF). Check whether the device is enumerating or not after you programmed it even though you get a failure message. We are observing this behaviour with some host controllers.
Thanks,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
Lehua Chen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have you tried with the both image files?.
Also check whether the device enumerates after programming by giving the hard reset or by power cycling, even though it shows the fail message. Sometimes it is showing the failure message even if the EEPROM is programmed correctly.
Regards,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, sai krishna,
Lehua Chen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The addressing for Microchip 24LC1026 happens to be similar to that for Atmel 128kB EEPROMS. So, as in the AN 'FX3 I2C Boot Options' (http://www.cypress.com/?rID=52340), in the bootimage format choose the setting for Atmel 128kB EEPROM.
i.e. in the byte 'bImageCtl', set Bit3:1 (I2C size) as '6' corresponding to Atmel 128kB EEPROM.
This solved the issue. With this boot image format, we are able to program and boot from 24LC1026 successfully.
Regards,
Gayathri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I tried to load the FX3BootAppGcc.img file onto the EEPROM. Control centre says that the programming was successful but the device is not enumerating after this. I gave the path to the inf file for installation but it says installation was unsuccessful.
What could be the problem? The PID after the programming has changed to 1005. should I make any changes in the connection of the jumpers?
Earlier I tried to load USBBulkLoopAuto.img file and programming failed. What is the difference between the 2 img files except for the size?
Regards,
Kavya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kavya,
Which EEPROM are you using?
Regards,
Gayathri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Gayatri,
I am using AT24C1024B I2C EEPROM. I added the new VID and PID in the inf file and enumerated the device. It gets enumerated successfully. I am using the I2C to USB fallback mode now. However when I set the PMODE pins to I2C mode(1FF) only, the device does not get enumerated( and gives a PID of 0053). In my understanding once the EEPROM is loaded with the correcct image format and enumerated it should give the same VID/PID for both modes. Have I understood it correctly? Does this mean that the enumeration is somehow going back to USB boot and not I2C EEPROM boot?
Another problem with it is that when I use the USB boot mode only, with PMODE as F11(and the SW40 as off,on,on,off) it still enumerates with the VID/PID that I intended to store in the EEPROM. However it does not get recognized at all on the system when I change the SW40 to off,off,off,off. Am I getting something fundamentally wrong here? I understood that the USB's VID/PID should be enumerated and not the EEPROMs. What have I done worng?
How can I earse the EEPROM so that I can load a new image onto it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Gayatri,
I am using AT24C1024B I2C EEPROM. I added the new VID and PID in the inf file and enumerated the device. It gets enumerated successfully. I am using the I2C to USB fallback mode now. However when I set the PMODE pins to I2C mode(1FF) only, the device does not get enumerated( and gives a PID of 0053). In my understanding once the EEPROM is loaded with the correcct image format and enumerated it should give the same VID/PID for both modes. Have I understood it correctly? Does this mean that the enumeration is somehow going back to USB boot and not I2C EEPROM boot?
Another problem with it is that when I use the USB boot mode only, with PMODE as F11(and the SW40 as off,on,on,off) it still enumerates with the VID/PID that I intended to store in the EEPROM. However it does not get recognized at all on the system when I change the SW40 to off,off,off,off. Am I getting something fundamentally wrong here? I understood that the USB's VID/PID should be enumerated and not the EEPROMs. What have I done worng?
How can I earse the EEPROM so that I can load a new image onto it?
Thanks & Regards,
Kavya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using FX3 on USB 3.0 interface and interfaced to EEPROM.
Able to program EEPROM with Cypress control center with Cypress VID/PID
But I need to program EEPROM for Intel VID/PID.
I tried editing the cyusb3.inf with Intel VID/PID and install the driver.
In the device manager, it shows the device,But the driver is not enabled.
Please help to resolve the issue.
Thanks & Regards
Ashok
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content