<?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: IAP not working? in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518549#M2738</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Thu Feb 05 11:52:54 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: LeonCorleone&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;...
&amp;nbsp; command[4]=12000;&amp;nbsp; //Frequency in khz
...
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm confused&amp;nbsp; :~ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What's your main clock speed&amp;nbsp; :quest: 12MHz, 16Mhz, 104Mhz, 23 7/8 MHz&amp;nbsp; :quest:&amp;nbsp; &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:36:20 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:36:20Z</dc:date>
    <item>
      <title>IAP not working?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518548#M2737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by LeonCorleone on Thu Feb 05 09:37:10 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello all&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm confused and I don't know how to do with this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to write some data from sram to flash and I use IAP ,however the code is compiled correctly but it doesn't write anything on flash.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm programming with Keil. maybe problem is with software .&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If somebody can help me I appreciate it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my code is&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;lpc17xx.h&amp;gt; //lpc17xx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;absacc.h&amp;gt; //absacc&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void disconnect_PLL(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void connect_PLL(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char IAP_Write(unsigned char *string);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char a[5] __at(0x10000200);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IAP_ADDRESS&amp;nbsp; 0x1FFF1FF1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int command[5];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int result[5];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef unsigned int (*IAP)(unsigned int[], unsigned int[]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static const IAP iap_entry = (IAP) IAP_ADDRESS;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int main(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char i=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;CLKSRCSEL|=0x00000001;//Define the main Oscillator as Clock Source.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;SCS|=0x00000020;//Set the main Oscillator and Set Clock between 1Mhz till 20MHZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PLL0CON|=0x00000003;&amp;nbsp;&amp;nbsp; //Enable PLL0 and connect to the Clock system.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PLL0CFG|=0x00070067;&amp;nbsp; //Set the Msel=103 and Nsel=7 , means 16Mhz increases to 416MHZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;CCLKCFG|=0x00000003;&amp;nbsp; //Divide 416 MHz by 4 equals 104MHZ.So CPU Clock is 104MHZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCLKSEL0|=0x03000000; //Set the Adc Clock :104/8=13MHZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i=0;i&amp;lt;5;i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;I&gt;=i;&lt;BR /&gt;IAP_Write(a);&lt;BR /&gt;}&lt;BR /&gt;unsigned char IAP_Write(unsigned char *string)&lt;BR /&gt;{&lt;BR /&gt;disconnect_PLL();&lt;BR /&gt;command[0]=50;&lt;BR /&gt;command[1]=8;&amp;nbsp; //Start sector number is 8&lt;BR /&gt;command[2]=8;&amp;nbsp; //Finish sector number is 8&lt;BR /&gt;&amp;nbsp; iap_entry(command,result);&lt;BR /&gt;if(result[0]!=0)&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;command[0]=51;&lt;BR /&gt;command[1]=0x00008100;&amp;nbsp; //Addrees of Flash&lt;BR /&gt;command[2]=0x10000200;&amp;nbsp; //Addrees of Sram&lt;BR /&gt;command[3]=256;&amp;nbsp; //How many bytes want to transfer&lt;BR /&gt;command[4]=12000;&amp;nbsp; //Frequency in khz&lt;BR /&gt;iap_entry(command,result);&lt;BR /&gt;if(result[0]!=0)&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void disconnect_PLL(void)&lt;BR /&gt;{&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000001;&amp;nbsp;&amp;nbsp; //Enable PLL0 bud it is disconnected.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000000;&amp;nbsp;&amp;nbsp; //Disable PLL0 and it is disconnected.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;}&lt;BR /&gt;void connect_PLL(void)&lt;BR /&gt;{&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000001;&amp;nbsp;&amp;nbsp; //Enable PLL0 &lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000003;&amp;nbsp;&amp;nbsp; //Connect PLL0 to the cpu clock.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |=======&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp; Feed Sequence.&lt;BR /&gt;}&lt;BR /&gt;&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:36:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518548#M2737</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:36:19Z</dc:date>
    </item>
    <item>
      <title>Re: IAP not working?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518549#M2738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Thu Feb 05 11:52:54 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: LeonCorleone&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;...
&amp;nbsp; command[4]=12000;&amp;nbsp; //Frequency in khz
...
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm confused&amp;nbsp; :~ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What's your main clock speed&amp;nbsp; :quest: 12MHz, 16Mhz, 104Mhz, 23 7/8 MHz&amp;nbsp; :quest:&amp;nbsp; &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:36:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518549#M2738</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:36:20Z</dc:date>
    </item>
    <item>
      <title>Re: IAP not working?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518550#M2739</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by LeonCorleone on Fri Feb 06 03:06:51 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks R2D2 to answer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In my program I'm also using the ADC unit for some work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually for IAP I'm using clock 12Mhz and first I 've disabled the PLL unit.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but when I debug the program,it writes in sram but nothing in flash.&amp;nbsp; :( &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know what my problem is.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also have the same problem with below code ==&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my code is&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include //lpc17xx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include //absacc&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void disconnect_PLL(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void connect_PLL(void);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char IAP_Write(unsigned char *string);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char a[5] __at(0x10000200);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IAP_ADDRESS 0x1FFF1FF1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int command[5];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int result[5];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;typedef unsigned int (*IAP)(unsigned int[], unsigned int[]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static const IAP iap_entry = (IAP) IAP_ADDRESS;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int main(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char i=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i=0;i&amp;lt;5;i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;I&gt;=i;&lt;BR /&gt;IAP_Write(a);&lt;BR /&gt;}&lt;BR /&gt;unsigned char IAP_Write(unsigned char *string)&lt;BR /&gt;{&lt;BR /&gt;disconnect_PLL();&lt;BR /&gt;command[0]=50;&lt;BR /&gt;command[1]=8; //Start sector number is 8&lt;BR /&gt;command[2]=8; //Finish sector number is 8&lt;BR /&gt;iap_entry(command,result);&lt;BR /&gt;if(result[0]!=0)&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;command[0]=51;&lt;BR /&gt;command[1]=0x00008100; //Addrees of Flash&lt;BR /&gt;command[2]=0x10000200; //Addrees of Sram&lt;BR /&gt;command[3]=256; //How many bytes want to transfer&lt;BR /&gt;command[4]=12000; //Frequency in khz&lt;BR /&gt;iap_entry(command,result);&lt;BR /&gt;if(result[0]!=0)&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;connect_PLL();&lt;BR /&gt;return 1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void disconnect_PLL(void)&lt;BR /&gt;{&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000001; //Enable PLL0 bud it is disconnected.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000000; //Disable PLL0 and it is disconnected.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;}&lt;BR /&gt;void connect_PLL(void)&lt;BR /&gt;{&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000001; //Enable PLL0&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0CON=0x00000003; //Connect PLL0 to the cpu clock.&lt;BR /&gt;&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0xAA;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;LPC_SC-&amp;gt;PLL0FEED|=0x55;//------|// |=======&amp;gt;&amp;gt; Feed Sequence.&lt;BR /&gt;}&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:36:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/IAP-not-working/m-p/518550#M2739</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:36:20Z</dc:date>
    </item>
  </channel>
</rss>

