PLL Error for LPC54102 MPU ??

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PLL Error for LPC54102 MPU ??

1,122 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by okwh on Sat Apr 30 06:52:44 MST 2016
Maybe I encounted a special error ! Please Help!

I have two boards with same design, one soldering with a LPC54102 chip,  their CPUcode ID0 are same  0x88854102,  CPUCODE ID1  are 0x881FECE  and 0x8C1FECE.

for same project with uvision 5.15 MDK IDE  with newest LPCOpen : lpc5410x_lpcxpresso_54102_keil_iar_3.01.000_9

for CPU 0x881FECE  all OK,    but  0x8C1FECE can not run, dead before main(). (run from  SystemInit at  keil_startup_lpc5410x.s, and then to set clock to  Chip_SetupIrcClocking(uint32_t iFreq)   )

When I debug one line by one line, I find a stange things

Debug dead at the 106 code line  of   Chip_SetupIrcClocking(...) of sysinin_5410x.c file.


-------------------------------
/* Set main clock source to the system PLL. This will drive 24MHz
   for the main clock and 24MHz for the system clock */
Chip_Clock_SetMainClockSource(SYSCON_MAINCLKSRC_PLLOUT);
-------------------------------------------------------
the function : Chip_Clock_SetMainClockSource  located at  285 line of clock_5410x.c

as I debug it :
for the board with  CPU 0x881FECE  :

  106:         Chip_Clock_SetMainClockSource(SYSCON_MAINCLKSRC_PLLOUT);
   107: 
   108:         /* ASYSNC SYSCON needs to be on or all serial peripheral won't work.
   109:            Be careful if PLL is used or not, ASYNC_SYSCON source needs to be
   110:            selected carefully. */
0x00000D76 4606      MOV           r6,r0
0x00000D78 0240      LSLS          r0,r0,#9
0x00000D7A F04F4480  MOV           r4,#0x40000000
0x00000D7E D519      BPL           0x00000DB4
0x00000D80 480E      LDR           r0,[pc,#56]  ; @0x00000DBC

the above code run and OK, the CPU on this board is  ID1 =  0x881FECE

but  for the board with  CPU  ID1 = 0x8C1FECE :

   288:         LPC_SYSCON->AHBCLKDIV = div;
0x00000D72 F8C40100  STR           r0,[r4,#0x100]
   106:         Chip_Clock_SetMainClockSource(SYSCON_MAINCLKSRC_PLLOUT);
   107: 
   108:         /* ASYSNC SYSCON needs to be on or all serial peripheral won't work.
   109:            Be careful if PLL is used or not, ASYNC_SYSCON source needs to be
   110:            selected carefully. */
0x00000D76 2006      MOVS          r0,#0x06
0x00000D78 F7FFFE50  BL.W          Chip_Clock_SetMainClockSource (0x00000A1C)
   111:         Chip_SYSCON_Enable_ASYNC_Syscon(true);
0x00000D7C 2001      MOVS          r0,#0x01
0x00000D7E F7FFFF5A  BL.W          Chip_SYSCON_Enable_ASYNC_Syscon (0x00000C36)


This is same project.
You can see  the code address is 0x00000D76,   but  compiled to different instructions (compare Disassembly ASM code !)
What is  wrong ??

thw next  compiled to BL.W  like right, but run dead !  I feel  the reason is PLL not work !

only use Irc as scource clock, no ext clock.


and another,       WS 1, 'pllerror        appear at command window after download program .

Please help me, What's wrong?  that LPC54102 chip bad ????
Labels (1)
0 Kudos
Reply
3 Replies

830 Views
lpcware
NXP Employee
NXP Employee
bump
0 Kudos
Reply

830 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bavarian on Mon May 02 08:16:09 MST 2016
One device you have is rev B, the other one is rev C.

There might be differences you need to cover in your code, in order to let both chip versions start up correctly.
You have the code running on rev B, but the same code does not run on rev C. So start from there, check the differences between the 2 versions.

Regards,
NXP Support Team
0 Kudos
Reply

830 Views
okcn
Contributor III

So start from there, check the differences between the 2 versions.

what you mean?  2 versions are the chip,  my code is only one version.

 The compiled codes are different !!  

How to do for me ??

 

How to do for  C chip??? 

For 8C1FECE,  when run to Chip_Clock_SetMainClockSource ,  the chip dead, all or most flash content from address 0x0  changed to FFFFFF......... (can not read???)

What wrong ?

All OK for 881FECE.

0 Kudos
Reply