Making Flash updater application for FX3

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

cross mob
selac_2609551
Level 1
Level 1

Hi, I'm trying to make flash updater for cam-board using FX3. I thought that CyAPI makes all possible, but I found it's not like that. First of all, USBDevice->DeviceCount() returns 0 for different VID PID descriptor. If my board booted from FX3 bootloader device, then USBDevice->DeviceCount() returns 1. I have found some FX3-based cameras in the market provides firmware updater which is probably not using CyAPI. How can they do this, please give me some hints.

0 Likes
4 Replies
selac_2609551
Level 1
Level 1

I mean most of flash updater program doesn't require FX3 bootloader device booting. How can this possible?

0 Likes

Hello SeongEon La,

The VID/PID combinations 0x04B4/0x00F3 and 0x04B4/0x4720 represents FX3 boot loader and FX3 boot programmer. In case the boot programmer firmware image file is loaded into the FX3, the flash contents can be modified.

The boot programmer image file can be found in the FX3 SDK.

Best regards,

Srinath S

0 Likes

Thank you for your answer,

I know about VID,PID for boot image. What I like to do is make firmware which has own VID/PID set, has function that updates flash, and all that is accesible by CyAPI.lib.

I have developed a USB camera set which is base on AN75779. Application AN75779 has own VID/PID, which is 0x04b4, 0x00F8, which is not accesible by ControlCenter or CyAPI.

I know cyusb3.inf has some unique VID/PID sets and these Ids can be modified or added. But some brilliant guys out there don't use it, and seems to have solution that updates firmware or FPGA codes using their own skeme. I'm still trying to figure out how they can acheive that.   

0 Likes

Hello SeongEon La,

The AN75779 enumerates the device as a vendor class device. Hence, the Cypress USB Control Center will not be able to view the device.

In order to update the contents of the flash, the SPI/I2C block has to be initialized in the firmware. Apart from that, an additional interface has to be defined for enumerating the device as a vendor class device so that Cypress provided applications can access the device. Once this is done, vendor commands can be implemented to write data into the flash thereby updating its contents.

Best regards,
Srinath S

0 Likes