LPC54102 crashes with main clock > 24 MHz

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

LPC54102 crashes with main clock > 24 MHz

1,485 Views
michelkuenemann
Contributor III

Hello all,

I am currently developing an application on an LPC54102 clocked by its IRC (12 MHz). The application is almost coded now, and recently I started to implement the PLL in order to get higher clock frequencies, like 24, 36, 48, ... 96 MHz. 

I am using the CLKOUT pin to monitor the main_clock and I have verified that I generate precisely each integer multiple of 12 MHz, up to 96 MHz. I have taken care to have a CCO frequency comprized within the 75 / 150 MHz limits. The PLL works in "normal mode". The PLL locks immediately and I do no see any visible jitter on the CLKOUT signal.

The target is an LPCxpresso 54102 board. I do not use the LPCopen library.

As long as I stay with 12 or 24 MHz, the micro works fine, but as soon as I try to use any higher frequency, it crashes as soon as I switch to the PLL clock.

I am wondering if there is maybe an additional configuration, related to the power management to perform in order to gain access to higher core frequencies ? I  did not find anything relevant until now.

Thank you for your support.

Regards,

Michel

Labels (1)
Tags (1)
6 Replies

857 Views
michelkuenemann
Contributor III

Hello Ping,

Thank you for the indications.

I have built and executed the periph_pllfract application on my LPCxpresso board and it works fine.

I have traced the code and I found out that  Chip_POWER_SetVoltage() is called.

I did not manage to find the source code of this routine.

My question: where can I find the source code of Chip_POWER_SetVoltage() ?

Thank  you

Regards,

Michel

0 Kudos

857 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Michel Kuenemann,

Thanks for your reply.

The Chip_POWER_SetVoltage() is called via iar_lib_power.a which locates in ~LPC Boards\lpc5410x_xpresso54102_keil_iar_v3.03.000_16\lpc5410x\chip_5410x\libs.

2017-03-17_9-55-04.jpg

And the original codes of the library file seems like to be not publicly.
Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

857 Views
marcprager
Contributor III

I'm currently considering LPC541xx and LPC546xx for my future projects, but what I read here and in the user manual disappoints me, really! I'm not going to use LPCopen or IAR or anything containing closed source - no way! Since 2006 I stick to my own libs and even FLASH programmer ('mxli') and I'm fine with these. Now I find the recommendation "Remark: Use the power library.... Do not use API calls to the ROM". What?

WHY NOT? What's wrong with the API??

Of course, there's no documentation about the ROM entry points (I'm adviced not use). The PLL is described in detail, but the neccessary voltage settings are a secret?? Come on!

Marc

857 Views
michelkuenemann
Contributor III

Hi Marc,

I do completely agree with you - I have partially solved my clock problem (I still cannot go higher than 48 MHz) and there is no background info available about the power management. The answer "use Chip_POWER_SetVoltage()" with no other explanation is not satisfactory at all.

I hope that NXP will change their startegy... Till now, I was very satisfied by the quality of both NXP documentation AND products. We had the choice to user the classical way, via the registers or the ROM API or LPCopen. I have been using microcontrollers for 30 years and it is the first time that I meet such a "secret settings" issue.

Regards,

Michel

0 Kudos

857 Views
marcprager
Contributor III

Hi Michel,

thanks for your feedback. I, too, do hope, NXP reverts theis strategy back to the  orignal one. Today, every company seems to seek ways to install hooks and backdoors into our devices and limit freedom whereever possible. It's human to strive for power, influence, but this has gone too far recently. So far, that we have to put an end to it.

I would have liked programmable logic (Xilinx, Lattice,...) , too, but no vendor offers it without their bullsh*t (yes, it's exactly that, but they don't realize it) proprietary software. So I avoided programmable logic after the PLD vendors stopped documentation of the internals. You remember the 'fuse maps' of GAL16V8/22V10? Hahaha, wonderful times, but gone :-(

The same can happen to the LPC54xxx. I will not try to reverse-engineer. I will never do and have never done, because I don't waste my life-time on supporting uncooperative manufacturers. I'd rather spend that time with my girl, really.

I was in the process of updating my flash-programmer mxli (www.windscooting.com/softy/mxli.html) when I read your post. That was kind of a shock, 'disappointment' is really not the right term. I had already included LPC541xx but then lost motivation including LPC546xx because same trouble with these...

I read in the Errata sheet of LPC541xx that the ROM-API routine is buggy. OK, NXP, no problem! Bugs - these things happen to everybody of us! We're used to fixing bugs and don't complain (too much:) . But we're definitely not too dumb to program the voltage settings of our own and yes, we

take the risk of destroying the chip and still don't complain if that happens until we get our code right...

Have a nice day and keep us posted on your findings ;-)

Marc

857 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Michel Kuenemann,

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
In the LPCOpen library, you can find the several functions to initialize the clock.
And I'd highly recommend you to apply the Chip_SetupIrcClocking() function to generate the clock via PLL intergrates IRC , so please refer to it for details.
Have a great day,

Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos