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.

[参考译文] CC1352R:待机进入问题

Guru**** 2568565 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/881383/cc1352r-standby-entry-problem

器件型号:CC1352R

你(们)好

我的 μ сс1352上的低功耗模式有问题。 我想将1352置于待机模式、因此我使用以下结构:

Clock_scheduleNextTick (100、ticks);//设置转换时间
 power_registerNotify (&PWR_NOTI、PowerCC26XX_AleK_STANDBY、(Power_NotifyFxn) PwrMgmt_ExitSlepNotification、NULL);

power_releaseConstraint (PowerCC26XX_disallow_standby);
PowerCC26XX_standbyPolicy();

在 PowerCC26XX_standbyPolicy()中;调试时:

节拍数= Clock_getTicksUntilInterrupt ();

           /*将刻度转换为 usec */
           时间=节拍* Clock_tickPeriod;

           /*检查是否可以进入待机状态*/
           IF (时间> Power_getTransitionLatency (PowerCC26XX_STANDBY、
               power_total)){

/*安排唤醒事件*/
               TICKs -= PowerCC26X2_WAKEDELAYSTANDBY / Clock_tickPeriod;
               Clock_setTimeout (Clock_handle ((Clock_Struct*)&PowerCC26X2_module.clockObj)、tick);
               Clock_start (Clock_handle ((Clock_Struct*)&PowerCC26X2_MODULE.clockObj));
这里我有第一个问题---- 为什么我通过 Clock_scheduleNextTick 设置的时间没有在这里传递 Clock_getTicksUntilInterrupt ();。       

代码执行得更远

/*进入待机模式*/
               POWER_SLEEP (PowerCC26XX_STANDBY);

此函数调用:

SysCtrlStandby (retainCache、
                          VIMS_ON_CPU_ON_MODE、
                          SYSCTRL_Preferred_RELEGE_MODE);

它基本上会传输到所需的模式,但是在返回 到 Power_sleep 时,它 会再次打开电源:

/* 4. 如果未将 VIMS 保持在待机状态、请立即重新启用保留*
           if (retainCache == false){

               /* 5.1如果之前处于高速缓存模式,请立即恢复该模式*/
               if (modeVIMS = VIMS_MODE_ENABLED){
                   VIMSModeSet (VIMS_BASE、MODEVIMS);
               }

               /* 5.2重新启用保留*/
               PRCMCacheRetentionEnable();
           }

           /* 6. 开始为电源域重新供电*/
           PRCMPowerDomainOn (poweredDomains);
我有第二个问题----如何使 ss1352在正确的时间睡着?

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为什么  SysCtrlStandby 不会停止处理器并继续执行代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Konstantis、

    我会假设它确实如此。 请注意、此函数返回的事实意味着系统中的某个东西会导致其唤醒(很可能是某种中断)。  

    我不明白您在这里要做什么、这不是器件进入待机状态的方式。 实际上、您根本不应尝试强制待机。 系统将在可能的情况下随时进入待机状态。 我的意思是、可能的话、没有任何应用限制和活动会阻止它进入待机状态。

    这意味着您没有任何机会尝试强制它进入待机状态。 要么因为它可以进入待机状态、要么您的软件说不应该进入待机状态(例如、UART 驱动程序当前正在接收/发送)。  

    基本而言、请信任功率驱动器、将您的器件置于待机状态。 许多小时的测试已经进入了器件软件的这一非常重要的部分。 几乎所有 TI 提供的软件都依赖于它、尝试绕过它很可能意味着您会破坏其他东西。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外:如果您连接了调试器、JTAG 电源域将打开、因此芯片将无法完全关闭。