4 Replies Latest reply on Sep 15, 2018 10:37 AM by zasoc_1234276

    Difficulty Setting Up Bootloader Example AN60317



      We're in the prototype phase and have enough units that a bootloader has become necessary.
      My starting place would be to get the AN60317 working but I'm having trouble even with that.


      I'm working remote but I have 2 PSOC5 boards.  One is on a CY8CKIT-050 dev kit, the other is a custom board with similar circuitry.  Both of these boards have an I2C connection with each-other and to a Raspberry Pi (which has integrated pull-up resistors).  SCL is P12[4], SDA is P12[5].  I know the I2C connection is physically OK because If I put special projects on each Cypress board to give them unique slave addresses I can see them both from the Raspberry Pi.


      The problem seems to be something with the Examples in AN60317, or with the way I've tried to convert or configure them.  I needed to modify the bootloader host project so to convert it from PSOC3 to PSOC5.  I had to upgrade both projects to a newer version of PSOC Creator.  I also needed to change the pins associated with the EZ-I2C device.


      The bootloader host eval board simply says "Bootloading..."  on its LCD.


      I've modified the bootloader host application to add debug code in an attempts to figure out where it is getting stuck.
      This is what I've learned:
          In cybtldr_api.c is a function "CyBtldr_TransferData"

          The last line of code executed by this function is "int err = g_comm->WriteData(inBuf, inSize);"

          I know this because I print a message to the LCD immediately prior to this line and immediately after but I only see the first message.


      The bootloader and bootloader applications I am trying to use are both attached to this email.


      Why is the bootloader host hanging?

      What additional steps do I need to take to continue troubleshoot this issue?