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.

[参考译文] CC2650:BLE 连接错误

Guru**** 2589265 points
Other Parts Discussed in Thread: CC2650, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/590841/cc2650-ble-connection-error

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

你(们)好。

总结:

尝试连接 CC2650 RSM 时遇到错误。  CC2650 RSM 安装 在定制电路板上、我们有两个原型。  第一块板工作正常、而第二 块板出现错误。

问题:

我 在两个板上都运行了简单外设项目。  第一个(工作)板能够操作 I2C 模块和传感器控制器、通告自身、建立连接并完成 GATT 发现过程。  第二块板还能够操作 I2C 模块和传感器控制器、并进行广播。  但是、当尝试使用 gatttools (bluez 5.23)建立到第二个板的连接时、我得到以下错误:"error:connection error:function not implemented (38)"。

我比较了两个板上的闪存、发现唯一的区别是第30页(CCA)字节4:19、24:39。  每次我重新刷写其中一个电路板时、本节中的内容都会发生变化。  我不知道这些字节中包含什么信息、但我不怀疑这是错误的来源。  是否有人可以指定这些字节包含哪些信息?

我还尝试仅从闪存运行项目、而不使用 TI-RTOS ROM 模块、但错误仍然存在。

目前、我怀疑错误位于射频内核内。  毕竟、BLE 连接由射频内核建立和维护。  此外、我怀疑射频内核中的问题源于其 ROM、因为显然 "未实现"的函数应位于射频内核的 ROM 中。

我目前不知道如何继续。  我不知道有什么方法可以检查射频内核的 ROM (这是否可行?)。  但是、如果电路板可以挽救、我不想报废它。  如果有任何建议或见解、我们将不胜感激!

谢谢、

Jeremy

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

    您是否在设计中验证了 RTC 的精度?

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

    您好、Fredrik、

    感谢您建议查看我们设计的 RTC。  我们仍然遇到一些问题、希望您能提供宝贵的意见。

    事实证明、我们设计中的32kHz XTAL 未在第二块无法正常工作的电路板上启动。  振荡器(ABS05)具有以下规格:

    频率:32.768kHz

    工作模式:柔性版模式(音叉)

    频率容差: ±20ppm

    ESR:90 kΩ

    负载电容:12.5pF

     μW 电平:0.5 μ A

    尽管12.5pF 的负载电容超出了 CC2650的规格、但我们认为我们可以通过它来解决。  毕竟、ABS05在我们的 一个电路板上工作、 而 TI 为 CC2650推荐的 FC-12M 振荡器也具有12.5pF 的负载电容。

    在这两个电路板上、在两个端子上都加载了一个12pF 电容器。  我们意识到每个端子应该加载24pF 以获得12pF 的负载电容。  我们修改了无法正常工作的电路板、以便将24pF 的负载加载到 ABS05的每个终端。  这没有解决我们的问题。  为了进行完整性检查、我们还尝试完全移除负载电容器。  问题仍然存在。

    我们尝试使用 ABS05振荡器吊装第三块电路板。  此板上的 ABS05也未启动。

    我们最终购买 了一个负载电容为7pF 的替代振荡器、以使我们的设计符合 CC2650的规格。  我们将新的振荡器焊接到第二个板上、并使用12pF 的电容将振荡器的每个端子加载到下方、以获得6pF 的负载电容。  板载加电时、新的振荡器仍然无法启动。

    我们已验证32kHz XTAL 电路上的所有引脚均未短路 、并且一切都在进行 正确连接。

    我们被骗了,不知道如何前进。  如果有任何建议,将不胜感激。

    谢谢、

    Jeremy

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

    您是否已验证您的负载电容器的尺寸是否正确、以使32k xtal 正确地产生共振? 附加布局会很有帮助。

    此外、我建议在运行 simple_peripheral 应用时对软件用户指南的"在定制板上运行 SDK "初始电路板启动部分中建议的修改进行操作:

    software-dl.ti.com/.../index.html

    虽然本指南适用于较新的 SDK 版本、但同样的概念适用、包括必须与布局正确匹配的射频前端配置。

    请注意、第30页是 SNV 部分、这就是您看到差异的原因。

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试使用内部晶体-如果您使用 USE_RCOSC 编译项目、则 CC2640应忽略外部晶体、然后您至少可以将问题与外部32kHz 晶体隔离开来。 您必须验证芯片的版本是否可靠地支持内部晶振、因为早期的某些版本显然无法正常工作。
    在不含32kHz 晶体的 CC2640上运行蓝牙低耗能- www.ti.com/.../swra499b.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Jeremy Roy、
    根据我的经验、原因是晶体。 您可以切换到使用内部晶体来再次进行检查。

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

    您好、JXS、

    我们已验证旧的 ABS05和新 的 A 9HT12-32.768KDZY-T 的负载电容器是否正确标注尺寸  我已经使用建议的修改运行了 simple_peripheral 应用。  仍然无法在板上建立 BLE 连接  02。

    我们尝试将新的32kHz XTAL 焊接到每个端子上带有一个12pf 负载电容器的第三个电路板上。  该板以前安装了 ABS05 32kHz XTAL (不工作),我们将其替换为9HT12-32.768KDZY-T  返工后、第三块板有时能够建立 BLE 连接。  我没有成功地描述第三个电路板的连接可靠性。  然而、一旦电路板能够建立连接、它将能够无限期地重新连接、直到电路板断电。  如果电路板上电时无法连接、则通过 Smart RF Flash Programmer 和 Debug DevPack 复位电路板似乎允许 BLE 连接。  我们仍在尝试弄清这种情况的原因。

    我尝试  的建议、并使用 RCOSC 作为电路板02上32.768kHz 时钟的源来运行我们的定制软件。  电路板02能够建立连接并执行 GATT 事务。  

    我们现在可以确定问题的根源是振荡器电路。  我们现在尝试确定这是否是布局问题。  如果我们遇到进一步的障碍、我将在此报告。  感谢您的帮助!

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

    看起来您处于正确的轨道上。 您可以执行的一个快速测试是通过将预定义符号更改为 xPOWER_SAVY 来禁用节能/禁止待机。 这将防止 MCU 进入待机状态、并且不需要32k xtal 来进行睡眠时序。

    我还建议您使用 SmartRF Studio 7测量射频稳定性、从而测试24MHz 晶体精度。 切记不要直接探测 xtal。

    祝你一切顺利