I'm experimenting with the LPC55S69-EVK and was now testing the ISP functionality. I've now noticed that the USB ISP mode only works when using USB1 and not on USB0.
Pressing button ISP while plugin in P10 (USB0) doesn't have any response on my PC.
Pressing button ISP while plugin in P9 (USB1 both FS and HS) does work, the drivers are loaded and the device is available.
As I can see in the UserManual in chapter 6 paragraph 3 both USB0 and USB1 or supported in the USB HID ISP.
Can someone verify this behaviour?
Is this a bug or am I doing something wrong?
I can confirm, that EVB board on older then 1B revision have this bug. We have a board with unknown revision older then 1A, and ISP does not work on USB0 interface (the revision is the last two signs on third line). But we used this port of board by our firmware, so port is still work. This is really bug, not described in errata. In user manual there is description of ISP.
UM11126.pdf - Foxit PhantomPDF (1.3 Mb) закачан 15 января 2020 г. Joxi
As you can see, there is only one value in CMPA register for both USB0 and USB1. So, the USB0 support fail in ISP is simply bug. As people write, in 1B revision it was corrected in ROM code.
This bug is not a big bug. We have made the board with this MCU and found, that even USB1 on real board does not work with ISP function. It was unexpected and we are still searching the ways to fix it. We have used 1A revision IC available on distributor stocks and now have a brick. )) So, be careful, make the alternative connectors for other interfaces to make sure that you will be able to use ISP.
Now we think that there may be the ways to choose which ISP interface to use, such as bootstraps (PU/PD), not described in the documentation.
Thanks for taking the time to let us know about this issue. I've reproduced this behavior you are experiencing and have tried a numerous different ways to get the PC to recognize the USB0 in ISP mode, but so far no luck. I have now reported this to our internal team that focuses on the LPC55. I'll keep you updated and will let you know as soon as I have information whether it is something I am missing in the configuration or if this is erroneous behavior.
I am still waiting for a response. I apologize for the inconvinience this may cause you. Again I will send out a follow up email and hopefully get a response this week.
Thanks for your patience,
So to recapitulate, there is room for 1 external USB port on our design and it needs to work for ISP-mode, low-speed and full-speed and as both device and host.
USB0 -> not recommended for ISP due to dangerous procedure to activate this function, could leave the device bricked. (NXP doesn't activate ISP on USB0 during fabrication)
USB1 -> not recommended for low-speed due to errata: 3.9 USB.1: HS host fails when connecting with the LS device.
So what are the options than?
After a deeper look into this. The USB 0 is described as an option in which we can boot from as the MCU is capable of supporting it. However, there must be changes made to a particularly sensitive register that can cause the MCU to be bricked if not done properly or if any other section of the register is modified in the process. This section is not described in the reference manual, because we do not recommend making any changes with the risk of not recovering the board.
I've attempted to modify this register (disregarding the above caution, to test this for you) using the MCUXpresso tool, but it does not allow me to rewrite this register.
I apologize for any inconvinience this may cause in your project, but I'd highly recommend to test out the other boot options with the current MCUs configuration.
If you have any questions, please dont hesitate to ask.