USB IAP Problem - Not Working

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

USB IAP Problem - Not Working

257 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ulysses on Fri Feb 26 16:26:40 MST 2010
[COLOR=#1F497D]We need to implement USB-based IAP  (per the user manual, this is a built-in capability in this part)  We have tried every possible configuration to no avail. What I would like to see is a confirmed correct minimum schematic (or description thereof) that is guaranteed to work.  So far we have tried this with our custom board and a modified LPCxpresso board.[/COLOR]
  [COLOR=#1F497D] [/COLOR]
  [COLOR=#1F497D]LPCxpresso board:[/COLOR]
  [COLOR=#1F497D]With the debugger section connected and disconnected, with the pIO0.1 pin jumpered to ground with a  10k pulldown, and  PIO0.3 connected to USB cable V+ through a 50k resistor, and a 1.5k pullup on D+ to 3.3v when plugged in, the PC tried to enumerate and fails. [/COLOR]
  [COLOR=#1F497D]The LPCxpresso board seems to boot into user code (flash programmed with the “Blinky” example) with the LED blinking merrily away, so it seems the IAP rom doesn’t get executed. [/COLOR]
  [COLOR=#1F497D]Questions: [/COLOR]
  [COLOR=#1F497D]-[FONT=&quot]        [/FONT][/COLOR][COLOR=#1F497D]Is there any special treatment of the reset line (besides a pullup resistor) that is need ? [/COLOR]
  [COLOR=#1F497D]-[FONT=&quot]        [/FONT][/COLOR][COLOR=#1F497D]What is the timing from reset where the pIO0.1 and 0.3 pins are sampled? [/COLOR]
  [COLOR=#1F497D]-[FONT=&quot]        [/FONT][/COLOR][COLOR=#1F497D]Are there any implications with IAP from having the SWD debug enabled and/or connected to a debug interface ?[/COLOR]
  [COLOR=#1F497D]-[FONT=&quot]        [/FONT][/COLOR][COLOR=#1F497D]Does the IAP USB rom expect to control the USB connect line though a transistor, or will a simple pullup do? [/COLOR]
  [COLOR=#1F497D] [/COLOR]
  [COLOR=#1F497D]On our custom board we control the USB connect line though a transistor per the example in the user manual, but that doesn’t seem to help.  We have never enabled CRP of any kind.  I don’t believe the watchdog is enabled either. On our custom board, we are using CMSIS 1.3 with freeRTOS.  The LPCxpresso board is just running ‘blinky’.[/COLOR]
  [COLOR=#1F497D] [/COLOR]
  [COLOR=#1F497D]Any help would be greatly appreciated.[/COLOR]
0 Kudos
2 Replies

193 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by NXP_USA on Sun Feb 28 00:03:26 MST 2010

Quote: Ulysses
[COLOR=#1F497D]We need to implement USB-based IAP  (per the user manual, this is a built-in capability in this part)  We have tried every possible configuration to no avail. What I would like to see is a confirmed correct minimum schematic (or description thereof) that is guaranteed to work.
...
  [COLOR=#1F497D]Any help would be greatly appreciated.[/COLOR]



The only thing in the description that I am unsure of is connecting the VBus to Vdd through a 50K resistor. Typically, we connect it directly without a resistor. Other than that- no pullup is required on Reset (it has an internal pullup) and P0.1 must be low to enter ISP. It is okay not to have the SoftConnect switch implemented, a pullup is fine.

The one mechanism to disable ISP is to set CRP3 or NO_ISP but you had mentioned that this has not been done. If you would like to see an example of a board that implements the USB ISP there are several. The LPCXpresso base board implements it, but the schematic is not available unless you purchase the board. The Keil MCB1000/MCB134x board implements ISP and the schematic is here:
http://www.keil.com/mcb1000/mcb1000-schematics.pdf

-NXP
0 Kudos

193 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by ktownsend on Fri Feb 26 22:25:45 MST 2010
You can see a working schematic here:

http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign.aspx

This will require some modification since I've implemented a button for the USB Bootloader. When you press the button the board will reset and then go into the bootloader (thanks to R6/C11), which is quicker than setting a jumper, resetting, removing the ISP jumper, etc. You can modify this and remove the BAT54C entirely as well as R6/C11 and replace the button with a jumper if you want. The USB bootloader works fine with this setup, though.
0 Kudos