I've been trying to use an external microprocessor as a bootloader host to program a CY8C5868AXI-LP032. The PSoC does not respond in any reasonable manner. I have several questions:
1. Is there any reason why I cannot use the P15-6 and P15-7 pins for the slave (as SCL and SDA respectively)?
2. The pull ups on the board are a little strong at 1k each. Still this is not above the current capability of the PSoC, or of the host. Could that be the problem?
3. I am following the AN60317 appnote "PSoC 3 and PSoC 5LP I2C Bootloader." In that note it shows setting up the slave as fixed function, hardware, and any pins. I connected it to the P15-6 and 7 pins and locked them. Later I thought that it did not make sense to specify fixed function if not using the normal I2C specific pins, so I changed it to UDB with software address decode and internal clock (although I don't know why I should have to specify a clock for a slave...). But it behaves exactly the same with either setup. Am I doing something wrong here?
Below are the traces. Note that the failure is no ACK after the address (4) is sent. But there is a very small pulse near the end of the ACK period. I have no idea what that is unless the PSoC is trying to ACK but is late, or maybe my host is not releasing the data line on time. But this happens even when the boot loadable device is not enabled, so I don't know what causes it.
Another thing. The top trace causes an external interrupt of the PSoC5, That interrupt just calls Bootloadable_load (). The interrupt is getting triggered and it is entering boot. However, even though the bootload fails, the PSoC never restarts the application. There is a 5 second timeout specified. Resetting the PSoC does get the app started again.
Just don't know where to go from here. Hope someone can help.
Well no one answered, but I have found the problem. A note on the data sheet says that I cannot use the USB pins (35,36) for anything other than USB. The note  was placed below the next section and I never did see it...
Anyway I am in the process of trying to haywire up a change to the board and will test again when done.