cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

New Contributor II

Hi,

I'm trying to write my custom FW update tool for FX3 based on example app for Visual studio.

Particularly, I want to provide visual progress bar displaying current progress of burning I2C EEPROM.

Here are some things that aren't quite clear for me so I'll be glad to get help:

1) CyAPI.h contains class "CCyFX3Device" but only DownloadFW() and IsBootLoaderRunning() methods are documented. What about all other methods?

e.g. DownloadBufferToDevice?

2) "CCyFX3Device" extends class "CCyUSBDevice". Which of its methods are used for DownloadFW()? Can I get the source of  DownloadFW?

3) Can I get the sources of CyBootProgrammer.img?

Thanks,

Leonid

0 Likes
Reply
1 Solution
Moderator
Moderator

Hello,

The two points that you mentioned in the previous response is correct and we do not give out the BootLoader Source code.

Can you please let me know the reason why you require the BootLoader source. What exactly do you want to do with the update tool for FX3?

If you are looking to just program the RAM, I2C EEPROM or the SPI Flash, the control center application source can be used/altered for the same.

Best Regards,

Yatheesh

View solution in original post

0 Likes
Reply
8 Replies
Moderator
Moderator

Hello,

The DownloadFW() and DownloadBufferToDevice() function source is present in the CyAPI.lib source code. Please download the CYUSB Suite Source from this link: https://www.cypress.com/file/289981/download  to obtain the CyAPI.lib source.

The USBFlagProg project in the FX3 SDK is the same as CyBootProgrammer.img. Please refer to the same.

Best Regards,

Yatheesh

0 Likes
Reply
New Contributor II

Hi, Yatheesh

Thanks, I found sources of CyAPI

As for "USBFlagProg" - I searched all over Cypress installation but didn't found any. Could you please, clarify where can I found one?

Thanks,

Leonid

0 Likes
Reply
Moderator
Moderator

Hello Leonid,

The USBFlashProg project is present in the following path: <FX3 installation directory>\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxflashprog

Apologies, the project is USBFlashProg and not USBFlagProg.

Thanks,

Yatheesh

0 Likes
Reply
New Contributor II

Hi Yatheesh,

Looks like this project contains bug - when burned to RAM Control center asks to reset FX3 again before burning another image.

I investigated the issue - this example doesn't respond to IsBootLoaderRunning function from CyAPI.

Particularly this example doesn't handle at all request 0xA0 which is used in CyAPI

Moreover, there is no handling of "Program RAM" option in this example

Could you please check and advice solution/workaround?

Thanks,

Leonid

0 Likes
Reply
New Contributor II

I think there is misunderstanding.

There are two different parts:

1) Cypress FX3 USB BootLoader Device

     can only burn RAM

2) Cypress FX3 USB BootProgrammer Device (compiled to CyBootProgrammer.img)

     programmed to RAM when user wants to burn I2C

     can burn I2C and SPI

Where can I get source of the first one?

0 Likes
Reply
Moderator
Moderator

Hello,

The two points that you mentioned in the previous response is correct and we do not give out the BootLoader Source code.

Can you please let me know the reason why you require the BootLoader source. What exactly do you want to do with the update tool for FX3?

If you are looking to just program the RAM, I2C EEPROM or the SPI Flash, the control center application source can be used/altered for the same.

Best Regards,

Yatheesh

View solution in original post

0 Likes
Reply
New Contributor II

Hi Yatheesh,

It's not enough to alter ControlCenter because FX3 FW part also should be altered respectively

Right now I see that USBFlashProg (CyBootProgrammer.img) can't burn RAM

BTW, Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw example looks like bootloader, doesn't it?

Anyway looks like I got what I need. Thanks for support

Thanks,

Leonid

0 Likes
Reply
Moderator
Moderator

Hello Leonid,

Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw uses second stage boot loader, to load the firmware. You can use this to jump between the actual firmware and the second stage boot loader and to rerun or reload the firmware.

Best Regards,

Yatheesh

0 Likes
Reply