工具/软件:Code Composer Studio
您好!
如何在处理器收到中断之前将其置于 SLEEP_MODE 中? TMS570LC43x 是否有任何功能? 比如 Sleep ()或 WAKE ();?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
如何在处理器收到中断之前将其置于 SLEEP_MODE 中? TMS570LC43x 是否有任何功能? 比如 Sleep ()或 WAKE ();?
谢谢
您好!
SPNU563的2.4.3.1中介绍了进入低功耗模式的 SW 序列。
这是我在 LS12x 器件(Cortex-R4F)上使用的示例代码。 仅用作参考。
您可以使用 GIO/CAN/CSCI 中断将器件从睡眠模式唤醒。
空睡眠()
{
//1. 将闪存组和闪存泵回退模式编程为“睡眠”。
flash_sleep();
systemREG1->GHVSRC = 0x00000000;// GCLK、HCLK、VCLK、VCLK2的时钟源0 (OSC)
systemREG1->VCLKASRC = 0x00000000;//外设异步时钟1/2的时钟源
systemREG1->RCLKSRC = 0x00000300;//针对 RTI1源的时钟源
asm (" DSB");
//2. 禁用不需要保持激活状态的时钟源。
//除非首先禁用使用该时钟源的所有时钟域,否则不会禁用该时钟源。
//或配置为使用备用时钟源。
systemREG1->CSDIS = 0xCF;//时钟源0...7
//3. 禁用不需要保持活动状态的时钟域。
//写入时钟源禁用寄存器- CDDIS -来禁用 PLL 时钟源
systemREG1->CDDIS = 0x0
|(uint32)((uint32) 1U <<0U)/* GCLKOFF */
|(uint32)((uint32) 1U << 1U)/* HCLK 关闭*/
|(uint32)((uint32) 1U << 2U)/* VCLKP 关闭*/
|(uint32)((uint32) 1U << 3U)/* VCLK2 off */
|(uint32)((uint32) 1U << 4U)/* AVCLK 1关闭*/
|(uint32)((uint32) 1U << 5U)// AVCLK 2 off */
|(uint32)((uint32) 1U << 6U)/* RTICLK 关闭*/
|(uint32)((uint32) 1U << 8U)/* VCLK3关闭*/
|(uint32)((uint32) 1U <<9U)/* VCLK4关闭*/
|(uint32)((uint32) 1U << 10U)/* AVCLK 3关闭*/
|(uint32)((uint32) 1U << 11U);// AVCLK 4 off */
//4. 使 Cortex-R4F 内核空闲。
//以空闲周期执行 ARM 指令以触发 CPU 时钟停止
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" WFI");//等待中断(WFI)指令
asm (" NOP");//唤醒后、将从此行开始
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" NOP");
}
void Flash_sleep (void)
{
flashWREG->FBAC =(0x10 << 16)|(0x0F << 8)|(0x0F);
flashWREG->FPAC2 = 0x0;
flashWREG->FBFALBACK = 0;//将组0和1置于睡眠模式
flashWREG->FPAC1 = 0;//将泵置于睡眠状态
}
用户好!
该过程应该非常相似、但可能还有一些需要处理的附加项目。 请查看 TRM 中的相应章节、以确保所有问题都得到妥善处理。 此外、请注意、我们不会为 Hercules 器件指定低功耗电流、因为虽然逻辑支持这些模式、但器件内使用的晶体管不太适合低功耗或待机模式、这在设计时不是优先考虑的功能。 这是由于使用的技术会导致大量电流泄漏。 尽管在标称温度、电压和制造工艺的低功耗模式下、这些器件似乎可以显著降低功耗、但在高温、更高电压和"热"制造工艺下、这些条件会产生显著影响、从而以指数方式增加晶体管泄漏。