Explanation for why messages pointed in the red square gets printed:
- The FPGA Configuration Utility has been coded in such a way that any device that is bound to the CYUSB3 driver generates a device attach/detach event.
/* This statement includes all devices bound to the CYUSB3 driver to the usbDevices list. */
usbDevices = new USBDeviceList(CyConst.DEVICES_CYUSB); //
/* This statement registers a device attach event for all devices in 'usbDevices' list */
usbDevices.DeviceAttached += new EventHandler(usbDevices_DeviceAttached);
- The USB-Serial device (CY7C65215 on the SuperSpeed Explorer Kit) has got vendor interfaces which binds to the CYUSB3 driver. Also, the FX3 device gets bound to the CYUSB3 driver. Connection of both these devices generate the device attach event.
- Upon looking into the 'device attach' event code, it can be seen that there are two statements: one to check if the FX3 boot-loader is present and one to check if the Xilinx Slave Serial programmer is present.
/* To check the presence of Xilinx Slave Serial Programmer */
myDevice = usbDevices[0x04b4, 0x00F1] as CyUSBDevice;
/* To check the presence of FX3 boot-loader */
myFX3Device = usbDevices[0x04B4, 0x00F3] as CyFX3Device;
- When the below sequence is followed,
-> Connect FX3 device => Boot-loader is detected and stored in the variable myFX3Device
-> Connect USB-Serial device (USB micro-B cable) => myFX3Device still holds the previous device instance
-> Program FX3 device with the firmware => Xilinx Slave Serial Programmer is detected and stored in the variable myDevice
-> Subsequent connection of USB-Serial device (USB micro-B cable) => myDevice still holds the previous device instance
- This the reason why the statements get printed repeatedly on the utility window upon connection of the USB3 and USB micro-B cables.
Explanation for the failure of FPGA programming:
- The application note firmware configures the IO matrix such that it uses 16-bit GPIF II along with SPI and UART. For this configuration, the UART lines are available on the pins GPIO[46:49] and SPI is available on pins GPIO[53:56]. But, the on-board USB-Serial device (CY7C65215) UART is connected to the GPIO[53:56] pins of FX3. So, when the configure option is chosen from the utility, FX3 finds the FPGA as well as the USB-Serial device (CY7C65215) connected on the GPIO[53:56] and hence the configuration fails. So, in order to debug the firmware over UART, please use the GPIO[46:49] with a separate UART device and no with the on-board USB-Serial device (CY7C65215).
Please let me know if you need further clarification.