Part Number:CC2640R2FOther Parts Discussed in Thread:CC2640, MSP430FR2433, ENERGYTRACE,
芯片的广播耗时理论上在us~ms量级,但观察功耗,广播耗时似乎在1s左右。怀疑与_pend()机制有关,因为如果注释掉_pend()函数,广播依然正常进行,高功耗峰大大缩短了,不过这也导致静态功耗急剧增加(可能是由于没有pend导致相关电源调度失效)。因此我的问题是在pend过程中为什么广播时长有1s之长呢,是否可能解决?
Alex Zhang:
您好,
感谢您对TI产品的关注!为更加有效地解决您的问题,我需要多一些时间查看这个问题,稍后会为您解答
,
Alex Zhang:
很抱歉让您久等了,您好,当设备在做广告时,你是如何测量电流消耗的?
我们以以下指南为例。
https://www.ti.com/lit/an/swra478d/swra478d.pdf
在做广告时,我们希望功耗看起来与下图类似
,
Xintao Deng:
如我在帖子https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/583064/cc2640r2f-simple_periferal-simple_broadcaster中所说,使用MSP430FR2433作为唯一供电,在CCS中使用energytrace测量功耗。MSP和CC2640之间仅有3.3V和GND连接,且两块开发板所有跳线均已移除
,
Alex Zhang:
好的 我将继续跟进您的问题
,
Alex Zhang:
您是否能够发送应用程序代码以便在我们这边进行测试,或者在simple_broadcaster的未经修改的版本上是否注意到了这种行为?
,
Xintao Deng:
在主楼的“注释pend前”图中显示的,即是simple_broadcaster代码未经修改的版本,唯一的修改是加入了宏定义Display_DISABLE_ALL(以关闭串口相关功能)。如果不添加宏定义,在每次广播的间隔将存在约0.2mW的功耗,这在我上一个帖子中已经提到。
,
Alex Zhang:
好的 我将继续跟进您的问题
,
Alex Zhang:
您好,您这边通过注释掉pend函数来降低功耗是错误的选择,不可以的,你注释掉pend相当于一直在进行for循环,而取消掉了低功耗模式,所以会直接看到全部功耗拉高的电流图。pend本身是消息对列在等回调返回值,根据这个值来进行之后的if判断来进行任务的切换。
,
Alex Zhang:
如果您的简单外围设备或简单广播设备已被修改为低功耗。你会从我下面的博客中读到一些类似的内容。此外,您还可以直接使用CC2640R2F Launchpad的能量追踪。
在我的博客中,能量追踪的图片很小,所以只需放大即可。
0 dBM能量跟踪电流消耗情况:
默认值为0 dbm时,广告峰值电流为7.319 mA。
信标广告当前波形:
广告波形持续约5毫秒。
Energytrace并不是电流测量波形中最好的,因此实际电流测量值可能更低。
,
Xintao Deng:
我了解注释pend函数会导致电源调度失效,但我的核心问题是为什么在注释pend前后,高功耗的峰持续时间会有所不同,如图片所示。按照我的理解,高功耗的峰即代表了芯片正在进行广播。同时您应该也注意到,在我发出来的图片中,未注释pend的例子里,高功耗峰的时长达到了将近1000ms,而不是5ms。此外,我认为CC2640R2F launchpad并没有energytrace功能,它没有相关的电路,在官网中列出的支持的硬件里也没有2640R2开发板https://www.ti.com.cn/tool/cn/ENERGYTRACE?keyMatch=ENERGYTRACE
,
Alex Zhang:
Xintao Deng 说:我了解注释pend函数会导致电源调度失效,但我的核心问题是为什么在注释pend前后,高功耗的峰持续时间会有所不同,如图片所示。按照我的理解,高功耗的峰即代表了芯片正在进行广播。
您好,注释pend之前,在pend时是不会去进行for循环的,会一直在pend中去等待,所以您这边的峰值是属于广播为高功耗,假设您这边把pend注释掉,他就一直在for循环去进行工作,也就失去了pend的作用。电源调度失效了,肯定全功耗运行了。
,
Alex Zhang:
同时你去观察中纵坐标的功耗,一下子就全部拉起来了。处理的时间间隔下来了,但是您这边的功耗上去了。相当于直接去把低功耗模式关了。
解决高功耗的峰持续时间,并不是去注释掉pend来接解决的。我这边会继续跟进您的问题。
,
Alex Zhang:
Xintao Deng 说:我认为CC2640R2F launchpad并没有energytrace功能,它没有相关的电路,在官网中列出的支持的硬件里也没有2640R2开发板https://www.ti.com.cn/tool/cn/ENERGYTRACE?keyMatch=ENERGYTRACE
我知道我有正确的设置XDS110调试器+EnergyTrace HDR插件。与下面视频中的设置相同。
https://youtu.be/WOiJsRBMmr4
从我的博客来看,这是广告波形。广告波形从3621ms开始到3625ms。因此持续时间约为5ms。该波形是不可连接的广告或信标模式。
可连接的广告波形可在第20页找到。
www.ti.com/…/swra478d.pdf
如果你在EnergyTrace没有看到类似的广告波形,那么你的设置就有问题了。
,
Xintao Deng:
您博客中似乎并不是simple_periferal或broadcast例程。所以我想知道simple例程为什么无法得到这样的波形
,
Alex Zhang:
非常感谢您的回复,我需要一些时间来解决您的问题
,
Alex Zhang:
博客中是一个可配置的 Eddystone Beacon。开机时,前 30 秒的功能类似于简单的外围设备。30 秒后,它切换到像简单广播器一样的功能。您在波形中看到的是简单的广播不可连接广告
博客中就像修改后的简单广播。
在第20页可以看到波形https://www.ti.com/lit/ml/swra478d/swra478d.pdf。
您是否拥有与 youtube 视频XDS110 调试器 + EnergyTrace HDR 附加组件中所示相同的测试设置?否则,您将无法获得广告波形。
,
Xintao Deng:
我没有单独的XDS110调试器,烧写使用的是launchpad板载的XDS110,energytrace来自MSP430FR2433开发板。所以我可以理解为,之所以我看到的波形是时长1000ms的方波,而不是您给我看的时长几毫秒的波形,是因为我使用MSP430开发板来监测功耗吗?这感觉说不通
,
Alex Zhang:
您好,建议您这边按照我上面说的去尝试一下,如果按照上述blog提到的可以看到这样的波形,那应该就是您这边msp430监测的问题。
,
Alex Zhang:
也许用正确的程序是可能的,但我只是猜测,具体的还是要等一下工程师这边的回复
,
Alex Zhang:
你能更好地解释一下你是如何通过msp432为设备供电的,以及你是如何获得测量值的吗。(拍张照片就好了)。
,
Xintao Deng:
,
Alex Zhang:
您好,我这边收到了,会持续跟进 谢谢
,
Alex Zhang:
为了安全起见,您可以使用功率分析仪吗?如果是这样的话,那么你能用它来捕捉功率消耗的波形吗?这将有助于我们确定问题是来自MSP方面还是来自2640方面。
,
Alex Zhang:
您需要卸下CC2640R2F启动板上的跳线。如果连接了跳线,则XDS110电路将增加电流消耗。
我不知道MSP430 Launchpad需要做哪些更改。
,
Xintao Deng:
我没有功率分析仪器,所以使用msp作为替代方案。所有跳线都已经卸下了。不知道您这边能否尝试重现这个现象,只需要一块2640r2f开发板
,
Alex Zhang:
您好,我已经将问题同步至工程师这边,稍后会为您回复,谢谢