<?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>S12 / MagniV MicrocontrollersのトピックRe: Erasing a secured S12XD device via BDM</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442838#M11497</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;jmk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's piece of code from my BDM programmer. Mass erase routine for S12A/C/D and S12XA/XD devices looks like follows. HWWrBt12() writes byte using WRITE_BYTE (C0) BDM command. HWWrWd12() writes word using WRITE_WORD (C8) BDM command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm mass erasing Flash first, and then EEPROM, shouldn't matter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x104, 0xFF);&amp;nbsp;&amp;nbsp;&amp;nbsp; // FPROT all protection disabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105,0x30);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear PVIOL and ACCERR in FSTAT register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x103, 0);&amp;nbsp; //fcnfg not for S12X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear the WRALL bit in FTSTMOD&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105, 0x02);&amp;nbsp; // clear the FAIL bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x10); // fcnfg, write all&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrWd12(0x108, 0);&amp;nbsp;&amp;nbsp; // faddr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrWd12(0x10a,0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // fdata&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x106, 0x41); // fcmd=mass erase&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105, 0x80); // start&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Delay(); // 150us delay&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; while( !(HWRdBt12(0x105) &amp;amp; 0x40)) ; // wait for completion.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x0); // fcnfg, write all&lt;/P&gt;&lt;P&gt;&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; // mass erase eeprom&lt;BR /&gt;&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; HWWrBt12(0x114, 0xFF); // EPROT all protection disabled&lt;BR /&gt;&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; HWWrBt12(0x115, 0x30); // clear PVIOL and ACCERR in ESTAT register&lt;BR /&gt;&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; HWWrBt12(0x112, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear the WRALL bit in FTSTMOD&lt;BR /&gt;&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; HWWrBt12(0x115, 0x02);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear S12X FAIL bit&lt;BR /&gt;&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; HWWrWd12(0x118, 0); //eaddr&lt;BR /&gt;&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; HWWrWd12(0x11A, 0); //edata&lt;BR /&gt;&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; HWWrBt12(0x116, 0x41);&lt;BR /&gt;&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; HWWrBt12(0x115, 0x80);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay65ms(); // Don't rely on command complete flag, which is not available on S12C, just wait long enough.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 19 Aug 2015 14:48:38 GMT</pubDate>
    <dc:creator>kef2</dc:creator>
    <dc:date>2015-08-19T14:48:38Z</dc:date>
    <item>
      <title>Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442832#M11491</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am developing a programming solution for S12XD devices via the BDM interface. Everything is working properly (erase, write verify of both flash and eeprom) as long as I program the FSEC bits of flash location 0x7F_FF0F with 0b10 (UNSECURED). &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It should be possible to mass erase the flash contents when the device is in a secured state, so I have programmed the FSEC bit to 0b11 (secured).&lt;/P&gt;&lt;P&gt;Since I did this, I am not able to program/erase the device anymore, because of the security.&lt;/P&gt;&lt;P&gt;I have tried the "Complete Mass Erase (Special Modes)" as written in the security chapter of the manual, but nothing changes to the contents of the flash.&lt;/P&gt;&lt;P&gt;The program is still executing, an so the security is still present.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can somebody give me a good hint, or something to try out?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Aug 2015 12:04:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442832#M11491</guid>
      <dc:creator>jmk</dc:creator>
      <dc:date>2015-08-14T12:04:51Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442833#M11492</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Possible ways how to unsecure the device are to use unsecure command from CodeWarrior debugger or unsecure program from &lt;A href="http://www.pemicro.com/"&gt;www.pemicro.com&lt;/A&gt; pages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you use USB multilink you have to use unsecure Option MultilinkCyclonePro-&amp;gt;Unsecure in the CodeWarrior Hiwave Debugger. (Also check you have correct device selected for connection)&lt;/P&gt;&lt;P&gt;or you can use external usecure program which can be downloaded from pemicro pages.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.pemicro.com/downloads/download_file.cfm?download_id=16"&gt;&lt;STRONG&gt;Unsecure_12 &lt;/STRONG&gt;&lt;/A&gt; &lt;SPAN style="font-size: 7.5pt;"&gt;(8060 KB): &lt;/SPAN&gt;Utility which unsecures HCS12 devices via P&amp;amp;E's BDM Interfaces such as Cyclone-PRO, USB-ML-12, and BDM-Multilink. This version supports the new Rev B Multilink.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.pemicro.com/downloads/download_file.cfm?download_id=16"&gt;http://www.pemicro.com/downloads/download_file.cfm?download_id=16&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.pemicro.com/downloads/download_file.cfm?download_id=14"&gt;&lt;STRONG&gt;Unsecure_12 Help Files &lt;/STRONG&gt;&lt;/A&gt; &lt;SPAN style="font-size: 7.5pt;"&gt;(20 KB)&amp;nbsp; &lt;/SPAN&gt;This .hlp file describes the use and operationg of the Unsecure_12 program which is used with P&amp;amp;E's interface devices to unsecure proeviously secured HCS12 microcontrollers.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.pemicro.com/downloads/download_file.cfm?download_id=14"&gt;http://www.pemicro.com/downloads/download_file.cfm?download_id=14&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please also try to use Unsecure12? I have sometimes met with the fact I was not able to unsecure some device or connect to the device. In this case has helped to ask colleague to use his PC and connections or Unsecure12. Please, do not ask me why?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Best Regards, Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Aug 2015 13:15:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442833#M11492</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2015-08-17T13:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442834#M11493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Johan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For complete mass erase by BDM probe (in special mode) please go to Code Warior debugger menu -&amp;gt;MultilinkCyclonePro (according your BDM probe)-&amp;gt;Unsecure…&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If that don’t work you can use unsecure12 from P&amp;amp;E (for PEmicro probes):&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.pemicro.com/downloads/download_file.cfm?download_id=16" rel="nofollow"&gt;http://www.pemicro.com/downloads/download_file.cfm?download_id=16&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Unsecure_12 Help Files:&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.pemicro.com/downloads/download_file.cfm?download_id=14" rel="nofollow"&gt;http://www.pemicro.com/downloads/download_file.cfm?download_id=14&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Note: For downloading is necessary registration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check also your BDM connection. Typical issue is in ribbon cable orientation.&lt;/P&gt;&lt;P&gt;If you use some external watchdog circuit, please disconnect reset pin between watchdog device and MCU during unsecure and programming phase. The same is valid also for other sources which cloud drive RESET pin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is your oscillator clock and what is FCLKDIV value which you used during CW unsecure procedure?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check MODA, MODB, TEST pin voltages. They should be low for enter into special single chip mode (MODC/BKGD is driven by BDM probe). Please, check also XCLKS pin value and compare it with your oscillator type connection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If, you have more than one BDM probes connected to your PC, please disconnect all others except one which you use to interface your MCU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I hope it helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;RadekS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Aug 2015 13:29:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442834#M11493</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2015-08-17T13:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442835#M11494</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Many thanks for the answers!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do believe that the device can be erase and unsecured with the already existing BDM probes (PE or any other probe), but I want to erase the device with my own made probe.&lt;/P&gt;&lt;P&gt;MODA = 0V, MODB = 0V, TEST = 0V, all the time and MODC/BKGD = 0V during reset and when I release the nRST pin. So the device should enter Special Single Chip mode.&lt;/P&gt;&lt;P&gt;I use a crystal oscillator of 16MHz, XCLKS = 0V and I use the value 0x49 for FCLKDIV (PRDIV8=1, FDIV=9 to get 200KHz). As I set before, this all worked fine as long as I do not set the security bits. Even the mass erase was working properly before I set the security...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I am looking for is a list of Read and Write Memory to the flash or bdm registers to erase a secured device. This list is mentioned in the datasheet of the part, but unfortunately it isn't working...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For clarity, here is the list from the datasheet:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/53372i64B8CA02C7CD5603/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Aug 2015 12:32:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442835#M11494</guid>
      <dc:creator>jmk</dc:creator>
      <dc:date>2015-08-18T12:32:30Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442836#M11495</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi jmk,&lt;/P&gt;&lt;P&gt;Please use unsecure command file (something like P&amp;amp;E_Multilink_CyclonePro_Erase_unsecure_hcs12.cmd) in your project as inspiration for unsecure by your probe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This command file was tested and works correctly. It uses simply commands like reset, write byte (wb), write word (ww) and wait.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, you should use command file which was generated for your MCU family. There are two or three versions of this file for different S12 families.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I hope it helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;RadekS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Aug 2015 13:15:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442836#M11495</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2015-08-18T13:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442837#M11496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Many Thanks RadekS!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Aug 2015 14:03:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442837#M11496</guid>
      <dc:creator>jmk</dc:creator>
      <dc:date>2015-08-19T14:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing a secured S12XD device via BDM</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442838#M11497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;jmk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's piece of code from my BDM programmer. Mass erase routine for S12A/C/D and S12XA/XD devices looks like follows. HWWrBt12() writes byte using WRITE_BYTE (C0) BDM command. HWWrWd12() writes word using WRITE_WORD (C8) BDM command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm mass erasing Flash first, and then EEPROM, shouldn't matter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x104, 0xFF);&amp;nbsp;&amp;nbsp;&amp;nbsp; // FPROT all protection disabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105,0x30);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear PVIOL and ACCERR in FSTAT register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x103, 0);&amp;nbsp; //fcnfg not for S12X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear the WRALL bit in FTSTMOD&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105, 0x02);&amp;nbsp; // clear the FAIL bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x10); // fcnfg, write all&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrWd12(0x108, 0);&amp;nbsp;&amp;nbsp; // faddr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrWd12(0x10a,0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // fdata&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x106, 0x41); // fcmd=mass erase&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x105, 0x80); // start&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Delay(); // 150us delay&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; while( !(HWRdBt12(0x105) &amp;amp; 0x40)) ; // wait for completion.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWWrBt12(0x102, 0x0); // fcnfg, write all&lt;/P&gt;&lt;P&gt;&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; // mass erase eeprom&lt;BR /&gt;&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; HWWrBt12(0x114, 0xFF); // EPROT all protection disabled&lt;BR /&gt;&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; HWWrBt12(0x115, 0x30); // clear PVIOL and ACCERR in ESTAT register&lt;BR /&gt;&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; HWWrBt12(0x112, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear the WRALL bit in FTSTMOD&lt;BR /&gt;&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; HWWrBt12(0x115, 0x02);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear S12X FAIL bit&lt;BR /&gt;&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; HWWrWd12(0x118, 0); //eaddr&lt;BR /&gt;&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; HWWrWd12(0x11A, 0); //edata&lt;BR /&gt;&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; HWWrBt12(0x116, 0x41);&lt;BR /&gt;&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; HWWrBt12(0x115, 0x80);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay65ms(); // Don't rely on command complete flag, which is not available on S12C, just wait long enough.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Aug 2015 14:48:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Erasing-a-secured-S12XD-device-via-BDM/m-p/442838#M11497</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2015-08-19T14:48:38Z</dc:date>
    </item>
  </channel>
</rss>

