主题中讨论的其他器件:LAUNCHXL2-TMS57012、 TM4C129ENCPDT
您好!
我的应用程序每10秒执行一次节拍。 我想进入低功耗模式以降低功耗(它几乎始终处于低功耗模式、并且应该每10秒唤醒一次)。 我读取了 TMS570LS12 TRM、我还在 e2e 上看到了几个线程。
目前、我正在从事 LAUNCHXL2-TMS57012的工作。
对于 GLCK = 160MHz (所有时钟域均工作)、电流消耗~ 145mA (LED 闪烁10秒)。
在我的代码(如下所示)后、功耗降至~75mA:以下是代码:
/*唤醒中断:RTI 比较0 */
vimREG->WAKEMASKCLR0 = 0xFFFFFFFF;
vimREG->WAKEMASKCLR1 = 0xFFFFFFFF;
vimREG->WAKEMASKCLR2 = 0xFFFFFFFF;
vimREG->WAKEMASKSET0 =(0x1 <<2);//RTI 2.
/*闪存*/
flashWREG->FBAC =(0x0F <<8)|(0x0F);
flashWREG->FBFALBACK = 0x000000000000
|(UINT32)((UINT32) SYS_SLEE<< 14U) /*银行7 */
|(UINT32)((UINT32) SYS_SLEEP << 2U) /*银行1 */
|(UINT32)((UINT32) SYS_SLEEP << 0U);//组0 */
flashWREG->FPAC1 = 0x00000000U; /*将泵置于睡眠状态*/
/*时钟*/
systemREG1->GHVSRC = 0x00000000;
systemREG1->VCLKASRC= 0x00000000;
systemREG1->RCLKSRC = 0x00000000;
/*-禁用/启用时钟域*/
systemREG1->CDDIS = 0x0 //RTICLK 被使能用于唤醒
|(uint32)((uint32) 1U <<0U)//GCLKOFF
|(UINT32)((UINT32) 1U << 1U)//HCLK 关闭
|(uint32)((uint32) 1U << 2U)//VCLKP 关闭
|(UINT32)((UINT32) 1U << 3U)//VCLK2关闭
|(uint32)((uint32) 1U << 4U)//AVCLK 1关闭
|(UINT32)((UINT32) 1U << 5U)//AVCLK 2关闭
|(UINT32)((UINT32) 1U << 8U)//VCLK3关闭
|(UINT32)((UINT32) 1U << 9U)//VCLK4关闭
|(UINT32)((UINT32) 1U << 11U);//AVCLK 4关闭
systemREG1->CSDIS =(uint32)((uint32) 1U << 1U) // OSCIN 被启用
|(uint32)((uint32) 1U << 3U)
|(uint32)((uint32) 1U << 4U)
|(uint32)((uint32) 1U <<5U)
|(uint32)((uint32) 1U <<6U)
|(uint32)((uint32) 1U <<7U);
//使 Cortex-R4内核空闲
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" WFI");//等待中断(WFI)指令
asm (" NOP");//唤醒后、将从此行开始
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" NOP");
asm (" NOP");
我不确定是否一切都好。 低功耗模式下的功耗是多少? 它是否应小于~75mA?
我想它应该在10个时钟(RTI)后唤醒、但它不起作用... 请帮帮我。


