VBUS assignment to ISP_1?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VBUS assignment to ISP_1?

606 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by rjm on Wed Oct 28 04:45:31 MST 2015
The user manual UM10736 states in Table 91, that ISP_1 defaults to PIO1_11. That's clear from other parts of the documentation. However, USB_VBUS is declared as movable function, and the associated register defaults to 0xFF. But this should mean that USB_VBUS is not assigned by default to a pin at all. So, the init sequence should be responsible for this. Is that correct?

Another question: Why is it stated that VBUS should be assigned to the ISP_1 pin for ISP usability over USB?
A sample schematic (the LPCXpresso eval kit with LPC1549) shows that no Pull-Up is present on ISP_1. When I would not use a USB cable, the MCU would reset in an ISP-Boot-mode.

Hence I'm tempted to leave ISP_1 without any connection except a pull-up resistor (as is the case with ISP_0 in my own board, and then assign VBUS to another pin.

Please clarify these issues.
Labels (1)
0 Kudos
3 Replies

572 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by lpcmunich on Fri Oct 30 05:56:09 MST 2015
Yes, but under the assumption that ISP0 is low.
And - under this assumption - when the part is powered up without USB connected, it would go into the well known UART boot mode.
>> ISP0 is normally high (pulled up). Hence it won't enter the UART boot mode.
Please refer the Boot Process Flow chart in the UM for more details.
If the watchdog flag is set or valid user code is found, it will always jump to execute the code from internal flash.
Connect the ISP0 and ISP1 as shown in our LPCXpresso board schematic, link below.
https://www.lpcware.com/system/files/LPC1549_LPCXpresso%20v2_schem_Rev_C.pdf
And the boot code will manage the rest, we have tested it here and it works fine.
0 Kudos

572 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by rjm on Thu Oct 29 08:01:32 MST 2015
>> As explained above, the part enters the ISP mode via USB when ISP_1 is high and not Low.

Yes, but under the assumption that ISP0 is low.
And - under this assumption - when the part is powered up without USB connected, it would go into the well known UART boot mode.

But that's not what I want. I have ISP_0 on hi using a pull-up. It is intended that the device starts the user program upon reset. It will automatically enter a boot mode, when no user code is present. And when both ISP-pins are hi, USB boot can still be entered from user code execution (as is documented).

Therefore, it is a quite logical choice to have both ISP-pins to high on reset. Hence my desire to assign VBus elsewhere. But when the bootloader code uses ISP_1 as VBUS detect, I have no choice, indeed. But - this way my board would never start in user code when the board is powered externally. Do I overlook something, or is this analysis OK?
0 Kudos

572 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by lpcmunich on Thu Oct 29 06:02:57 MST 2015
Hi rjm,
Please find my comments in-lined below.

The user manual UM10736 states in Table 91, that ISP_1 defaults to PIO1_11. That's clear from other parts of the documentation. However, USB_VBUS is declared as movable function, and the associated register defaults to 0xFF. But this should mean that USB_VBUS is not assigned by default to a pin at all. So, the init sequence should be responsible for this. Is that correct?
>> Yes, the Boot code (in ROM) takes care of necessary initialization.

Another question: Why is it stated that VBUS should be assigned to the ISP_1 pin for ISP usability over USB?
>> Please refer the Table-89 in UM10736. The ISP_1 is used to detect the USB cable connectivity (through VBUS).
Normally the ISP_1 is low (no USB cable connected). But when the USB cable is connected, the ISP_1 goes high since the VBUS signal is high.

A sample schematic (the LPCXpresso eval kit with LPC1549) shows that no Pull-Up is present on ISP_1. When I would not use a USB cable, the MCU would reset in an ISP-Boot-mode.
>> As explained above, the part enters the ISP mode via USB when ISP_1 is high and not Low.

Hence I'm tempted to leave ISP_1 without any connection except a pull-up resistor (as is the case with ISP_0 in my own board, and then assign VBUS to another pin.
>> If you would like to use ISP via USB, you shouldn't connect a pull-up on ISP_1.
0 Kudos