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

USB superspeed peripherals Forum Discussions

Wellington
Level 3
10 questions asked 25 sign-ins 10 replies posted
Level 3

Hello

I am testing connecting as below:
FX3_A must connect to USB3.0_A and FX3_B must connect to USB3.0_B.
If FX3_A connected to USB3.0B, an error will prompt, vice versa.

Wellington_0-1658829608073.png

Current if i connect as above: the device manager will prompt two Cypress FX3 USB BootLoader Device(Default Firmware):
Driver is unsigned driver 1.2.3.25.

Wellington_1-1658830538937.png

on the API side:
CCyFX3Device* fx3Device = new CCyFX3Device();
int deviceCount = fx3Device->DeviceCount();
We could get device count = 2

If i intent to flash firmware_A.img into FX3_A and firmwareB.img FX3_B. How do i differentiate device count 1 is FX3_A or FX3_B?

Thanks

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator 500 solutions authored 1000 replies posted 750 replies posted
Moderator

Hello, 

If you are using CYAPI/C++, you can try to use  the USB Address (CCyUSBDevice::USBAddress) to distinguish the devices.

Please let me know if it works

Regards,
Rashi

View solution in original post

0 Likes
5 Replies
Rashi_Vatsa
Moderator
Moderator 500 solutions authored 1000 replies posted 750 replies posted
Moderator

Hello,

Please refer to this similar thread  Solved: [FX3] Identification of two BootLoaders - Infineon Developer Community  

Regards,
Rashi
0 Likes
Wellington
Level 3
10 questions asked 25 sign-ins 10 replies posted
Level 3

Hi, 
as the solution mentioned "Based on the VID and PID you would get three different handles to the devices as 3 devices will be connected to the host at that time"
It is not true, b
oth device PID and VID are the same, we would never know which is FX3_A and FX3_B

1.) How to change the PID/VID on bootloader?
2.) How to use USBDeviceList? i cannot find in CYAPI/C++

Wellington_2-1658844363590.pngWellington_3-1658844381178.png

 

Thanks

0 Likes
Rashi_Vatsa
Moderator
Moderator 500 solutions authored 1000 replies posted 750 replies posted
Moderator

Hello, 

If you are using CYAPI/C++, you can try to use  the USB Address (CCyUSBDevice::USBAddress) to distinguish the devices.

Please let me know if it works

Regards,
Rashi
0 Likes
Wellington
Level 3
10 questions asked 25 sign-ins 10 replies posted
Level 3

Hello Rashi,

Both the usbaddress are the same for bootloader, which is SerialNumber="0000000004BE". It not able to differentiate between two FX3

I also tried to flash I2C eeprom using current firmware into the FX3 chip with edited SN, the status on Control Center showed succeed. Then i remove the USB and plug in again, i am expecting to see FX3 Streamer Example, but i still seeing "Cypress FX3 bootloader", is i making wrong step on flashing eeprom?

 

Thank you

 

 

0 Likes
Wellington
Level 3
10 questions asked 25 sign-ins 10 replies posted
Level 3

Sorry, i got it working need to externally jump the PMODE. Can program eeprom and write customized SN.
Thanks

0 Likes