Hi there all,
I've been working on creating an I2C Bootloader host application for PC using the CY7C65211 USB-Serial bridge IC aboard the CYUSBS234 Dev Kit. I am attempting to bootload the PSoC5 on the CY8CKIT-050.
I finally got the USB-I2C API going in C# .NET (thanks to this thread) and now I'm running into errors during the actual data transfer processes. When I attempt to bootload, I get an error code 0x4019. This corresponds to the bootloader reporting an error (0x4000 is the mask), but I'm not sure where the 0x19 is coming from (it doesn't match to anything in the ReturnCodes enum).
I have a logic analyzer capture of the activity on the bus for the bootload process.
Transmission from Host (0x38 - Enter Bootloader):
Response from PSoC (??? - Where did those 0xFF bytes come from?):
Transmission from Host (0x3B Exit Bootloader):
At this point, the process ends with the 0x4019 error code. The first thing I notice is that the second transmission (response from the PSoC) doesn't to adhere to the response packet structure outlined in the Datasheet for the Bootloader v1.60 component. I'm only getting what is presumably the Start of Packet (0x01) byte after 12 0xFF bytes. I'm not getting the End of Packet (0x17) byte at all.
The twelve 0xFF bytes from the PSoC is almost certainly the issue, but at this point in the execution of the bootload routines, the process is basically out of my hands and in the domain of the bootloader component that's actually handling all the comms to the host.
The length of the start condition on the first transmission from the host and the length of the ACKs at the end of each transmission also seem a bit long, but shouldn't actually matter I don't think?
Any ideas for what I can check to narrow the issue down? Something I'm getting wrong? The bootloader on the PSoC should in theory just handle itself, I don't know why the response is the way it is. I've attached the Creator project. I can also provide the Visual Studio C# WinForms project I've been using to test this if need be.