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.

[参考译文] CC2564MODA:使用经典蓝牙的 CC2564B/CC2564MODA 上的 SPP 问题

Guru**** 2578945 points
Other Parts Discussed in Thread: CC2564MODA, CC2564, MSP430F5438A, MSP430F5529, CC2564MODN, CC2564C

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/859493/cc2564moda-spp-issues-on-cc2564b-cc2564moda-using-classic-bluetooth

器件型号:CC2564MODA
主题中讨论的其他器件: CC2564MSP430F5438AMSP430F5529CC2564MODNCC2564C

几年前、我们在 MSP430实验板的 LSR 模块中、在原始 CC2564上成功运行了 SPP 服务器、该服务器使用经典蓝牙(BT)。 我们现在正在使用 CC2564MODA 对产品进行最终测试、该 CC2564B 包含 CC2564B、不再运行实验板、并且 SPP 服务器和客户端存在问题。 我们已将其中一个产品配置为 SPP 服务器、将另一个配置为 SPP 客户端。 我们可以成功配对、没有任何问题、但对 SPP_Open_Remote_Port ()的调用返回0xFFB8 =-72、即 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE_DEVICE。 我们捕获了所有 HCI、GAP 和 SPP 事件、并且没有 SPP 事件。 只有与配对相关的 GAP 和 HCI 事件。 具体而言、配对完成后没有 HCI 事件回调。 我想对 SPP_Open_Remote_Port()的调用会导致某种 HCI 活动。

我们使用的是几个月前发布的最新 CC2564B 补丁(服务包)文件版本1.8。 由于我们目前仅使用经典 BT (而非 LE)、BasePatch 阵列不包含"#ifdef _support_low_energy__"或"#ifdef __support_AVPR__"部分。

CC2564B 是否可能未正确初始化? 但是、如果是这种情况、安全简单配对是否不会出现问题?

以下是来自配对的所有 HCI 回调事件的列表。 在调用 SPP_Open_Remote_Port()之后没有发生其他回调。

事件

数字

枚举值

十六进制

枚举值

十进制

 

HCI 事件

1

02

2.

etConnection_Complete_Event

2.

23

35.

etRad_Remote_Extended_Features_Complete_Event

3.

14.

20.

etLink_Key_Request_Event

4.

29.

41.

etIO_Capability 请求事件

5.

2A

42.

etIO_Capability 响应事件

6.

2b.

43.

etUser_Confirmation_Request_Event

7.

2e

46.

etSimple_Pairing_Complete_Event

8.

15.

21.

etLink_Key_Notification_Event

9.

05

5.

etAuthentication_Complete_Event

10.

04

4.

etDisconnection_Complete_Event

11.

02

2.

etConnection_Complete_Event

12.

23

35.

etRad_Remote_Extended_Features_Complete_Event

13.

14.

20.

etLink_Key_Request_Event

14.

05

5.

etAuthentication_Complete_Event

15.

07

7.

etEncryption_Change_Event

16.

04

4.

etDisconnection_Complete_Event

我也可以提供所有 GAP 回叫、但再说一次、它们都与配对相关、在 SPP_Open_Remote_Port ()之后不会发生其他 GAP 回调。

以下是进行配对并尝试打开远程设备上的串行端口的基本呼叫。 两者都在提供的 CCS COFF 库 libBluetopia.a 中使用 Stonestreet One Bluetopia SDK v1.5R2链接:

BluetoothStackID = BSC_Initialize (&HCI_DriverInformation、BSC_initialize_flag_no_SCO);

HCI_Register_Event_Callback (BluetoothStackID、HCI_Event_Callback、(无符号长整型) NULL);

GAP_SET_Pairable_Mode (BluetoothStackID、pmPairableMode_EnableSecureSimplePairing);

GAP_Register_Remote_Authentication (BluetoothStackID、GAP_Event_Callback、(无符号长整型) 0);

GAP_Initiate_Bonding (BluetoothStackID、Remote_BD_Addr、btDedated、GAP_Event_Callback、(无符号长整型) 0);

 

上述所有内容均返回状态正常、并且我们验证配对已成功完成。

 

远程服务器端口已在 ServerPort 4上打开,因此下面的调用使用此相同的端口号:

SPP_Open_Remote_Port (BluetoothStackID、Remote_BD_Addr、4、SPP_Event_Callback、(无符号长整型) 0);

 上述调用返回错误-72、即在10.7ms 内返回 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE 设备。

 

如果需要、我们可以为其他协议(如 L2CAP 和 RFCOMM)注册回调、如果捕获回调会有所帮助。

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

    您好!

    请给我一些时间来了解这一点。

    Jesu

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

    我们期待您的答复。 这有点紧急。

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

    您好!

    我在 MSP432上运行了 SPP 示例、没有遇到任何问题。 我注意到您过去曾评论过使用 MSP430、但现在您没有评论。 您使用的是什么主机 MCU?  

    Jesu

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

    MSP430F5438A

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

    您是否为 CC2564B 使用了 Service Pack v1.8?

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

    如果存在补丁程序/服务包初始化问题、是否可以正确进行配对、但 SPP 不能正常工作?

    使用以下命令在其他电路板上启动 SPP 服务器时没有错误:

    SerialPortID = SPP_Open_Server_Port (BluetoothStackID、4、SPP_Event_Callback、(无符号长整型) 0);

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

    我现在还不确定。 我正在尝试使用 MSP430F5529和 CC2564B 测试 SPP 示例。 我需要一些时间来设置硬件和软件。 尽快回来。

    Jesu

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

    您好!

    我在使用 MSP4305529启动演示时遇到了问题(我没有5438)。 我将尝试使用 MSP432、但 CC2564B 版本的蓝牙堆栈可以正常工作。 请问您是否对 SPP 演示示例进行了任何修改?

    Jesu

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

    是的、由于这是我们的最终产品、而不是试验电路板、因此它没有运行演示所需的 USB 或其他 I/O、演示软件设计为演示、而不是产品(最终产品中不需要大量的"演示"行李)。 因此、我们跟踪并提取了演示中的呼叫、并进行了与演示相同的 Bluetopia 呼叫序列。 上面的一篇文章中介绍了客户的这些信息。 下面列出了服务器的这些命令,其中大多数都是相同的,只是在服务器结束时启动了服务器。 一个微小的区别是、我们没有在对 HCI_Write_Default_Link_Policy_Settings_enable_sniff_mode 的调用中设置 HCI_LINK_Policy_Settings()、因为我们不启用此低功耗模式。 尽管下面未显示、但会检查每个函数的返回值是否有错误、如果发生错误(没有)、则会中断。 另一个细微的差异是、我们使用了:

    SPP_Register_Raw_SDP_Record (BluetoothStackID、ServerPortID、NULL、ServiceName 和 SDPServiceRecordHandle);

    而不是:

    SPP_Register_General_SDP_Record (BluetoothStackID、ServerPortID、ServiceName、&SPPServerSDPHandle);

    由于 SPP_Register_General_SDP_Record ()只是一个宏、它将 NULL 插入为 SPP_Register_Raw_SDP_Record ()的第3个参数。

    下面是 SPP 服务器初始化的实际序列:

    BluetoothStackID = BSC_Initialize (&HCI_DriverInformation、BSC_initialize_flag_no_SCO);

    HCI_Register_Event_Callback (BluetoothStackID、HCI_Event_Callback、(无符号长整型) NULL);

    GAP_SET_connectable_Mode (BluetoothStackID、cmConnectableMode);

    GAP_SET_DISCONIAL_Mode (BluetoothStackID、dmDiscoverGeneralableMode、0);

    GAP_SET_Pairable_Mode (BluetoothStackID、pmPairableMode_EnableSecureSimplePairing);

    GAP_Register_Remote_Authentication (BluetoothStackID、GAP_Event_Callback、(无符号长整型) 0);

    SerialPortID = SPP_Open_Server_Port (BluetoothStackID、4、SPP_Event_Callback、(无符号长整型) 0);

    SPP_Register_Raw_SDP_Record (BluetoothStackID、SerialPortID、NULL、"串行端口4服务器"、&SDPServiceRecordHandle);

    很有意思 的是、使用最新的 v1.8 Service Pack 和使用 CC2564B 的模块以及 Bluetopia.a"库(CCS\DefaultMTU\coffabi) for Bluetopia v1.5 R2、您是否能够成功地将配置为 SPP 客户端的电路板连接到配置为 SPP 服务器的电路板、而不会出现错误。

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

    您好!

    有关这一点、我需要咨询我们的 CC2564。 不幸的是,他是休假日的 OOO,所以下周必须继续这样做。

    Jesu

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

    感谢您的告知。 我们期待着下周尽早听取他的意见。 感恩节快乐!

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

    期待收到您关于此事的消息。

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

    您好!

    只是为了更新您的信息-我计划今天与我们的 CC2564专家会面。 我将在接近一天结束的时候用他的意见作出回应。  

    Jesu

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

    您好!

    由于这以前是正常工作的、而且由于您添加了所有功能、因此它停止工作、因此您可能会遇到某种副作用、无法让客户正常工作。 我们的 BT 专家建议您捕获 HCI 日志、以便让我们更深入地了解问题的可能原因。 遗憾的是、您遇到的错误并不能说明全部情况、因此 HCI 捕获可以让我们更好地了解客户端或服务器是否存在问题。

    有关如何捕获此信息的详细信息、请单击此处。  

    Jesu

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

    Jesu、使用 CC2564B 和服务包补丁文件 v1.8之前从未使用过、这正是我们的产品目前使用的补丁文件。

    几年前、它在一个 LSR TiWi-UB2模块上使用了 CC2564 (非 B)和一个早得多的服务包、该模块在具有 Bluetopia v 1.3的 MSP430F5438A 实验板上运行。

    您是否能够让 SPP 使用 CC2564B (在 CC2564MODA 或 CC2564MODN 等模块上) Service Pack 1.8和 Bluetopia v1.5 R2 MSP430 SDK 来工作?

    同时、我将尝试根据您在我们的嵌入式产品上引用的文档实现完整的 HCI 日志记录。

    谢谢你。

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

    Jesu 在阅读您引用的文档时指出:

    ***

    MCU 主机环境中的 HCI 记录


    由于缺少文件系统和 MCU 上的 CPU 处理能力有限、因此这种做法是站不住脚的
    MCU 环境中的堆栈级 HCI 记录。 这将留下两个用于记录的选项:
    •使用 Ellisys、Frontline 或自定义探针进行外部 HCI/UART 线路监听
    •在基于 Cortex-M 的 MCU 上使用带 DWT/ITM 的数据跟踪器

    ***

    我在上面发送的 HCI 日志记录了对 HCI_Event_Callback()的所有调用。 这是否不够好,因为它不记录*所有* HCI 流量?

    文档是否指出由于 RAM 限制、堆栈级 HCI 记录在 MCU 中不可行? MSP430F5438A 中有16K 的 RAM、Bluetopia 未使用的大部分 RAM 都可用于此调试。 如果 RAM 是限制因素、我们可以选择分阶段登录、首先是芯片初始化(补丁文件服务包)、然后再进行后续调用、每次只需一个小数。

    在 Bluetopia v1.5 R2 MSP430 SDK 中、这是否是用于记录所有 HCI 活动的正确函数调用?

    BSC_RegisterDebugCallback (BluetoothStackID、BSC_DebugCallback、CallbackParameter);

    其中、BSC_DebugCallback 是 BSC_Debug_Callback_t 类型的函数原型

    请告诉我:

    1) 1)如果 HCI_Register_Event_Callback()不会记录您需要记录的所有 HCI 通信、

    2) 2)如果 BSC_RegisterDebugCallback()将记录您所需的所有 HCI 流量,

    3) 3)如果您成功地使用 Bluetopia v1.5 R2 MSP430 SDK 在带有 Service Pack 1.8的 CC2564B 上运行 SPP 演示、并在 v1.5 R2\MSP430_Experiment\Bluetopia\lib\ccs\DefaultMTU\coffabi 下使用库 libBluetopia.a。 在 Service Pack v1.8中、未 编译条件汇编__support_low_energy__和其他段,因为我们不是运行 LE、而是运行经典 BT 上的 SPP。

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

    在 HCI 日志记录方面、您不应担心 RAM 问题、因为您将通过 UART 从外部发送 RAM。 我不熟悉 HCI 事件日志记录的任何限制-您获得的日志应足以满足 BT 专家的建议。

    我们有可配置为接收此数据的日志记录工具。 有关更多详细信息和文档、请访问以下链接。

    http://www.ti.com/tool/WILINK-BT_WIFI-WIRELESS_TOOLS

    Jesu

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

    Jesu,感谢您的回复,但我们的嵌入式系统中已经安装了日志记录固件,允许我们捕获 HCI_Event_Callback()中的所有 HCI 事件。 对于 SPP 客户机、它们显示在上面(请参阅本帖子开头附近的表)。  这不是您需要的 HCI 事件列表吗? 如果您需要任何这些事件中的更多数据、我可以提供这些数据。 例如、我可以为每个事件捕获并返回状态字节。 但是、所有这些事件(与配对相关)都已成功完成。 调用 SPP_Open_Remote_Port()时,paring 后出现问题。

    发出对 SPP_Open_Remote_Port()的调用后,根本没有发生 HCI 回调。 我们是否需要使用 BSC_RegisterDebugCallback()而不是 HCI_Register_Event_Callback()来查看所有 HCI 活动?

    SPP_Open_Remote_Port ()返回0xFFB8 =-72、即 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE_DEVICE。 Bluetopia 是否可以在没有任何 HCI 活动的情况下立即返回此信息?

    最后、为了响应您之前的帖子、我们只有 SPP (在经典蓝牙中)在 MSP430F5438A 实验板演示中使用了 LSR 的 TiWi-UB2模块上的 CC2564 (非 B)、使用了 Bluetopia MSP430 SDK v1.3。 我们从未能够在使用 Bluetopia MSP430 SDK v1.5 R2的 CC2564MODA 上使用 CC2564B 和最新的 CC2564B 服务包 v1.8来使其正常工作。 您是否能够让它在后者上工作?

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

    您好!

    我没有能力让 MSP430 + CC2564B SP v1.8正常工作。 如果我专注于使其正常工作并为您提供启动和运行的具体步骤、是否会有所帮助? 我可以尝试分析您提供的 HCI 日志、并根据这些日志提出一些建议、但如果您最终想要弄清楚如何使 SPP 与 MSP430上的最新 SP 一起工作、我只需关注这一点。 请告诉我、因为我的 e2e 容量有限。

    Jesu

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

    是的、这将非常有帮助、因为它将确定库(Bluetopia MSP430 SDK v1.5 R2 COFF 库文件 libBluetopia.a 在 v1.5 R2\MSP430_Experiment\Bluetopia\lib\ccs\DefaultMTU\coffabi)或运行经典蓝牙 SPP 的服务包(v1.8)或硬件(CC2564B)中是否存在问题。

    如果您使其运行、请使用以下未定义或注释的内容重新编译、以确保它们未包含在加载到 CC2564B 的服务包中:

    _support_low_energy__

    _support_AVPR__

    在我们 的 CC256XB.h 版本中、上述条件编译已被删除、以确保它们未被编译。 请在服务器端和客户端执行此操作。 我们首先注意到服务器端的问题、即其他蓝牙客户端无法识别我们的 SPP 服务器正在运行、无法与其连接。 然后、当我们将上述 MSP430 + CC2564B SP v1.8作为客户端(只需更改服务器版本中的几条指令)组合在一起时、我们发现在客户端 SPP_Open_Remote_Port ()上返回错误-72、即 BTPS_ERROR_RFCOMM_Unable to _connect_TO_REMOTE_DEVICE、 确认我们使用的其他 SPP 客户机所指示的问题。

    是的、如果您可以使用上述 MSP430 SDK 库和带有 CC2564B 的服务包构建 SPP 服务器和客户端(尤其是服务器)、这将非常有帮助。 这将使我们相信、在最近的库或服务包中没有出现任何问题、或者其他影响作为经典蓝牙 SPP 服务器运行的问题。

    谢谢你。

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

    您好!

    对拖延表示歉意。 12月5日和12月6日我离开办公室是因为我生病了。 今天、我将与我们的 BT 专家合作、让此示例使用最新的服务包。 稍后会回来。  

    Jesu

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

    Jesu、感谢您的说明。 12月3日,我生病了,轻微的流感病例,但到今天为止,我已经恢复了,又开始了。

    对于经典的 BT SPP 客户端、您使用的内容并不重要。 关键是 SPP 服务器使用 Bluetopia MSP430 SDK v1.5 R2 COFF 库文件 libBluetopia.a、位于 v1.5 R2\MSP430_Experiments\Bluetopia\lib\ccs\DefaultMTU\coffabi、其中 service pack v1.8和 CC2564B 运行经典蓝牙 SPP。 我们仅使用经典蓝牙(而不是 LE),因此,应该*不*编译__support_low_energy__和__support_AVPR__的服务包部分,以模拟我们的方案。

    我们非常想知道的是、使用上述库/文件的 SPP 服务器是否可以通过任何 SPP 客户端连接到、以及来回传递的串行数据?

    我们只使用 Bluetopia SPP 客户端连接到我们的服务器、因为我们认为在连接失败时可能会出现更多描述性错误。 我们之前尝试使用其他 SPP 客户端进行连接、但未成功、但没有有用的错误消息。

    我们测试的所有客户端都可以成功配对。 他们无法在我们的 SPP 服务器上打开远程 SPP 端口。 使用 SPP 服务器的情况似乎不正确。

    谢谢你。

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

    您好!

    我在介绍 SPP 示例时仍然遇到问题。 经过一段时间的故障诊断后、我放弃了并移动到较旧版本的 CCS。 我现在更接近运行该示例、但看起来某些 CCS 文件可能已损坏、因此会查找器件。 出于好奇、您使用的是哪个版本的 CCS? 我能够让它与 MSP432 + CC2564B 和 SP v1.8配合使用。  

    我把问题放在一边

    我认为此时可以安全地假设与最新 Service Pack 存在一定的兼容性问题。 我们的发行说明指出、该服务包仅针对 MSP432和 STM32进行了测试。 我还了解到、一段时间前、我们建立了一个有关 MSP432和 STM32的服务包定义标准。 考虑到 MSP430 BT 堆栈在标准建立之前很久才更新、MSP430可能不遵循此标准。 我认为这与您看到的症状非常一致、您可以在没有 SP 的情况下使 SPP 正常工作、但会遇到问题- 这是正确的吗?  

    要回答您的问题、我认为 SPP 客户端/服务器兼容性不受您使用的文件的影响。 只要支持 SPP BT 配置文件、SPP 服务器就应与任何 SPP 客户端配合使用。 此外、BT 配置文件与 BT 规范向后兼容、因此即使在客户端/服务器上运行两个不同版本的 BT、也应该可以使用。  

    Jesu

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

    Jesu、感谢您的全面回答。

    为了回答您的问题、我们仍在使用旧版本的 CCS、这只是因为它对我们来说很有效、我们没有很强的理由更改 CCS 5.3.0。 我们之前(几年前在 MSP430F5438A 实验板上)已在该 CCS 版本中成功使用了 Bluetopia SDK v 1.3、但对于我们的最终产品、我们决定使用当前的 SDK v 1.5 R2、因为它可能包含一些错误修复。 我们已存档 Bluetopia v1.3、并可在必要时返回该版本(需要进行重写)。

    我们不认为 CCS 的版本会有所不同、因为如果没有构建错误、编译环境和编译器的版本不应影响蓝牙功能。 我们在 CCS 5.3.0中发现的一个错误(也一直存在到更高版本)是在编辑包含文件时不会重建依赖的源文件。 编辑完任何包含文件后、我们强制执行"全部重建"以解决此问题。

    您询问的另一个问题是:"您可以让 SPP 在没有 SP 的情况下工作、但遇到问题- 这是正确的吗?" 答案是否定的、我们甚至没有尝试在不加载服务包的情况下启动 CC2564B。 我的理解是每次 CC2564B 复位后都必须加载服务包。 我们是否应该在不加载服务包的情况下尝试操作芯片?

    我同意 SPP 服务器应与任何 SPP 客户端兼容。 我们已经尝试过几种不同的客户端、没有任何客户端可以连接到我们当前的 SPP 服务器。 配对顺利进行、但配对后、SPP 客户端在尝试确定我们设备的功能时似乎挂起了几秒钟、并且似乎不会将其识别为具有 SPP 服务器。 当我们创建 Bluetopia SPP 客户端进行测试时、它也可以顺利配对、但在 SPP_Open_Remote_Port ()之后、它返回错误-72、即 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE_DEVICE。 我们设置计时器来测量返回此代码所需的时间:它在10.7毫秒内返回。

    供参考、我们不使用 HFILL 或 eHFILL。

    由于您可能会发现 Service Pack v1.8有问题,我们还测试了 Service Pack v1.7,结果相同。 在当前产品之前、我们从未使用 Bluetopia 测试过 CC2564B (MSP430实验板测试在 LSR 模块 TiWi-UB2中使用了原始 CC2564)。 MSP430 Bluetopia Classic BT SPP 服务器是否可能从未与 CC2564B 兼容? 或者、我们是否更有可能尝试 v1.7之前的 Service Pack 版本? 或者、是否更有可能与 Bluetopia SDK 不兼容、我们应该恢复到当前1.5 R2之前的 Bluetopia MSP430 SDK、例如 v1.3或 v1.4?

    总之、如果您无法获取当前 Bluetopia MSP430 SDK v1.5 R2以及 Service Pack 1.8和 CC2564B 来运行经典蓝牙 SPP 服务器、我会看到3个主要的重版本路径来尝试查找功能型 Bluetopia MSP430 SDK SPP 服务器:

    1) 1)恢复到旧版 Bluetopia MSP430 SDK。

    2) 2)恢复到较早的 CC2564B 服务包/补丁文件(早于 v1.7)。 我们可能需要从 TI 获取、因为我们的存档中没有旧的文件。

    3) 3)从基于 CC2564B 的模块恢复到基于 CC2564的模块(不建议在新设计中采用、但仍可用)。

    您是否对要尝试的路径有任何建议、或者您是否可以为我们尝试其中的一些建议?

    谢谢你。

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

    Jesu、这对我们来说正变得至关重要。 您是否建议我们尝试使用 MSP430 Bluetopia SDK 1.3版库、并重写我们的调用以符合该早期版本?

    我希望这不是 CC2564与 CC2564B 硬件问题。

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

    您好!

    请尝试以下操作。 由于新服务包的格式不同,而不是尝试用新服务包替换旧服务包-将旧服务包保留在中,但将 BasePatch 的阵列内容替换为 v1.8服务包中 BasePatch 的阵列内容。 这里的想法是、新格式可能会导致与旧 MSP430示例的一些不兼容问题。 如果您遇到任何问题、请告诉我。  

    Jesu

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

    Jesu、

    我们已仅提取 BasePatch 阵列的内容、并将其粘贴到我们自己的源文件 BasePatch 阵列中。

    我们已经尝试过 Service Pack v1.7、它的工作效果没有比 v1.8更好。 您是否建议我尝试使用1.7以上的 SP? 如果是、您需要发送它、因为它不在网站上。

    Service Pack v1.7或1.8均不会导致 SPP 服务器工作。 我知道这两个 Service Pack 版本加载时没有任何错误。

    我要切换到较旧的 Bluetopia SDK、即 v1.3中的 libBluetopia.a 库。

    关于服务包、无论如何、我们只加载 BasePatch 阵列、而不加载 LE 或任何其他条件段。

    请告诉我如何继续。

    您是否能够获得 BT 专家的帮助、让 SPP 服务器在 Bluetopia MSP430 SDK v1.5 R2上运行? 启动 SPPP 服务器的调用返回时没有错误消息、但无法连接到它、任何连接到它的尝试都不会生成任何类型的回调事件。

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

    Jesu、我通过拦截发送和接收 HCI UART 的例程捕获了低级 HCI 流量。 在我们名为 SPP_Open_Remote_Port ()的测试客户端之后、以下十六进制字节通过 HCI UART 从 MSP430传输到 CC2564B:

    01
    05
    04
    0D
    29.
    B6.
    37.
    2D
    07
    98
    18
    抄送
    02
    00
    00
    00
    01

    随后从 CC2564B 接收到以下 HCI UART 十六进制字节:

    04
    0f
    04
    00
    01
    05
    04

    从对 SPP_Open_Remote_Port ()的调用生成的返回代码为-72、即:

    BTPS_ERROR_RFCOMM_unable 至_连接至_远程_设备

    接下来,我将捕获服务器上的 HCI 活动,当客户端尝试使用 SPP_Open_Remote_Port()进行连接时开始。

    这些日志是否对您有用?

    如果结果太长、无法在此处粘贴、我是否可以通过电子邮件向您发送 Excel 电子表格附件?

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

    您好!

    我不知道您已经这样复制了修补程序-我不介意。 请使用我们的记录器工具从我们的器件捕获 HCI 活动。 然后、您可以保存此文件并将其附加到此处。

    记录器用户指南

    如果您可以同时为服务器和客户端使用 HCI 日志、这将是完美的。 如果您需要有关如何捕获此信息的其他说明、请告诉我。

    Jesu

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

    如果您还没有、请在 此处下载我们的无线工具。 使用 BT 记录器应用程序捕获日志、并保存日志以供以后在此处共享。

    Jesu

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

    Jesu、我们可能可以使用1.8V 至 RS232适配器连接到 CC2564B 上的 TX_DBG 引脚。  这应该被连接(通过电平转换器)到 PC RS232 COM 端口上的 RX_Data 线路(或者 USB/COM 端口适配器)、对吧?

    无需其他物理连接?

    是否有任何必须发送的 HCI 调用才能激活 CC2564B 上的 TX_DBG、或者它是否始终输出数据?

    "BT Logger "和"HCI/LMP viewer"都应连接到同一 COM 端口? (TX_DBG 通过电平转换器传输到 RS232 RX_Data)?

    我们不会将默认 HCI 数据速率从115.2K 更改为115.2K。 TX_DBG 端口将使用的数据速率是更高还是更高?

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

    是的、正确。

    CC2564和适配器之间的 TX_DBG 和公共 GND。  

    不、CC2564B 不断输出数据。

    是的、但一次只能执行一个。  https://processors.wiki.ti.com/index.php/CC256x_Logger_User_Guide

    您无法更改波特率。 它是921600。

    有关更多详细信息、请访问上面的链接。 如果您有任何问题、请告诉我。

    Jesu

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

    我们将在今天晚些时候捕获一些大型日志文件。 我们如何将它们提供给您、以便您和您的 BT 专家进行分析? 作为 e2e 上这些帖子的附件、还是私人邮件/电子邮件?

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

    你好。

    您可以将它们附加在此处。 如果您对捕获日志有任何疑问或顾虑、请告诉我、因为获取良好的日志来诊断问题非常重要

    Jesu

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

    附件是 Logs2019-12-17.zip、其中包含日志文件和一个解释每个文件内容的 Readme.txt。 唯一的选择是"插入文件"、希望这将附加此 zip 文件。

    您是否能够使用当前用于 MSP430的 Bluetopia SDK (v1.5 R2)和最新的 CC2564B 服务包 v1.8使用任何版本的 MSP430 (如 MSP430F5438A)让 SPP 处理您的设置? 我们从未能够使此配置正常工作。 几年前、我们有一个带有 Bluetopia v1.3的 CC2564 (非 B)成功运行 SPP 服务器、但我们的最终产品使用带有最新 SDK 和服务包的 CC2564B (在 CC2564MODA 上)、我们无法使其运行 SPP。 它执行安全简单的配对、没有问题、但不会运行 SPP。 我们对 SPP_Open_Server_Port()的调用始终返回有效的正 SerialPortID,但任何设备都无法连接到它。

    e2e.ti.com/.../Logs2019_2D00_12_2D00_17.zip

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

    您好!

    您似乎正确捕获了它们。 我们现在正在查看您的日志。 我没有使 MSP430正常工作-它所依赖的工具链非常旧、我一直在不断遇到问题。 不过、我确实使用了 MSP432和最新的服务包、但该版本的更新比 MSP430多。

    我会让您稍微了解一下我们的发现。

    Jesu

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

    您好!

    首先、我犯了一个错误-您捕获了固件日志、而不是 HCI 日志。 TX_DBG 为您提供基本上属于控制器的固件日志。 HCI 日志从 HCI_TX 和 HCI_RX 行捕获。 有关更多详细信息、 请参阅此处的第4.1.2节。  

    不用说,我们仍然学到了一些东西... 我们查看了日志、在控制器级别没有发现任何问题。 具体而言、从 SPP_ServerBootThenClientOpenSpp.lgr (您描述错误的位置)可以看出、连接和配对成功发生、除此之外没有问题。  

    下一步是查看获取一些 HCI 日志。 我们只需要一个记录问题的日志(我们注意到您包括了其他正常工作的日志)。 如果您能同时为客户机和服务器获取该信息、我们就会有很多见解。 这应该相当简单-只需连接一些额外的引脚并运行脚本即可。 上述链接的文档中介绍了所有步骤。 如果您有任何疑问、请告诉我。

    Jesu

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

    Jesu、我遵循了您发送的最后一个文档中的说明、安装软件和硬件、并捕获您所说的所需日志。

    现在您说您需要其他东西。 您在上面提到的文档中做了一些一般性的陈述、这些陈述涉及我从未听说过的软件:

    "自定义探头可以监听 HCI/UART TX 和 RX 线路、并将后处理格式设置为 BTSnoop 文件格式。 。
    重新格式化的 BTSnoop 数据/日志可通过 Wireshark、FTE 或 Ellisys HCI 查看器 GUI 查看到
    分析。"

    我目前已安装 WirelessTools-4.0.0.2-windows-installer.exe 上的 Logger 应用程序。 此 Logger 是否具有您需要的 BTSnoop 文件格式? 您是否要求我们也获得"Wireshark、FTE 或 Ellisys HCI 查看器 GUI"? (他们是什么)

    您是否需要同时监控和记录 HCI TX 和 RX、方法是轻触它们?

    HCI TX 和 RX 日志是否可以一次创建一个、或者是否必须同时创建这些日志、从而要求我们订购另一个 UART 电平转换器到 USB 器件?

    TI 是否有人可以让 MSP430 Bluetopia SDK v1.5 R2在某种类型的 MSP430上运行、从而使用具有服务包1.8的经典蓝牙 SPP 测试 CC2564B? 如果有人可以验证这是否正常工作、这将为我们节省大量时间。

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

    您好!

    日志通过该部分中提到的 UART 线路发送。 Wireshark、FTE 等... 不需要-只需查看捕获的日志即可。 您只需要能够将 UART 数据发送到计算机的内容、以便 HCSISniffer 工具可以捕获数据并创建 BTsnoop 文件。 无需同时捕获客户端和服务器的日志。 假设此问题是可重现的、只需为服务器捕获一个问题、然后为客户端重复步骤和捕获。 日志应该相同。

    您可以在文档的参考部分下载监听工具的.jar。

    此外、我还将请 BT 专家尝试让该示例明天运行。 他仍然有一个旧的环境设置、应该避免我一直面临的启动问题。

    Jesu

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

    Jesu、感谢您的回复。 您提到的 swpa234.pdf 文档仅涉及 MSP432和 CC2564C、而不涉及 MSP430和 CC2564B。 这似乎是对各种工具的简要概述、但没有深入介绍许多细节。 我想我们将等待您的 BT 专家如您所说的那样查看。

    我们期待您的 BT 专家使用 MSP430 Bluetopia SDK v1.5 R2在 MSP430上运行经典蓝牙 SPP 服务器、与 CC2564B (例如 CC2564MODA 或 CC2564MODN)通信、服务包 v1.8。 不关心连接客户端使用什么-问题是,任何客户端是否可以连接到该 SPP 服务器配置并与之交换数据?

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

    您好!

    我终于能够为 MSP430提供 SPP 演示。 看起来它可以与旧服务包一起使用。 我将在星期一尝试使用 Service Pack v1.8。

    Jesu

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

    谢谢你、Jesu。 是的、最终测试是让 Bluetopia MSP430 SDK 1.5 R2使用 v1.8服务包与经典 BT SPP 配合使用。 请告诉我您是否可以建立此连接并通过它发送或接收任何字节。

    当尝试从任何客户端进行此类连接时、我们甚至不会收到任何 SPP 回调、传输的数据字节要少得多。

    我们期待您的结果。

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

    您好!

    我刚刚使用最新的 Service Pack 运行了演示、它可以正常工作。 我将 MSP430作为 SPP 服务器使用 SDK v1.5 R2和 SP v1.8、并将 MSP432作为 SPP 客户端。  

    我在实际演示中使用 CLI 测试了这两者。 在服务器上、我通过运行"open 1"打开了一个端口-这就是全部。

    在客户端上、我运行了一个查询以发现设备、然后使用"open"连接到该设备 "

    我在客户端和服务器上都成功回调。 然后、我对这两个寄存器使用了写和读操作、以确保它们正常工作、一切正常。

    Jesu

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

    Jesu、感谢您运行此测试。 这表明我们遇到了与 SDK 版本或服务包版本无关的问题。 我们从不接收任何 SPP 回调(尽管我们获得了 HCI 和 GAP 回调)。 我们可能会遇到一个错误、该错误会以某种方式影响 SPP 和/或 SDP、但不会影响配对(安全简单配对工作正常)。

    尽管我们的问题仍未解决、但我将此主题标记为已解决、因为您明确运行的测试证明当前 MSP430 Bluetopia SDK (1.5 R2)和 CC2564B 服务包(v1.8)不是问题。

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

    Jesu、我想将解决方案发布到 CC2564B (CC2564MODA)上的蓝牙问题、以防它对其他人有利。

    上个春天,在自定义 boot.c 时,我们无意中省略了函数“_auto_init()”。  模板 boot.c 中没有说明此函数用途的注释、但在搜索后、我发现它会初始化声明时初始化的静态变量。 由于我们的编码风格不依赖于声明中的初始化、而是在必要时使用代码语句显式初始化、因此在我们链接到 Stonestreet One 蓝牙库之前、一切都是完美的。 显然、该库中的某些函数使用这种形式的初始化。 我们发现配对功能非常完美、但 SDP 和 SPP 等更高级别的蓝牙功能却不能正常工作。 将_auto_init()添加到我们的 boot.c 文件可以解决该问题,现在所有蓝牙功能都可以正常工作。

    感谢您的信函、尤其是验证 CC2564B 服务包 v1.8不是问题所在。