<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to reinvoke UART ISP mode on LPC1343 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588471#M21816</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to simulate UART ISP on an Olimex Eval Board because the target hardware is not ready.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The target will use an LPC1313 and therefore ISP will be on the UART.&lt;/P&gt;&lt;P&gt;The Olimex Eval Board has an LPC1343 with the USB boot mode pin strapped high.&lt;/P&gt;&lt;P&gt;This cannot be changed.&lt;/P&gt;&lt;P&gt;So I wrote code to reinvoke ISP via the IAP command in the reset handler.&lt;/P&gt;&lt;P&gt;However, the part goes into USB mode ISP, and not UART.&lt;/P&gt;&lt;P&gt;How can I make the device enter UART ISP?&lt;/P&gt;&lt;P&gt;NB: The ISP checksum of my code is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r0, sRam&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; r0 --&amp;gt; 0x10000000&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adds&amp;nbsp;&amp;nbsp; &amp;nbsp;r1, r0, 0x20&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; r1 --&amp;gt; 0x10000020&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sub&amp;nbsp;&amp;nbsp; &amp;nbsp;sp, 32&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; set stack (IAP friendly)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, 57&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP command: Reinvoke ISP&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, [r0]&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, =0x1FFF1FF1&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP entry point (thumb bit)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bx&amp;nbsp;&amp;nbsp; &amp;nbsp;r3&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP(r0, r1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers, Mike.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 02 Sep 2016 22:13:24 GMT</pubDate>
    <dc:creator>mikesimmonds</dc:creator>
    <dc:date>2016-09-02T22:13:24Z</dc:date>
    <item>
      <title>How to reinvoke UART ISP mode on LPC1343</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588471#M21816</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to simulate UART ISP on an Olimex Eval Board because the target hardware is not ready.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The target will use an LPC1313 and therefore ISP will be on the UART.&lt;/P&gt;&lt;P&gt;The Olimex Eval Board has an LPC1343 with the USB boot mode pin strapped high.&lt;/P&gt;&lt;P&gt;This cannot be changed.&lt;/P&gt;&lt;P&gt;So I wrote code to reinvoke ISP via the IAP command in the reset handler.&lt;/P&gt;&lt;P&gt;However, the part goes into USB mode ISP, and not UART.&lt;/P&gt;&lt;P&gt;How can I make the device enter UART ISP?&lt;/P&gt;&lt;P&gt;NB: The ISP checksum of my code is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r0, sRam&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; r0 --&amp;gt; 0x10000000&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adds&amp;nbsp;&amp;nbsp; &amp;nbsp;r1, r0, 0x20&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; r1 --&amp;gt; 0x10000020&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sub&amp;nbsp;&amp;nbsp; &amp;nbsp;sp, 32&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; set stack (IAP friendly)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, 57&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP command: Reinvoke ISP&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, [r0]&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, =0x1FFF1FF1&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP entry point (thumb bit)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bx&amp;nbsp;&amp;nbsp; &amp;nbsp;r3&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; IAP(r0, r1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers, Mike.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2016 22:13:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588471#M21816</guid>
      <dc:creator>mikesimmonds</dc:creator>
      <dc:date>2016-09-02T22:13:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to reinvoke UART ISP mode on LPC1343</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588472#M21817</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;After execute the Reinvoke ISP command, the state of the PIO0_3 determines whether the UART or USB interface will be used.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="2016-09-07_11-53-29.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/5240i41A775B24750F1A8/image-size/large?v=v2&amp;amp;px=999" role="button" title="2016-09-07_11-53-29.jpg" alt="2016-09-07_11-53-29.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ping&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Sep 2016 03:54:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588472#M21817</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2016-09-07T03:54:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to reinvoke UART ISP mode on LPC1343</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588473#M21818</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you actually READ ALL of the original post? I know full well that the level on Port 0.3 selects between UART and USB mode,&lt;/P&gt;&lt;P&gt;THAT is the problem in a nutshell.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What [1] NXP engineer put the VBUS function on the same pin as the USB/UART pin-strap?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For a bus powered system it is IMPOSSIBLE to pull this pin to ground! That would short out the USB power pins&lt;/P&gt;&lt;P&gt;and, moreover would de-power the device so ANY boot function would fail. See the schematic attached. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please, I would like a proper solution to invoking the UART ISP mode on a bus powered system with this device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps, someone at NXP with access to the LPC1343 version 5.2 boot ROM source code could provide&lt;/P&gt;&lt;P&gt;an address to jump to that is after the test for port 0.3 low and will begin the UART mode ISP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I really have not got either the time or the inclination to disassemble the boot ROM code myself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[1] Insert you own adjective here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards, Mike&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Sep 2016 11:40:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588473#M21818</guid>
      <dc:creator>mikesimmonds</dc:creator>
      <dc:date>2016-09-07T11:40:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to reinvoke UART ISP mode on LPC1343</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588474#M21819</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In your&amp;nbsp;schematic I see there is a 1k resistor (R9) between USB_VBUS and PIO0_3. This will limit the extra current drawn from VBus to 5 mA when you short P0_3 to gnd. That should not be a problem if you want to experiment with UART ISP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Sep 2016 13:29:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588474#M21819</guid>
      <dc:creator>renegeraets</dc:creator>
      <dc:date>2016-09-07T13:29:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to reinvoke UART ISP mode on LPC1343</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588475#M21820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In addition to the valid solution which Rene suggested, there is also a software hack available.&lt;/P&gt;&lt;P&gt;You could use for your benefit what tons of people have done wrong by accident: Disconnect the digital input stage of the I/O pin! Right before calling the IAP_Reinvoke_ISP function, write 0x00000000 to the IOCON_PIO0_3 register. Then regardless of the actual voltage at the PIO0_3 pin, the boot code will always read it as 0, and should enter UART instead of USB mode.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Sep 2016 14:21:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/How-to-reinvoke-UART-ISP-mode-on-LPC1343/m-p/588475#M21820</guid>
      <dc:creator>rolfmeeser</dc:creator>
      <dc:date>2016-09-07T14:21:26Z</dc:date>
    </item>
  </channel>
</rss>

