FX3 Download for SuperSpeed Explorer kit (CYUSB3KIT-003)

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

cross mob
JoNe_4646056
Level 3
Level 3
10 replies posted 10 sign-ins 5 replies posted

Host Platform:  Ubuntu

1) Why does download_fx3.cpp not use/call cyusb_download_fx3 (cyusb_linux_1.0.5/cyusb.h)?

Is it just because the latter is RAM only whereas download_fx3.cpp also supports I2C & SPI?


2) Is there any source available for cyusb_download_fx3() ?
Or is cyusb_download_fx3() really the fx3_usbboot_download() implementation in download_fx3.cpp?


3) The FX3 SDK includes cyfxflashprog.c/cyfxflashprog.img.
I assume this is the identical source used to gen the img used by download_fx3.cpp?.. it has the same name ...

Thanks
John

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello John,

Why does download_fx3.cpp not use/call cyusb_download_fx3 (cyusb_linux_1.0.5/cyusb.h)?

Is it just because the latter is RAM only whereas download_fx3.cpp also supports I2C & SPI?

>> The download_fx3.cpp program supports FX3 firmware download to device RAM, I2C EEPROM or SPI Flash.

Before programming to SPI FLASH or I2C EEPROM, the firmware cyfxflashprog.img is loaded to RAM using fx3_usbboot_download and cyfxflashprog firmware handles the read/write to SPI Flash/I2C EEPROM based on the vendor commands.

I will confirm the reason for not using cyusb_download_fx3 and let out know as soon as possible.

Is there any source available for cyusb_download_fx3() ?

>> You can find the source of cyusb_download_fx3 in libcyusb.cpp

Path:SDK installation path\cyusb_linux_1.0.5\lib

Or is cyusb_download_fx3() really the fx3_usbboot_download() implementation in download_fx3.cpp?

>> The implementation of cyusb_download_fx3 and fx3_usbboot_download is almost similar but cyusb_download_fx3 includes more checks.

You can confirm this by referring to the source of cyusb_download_fx3

The FX3 SDK includes cyfxflashprog.c/cyfxflashprog.img.
I assume this is the identical source used to gen the img used by download_fx3.cpp?

>> Yes, the same firmware cyfxflashprog of the FX3 SDK is used to program the I2C EEPROM/ SPI FLASH

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello John,

Why does download_fx3.cpp not use/call cyusb_download_fx3 (cyusb_linux_1.0.5/cyusb.h)?

Is it just because the latter is RAM only whereas download_fx3.cpp also supports I2C & SPI?

>> The download_fx3.cpp program supports FX3 firmware download to device RAM, I2C EEPROM or SPI Flash.

Before programming to SPI FLASH or I2C EEPROM, the firmware cyfxflashprog.img is loaded to RAM using fx3_usbboot_download and cyfxflashprog firmware handles the read/write to SPI Flash/I2C EEPROM based on the vendor commands.

I will confirm the reason for not using cyusb_download_fx3 and let out know as soon as possible.

Is there any source available for cyusb_download_fx3() ?

>> You can find the source of cyusb_download_fx3 in libcyusb.cpp

Path:SDK installation path\cyusb_linux_1.0.5\lib

Or is cyusb_download_fx3() really the fx3_usbboot_download() implementation in download_fx3.cpp?

>> The implementation of cyusb_download_fx3 and fx3_usbboot_download is almost similar but cyusb_download_fx3 includes more checks.

You can confirm this by referring to the source of cyusb_download_fx3

The FX3 SDK includes cyfxflashprog.c/cyfxflashprog.img.
I assume this is the identical source used to gen the img used by download_fx3.cpp?

>> Yes, the same firmware cyfxflashprog of the FX3 SDK is used to program the I2C EEPROM/ SPI FLASH

Regards,

Rashi

Regards,
Rashi
0 Likes

Thanks for the prompt responses/confirmations to my questions.

Darn. Somehow my grep missed libcyusb.cpp in the lib folder!

cyusb_download_fx3() and fx3_usbboot_download() look similar - as you noted - but have some distinct implementation differences, apart from fx3_usbboot_download() doing more checks.

I'll await your response on why 2 flavors are in the SDK and not just incorporate one into libcyusb.cpp.
I will use fx3_usbboot_download() - its better for my needs

Cheers

John

0 Likes

Hello,

There is no particular reason for fx3_usbboot_download API instead of cyusb_download_fx3.

The implementation of cyusb_download_fx3 and fx3_usbboot_download is almost similar but cyusb_download_fx3 includes more checks.

Any of the above API can be used in the application.

Note: We have recently seen a problem with cyusb_download_fx3 (refer to this thread Possible bug in cyusb_linux_1.0.5 library | Cypress Developer Community) which will be fixed in the next FX3 SDK release

Regards,

Rashi

Regards,
Rashi
0 Likes