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 :

HI-WAVE

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 :

HI-WAVE

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:

Warning

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 :

LOADER WARNING

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;

 

   EnableInterrupts;

 

  for(;;) {

  _FEED_COP(); /* feeds the dog */

  } /* loop forever */

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

}

 

Thank you very much for your help.

 

Pierre

Outcomes