I am using MK20DN512ZVM and the sales told me MK20DN512VMD10 is a newer version and send me some samples. then I replace it on my board, but I found the MQX doesn't run! then I analyzed this problem and found out that MCU(MK20DN512VMD10) will reset when run this function.
void PE_low_level_init(void)
{
/* Initialization of the SIM module */
/* SIM_SOPT6: RSTFLTEN=0,RSTFLTSEL=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */
SIM_SOPT6 = (uint32_t)0x00UL; /* Set reset pin filter */
/* Initialization of the PMC module */
/* PMC_LVDSC1: LVDACK=1,LVDIE=0,LVDRE=1,LVDV=0 */
PMC_LVDSC1 = (uint8_t)((PMC_LVDSC1 & (uint8_t)~(uint8_t)0x23U) | (uint8_t)0x50U);
/* PMC_LVDSC2: LVWACK=1,LVWIE=0,LVWV=0 */
PMC_LVDSC2 = (uint8_t)((PMC_LVDSC2 & (uint8_t)~(uint8_t)0x23U) | (uint8_t)0x40U);
/* PMC_REGSC: TRAMPO=0,??=0,BGBE=0 */
PMC_REGSC &= (uint8_t)~(uint8_t)0x13U;
/* SIM_SCGC4: LLWU=1 */
SIM_SCGC4 |= (uint32_t)0x10000000UL;
/* Initialization of the LLWU module */
/* LLWU_PE1: WUPE3=0,WUPE2=0,WUPE1=0,WUPE0=0 */
LLWU_PE1 = (uint8_t)0x00U;
/* LLWU_PE2: WUPE7=0,WUPE6=0,WUPE5=0,WUPE4=0 */
LLWU_PE2 = (uint8_t)0x00U;
/* LLWU_PE3: WUPE11=0,WUPE10=0,WUPE9=0,WUPE8=0 */
LLWU_PE3 = (uint8_t)0x00U;
/* LLWU_PE4: WUPE15=0,WUPE14=0,WUPE13=0,WUPE12=0 */
LLWU_PE4 = (uint8_t)0x00U;
/* LLWU_ME: WUME7=0,WUME5=1,WUME4=0,WUME3=0,WUME2=0,WUME1=0,WUME0=0 */
LLWU_ME = (uint8_t)((LLWU_ME & (uint8_t)~(uint8_t)0x9FU) | (uint8_t)0x20U);
/* LLWU_CS: ACKISO=1,??=1,FLTEP=0,FLTR=0 */
LLWU_CS = (uint8_t)((LLWU_CS & (uint8_t)~(uint8_t)0x03U) | (uint8_t)0x84U);
}
then I checked the newest ref manual. it confused me much!
is there anyone could help to explain that?
Hello,
You can check this AN to get the full information of the changes between the two silicon versions:
http://cache.freescale.com/files/32bit/doc/app_note/AN4445.pdf
Regards,
Santiago