cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

New Contributor II

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
Reply
1 Solution
Moderator
Moderator

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
Reply
3 Replies
Moderator
Moderator

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
Reply
New Contributor II

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
Reply
Moderator
Moderator

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
Reply