Hello Tom’E
Difficult for me to go ahead, and unfortunately, I have just a few time on this subject (always out of office), and I had to delay my reply to your post (sorry for this).
è Once more, thank you for the time you spent on my topic, and for the quality of your response.
We consider an existing design based on this MCF5213, for sure if I have the opportunity to redesign this board, I will look toward a K60 to better manage the power.
I have an idea of the controller consumption itself, because I made measurements with and without the chip, taking care of the hardware to be as passive as possible.
Then:
…I’m sorry to ask you again what to do “simply” to try to reduce the consumption to the lowest possible to save power.
Do you think it might be an idea to go in the way: changing dynamically the clock speed ?
I would just try to reduce the consumption of the MCF to just a few milliamps, and in the electrical characteristics, its given for less than 4mA for Typical Active Current Consumption if running at 1MHz core & I/O, in place of 64mA at 80MHz. 4mA should be acceptable for me.
- Is it possible to dynamically switch from 80 to 1 MHz when I want to save power, and be waked from my PIT modulus normally, and then come back to 80MHz ?
For sure, it sounds good, but once more, it’s not immediate and it doesn’t work.
I tried to setup my configuration (with Processor Expert), so I did the test this morning with processor expert and a connection through a PE-multilink : after executing the setReg16(SYNCR, 0x6607U);
then the consumption decreases at an acceptable level, but the debugger loose the control.
Here is the function Cpu_SetLowSpeed coming from Processor Expert:
void Cpu_SetLowSpeed(void)
{
if (CpuMode != LOW_SPEED) { /* Is an actual cpu mode other than low speed mode? */
EnterCritical(); /* If yes then disable global interrupts */
/* SYNCR: LOLRE=0,MFD=6,LOCRE=0,RFD=6,LOCEN=0,DISCLK=0,FWKUP=0,??=0,??=0,CLKSRC=1,PLLMODE=1,PLLEN=1 */
setReg16(SYNCR, 0x6607U); /* Set the SYNCR register */
while (!(SYNSR & SYNSR_LOCK_BITMASK)){} /* Wait until the PLL is locked. */
/* LPDR: ??=0,??=0,??=0,??=0,LPD=0 */
setReg8(LPDR, 0x00U); /* Set the low power divider */
ExitCritical(); /* Enable global interrupts */
CpuMode = LOW_SPEED; /* Set cpu mode */
}
WakingCycle_SetLow(); /* Set all beans in project to the low speed mode */
}
I cannot know what happen, it looks like if the PLL hangs when below 8MHz.
Can you see something particular ?
How can I investigate ?
May be, more basically, the system hangs if I change the original configuration for clocking below 16MHz (system clock)/8MHz(bus clock).
How to go to 2/1 MHz ???
Once more, Thanks so much…
JM
Jean-Marc NEUVILLE
Responsable Activités Electroniques / Electronic Activities Manager
jean-marc.neuville@tas.fr<mailto:jean-marc.neuville@tas.fr>
Mobile : +33 (0)6 99 70 39 56
www.tas.fr<http://www.tas.fr/>;
NOTICE TO RECIPIENT : This e-mail and any attachment hereto are confidential and are meant for the intended recipient of the transmission only. If you received this e-mail in error, any review, use, dissemination, distribution or copying of this e-mail is strictly prohibited. Please notify us immediately of the error by return e-mail and please delete this message and any attachment from your system. Thank you in advance for your cooperation.
De : TomE
Envoyé : dimanche 12 juin 2016 13:47
À : Jean-Marc Neuville
Objet : Re: - MCF5213 stopmode
NXP Community <https://community.freescale.com/resources/statics/1000/35400-NXP-Community-Email-banner-600x75.jpg>
MCF5213 stopmode
reply from Tom Evans<https://community.nxp.com/people/TomE?et=watches.email.thread> in ColdFire/68K Microcontrollers and Processors - View the full discussion<https://community.nxp.com/message/669170?et=watches.email.thread#comment-669170>