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:OAD 随机停止

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2540, CC2650, CC2640R2F

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/569688/cc2640-oad-stops-randomly

器件型号:CC2640
主题中讨论的其他器件:CC2540CC2650

大家好、

我对 CC2640F128定制板上的 OAD 有疑问。 关于固件、我修改了 SDK 的 simple_peripheral 示例并加载了 bim_extflash、堆栈和应用部分。

对于 OAD、我使用的是具有 CC2540 USB 软件狗的 BLE 器件监视器。 建立连接后、我加载.hex 文件(应用程序部分)。

单击"开始"后、它会立即随机停止该过程

 或在下载了一些%之后

当 OAD 停止时、信标似乎停止发送消息、下面是监听器的捕获:

它达到的最大值为67%。  

另一件事是、如果我将连接间隔配置为8 (10ms)、我只能建立连接、但 OAD 会立即停止。 我一直在尝试200。

#else //!feature_OAD
//如果启用了自动
//参数更新请求
,则最小连接间隔(单位为1.25ms,8=10ms)#define default_desired _min_conn_interval 200//8

//如果
启用了自动//参数更新请求
#define DEFAULT_REGIND_MAX_CONN_INTERVAL,则最大连接间隔(单位为1.25ms,8=10ms) 200//8
#endif // feature_OAD 

在我展示过的所有内容之后、我认为问题可能来自射频设计、但它是否如此重要?

这里是射频器件的原理图和布局。

有人可以帮帮我吗? 是否有任何关于这些随机停止的原因的想法?  

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

    首先、当您说您修改了 simple_peripheral 时、您实际上是修改了代码、还是仅使用提供的 OAD 配置?

    此问题可能是由于块未按顺序发送造成的。 在 BLE Device Monitor 中、您可以尝试通过将阻止/连接设置为1来解决此问题。 此外、BLE Device Monitor 还有一些限制。 我们建议使用 BTool 尝试 OAD。 有关使用 CC2640F128执行此操作的说明、请访问 :processors.wiki.ti.com/.../CC2640_OAD_User's_Guide

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

    您好、Nathan、

    感谢您的快速响应。  

    当我说"已修改"时、我意味着几乎所有固件都基于 simple_peripheral 示例、我只添加了两个任务、修改了电路板配置、广播数据等 与 OAD 相关的所有代码都是原始代码。

    我尝试将阻止/连接设置为1、但它也不起作用。 然后、我下载了 python、将 de CCS 配置为在编译后步骤上执行 oad_image_tool.py、并下载最后一个 btool 程序。 发生的情况是、我的器件接受了 OAD 映像、但没有响应。

    此处发送的第一个块就是它。

    在 btool 中、它像这样进行了自由化

    正如我之前所做的那样、我尝试降低发送消息的速率、OAD 可以启动。 但它又在中间的某个地方停止了。 我可以接受等待几分钟来进行 OAD、但这是不可信的。  

    我还尝试了 SmartRF Studio 7来查看我是否可以一致地接收和发送消息、结果发现我的器件做得很好(我认为)。 在以下屏幕截图中、我将 CC2650 Launchpad 用作 TX、将我的器件用作 RX。

    平均 RSSt 相当好、我以60ms 的间隔收到了每条消息。

    最后、我尝试使用 CC2650 Launchpad 以及 host_test 示例执行 OAD、但得到的结果相同。

    我现在被阻止了、还有其他建议吗?

    谢谢!!

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

    问题可能是目标器件在尝试将数据写入外部闪存时卡住。 由于您使用的是定制板、您的外部闪存设置是否与 CC2640R2F LaunchPad (OAD 项目是为哪些项目设计的)相同?

    -弥敦