微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 求解 有关CC1310 Task_sleep()的问题

求解 有关CC1310 Task_sleep()的问题

时间:12-23 整理:3721RD 点击:

最近在看CC1310的例程,当看到Task_sleep()这个函数时有几点不明,请各位TI工程师以及各位论坛前辈帮忙看一下,谢谢

1.调用Task_sleep()睡眠后,睡眠是指的是进入到standby模式吗?这个模式下CC1310的耗电量是怎么样的呢?

2.Task_sleep()是针对整个工程来说的,还是某个任务来说的。比如说,我在一个工程文件中建立了两个任务(task),其中一个task调用Task_sleep()进入睡眠模式后,另外一个task在同时是进入睡眠模式还是正常工作呢?

3.Task_sleep()是可以通过pin interrupt来唤醒的吧?

希望TI工程师以及各位论坛前辈能够帮忙解答一下,十分感谢^_^

Task_sleep 只是这个任务放弃执行。而不是进入到了低功耗状态。

关于低功耗参考附件,TI-RTOS会去管理低功耗,这应该和你以往自己管理低功耗有差别。

参考下WOR的例子。

6562.Power_Management.pdf

HI, TY

您好,我看CC1310的pinStandby例程时,发现里面就是调用Task_sleep()函数进入睡眠,而在对应的readme中描述,该例程的功能是周期性的进入standby模式。而据我所知,CC1310的standby模式是比较节电的。那么我可以这样理解吗,当我在任务中(单任务)调用Task_sleep(5000000/Clock_tickPeriod),也就是挂起任务5s,那么在这5s中CC1310的功耗会很低吗?求解,谢谢

实际调用睡眠管理是在Idle task中。 单纯调用task_sleep通常是不会进入低功耗的,他只是放弃了当前任务的执行。所有睡眠开始于下面这个结构,

里面的PowerCC26XX_standbyPolicy,你可以跟一下这个函数,最终会调用Power_sleep()函数。 这两个函数会判断一系列的条件(哪些条件参考我之前

的附件),最终决定是否进入低功耗状态。这两个函数,可以在TIRTOS的安装包里面找到.

const PowerCC26XX_Config PowerCC26XX_config = {

.policyInitFxn = NULL,
.policyFxn = &PowerCC26XX_standbyPolicy,
.calibrateFxn = &PowerCC26XX_calibrate,
.enablePolicy = TRUE,
.calibrateRCOSC_LF = TRUE,
.calibrateRCOSC_HF = TRUE,
};

 TY您好,您说的这两个函数我之前已经在您发的Power_Management中看到了,也就是说在配置完相关参数后,调用PowerCC26XX_standbyPolicy()后,TI-RTOS会自动管理低功耗模式对吗?那么如果是这样的话,开发者怎么知道自己的程序什么时候能够进入到低功耗模式呢,怎么计算功率呢?谢谢,期待您的解答

1. 对,自动管理低功耗。

2. 条件符合就进入低功耗,这个开发者可以通过Power Management API 来控制啊

3.功耗的计算方法,可参考类似芯片如下Link

http://www.ti.com/lit/an/swra478a/swra478a.pdf

下面这个TI-design也可以去了解下,这个是基于CC1310的超低功耗的实现

http://www.ti.com/tool/TIDA-00489?keyMatch=cc1310&tisearch=tidesigns

TY您好, 那我想问一下

1.PowerCC26XX_standbyPolicy()这个函数是需要在程序运行时不停的调用来不停的判断进入某种低功耗模式吧?

2.想要调用PowerCC26XX_standbyPolicy()是需要更改如下吧

 const PowerCC26XX_Config PowerCC26XX_config = {

.policyInitFxn = NULL,
.policyFxn = &PowerCC26XX_standbyPolicy,
.calibrateFxn = &PowerCC26XX_noCalibrate,
.enablePolicy = TRUE,
.calibrateRCOSC_LF = FALSE,
.calibrateRCOSC_HF = FALSE,
};

3.想要调用PowerCC26XX_standbyPolicy()还需要更改什么配置呢?

真心希望得到您的解答,谢谢

1. 这个函数是不需要你调用的,这个函数是TI-RTOS的一部分,不改不调。你能调用的API如下:

Power Management APIs Used by Applications
Applications can optionally call the following APIs. These APIs are not required, but are available to the
application developer.
• Power_enablePolicy() and Power_disablePolicy() controls when the policy is active at runtime.
• Power_setPolicy() chooses a different power policy at runtime.
• Power_setConstraint() and Power_releaseConstraint() set and release constraints for specific
power transitions (in addition to constraints drivers are already managing).
• Power_setPerformanceLevel() scales the device performance level between available operating
points.
• Power_registerNotify() registers an application callback function to be triggered upon specific
power transition events.
• Power_shutdown() puts the device in its lowest-power state, which requires a full application reboot
to power up again.

2. 你是说红色的吗? 参考WOR的例子

const PowerCC26XX_Config PowerCC26XX_config = {
.policyInitFxn = NULL,
.policyFxn = &PowerCC26XX_standbyPolicy,
.calibrateFxn = &PowerCC26XX_calibrate,
.enablePolicy = TRUE,
.calibrateRCOSC_LF = TRUE,
.calibrateRCOSC_HF = TRUE,
}

3. 看文档啊,同学. 那个文档里每个API的作用都有说明啊。

文档里还给了如何让driver支持power managerment.

您好,实在是打扰了,如果我在程序中调用Power_enablePolicy() ,是不是就已经开启低功耗策略了,TI-RTOS会自动管理低功耗模式啊?因为我现在最大的困惑就是CC1310想要进入低功耗模式的话会不会像CC2530一样需要修改一些配置文件。我如果在CC1310程序中直接调用Power_enablePolicy() 是不是就会自动进行低功耗管理,谢谢

如下就表示开启低功耗策略。 Power_enablePolicy可以在运行时动态开关power managerment, 即Runtime Configuration

const PowerCC26XX_Config PowerCC26XX_config = {
.policyInitFxn = NULL,
.policyFxn = &PowerCC26XX_standbyPolicy,
.calibrateFxn = &PowerCC26XX_calibrate,
.enablePolicy = TRUE,
.calibrateRCOSC_LF = TRUE,
.calibrateRCOSC_HF = TRUE,
};

2. 是的TI-RTOS自懂管理低功耗,你通过上面说的API来干预TI-RTOS 对功耗的管理。

3. 和2530完全不同。 CC1310的power managerment 复杂了去了,很难由客户来做到对功耗的管理。进入Standby就有10几个步骤。

4.  最麻烦一点就是你必须使用TI-RTOS,其他RTOS或者裸跑要管理功耗将会是非常复杂的一件事

Hi, TY

有了您的讲解我已经大概明白了,真的十分感谢,最后我还想问一下,如果我在程序中用到了串口UART,那么如果我Enable了TI-RTOS的PowerCC26XX_standbyPolicy这个策略,那么在程序中,这个策略就会自动管理串口吗?还是还需要在程序中调用Power_setDependency()等函数来使能TI-RTOS Power Manage对UART功耗的管理?谢谢

我的意思就是说诸如串口等外设是默认与TI-RTOS的电源管理相关联的,还是需要在即在程序中通过API使其与TI-RTOS的电源管理策略相关联?谢谢

您好,同学,你已经做好了吗?我也有你同样的问题,可以给我解答一下吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top