How to upload the firmware in CX3, without the SDK EZ-USB Suit installed

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

cross mob
ArSa_3842301
Level 3
Level 3
25 sign-ins 10 replies posted 10 questions asked

Hi,

I am currently working in a project based on CX3. We have developed both an own hardware which embedded it, and a host application.

Our product works as a bridge between MIPI and USB protocols, in order to drive the pixel information from a CMOS Image Sensor to a host.
A complex softwere layer, inside the host, will run after it applying image processing algorithms.

After this overview, I want to explain my doubt. I have been working in both hardware and firmware layers, for this reason I have EZ-USB Suit
installed in my laptop, because I use it to complile the firmware image, which it will be store inside the embedded SPI-Flash memory in the PCB. So, as I have installed the EZ-USB Suite, my laptop has the cypress custom driver which achieve recognize the CX3 as Cypress USB BootLoader. Finally I store the firmware in our hardware design via Control Center tool.

But We need to update the firmware image in whatever laptor, including all of them which do not have the EZ-USB Suite installed. For this reason I would like to know which are the minimum necessary files (contemplated in the SDK EZ-USB Suite) that We need to add in our software layer in order to be able to upload the firmware, discarding the rest of the files of the SDK EZ-USB Suite.

Thanks so much.

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

As per my understanding, your requirement is that the host should detect the CX3 device as Bootloader device and then download the firmware to SPI flash connected to CX3. For this, you will need the following:

1. cyusb3 driver

2. CyUSB.dll, CyBootProgrammer.img and CyControlCenter. All of these can be found in the following location of FX3 SDK:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin

If you want to develop your own host application instead of control center application, then you can develop it by referring to the document CyControlCenter found in the following location:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp

This approach would also need cyusb3 driver, CyBootProgrammer.img, CyUSB.dll (for C# based application) or CyAPI.lib (for C++ based application). You can use the source code of control center application found in the following location as reference:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter

Best Regards,
Jayakrishna

View solution in original post

0 Likes
5 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

As per my understanding, your requirement is that the host should detect the CX3 device as Bootloader device and then download the firmware to SPI flash connected to CX3. For this, you will need the following:

1. cyusb3 driver

2. CyUSB.dll, CyBootProgrammer.img and CyControlCenter. All of these can be found in the following location of FX3 SDK:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin

If you want to develop your own host application instead of control center application, then you can develop it by referring to the document CyControlCenter found in the following location:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp

This approach would also need cyusb3 driver, CyBootProgrammer.img, CyUSB.dll (for C# based application) or CyAPI.lib (for C++ based application). You can use the source code of control center application found in the following location as reference:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter

Best Regards,
Jayakrishna
0 Likes

Hi Jayakrishna,
Thanks for give me this information. I am sure it will be helpful for me. Just one more thing,
In case that I just want to work with Control Center.exe file and not to develop my own host application:

It is possible to run the firmware upload through command windows? I mean, it is possible to carry out exactly the same steps using comands and not using the GUI of Control Center.exe?

 

Thanks!

0 Likes

Hello,

I am sorry but I did not understand your question properly. As per the following statement

"In case that I just want to work with Control Center.exe file and not to develop my own host application"

I understand that you do not want to develop a custom host application and would like to use the control center application (GUI) itself for firmware download.

Can you please elaborate the following statement?

" it is possible to carry out exactly the same steps using comands and not using the GUI of Control Center.exe"

By this, did you mean to ask if there is a way to run the Control Center Application using commands in Windows so that the end customer need not use the GUI? Or did you mean to ask if there is a Command Line Application to perform firmware update?

Best Regards,
Jayakrishna
0 Likes

Hi,

About first doubt: "In case that I just want to work with Control Center.exe file and not to develop my own host application"

Answer : Yes, I would like to work directly with Control Center.exe.

About Second doubt : "By this, did you mean to ask if there is a way to run the Control Center Application using commands in Windows so that the end customer need not use the GUI? Or did you mean to ask if there is a Command Line Application to perform firmware update?"

Answer : I mean the first, if there is a way to run the control center application using commands in windows so that the end customers don't need use the GUI. But, is also valid, if you affirm me the existence of a command line application to perform firmware update.

 

My principal aim, is give the customer the possibility to update the firmware without any GUI, for this reason, if it is possible to do the process through both control center application using commands in windows or command line application.

If is not possible to implement any of these optinos, I will have to develop a own application, using CyAPI.lib instead.

0 Likes

Hello,

If you are looking for a console application for FX3 firmware download, then you can refer to the project fwdownload_fx3 in the following location of FX3 SDK:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\cpp

This project is built using the library CyAPI.lib found in the following location of FX3 SDK:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\library\cpp\lib\x86

You can modify this path in the linker settings and rebuild the project.

This application should be invoked twice to load the application firmware into SPI flash. The first call should be used to download the CyBootProgrammer.img into RAM. After this the application can be called again to download the firmware to SPI flash. Please test this and let me know if it helps.

Best Regards,
Jayakrishna
0 Likes