3 Replies Latest reply on Feb 26, 2016 12:40 PM by JoMe_264151

    I2C Bootloader/Bootloadable

      I've had an I2C bootloader loading a bootloadable project on a CY8C3846AXE-176.  I tested this less than two weeks ago and it worked just fine.  Went to write some SOPs for guys who would be changing firmware and it doesn't work anymore.  After lots of troubleshooting, I ended up simply building as simple a bootloader and bootloadable as possible.  This workspace has been archived and attached.  


      Programming the bootloader through the SWD interface works fine every time, as expected.  As far as I know, nothing has been done to the bootloadable project, but when I open the .cyacd file in Bootloader Host and try to program, I'm immediately hit with the following:




      11:03:41 AM - program Started


      11:03:42 AM - The slave failed to successfully acknowledge the packet.


      11:03:42 AM - Communication port reported error 'Unable to write data to the target device'.


      11:03:42 AM - program failed in 206 ms.




      My I2C addresses match, the I2C speed setting matches, and I'm externally powering our boards.  This is not a dual-boot application. The bootloadable application version matches,  the correct comms component is selected.  The only part I'm a little confused about is how PSoC Creator marks bootloader and bootloadable projects now that it's not explicitly done in the project build settings.


      Also, the only connections I have between our boards and the MiniProg3 (while trying to program the bootloadable) are GND, SDA, & SCL, as listed on page 7 of AN60317.


      I've updated all components to their latest versions (Bootloader/Loadable v1.50, Pins 2.20, etc), and PSoC Creator is updated to 3.3 SP1.

        • 1. Re: I2C Bootloader/Bootloadable

          Did you disable the debugging interface for your bootloader and bootloadable project? Imho this could interfere with bootloading. What pins on your target is the miniprog3 connected to when bootloading and what pins when you program the bootloader?





          • 2. Re: I2C Bootloader/Bootloadable

            Tried disabling the debugging interface and got the same result, although I believe I did have problems with it while I was initially putting these together so I'll leave it off.


            For programming the bootloader, I'm using the SWD pins, XRES, SCLK, SDAT, and GND.  It's powered externally but VTARG is connected to our Vcc so the MiniProg can see the voltage. When bootloading, I'm only connected thru GND, SDA (12[5]), and SCL(12[4]).  There are 3k pull ups on the I2C bus, and a few other devices, but this same layout was just fine a few weeks ago so I doubt bus impedance is affecting anything.

            • 3. Re: I2C Bootloader/Bootloadable

              I would suggest you to get in contact with Cypress directly:


              At top of this page select "Design Support -> Create a Support Case" and describe your problem. Leave a link to this thread, so they can see what you've tried alrady.