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.

[参考译文] CC2640:某种原因导致电池供电的设备在连接时停止并消耗4mA以上,我该如何判断它可能是什么?

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/583223/cc2640-something-causing-battery-powered-device-to-halt-and-draw-4ma-when-connected-how-do-i-figure-out-what-it-could-be

部件号:CC2640
在“线程:CC2650”中讨论的其它部件

我正在做的一个项目似乎出现了一个问题,在连接一段时间后,设备会停止响应,似乎冻结了。  

在进一步调查该问题时,如果发生这种情况,只需卸下并更换CR2016币形电池即可使设备再次正常工作。 查看发生故障后的功耗,显示电流消耗跳至4mA并保持在该处,直到电源循环。

如果设备保持未连接且未进行广告宣传,则不会发生任何故障。 我目前正在测试设备是否会在广告发布但未连接时失败。

固件的以前版本似乎没有出现相同的问题。 唯一的区别是,早期版本不要求中心获取其连接参数,因此将使用设备的首选参数,而用于测量电池电量的时钟运行频率更高(1h与8h)。  

目前我们使用的是自定义硬件,但我无法在CC2650启动板上重现该问题。 我已经连接了自己的硬件并在调试模式下运行它,但到目前为止,我也无法复制这样的问题。 更奇怪的是,连接到Android时持续出现故障的设备在iOS上长时间正常工作。

是否有人知道问题的原因是什么? 或者甚至有什么关于如何调试的提示?

谢谢
Craig

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用的是电源(不是币形电池),您是否能够重现此问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christin:

    当我尝试使用LaunchPad的PIN为设备供电时,我看到许多奇怪的行为,例如,Central根本不愿意连接。
    该设备从外观上看起来运行正常,但广告和连接似乎无法正常工作。 我不知道什么可能导致这种行为。

    我在电池供电时对设备进行了数据包嗅探,以查看设备发生故障时发生的情况,但它并没有太多变化。 我已将其附加。

    e2e.ti.com/.../FailureEventLogs.psd

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

    有人能帮我解决这个问题,这真的很紧急。

    谢谢!
    Craig

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

    我们注意到,这可能是(完全不确定)与连接间隔和睡眠时钟准确性相关的问题。 虽然我们过去在iOS上遇到的问题只会导致断开连接,而不会导致需要重启的设备完全停止和无响应。 SCA的问题是否会导致应用程序无响应? 如果是,如何/为什么?

    现在,我正在使用HCI_EXT_SetSCACmd()测试睡眠时钟精度的更改,JXS先前建议使用此更改来解决iOS问题。 我会让您知道具体情况,

    谢谢!
    Craig
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否仅在广告状态下测试了设备并查看其是否停止?
    如果您更换新电池,然后重新开始连接,它会在2小时后停止还是会保持连接更长时间?

    询问这些问题的原因是,弱的币形电池(具有高内部电阻,不能很好地处理电流脉冲)的降解速度比应有的快得多(当您拆除电路时, 然后蓄电池有时间恢复,因此测量电压可能仍为3V,但电量已耗尽)

    如果您有示波器,您可以将一个小电阻器与您的定制设计串联,然后在VDDS上将触发器设置为1.8V。 在设备出现故障之前,查看VDDS是否实际降至1.8V以下。

    可能是当您的VDDS降至1.8V以下,然后CC26xx不再工作时,电路的电流消耗将为0,然后电池将有时间恢复。 一旦恢复到3V,CC26xx就会通电,但是通电顺序会再次消耗电流(但电池中没有电荷),电池无法处理此问题,因此电压低于1.8V。 然后,设备将卡在重新启动循环中,这将消耗电流(以mA为单位)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Christin:

    我在广告状态下测试了该设备,似乎它根本不会停止。

    我觉得奇怪的是,如果这是电池问题,我们真的很难在iOS上重现此问题,但我将使用更知名的故障设备进行测试。

    下次出现故障时,我将测试新的电池方法,我也将设置测试范围。

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

    您好,Christin:

    经过长时间的等待,终于在范围内捕获到了这一点。 不幸的是,我的范围不足以让我看到之前/之后发生的事情,但触发器被设置为1.8V,所以这是第一次降低。

    http://imgur.com/LpadMlD

    从图片上可以看到,它不仅达到1.8V,而且还在它的右边发着气。 似乎恢复正常,但当我回来发现此问题时,设备像以前一样无响应。 我想大约需要8到12个小时。 从先前的故障中恢复后,测试开始时的电压A约为2.8V。

    在之前的一次事件中,我混淆了触发器的设置,并错过了实际的电压骤降,我在返回故障单元时注意到蓄电池电压实际上下降了,并在1.8V左右徘徊。 它确实在退出和重新加入后迅速恢复。 这是否会给您的理论增加一些份量?

    对可能导致这种情况的原因还有其他想法吗?

    同样,在连接到iOS的设备上,我们在5天以上没有发现任何故障。 此设备之前在Android上出现故障,因此我们重置它,并使用与以前相同的电池进行连接。

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


    请大家注意这条线,我们从TI的任何人那里得到的消息已经有很多天了。 问题极为紧迫

    一些附加信息:

    终于在调试模式下获得了启动板,从而遇到了相同的错误。大约30个小时后。 当我暂停调试时,它似乎已被发送到AssertHandler()并陷入了这种情况:

    案例HAL_ASSERT_CAUSE_ICALL_ABORT:
    display_print0 (dispHandle,0,0,"***错误***");
    display_print0 (dispHandle,2,0,">> ICALL abort!");
    HAL_ASSERT_SPINLOCK;
    中断; 

    但是,我不知道这是从哪里来的。  文档中也没有太多关于它的信息。

    如何确定导致此iCall中止断言的原因?  

    显然,上述范围跟踪仍然是有关的,不确定它如何与此iCall中止断言相关联。 还在等待有人来衡量这一点。

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

    TI内部的人员是否可以帮助解决此问题,因为此问题非常紧急。  

    我们已停止针对正在调查问题的客户的生产。

    我们仍在寻找的关键答案是:

    1.在Launchpad wrt上看到故障。iCall中止断言的原因? 2.您对我们上周发布的示波器跟踪的意见。  

    此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您现在看到的内容符合我在前面的评论中提到的内容。 我建议您在调试时执行的下一步是添加GPIO切换,以查看代码的哪一部分会使设备消耗如此多的电流。 除此之外,您还可以为VDDS跟踪添加一个更大的盖子,并使用另一个电池进行检查(更换为另一个品牌)。

    您使用的是哪个品牌的电池?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发生这种情况时,您是否正在使用电池运行并使用连接到正在运行的目标? 或者只是将其连接到调试器并一直运行?
    如果一直在调试器连接的情况下运行它,是否可以实现异常句柄?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christin:

    我们使用的是索尼CR2016电池。 我们还使用Duracell电池进行了测试。 问题似乎是与软件相关的错误。回拨。 目前正在测试以确认。  

    要排除纽扣电池问题,您是否可以参考测试流程。 虽然我们使用Sony,但有报告称某些索尼标记的电池不是原装电池。 我们希望确保这不会成为问题的根源。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很遗憾,我们无法测试电池。 您可以联系电池制造商,了解他们如何测试其电池在电流脉冲下的性能。

    您可以询问Sony,他们是否可以提供诸如脉搏放电特性之类的信息(来自energizer的数据表的第2页)
    data.energizer.com/.../cr2032.pdf

    除此之外,您还可以在main.c.中添加SW计时器 每当设备因BOD而重新启动时,您可以让SW计时器运行5秒,让电池恢复,然后在计时器到期时开始执行任务
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christin:

    我想我们也许已经解决了这个问题。 在时钟回调中进行了堆栈API调用,以更新其中一个特性值。 我们现在更改了该设置,改为将任务中的值更新排队,这看起来更加稳定。
    我们收到的错误是调用iCall_abort()函数的结果,该函数调用AssertHandler并将我们置于CASE语句中,其中调用了HAL_SPINLOCK。

    但我们不完全确定电池是否仍会导致问题。 当然,在板上有一些有趣的事情与电源相关,如果您能在这方面发出蜂鸣声,我将不胜感激...

    基本上,我可以对启动板进行良好的编程,它将按预期的方式运行。 如果我将带状电缆焊接到定制硬件上,我们也可以从launchpad的XDS110进行正确的编程。
    但是,当我尝试从启动板启动自定义板时,会出现问题。 指示灯将闪烁,并且它似乎是广告(我可以在手机上看到设备),但它拒绝连接(错误133:GATT错误)。 当设备由电池供电时,我们从未看到过这种情况,所以这很奇怪。

    已设法获取问题的嗅探跟踪:
    e2e.ti.com/.../unable_5F00_to_5F00_connect_5F00_when_5F00_powered.psd


    我认为这个问题还与我无法使用XDS100C编程器和我们的编程台对设备进行编程有关:
    e2e.ti.com/.../58.5269万

    有什么想法?