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
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
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.
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!
-----------------------------------------------------------------------------------------------------------------------
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
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
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
Hi Michel Kuenemann,
Ping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------