<?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>LPC Microcontrollers中的主题 Re: LPC18xx EEPROM</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525124#M7760</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by namorada on Thu Jun 04 07:55:46 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried several example... No succes...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For the init:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;LPC_EEPROM-&amp;gt;CLKDIV = 1500 / (EEPROM_CLOCK_DIV-1); // 31 ; //EEPROM clock=1500 KHz
LPC_EEPROM-&amp;gt;RWSTATE = (1500 / 28571429 + 1) | ((1500 / 14285714 + 1) &amp;lt;&amp;lt; 8); //(0x3 | 0x5&amp;lt;&amp;lt;8); // Read waitstates.
LPC_EEPROM-&amp;gt;WSTATE = ((1500 / 50000000 + 1) &amp;lt;&amp;lt; 16) | ((1500 / 25000000 + 1) &amp;lt;&amp;lt; 8) | (1500 / 100000000 + 1); // (0x2 | 0x3&amp;lt;&amp;lt;8 | 0x2&amp;lt;&amp;lt;16); //EEPROM wait state register
LPC_EEPROM-&amp;gt;AUTOPROG = EEPROM_AUTOPROG_AFT_1WORDWRITTEN;//01 = erase/program cycle is triggered after 1 word is written&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;EEPROM_Read(0,0,uint32_t_Buffer,4);
uint32_t_Buffer[0] = 0xAA;
uint32_t_Buffer[1] = 0xBB;
uint32_t_Buffer[2] = 0xCC;
uint32_t_Buffer[3] = 0xDD;
uint32_t_Buffer[4] = 0xEE;
uint32_t_Buffer[5] = 0xFF;
uint32_t_Buffer[6] = 0x87;
EEPROM_Write(0,0,uint32_t_Buffer,4);
uint32_t_Buffer[0] = 0x00;
uint32_t_Buffer[1] = 0x00;
uint32_t_Buffer[2] = 0x00;
uint32_t_Buffer[3] = 0x00;
uint32_t_Buffer[4] = 0x00;
uint32_t_Buffer[5] = 0x00;
uint32_t_Buffer[6] = 0x00;
EEPROM_Read(0,0,uint32_t_Buffer,4);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fonctions definitions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void EEPROM_Read(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size)
{
uint32_t i = 0;
uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset);
for(i = 0; i &amp;lt; size/4; i++)
{

ptr&lt;I&gt; = pEepromMem&lt;I&gt;;
}
}



void EEPROM_Write(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size)
{
uint32_t i = 0;
uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset);

if(size &amp;gt; EEPROM_PAGE_SIZE - pageOffset)
{
size = EEPROM_PAGE_SIZE - pageOffset;
}

for(i = 0; i &amp;lt; size/4; i++)
{
pEepromMem&lt;I&gt; = ptr&lt;I&gt;;
}
}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Each call to the Read function give me a HardFault..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also tried via the IAP finctions, but it always return me : IAP_INVALID_COMMAND...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Me? Desperate? Yes.. in a way ... &lt;SPAN class="lia-unicode-emoji" title=":confused_face:"&gt;&lt;LI-EMOJI id="lia_confused-face" title=":confused_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:13:17 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:13:17Z</dc:date>
    <item>
      <title>LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525123#M7759</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by namorada on Thu Jun 04 00:30:56 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Im looking for a simple way to use the internal EEPROM of a LPC18xx.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anyone of you have a simple example on how to read and write in it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525123#M7759</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:16Z</dc:date>
    </item>
    <item>
      <title>Re: LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525124#M7760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by namorada on Thu Jun 04 07:55:46 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried several example... No succes...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For the init:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;LPC_EEPROM-&amp;gt;CLKDIV = 1500 / (EEPROM_CLOCK_DIV-1); // 31 ; //EEPROM clock=1500 KHz
LPC_EEPROM-&amp;gt;RWSTATE = (1500 / 28571429 + 1) | ((1500 / 14285714 + 1) &amp;lt;&amp;lt; 8); //(0x3 | 0x5&amp;lt;&amp;lt;8); // Read waitstates.
LPC_EEPROM-&amp;gt;WSTATE = ((1500 / 50000000 + 1) &amp;lt;&amp;lt; 16) | ((1500 / 25000000 + 1) &amp;lt;&amp;lt; 8) | (1500 / 100000000 + 1); // (0x2 | 0x3&amp;lt;&amp;lt;8 | 0x2&amp;lt;&amp;lt;16); //EEPROM wait state register
LPC_EEPROM-&amp;gt;AUTOPROG = EEPROM_AUTOPROG_AFT_1WORDWRITTEN;//01 = erase/program cycle is triggered after 1 word is written&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;EEPROM_Read(0,0,uint32_t_Buffer,4);
uint32_t_Buffer[0] = 0xAA;
uint32_t_Buffer[1] = 0xBB;
uint32_t_Buffer[2] = 0xCC;
uint32_t_Buffer[3] = 0xDD;
uint32_t_Buffer[4] = 0xEE;
uint32_t_Buffer[5] = 0xFF;
uint32_t_Buffer[6] = 0x87;
EEPROM_Write(0,0,uint32_t_Buffer,4);
uint32_t_Buffer[0] = 0x00;
uint32_t_Buffer[1] = 0x00;
uint32_t_Buffer[2] = 0x00;
uint32_t_Buffer[3] = 0x00;
uint32_t_Buffer[4] = 0x00;
uint32_t_Buffer[5] = 0x00;
uint32_t_Buffer[6] = 0x00;
EEPROM_Read(0,0,uint32_t_Buffer,4);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fonctions definitions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void EEPROM_Read(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size)
{
uint32_t i = 0;
uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset);
for(i = 0; i &amp;lt; size/4; i++)
{

ptr&lt;I&gt; = pEepromMem&lt;I&gt;;
}
}



void EEPROM_Write(uint32_t pageOffset, uint32_t pageAddr, uint32_t* ptr, uint32_t size)
{
uint32_t i = 0;
uint32_t *pEepromMem = (uint32_t*)EEPROM_ADDRESS(pageAddr,pageOffset);

if(size &amp;gt; EEPROM_PAGE_SIZE - pageOffset)
{
size = EEPROM_PAGE_SIZE - pageOffset;
}

for(i = 0; i &amp;lt; size/4; i++)
{
pEepromMem&lt;I&gt; = ptr&lt;I&gt;;
}
}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Each call to the Read function give me a HardFault..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also tried via the IAP finctions, but it always return me : IAP_INVALID_COMMAND...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Me? Desperate? Yes.. in a way ... &lt;SPAN class="lia-unicode-emoji" title=":confused_face:"&gt;&lt;LI-EMOJI id="lia_confused-face" title=":confused_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525124#M7760</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:17Z</dc:date>
    </item>
    <item>
      <title>Re: LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525125#M7761</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 Thu Jun 04 08:53:38 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Which LPC18xx are you using? I'm not sure all the member of the family have an EEPROM, and therefore will not have a function in the ROM for you to call, which might explain the HardFault.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525125#M7761</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525126#M7762</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by LabRat on Thu Jun 04 08:59:41 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;UM:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;2.3.4 On-chip EEPROM&lt;BR /&gt;The [color=#f00]LPC185x/3x parts[/color] with flash also include a 16 kB EEPROM. The EEPROM is divided into 128 pages. The last EEPROM page is protected.&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525126#M7762</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525127#M7763</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by namorada on Thu Jun 04 09:09:36 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Indeed, i have already checked that fast, for sure...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using a LPC1837...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What i really really don't understand is that my code is extract from there : &lt;/SPAN&gt;&lt;A href="http://http://docs.lpcware.com/lpcopen/v1.03/lpc18xx__43xx_2examples_2periph_2periph__eeprom_2eeprom_8c_source.html#l00146"&gt;HERE&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also tried to copy/paste the whole thing.. Same result...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It make me a HardFault on line 151... Any idea?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525127#M7763</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:19Z</dc:date>
    </item>
    <item>
      <title>Re: LPC18xx EEPROM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525128#M7764</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 Thu Jun 04 09:36:37 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried debugging? What is the address of the HardFault? What is the cause of the HardFault? Have you checked the value of EEPROM_ADDRESS?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:13:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC18xx-EEPROM/m-p/525128#M7764</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:13:20Z</dc:date>
    </item>
  </channel>
</rss>

