AnsweredAssumed Answered

Non Volatile Memory Control

Question asked by Pierre Lebas on Apr 21, 2016
Latest reply on Apr 22, 2016 by Radek Sestak

Hello !


I'm using a FlexRay Evaluation Board from ON-Semiconductor (NCV73810V2GEVB).


I want to program the MC9S12XF512MLM microcontroller which is embedded with CodeWarrior V.5.1 and the USB-ML-UNIVERSAL debugger from PEmicro.


The situation is :


1. Leds on the board are ON, blue and yellow leds on the USB-ML-UNIVERSAL are also ON.


2. I click on debug


3. Connection Manager appear


4. I chose "Autodetect communications speed", click on refresh (USB1 : USB Multilink Rev C (PEMA17837) is now detected), and click on "Connect(Reset)"


5. After maybe 500ms leds on board goes OFF and the yellow one on USB-ML-UNIVERSAL too. The following error message appear :


The Debugger can not connect to the P&E BDC interface or targetted hardware board.


5. I click on "OK" and a new Connection Manager window appear (leds are still on the same mode than in the section 5. )


6. I click on "Connect(Reset)" and the following error message appear :


Communications with the target failed :

The target MCU has no clock or wrong BDM clock speed is used or derivative is secured.


7. I click on "OK" and the following warning message appear:


Loading a new application will stop the execution of the current one.

(I don't know if it's useful for you to know everything which happends...)


8. I click on "OK" and a new message appear :


The debugger is going to mass erase the non volatile memory(eeprom and flash) of the current device, then program the application


9. I click on "OK" and a window appear "NVW Erasing and Programmation Arming". At 33% the following error message appear :

Non Volatile Memory Control

Error while loading diagnostics algorithm to target system.

The chip may be secured, or the derivative selected may be wrong.


10. I click on "OK" and a new error message appear :

NVM Programmation

This operation has been canceled.


My program is the following: (just in case it could help you)


#include <hidef.h> /* common defines and macros */

#include "derivative.h" /* derivative-specific definitions */

#include "mc9s12xf512.h"


void main(void) {

  /* here I just want to blink a led */


  DDRP_DDRP7 = 1;

  RDRP_RDRP7 = 0;


  PTP_PTP7 = 1;




  for(;;) {

  _FEED_COP(); /* feeds the dog */

  } /* loop forever */

  /* please make sure that you never leave main */



Thank you very much for your help.