I'm working on setting up a very simple I2C bootloader for a CY8C3846-AXE176. I've attached the archive for the bootloader itself. The bootloadable project is proprietary, but I've added a bootloadable component to it, and have successfully linked it the bootloader HEX file.
There are some examples of bootloaders, bootloadables, and bootloader hosts that I've looked through, and I can't see any difference between those and what I've set up. However, I have gotten nothing out of the Bootloader Host other than
"Communication port reported error 'Unable to write data to the target device'."
I've tried bootloading immediately after a power cycle, externally powering the system, all I2C speeds, calling CySoftwareReset manually, starting the I2C component before the reset, and have gotten the same result every time.
I have a few things left to try.
1.) Looks like the Bootloader_Start function handles the software reset as well as the bootloader entry, so I don't believe that's a problem.
2.) The PSoC's I2C pins are on an I2C bus with pullups on this system due to a hardware oopsie in the programming header, hence this roundabout bootloader approach. I know the MiniProg3 has pullup resistors inside, so tomorrow my first action will be to remove those two pullup resistors so only one set of pullups is affecting it. Can I turn off the MiniProg's internal pullups?
I'm willing to answer any questions, and possibly doctor up the bootloadable application to make it uploadable. Thanks in advance for any help.
First try would be to have your Bootloader I2C configured as master, not as slave.
Best for us (and for you) would be to put the Bootloader and the Bootloadable project (a simple demo/Test) would be ok) into the same workspace.