<?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: Erease Flash 0n MC9S08QE8 in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Erease-Flash-0n-MC9S08QE8/m-p/148879#M7798</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hello David,&lt;BR /&gt;&lt;BR /&gt;Please refer to the following recent thread -&lt;BR /&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=CW816COMM&amp;amp;thread.id=5101" target="_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=CW816COMM&amp;amp;thread.id=5101&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Mac&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2009-02-04&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:10 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Feb 2009 21:05:10 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2009-02-03T21:05:10Z</dc:date>
    <item>
      <title>Erease Flash 0n MC9S08QE8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Erease-Flash-0n-MC9S08QE8/m-p/148878#M7797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;To erase flash, i use following&amp;nbsp; code and asm code doonstack.asm&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;hidef.h&amp;gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* for EnableInterrupts macro */&lt;BR /&gt;#include "derivative.h" &amp;nbsp;/* include peripheral declarations */&lt;BR /&gt;#include "hcs08.h" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This is our definition file!&lt;BR /&gt;#include &amp;lt;MC9S08QE8.h&amp;gt;&lt;BR /&gt;#include "doonstack.h"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define BUSCLK&amp;nbsp; 8000000&lt;BR /&gt;#define vFCDIV&amp;nbsp; (BUSCLK/200000-1)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;char fdata, operation;&lt;BR /&gt;unsigned int faddress;&lt;/DIV&gt;&lt;DIV&gt;// Write-protect addresses ranging from 0xE400 up to 0xFFFF&lt;BR /&gt;const byte NVPROT_INIT @0x0000FFBD = 0xE2;&lt;/DIV&gt;&lt;DIV&gt;// MCU innitialization&lt;BR /&gt;void mcu_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; SOPT1 = bBKGDPE;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Enable debug pin&lt;BR /&gt;&amp;nbsp; ICSSC = NVFTRIM;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// configure FTRIM value&lt;BR /&gt;&amp;nbsp; ICSTRM = NVICSTRM;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// configure TRIM value&lt;BR /&gt;&amp;nbsp; ICSC2 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// ICSOUT = DCOOUT / 1&lt;BR /&gt;&amp;nbsp; // BUSCLK is now 8 MHz&lt;BR /&gt;&amp;nbsp; FCDIV = 39;//vFCDIV;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// set FCLK divider (FCLK = 200kHz)&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;#pragma inline&lt;BR /&gt;// Read the content of a memory address&lt;BR /&gt;char flash_read(unsigned int address)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; unsigned char *pointer;&lt;BR /&gt;&amp;nbsp; pointer = (char*) address;&lt;BR /&gt;&amp;nbsp; return (*pointer);&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;// Write a byte into the specified FLASH address&lt;BR /&gt;char flash_write(unsigned int address, unsigned char data)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; unsigned char *pointer;&lt;BR /&gt;&amp;nbsp; pointer = (char*) address;&lt;BR /&gt;&amp;nbsp; FlashProg(pointer,data);&amp;nbsp; &amp;nbsp;// call the FLASH programming function&lt;BR /&gt;&amp;nbsp; if (FSTAT_FACCERR) data=1; else data=0;&lt;BR /&gt;&amp;nbsp; if (FSTAT_FPVIOL) data|=2;&lt;BR /&gt;&amp;nbsp; return(data);&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;// Erase a sector of the FLASH memory&lt;BR /&gt;unsigned char flash_sector_erase(unsigned int address)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; unsigned char *pointer, res;&lt;BR /&gt;&amp;nbsp; pointer = (char*) address;&lt;BR /&gt;&amp;nbsp; FlashErase(pointer);&lt;BR /&gt;&amp;nbsp; if (FSTAT_FACCERR) res=1; else res=0;&lt;BR /&gt;&amp;nbsp; if (FSTAT_FPVIOL) res|=2;&lt;BR /&gt;&amp;nbsp; return(res);&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;void main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; mcu_init();&lt;BR /&gt;&amp;nbsp; fdata = 0;&lt;BR /&gt;&amp;nbsp; faddress = 0xE200;&lt;BR /&gt;&amp;nbsp; operation = 1;&lt;BR /&gt;&amp;nbsp; while (1)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (operation)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1: // sector erase&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fdata = flash_sector_erase(faddress);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; operation = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2: // write operation&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; faddress = 0xE200;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fdata = 'D';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fdata = flash_write(faddress,fdata);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; operation = 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3: // read operation&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; faddress = 0xE200;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fdata = flash_read(faddress);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; operation = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;If i run full chip simulation and i run code my erase function don't run. I don't kown why?&lt;/DIV&gt;&lt;DIV&gt;Do you have any idea about this?&lt;/DIV&gt;&lt;DIV&gt;Thanks&lt;/DIV&gt;&lt;DIV&gt;david&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2009 20:50:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Erease-Flash-0n-MC9S08QE8/m-p/148878#M7797</guid>
      <dc:creator>DavidoBG</dc:creator>
      <dc:date>2009-02-03T20:50:17Z</dc:date>
    </item>
    <item>
      <title>Re: Erease Flash 0n MC9S08QE8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Erease-Flash-0n-MC9S08QE8/m-p/148879#M7798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hello David,&lt;BR /&gt;&lt;BR /&gt;Please refer to the following recent thread -&lt;BR /&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=CW816COMM&amp;amp;thread.id=5101" target="_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=CW816COMM&amp;amp;thread.id=5101&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Mac&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2009-02-04&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:10 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2009 21:05:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Erease-Flash-0n-MC9S08QE8/m-p/148879#M7798</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2009-02-03T21:05:10Z</dc:date>
    </item>
  </channel>
</rss>

