<?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 Re: Help! Failed to replace LPC2132 by LPC2136/01  in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548508#M13653</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Sun Aug 04 06:43:07 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;Sorry, it's all my fault&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I messed up the stack in my linker script for the RAM-execution image.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The old and the /01 do behave different, but that difference happens in programs with incorrect stack setup. We don't care about that, do we?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This problem brought the roof down on my head...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:49:02 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:49:02Z</dc:date>
    <item>
      <title>Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548506#M13651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Sat Aug 03 11:01:36 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, I use LPC213x since a long time. I build a board, recently for the LPC2134. I like the simplicity of these devices, compared to the LPC1700/LPC1100/LPC800 sometimes. I have a stock of LPC2132 and intend to use them for some motor drive/SMPS projects. For program development I want more RAM, hence decided to use an LPC2136/01 for that. I assembled 3 boards, 2xLPC2136/01 and 1xLPC2132 (old).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought, I had understood, that the /01 devices are drop-in replacements, if I don't use any new features of these. But that is exactly, what is not happening. While several programs work with LPC213x (old) they do not with LPC213x/01 ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When limiting functionality of the programs to GPIO, DAC and Timer0 only, I still don't get the same behaviour. The behaviour of the old device is as expected. The new ones behave abnormally: simple button presses not recognized, Timer0-based timings totally off and things like that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found out, that I seem to have a problem with the SCS. In my program it is NOT the same (for the /01 devices), if I leave that untouched (its RESET value is supposed to be 0) or if I write 0 to it!! Let alone if I use read-modify-write. Okay, read-modify-write is - strictly speaking - wrong, as it may place 'undefined bits' into locations that should be zero. But still, why a difference between RESET contents and zero?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found nothing in the User Manual or Errate Sheet.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Did any of you ever experience something similar and how did you fix it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There must be something I've missed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know about fast IO, fractional baud rate generator. Is there anything else different?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I regret to have deleted the original User Manual of LPC213x of the time before /01 devices. But I guess, SCS was simply non-existent in these devices and not touching it should provide portability.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548506#M13651</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:00Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548507#M13652</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Sat Aug 03 18:12:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I returned to the problem and narrowed it down:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I seems like that: If GPIO is enabled for P0.25 and I change this pin's direction to output, then it won't work if switched to AOUT (function 2) later by PINSEL1 - at least if that happens within a few instructions. See program attached. And it fails on the /01 device only, never on the 'old' device.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there any difference between old devices and /01 devices concerning memory alignment, i.e. core differences ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm executing my program from RAM, so FLASH differences cannot matter.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548507#M13652</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:01Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548508#M13653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Sun Aug 04 06:43:07 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;Sorry, it's all my fault&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I messed up the stack in my linker script for the RAM-execution image.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The old and the /01 do behave different, but that difference happens in programs with incorrect stack setup. We don't care about that, do we?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This problem brought the roof down on my head...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548508#M13653</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:02Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548509#M13654</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Mon Aug 05 15:42:08 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;Sorry again: NO it wasn't my fault.&lt;BR /&gt;It's the NXP's bootloader programmers fault!&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry for my monologue - but it seems nobody cares. We'll see.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I went on with correct stack setup and strange errors kept occuring! On the /01 device only.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now, what turned out:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On LPC213x (old):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When the bootloader finds out, P0.14 is NOT pulled low and valid user code present,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;it starts the user code and does nothing else. That's what we expect, right? This is&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;consistent with the user manual paragraph 2.4.11: ISP &lt;/SPAN&gt;&lt;STRONG&gt;commands&lt;/STRONG&gt;&lt;SPAN&gt; use on-chip RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x4000 0120 to 0x4000 01FF. Yea, and if we don't use ISP commands, this RAM is left&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;alone - fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On LPC213x/01:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The bootloader runs amuck in this RAM area, whether or not there's anything to do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;other than launching valid user code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or the other way round: LPC213x/01 will always destroy your lower RAM area, even from a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;watchdog timeout, because that's exactly how I launched my code from RAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This IS a difference. And it is not a backward compatible one!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Next thing, I'll check is whether this f**ked up boot loader is also in LPC800.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm very sad about that. Because I wrote a small RAM-loader to execute code im RAM only.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It's placed in FLASH and it uses - literally - not one bit of RAM. So I'm asking myself,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;why professional NXP boot code developers do need RAM for launching user code in the first place.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I do run a protocol, put data into the RAM and launch without using RAM for my program ;-) &lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548509#M13654</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:02Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548510#M13655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Oliver Sedlacek on Fri Aug 23 07:38:31 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I hope you get this sorted. I'm really struggling with my LPC2136 boards and getting pretty demoralised.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548510#M13655</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:03Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548511#M13656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Fri Aug 23 09:01:12 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Marc,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The ROM bootloader does a lot more than boot your code. It has to calibrate peripherals (especially the IRC) as well as looking at the boot (ISP) bins and making decisions based on that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As far as I know, NXP make no guarantees about preserving the RAM when running the ROM bootloader. You have relied on something that 'worked' in on version of the ROM and not in another.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548511#M13656</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:04Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548512#M13657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Fri Aug 23 11:47:02 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: TheFallGuy&lt;/STRONG&gt;&lt;BR /&gt;Marc,&lt;BR /&gt;&lt;BR /&gt;The ROM bootloader does a lot more than boot your code. It has to calibrate peripherals (especially the IRC) as well as looking at the boot (ISP) bins and making decisions based on that.&lt;BR /&gt;&lt;BR /&gt;As far as I know, NXP make no guarantees about preserving the RAM when running the ROM bootloader. You have relied on something that 'worked' in on version of the ROM and not in another.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes and no.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chapter 4.9 says: ...and internal SRAM values are preserved throughout Power-down mode...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What's the point in preserving values in Power-down if the bootloader overwrites these once power is up again?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What's missing in the manual (UM10120 Rev4) is a clear statement: The bootloader is executed on every reset / wakeup and it always uses the RAM area 0x4000 0000 to 0x4000 0270. Maybe additionally (I don't know) the higher 32 bytes of SRAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking at the ISP pins is one LDR instruction and one TST. Not that hard, really.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know what the bootloader does. I wonder, if it is the bootloader, that fills in most of the 'RESET' values of the peripherals.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548512#M13657</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:04Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548513#M13658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Fri Aug 23 14:58:00 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The boot loader will be run during a reset but not during a wake up. Perhaps you are doing something wrong....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The boot loader does a whole bunch of stuff, try decoding the rom...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548513#M13658</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548514#M13659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Fri Aug 23 14:58:03 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The boot loader will be run during a reset but not during a wake up. Perhaps you are doing something wrong....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The boot loader does a whole bunch of stuff, try decoding the rom...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548514#M13659</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help! Failed to replace LPC2132 by LPC2136/01</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548515#M13660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Mon Aug 26 05:11:50 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I see. Sorry!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I made an assumption on RAM that is indeed documented nowhere.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is no information that can be transferred through RAM from one 'life' of a program to its next 'life'. I got that, now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And yes, I will have a look at the bootloader's code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:49:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-Failed-to-replace-LPC2132-by-LPC2136-01/m-p/548515#M13660</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:49:06Z</dc:date>
    </item>
  </channel>
</rss>

