<?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: I Can't modify data on eeprom memory in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143983#M3648</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;Remap your RAM to 0x2000, ie INITRM = 0x20;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Kantha&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Feb 2007 11:56:30 GMT</pubDate>
    <dc:creator>Kantha</dc:creator>
    <dc:date>2007-02-06T11:56:30Z</dc:date>
    <item>
      <title>I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143978#M3643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello !&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I'm using a MC9S12DG128 microcontroler. I would like to modify data writen in eeprom memory.&lt;/DIV&gt;&lt;DIV&gt;The chip is used with a 16MHz oscillator.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I first initiate&amp;nbsp;the memory mapping&amp;nbsp;:&lt;/DIV&gt;&lt;DIV&gt;init_cpu(){&lt;/DIV&gt;&lt;DIV&gt;INITEE = 0x09;&lt;/DIV&gt;&lt;DIV&gt;INITRM = 0x11;&lt;/DIV&gt;&lt;DIV&gt;INITRG = 0x00;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Before writing data, I'm looking at the EDIVLD bit in the ESTAT register, if null I initiate the EEPROM registers :&lt;/DIV&gt;&lt;DIV&gt;void eeprom_init(){&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ECLKDIV=0x4A;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ECNFG=0x00;//pas it eeprom&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and then I modify the sector :&lt;/DIV&gt;&lt;DIV&gt;char modifiy_Sector(unsigned int * adr, unsigned int data){&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ESTAT=0x30;//raz&amp;nbsp; ACCERR et PVIOL&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(!(ESTAT &amp;amp; 0x80));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*adr=data;//fill address with data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ECMD=0x60;//write command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ESTAT = 0x80;//activate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if((ESTAT&amp;amp;0x30)!=0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(FALSE);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(!(ESTAT &amp;amp; 0x40));//wait for end of command&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(*adr==data);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The problem is that data are not written in the EEPROM memory ! Did I miss something or Is there any errors in my code ?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For more information, I'm using CW compiler, ISystem Debugger. My Controler is used in Normal single chip.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you for your help !&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Bibi&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 01:30:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143978#M3643</guid>
      <dc:creator>Bibi</dc:creator>
      <dc:date>2007-01-31T01:30:28Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143979#M3644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;You can't write into EEPROM unless it is empty, means data at that location should be 0xFFFF.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Kantha&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 20:40:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143979#M3644</guid>
      <dc:creator>Kantha</dc:creator>
      <dc:date>2007-01-31T20:40:12Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143980#M3645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;Call function eeprom_init() even if EDIVLD bit is not null&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;char modifiy_Sector(unsigned int * adr, unsigned int data)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ESTAT=0x30;//raz&amp;nbsp; ACCERR et PVIOL&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(!(ESTAT &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#FF3333"&gt;// remove this while condition&lt;BR /&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*adr=data;//fill address with data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ECMD=0x60;//write command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ESTAT = 0x80;//activate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if((ESTAT&amp;amp;0x30)!=0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(FALSE);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(!(ESTAT &amp;amp; 0x40));//wait for end of command&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(*adr==data);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;remove the marked while condition. you can't issue more than one command unless it has been completed.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Kantha&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 20:47:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143980#M3645</guid>
      <dc:creator>Kantha</dc:creator>
      <dc:date>2007-01-31T20:47:03Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143981#M3646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;Thank you for your answer, but it seems not to resolve my problem. I analyse&lt;BR /&gt;every register needed by the EEPROM and I did'nt find any mistakes.&lt;BR /&gt;During my last tests, I've seen that the memory space I was considering as&lt;BR /&gt;the eeprom memory was acting as a RAM memory. I mean, when I am executing,&lt;BR /&gt;step by step, the command line *eepromAddress = data (as explaining in the&lt;BR /&gt;application note), the memory area is updating with the data even if the the&lt;BR /&gt;command was not run (with writing the ECMD register and ESTAT_CBIEF bit).&lt;BR /&gt;When I shut down the chip power, The memory area is no longer fill with data&lt;BR /&gt;I wrote but with random data.&lt;BR /&gt;So I thougth it was a mapping memory error.&lt;BR /&gt;I want the following mapping:&lt;BR /&gt;RAM : 0x1000 to 0x2FFF&lt;BR /&gt;EEPROM : 0x800 to 0xFFF&lt;BR /&gt;FLASH: 0x4000 et 0x8000&lt;BR /&gt;&lt;BR /&gt;As explaining in the documentation, I configure the mapping registers as&lt;BR /&gt;followed:&lt;BR /&gt;INITRM = 0x11;&lt;BR /&gt;INITEE = 0x09;&lt;BR /&gt;INITRG = 0x00;&lt;BR /&gt;&lt;BR /&gt;I saw in the application note you've sent to me, that if a RAM area is at&lt;BR /&gt;the same place as the EEPROM area, the sector is acting as a RAM memory. At&lt;BR /&gt;reset, the ram memory is placed from 0x0000 to 0x1FFF and is masking the&lt;BR /&gt;eeprom memory.What should I do to make the EEPROM visible.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Nicolas DOMBLIDES&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Feb 2007 02:02:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143981#M3646</guid>
      <dc:creator>n_domblides</dc:creator>
      <dc:date>2007-02-01T02:02:11Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143982#M3647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;bibi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;you want to&amp;nbsp;map your DG128 RAM to 1000-2fff. This is impossible since DG128 8K RAM block is "mappable to any 8K boundary". 8K boundary means $0, $2000, $4000, $6000&amp;nbsp; etc. You can't map DG128's 8K RAM to 1000-2fff. Only 0-1fff, 2000-3fff, etc&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Feb 2007 20:36:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143982#M3647</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2007-02-01T20:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143983#M3648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;Remap your RAM to 0x2000, ie INITRM = 0x20;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Kantha&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 11:56:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143983#M3648</guid>
      <dc:creator>Kantha</dc:creator>
      <dc:date>2007-02-06T11:56:30Z</dc:date>
    </item>
    <item>
      <title>Re: I Can't modify data on eeprom memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143984#M3649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi !&lt;BR /&gt;&lt;BR /&gt;That's it !! I remapped my RAM memory and it's working !!&lt;BR /&gt;&lt;BR /&gt;thank you everybody for your help.&lt;BR /&gt;&lt;BR /&gt;Bibi&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 20:55:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-Can-t-modify-data-on-eeprom-memory/m-p/143984#M3649</guid>
      <dc:creator>n_domblides</dc:creator>
      <dc:date>2007-02-06T20:55:26Z</dc:date>
    </item>
  </channel>
</rss>

