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.

[参考译文] CC3351:无法使用 MCU R7.2 连接 BLE

Guru**** 2752855 points

Other Parts Discussed in Thread: CC3351

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1598416/cc3351-fail-to-connect-with-ble-using-mcu-r7-2

器件型号: CC3351

您好:

我将 MCU SDK R7.2 与 Zephyr RTOS 搭配使用。

CC3351 通过 SPI 连接到 WLAN 部分、并对 BLE 器件使用具有 115200 波特的 RTS/CTS 的 UART。

目前、我成功运行 HCI H4 初始化。 我看到设备在 BLE 中进行广播、但无法连接。 当我使用 nrfconnect 应用程序连接到器件时、我看到 UART 总线上没有交换数据。

以下是 HCI H4 初始化(使用逻辑分析仪捕获):

h01 h03 h0C h00 h04 h0E h04 h01 h03 h0C h00 h01 h03 h10 h00 h04 h0E h0C h01 h03 h10 h00 h00 h00 h00 h00 h60 h00 h00 h00 h01 h01 h10 h00 h04 h0E h0C h01 h01 h10 h00 h0D h2C h02 h0D h0D h00 h2C h02 h01 h02 h10 h00 h04 h0E h44 h01 h02 h10 h00 h20 h00 h80 h00 h00 hC0 h00 h00 h00 h00 hE4 h00 h00 h00 h28 h22 h00 h00 h00 h00 h00 h00 h04 h00 h00 hF7 hFF hFF h7F h00 h00 h00 h30 hF0 hFF hFF hFF hE3 h80 h1F h00 h04 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h01 h33 h0C h07 h04 h02 h00 h0F h00 h00 h00 h04 h0E h04 h01 h33 h0C h00 h01 h31 h0C h01 h01 h04 h0E h04 h01 h31 h0C h00 h01 h03 h20 h00 h04 h0E h0C h01 h03 h20 h00 hFF hD9 h00 h08 h00 h00 h00 h00 h01 h02 h20 h00 h04 h0E h07 h01 h02 h20 h00 hFF h00 h01 h1C h20 h00 h04 h0E h0C h01 h1C h20 h00 hFF hFF hFF hFF hFF h03 h00 h00 h01 h2F h20 h00 h04 h0E h0C h01 h2F h20 h00 hFB h00 h90 h42 hFB h00 h90 h42 h01 h24 h20 h04 hFB h00 h90 h42 h04 h0E h04 h01 h24 h20 h00 h01 h01 h20 h08 h6F h08 h00 h00 h00 h00 h00 h00 h04 h0E h04 h01 h01 h20 h00 h01 h01 h0C h08 h10 h88 h00 h02 h00 h00 h00 h20 h04 h0E h04 h01 h01 h0C h00 h01 h09 h10 h00 h04 h0E h01 h09 h10 h00 h9A h4D h22 hE7 h72 h7C h01 h06 h20 h0F h30 h00 h60 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h07 h00 h04 h0E h04 h01 h06 h20 h00 h01 h06 h20 h0F h30 h00 h60 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h07 h00 h04 h0E h04 h01 h06 h20 h00 h01 h08 h20 h20 h11 h02 h01 h06 h03 h19 h41 h08 h09 hFF h55 h01 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h04 h0E h04 h01 h08 h20 h00 h01 h08 h20 h20 h11 h02 h01 h06 h03 h19 h41 h08 h09 hFF h55 h01 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h04 h0E h04 h01 h08 h20 h00 h01 h09 h20 h20 h12 h11 h09 h41 h72 h63 h68 h69 h65 h20 h4C h45 h20 h47 h61 h65 h74 h61 h6E h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h04 h0E h04 h01 h09 h20 h00 h01 h09 h20 h20 h12 h11 h09 h41 h72 h63 h68 h69 h65 h20 h4C h45 h20 h47 h61 h65 h74 h61 h6E h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h04 h0E h04 h01 h09 h20 h00 h01 h20 h01 h01 h04 h0E h04 h01 h20 h00

我还看到 cc3351 记录器中的日志讨论了天线配置(BLE TX 模式)。 我想我在 cc3351 芯片本身或 BLE 栈中有误配置。

我附上了从 CC3351 记录器从引导系统捕获的日志及其配置文件。

我还尝试通过从 Linux 板捕获序列来比较 HCI H4 初始化序列。 这里是转储:

hFF hFF h02 h04 h2A h00 h00 h01 h03 h0C h00 h04 h0E h04 h01 h03 h0C h00 h01 h03 h10 h00 h04 h0E h0C h01 h03 h10 h00 h00 h00 h00 h00 h60 h00 h00 h00 h01 h01 h10 h00 h04 h0E h0C h01 h01 h10 h00 h0D h2C h02 h0D h0D h00 h2C h02 h01 h09 h10 h00 h04 h0E h01 h09 h10 h00 hAA hCC h89 hB5 h68 h34 h01 h02 h10 h00 h04 h0E h44 h01 h02 h10 h00 h20 h00 h80 h00 h00 hC0 h00 h00 h00 h00 hE4 h00 h00 h00 h28 h22 h00 h00 h00 h00 h00 h00 h04 h00 h00 hF7 hFF hFF h7F h00 h00 h00 h30 hF0 hFF hFF hFF hE3 h80 h1F h00 h04 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h00 h01 h03 h20 h00 h04 h0E h0C h01 h03 h20 h00 hFF h59 h00 h08 h00 h00 h00 h00 h01 h02 h20 h00 h04 h0E h07 h01 h02 h20 h00 hFF h00 h01 h1C h20 h00 h04 h0E h0C h01 h1C h20 h00 hFF hFF hFF hFF hFF h03 h00 h00 h01 h01 h0C h08 h90 hE8 h04 h02 h00 h80 h00 h20 h04 h0E h04 h01 h01 h0C h00 h01 h01 h20 h08 hFF h1F h00 h00 h00 h00 h00 h04 h0E h04 h01 h01 h20 h00 h01 h4B h20 h00 h04 h0E h06 h01 h4B h20 h00 h00 h14 h01 h0F h20 h00 h04 h0E h05 h01 h0F h20 h00 h10 h01 h10 h20 h00 h04 h0E h04 h01 h10 h20 h00 h01 h2A h20 h00 h04 h0E h05 h01 h2A h20 h00 h01 h29 h20 h00 h04 h0E h04 h01 h29 h20 h00 h01 h2E h20 h02 h84 h03 h04 h0E h04 h01 h2E h20 h00 h01 h2F h20 h00 h04 h0E h0C h01 h2F h20 h00 hFB h00 h90 h42 hFB h00 h90 h42 h01 h23 h20 h00 h04 h0E h08 h01 h23 h20 h00 h1B h00 h48 h01 h01 h3B h20 h00 h04 h0E h05 h01 h3B h20 h00 h14 h01 h63 h0C h08 h00 h00 h80 h00 h00 h00 h00 h00 h04 h0E h04 h01 h63 h0C h00 h01 h24 h20 h04 hFB h00 h90 h42 h04 h0E h04 h01 h24 h20 h00 h01 h31 h20 h03 h00 h01 h01 h04 h0E h04 h01 h31 h20 h00

注意:初始化后、WIFI 正常工作、但无法通过 BLE 连接到器件。

提前感谢、

logger_ble_hci_h4.csvcc33xx-conf.txt 

Gaetan

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

    Gaetan,

    感谢您提供的信息和日志。

    只是为了确认 — 您能够使用 nrfconnect 应用程序扫描 CC3351 广播吗? (您的核心同事是什么? 是手机吗? 哪种型号?)

    根据您共享的固件日志、我可以在日志结束前看到 CC3351 广播、但无法看到中央对等器件发出的传入连接指示。

    1.这是否与其他中央对等方重现? 其他电话或其他设备?

    2. nrfconnect 应用程序也有一些调试日志。 您能分享一下吗?

    3.有没有机会你有一个空气嗅探器日志的这种情况?

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

    Gaetan,

    感谢您提供详细信息。

    关于“LE 功率等级 1“-此特性 指的是 发射功率分级。  支持此功能的器件实际上声明其发送频率可高达 20dBm。 我认为这与您描述的问题无关。 但是、由于支持的功能在器件固件中是静态的、您提到过、与 Zephyr 一起使用时、您会看到固件的响应不同于 Linux、我想这是因为固件版本不同、并且此功能是在以后添加的。

    一般来说、没有看到任何   Tune type = 2 (BLE Rx) 的日志并不常见、但我需要完整的日志才能完全了解可能发生的情况。

    根据您输入的对等设备能够扫描 CC3351 设备并且很可能还发送了连接请求、我们需要查找指示我们收到连接指示的日志:“ CTRL:ll Adv_Task recv CONNECT_IND “。

    您能否分享完整的 gLogger 记录?

    检查 RX 侧的另一种方法是尽可能将 CC3351 作为中央器件尝试、执行扫描并检查我们是否获得任何扫描结果。

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

    您好:

    关于“LE Power Class 1“-此功能 指的是 发射功率分级。  支持此功能的器件实际上声明其发送频率可高达 20dBm。 我认为这与您描述的问题无关。 但是、由于支持的功能在器件 FW 中是静态的、您提到过、与 Zephyr 一起使用时、您会看到 FW 的响应不同于 Linux、我想这是因为 FW 版本不同、稍后添加了该功能。

    感谢您的澄清!

    一般来说、没有看到任何   Tune type = 2 (BLE Rx) 的日志是不正常的、但我需要完整的日志才能完全了解可能发生的情况。

    我按照您的建议在开始扫描时进行了测试。 在该模式下、我们确实有很多日志、表明 CC3351 处于 BLE RX 模式。

    我加入了该消息的两个文件、即“advertising.csv",“,其中、其中包含从 CC3351 到 BLE 广播的日志和与 scan 等效的“scan.csv"。“。 请勿在测试期间、WLAN 接口已打开但未连接到网络、以避免日志泛洪。

    谢谢、

    e2e.ti.com/.../Scan.csve2e.ti.com/.../Advertising.csv

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

    您好:

    我已在该消息“cc33xx-conf.txt"中“中添加了一个文件、这是我们正在使用的 cc3351 的配置文件。 它采用解码形式。

    另外、我们正在使用 Feasycom 的一个模块、但这是一个专门为我们设计的模块。 器件型号为:FSC-MWM3351(似乎是一般参考,而不是此特定模块)。

    e2e.ti.com/.../3223.cc33xx_2D00_conf.txt

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

    您好:

    我使用以下设置进行了测试:

    -来自 ST 的 MCU 发现密钥

    - BP 3351 板(有线手工制作) 固件版本: 1.7.4.329 PHY 版本: 1.2.0.47.6.13.38.69

    -在 2MHz 时使用 SPI 进行通信+在 9600 波特下使用 UART 无硬件流控制(默认配置)

    - TI CC3351 MCU SDK 版本 R8.1

    - Zephyr RTOS 使用 HCI H4 用于 BLE

    我遇到的问题与我们的模块相同。 在使用 nrfconect 等应用程序的 BLE 中可以看到该器件、但手机无法连接到该器件。

    在观察 CC3351 记录器时、我看到一些日志告诉 BLE 设置处于 TX 模式、但绝不处于 RX 模式。 这与我们的模块的行为相同。 我想这更像是我们这边的软件问题或配置。

    我已将 CC3351 从芯片引导到测试结束为止的消息日志附加到(应用无法连接到器件)。

    谢谢、

    e2e.ti.com/.../bp3351.csv

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

    Gaetan,

    感谢您的反馈。

    我可以更新、我在 BP-3351 电路板和 MSP430(使用 R8.1 SDK)上尝试了相同的方法、一切似乎都正常运行。

    我注意到的是、您共享的内容和我期望看到的内容之间的固件日志有很大差异。

    您的日志(我假设使用 wLogger 捕获)是否被任何机会过滤?

    例如、我看不到 BLE_ENABLE 命令被发送、NPI 模块初始化和 ADV 命令定期发送到 RF ...

    您能描述一下您的应用中的确切流程吗?

    伙计

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

    大家好、  

    感谢您的回答。

    事实上,我使用了一个特殊的记录器。 当我们使用以前的 SDK 版本解决 Linux 记录器问题时、TI 支持部门为我们提供了该软件。 现在、我使用附加到该消息中的 R8.1 SDK 记录器进行了新的捕获。

    您能说明应用程序中的确切流程吗?

    我们的初始化流程为:

    -配置 32 KHz 时钟

    -使用 Wlan_Start 初始化 CC3351  

    -使用 Wlan_Get 读取当前固件版本 (WLAN_GET_FWVERSION)

    -使用 Ble-BLE() 在 CC3351 上启用 If_Enable。 我可以看到日志“报告:--------------- 等待 BLE 控制器“。

    -使用 Wlan_Role Up (WLAN_ROLE_STA) 在 Zephyr 中配置 STA 接口并在 CC3351 上配置 STA 接口

    -运行 Zephyr HCI H4 初始化

    -使用 Zephyr 启动 BLE 广播

    请注意、如果我们 在通过 If_Enable 总线发送 HCI H4 命令之前没有执行 Ble-BLE ()、则 CC3351 不会给出任何答案。 因此、我想该命令发送得很好、至少在芯片中考虑到了这一点。

    e2e.ti.com/.../cc3351_5F00_logger.csv

    非常感谢!

    Gaetan

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

    您好:  

    我们正在检查无线 wifi + BLE 的 COEX 配置。

    我们的共存 GPIO 处于悬空模式(未连接到 MCU)。  

    这是我们在 INIT 期间发送到 CC3351 的 COEX 配置:

    core.coex_configuration.Disable_coex = 0x00
    core.coex_configuration.tie_breaker_ble = 0x03
    core.coex_configuration.tie_breaker_wifi = 0x02
    core.coex_configuration.tie_breaker_ext_soc = 0x00
    core.coex_configuration.ble_enabled = 0x01
    core.coex_configuration.ble_grant_polarity = 0x01
    core.coex_configuration.ble_pta_signalling_mode = 0x00
    core.coex_configuration.ble_tx_bypass_val = 0x00
    core.coex_configuration.ble_rx_bypass_val = 0x00
    core.coex_configuration.wifi_enabled = 0x01
    core.coex_configuration.wifi_grant_polarity = 0x01
    core.coex_configuration.wifi_alt_band_input_bypass = 0x00
    core.coex_configuration.wifi_rx_only_input_bypass = 0x00
    core.coex_configuration.wifi_alt_band_input_bypass_val = 0x00
    core.coex_configuration.wifi_rx_only_input_bypass_val = 0x00
    core.coex_configuration.is_Ext_soc_enable = 0x00
    core.coex_configuration.ext_soc_pta_signalling_mode = 0x03
    core.coex_configuration.ext_soc_request_polarity = 0x01
    core.coex_configuration.ext_soc_priority_polarity = 0x01
    core.coex_configuration.ext_soc_grant_polarity = 0x01
    core.coex_configuration.ext_soc_grant_renew_bypass = 0x01
    core.coex_configuration.ext_soc_request_signal_detection = 0x02
    core.coex_configuration.ext_soc_grant_pin = 0x00
    core.coex_configuration.ext_soc_request_pin = 0x00
    core.coex_configuration.ext_soc_priority_pin = 0x00
    core.coex_configuration.wifi_to_ble_grant_delay = 0x14
    core.coex_configuration.wifi_to_ext_soc_grant_delay = 0x14
    core.coex_configuration.ble_to_wifi_grant_delay = 0x32
    core.coex_configuration.ble_to_ext_soc_grant_delay = 0x14
    core.coex_configuration.ext_soc_to_wifi_grant_delay = 0x1e
    core.coex_configuration.ext_soc_to_ble_grant_delay = 0x23
    core.coex_configuration.wifi_min_grant_time = 0x01f4
    core.coex_configuration.ble_min_grant_time = 0x000a
    core.coex_configuration.ble_max_grant_time = 0x2710
    core.coex_configuration.ext_soc_min_grant_time = 0x0096
    core.coex_configuration.ext_soc_max_grant_time = 0x3fff
    core.coex_configuration.ble_t2_time = 0x05
    core.coex_configuration.ext_soc_t2_time = 0x05
    core.coex_configuration.wifi_group_priorities.coex_enabled = 0x00
    core.coex_configuration.wifi_group_priorities.wlan_group_core_active_priority = 0x01
    core.coex_configuration.wifi_group_priorities.wlan_group_traffic_priority = 0x03
    core.coex_configuration.wifi_group_priorities.wlan_group_scan_priority = 0x05
    core.coex_configuration.wifi_group_priorities.wlan_group_twt_traffic_priority = 0x07
    core.coex_configuration.wifi_group_priorities.wlan_group_management_sequence_priority = 0x07
    core.coex_configuration.wifi_group_priorities.wlan_group_scan_high_priority = 0x09
    core.coex_configuration.wifi_group_priorities.wlan_group_broadcast_multicast_priority = 0x0b
    core.coex_configuration.wifi_group_priorities.wlan_group_beacon_priority = 0x0b
    core.coex_configuration.wifi_group_priorities.wlan_group_management_sequence_urgent_priority = 0x0b
    core.coex_configuration.wifi_group_priorities.wlan_group_beacon_urgent_priority = 0x0d
    core.coex_configuration.wifi_group_priorities.wlan_group_phy_command_priority = 0x0f
    core.coex_configuration.ble_group_priorities.ble_group_test = 0x01
    core.coex_configuration.ble_group_priorities.ble_group_setup = 0x02
    core.coex_configuration.ble_group_priorities.ble_group_connected = 0x06
    core.coex_configuration.ble_group_priorities.ble_group_observer = 0x08
    core.coex_configuration.ble_group_priorities.ble_group_broadcaster = 0x0a
    core.coex_configuration.ble_group_priorities.ble_group_initiator = 0x0c
    core.coex_configuration.ble_group_priorities.ble_group_urgent_priority = 0x0d
    core.coex_configuration.external_soc_priorities.low_priority = 0x06
    core.coex_configuration.external_soc_priorities.high_priority = 0x0a

    您是否确认这是使 BLE 和 WiFi 与内部共存协同工作的预期配置?

    谢谢、

    Gaetan

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

    Gaetan,

    默认值经过测试和验证、因此 内部 BLE 和 WiFi 可以使用共存机制协同工作。

    您能否确认您没有更新默认值?

    伙计

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

    Gaetan,

    您似乎可能使用了错误的 looger.bin 文件、因为您发送的日志未显示启用 BLE 的预期日志。

    您是否曾从 SDK 本身的固件中获得过更新的固件?

    如果不是、您应使用 SDK 中“cc33xx_RTOS_MCU_PACKAGE_R8_1\tools\WIFI_FW"下“下的文件

    我还在 casee2e.ti.com/.../R8_5F00_1_5F00_logger.bin 上附加了它

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

    您好:

    [引述 userid=“202081" url="“ url="~“~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1598416/cc3351-fail-to-connect-with-ble-using-mcu-r7-2/6180305

    默认值经过测试和验证、因此 内部 BLE 和 WiFi 可以使用共存机制协同工作。

    您能否确认您没有更新默认值?

    [/报价]

    是的、我确认我们所做的唯一修改是:

    core.BleUartBaudrate = 0x002dc6c0
    core.enable_FlowCtrl = 0x01

    [引述 userid=“202081" url="“ url="~“~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1598416/cc3351-fail-to-connect-with-ble-using-mcu-r7-2/6180310

    您似乎可能使用了错误的 looger.bin 文件、因为您发送的日志未显示启用 BLE 的预期日志。

    您是否曾从 SDK 本身的固件中获得过更新的固件?

    [/报价]

    目前、我使用了 2 个记录器:

    -在 simplelink 工具箱界面中提供 CC3351 记录器

    - 6746.logger.bin 是我们在 e2e 平台上收到的针对 Ubuntu 的定制解析器

    我尝试使用 R8.1 SDK 源代码中的记录器或直接从您的链接下载、在 Ubuntu 上使用它时、似乎我没有任何日志。 我们有以下错误:

    WARNING : Such LR Address 4294967295 already exists in DB, new parameters will override last one 
    not enough values to unpack (expected 2, got 1)
    
    CC33XX Logger Done!
    Exiting from logger user_select thread
    
    All Loggers Stopped

    当我们遇到与早期版本 (7.2) 相同的问题时、我们收到了新的 Linux 构建版本 (6746.logger.bin)。 是否可以为这个新版本获得一个新的版本请?

    谢谢、

    Gaetan

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

    是的。 请查找随附的 R8.1 固定 logger.bin 文件

    .e2e.ti.com/.../R8_5F00_1_5F00_logger_5F00_fixed.bin

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

    谢谢您、

    我做了一个新的捕获与这个记录器,日志似乎确实更好。 我可以看到已发送 ENABLE_BLE、但无法了解是否成功。 我觉得有一些错误与 TX 收发器未启用有关、但我的问题与 RX 有关。

    e2e.ti.com/.../5557.stream.csv
    谢谢、

    Gaetan

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

    Gaetan、

    谢谢! 事实上、日志现在看起来更好、而且有意义。 我可以看到 BLE 已启用、并收到 ADV ENABLE 命令。

    在我不断查看日志的同时、我有一个 问题:

    您能否判断 BLE 器件是否已启用地址分辨率、以及您尝试连接的对等设备是否使用 RPA 地址? 如果是的话 — 您可以使用公共地址吗?

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

    大家好、

    我使用 Linux 的 bluetoothctl 工具将其连接到器件进行了一项新的测试。 它的作用比 nrfconnect 少(至少这是一个逐步的命令)。

    我所做的是:
    -在我的设备上初始化 CC3351 和 BLE

    -在设备上启用 BLE 广播

    - 在我的 Linux 笔记本电脑上使用 bluetoothctl 扫描 BLE

    -用 bluetoothctl 从我的笔记本电脑连接到设备(我使用了 Show 命令查看使用的地址,这是一个公共地址:7C:72:E7:22:4D:9A,没有 RPA)  

    -我已经看到连接成功,但几秒钟后它被断开。 我没时间申请 GATT。

    在此测试期间、我捕获了以下内容:

    - CC3351 日志

    - CC3351 和我们的 MCU 之间的 HCI H4 UART

    -用 bluetoothctl 完成的命令的历史

    -运行 Zephyr 的 MCU 的日志

    使用此工具、连接似乎已建立(没有 RPA)、但很快就会关闭、对我来说原因未知。 在 MCU 部分、

    我有显示 Zephyr BLE 连接的日志已建立但已由控制器关闭(已从 CC3351 接收到关闭连接事件“h04 H05 h04 h00 h00 h00 h13 “)。

    谢谢

    e2e.ti.com/.../2026_5F00_01_5F00_13_5F00_095126_5F00_stream.csv

    e2e.ti.com/.../HCI-H4-UART-capture.txte2e.ti.com/.../bluetoothctl.txte2e.ti.com/.../zephyr_5F00_logs.txt

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

    Gaetan、

    好的。 因此、根据您的输入、您在使用公共地址时可以联系?
    这是否意味着您之前尝试过 RPA 地址? 还是其他方面发生了变化? 此外、如果您确实使用了 RPA — 是否知道地址解析是否已启用?

    关于与 Linux 对等器件断开连接的问题、这可能是因为设备 (CC3351) 可能 没有 GATT 服务器、据我所知、基于 Bluez 的栈会尝试读取它、如果未找到、则会断开对等器件的连接。 您有 GATT 服务器吗?

    关于 Zephyr — 在广播开始后,似乎向驱动程序发送了一些意外的数据包类型值(似乎不一致) 。

    尽管连接似乎成功、但我们遇到了 ACL 长度不匹配的问题。

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

    您好:

    太好了。 因此、根据您的输入、您在使用公共地址时可以联系?
    这是否意味着您之前尝试过 RPA 地址? 还是其他方面发生了变化? 此外、如果您确实使用了 RPA — 是否知道地址解析是否已启用?

    在我使用 nrfconnect(连接失败)或使用 bluetoothctl(连接成功)进行测试时、我的带有 CC3351 的器件使用公共地址。

    几天前、我尝试让 Zephyr 上的 RPA 进行测试、但似乎没有影响。 或者至少没有单独解决我的问题。

    关于与 Linux 对等器件断开连接的问题 — 这可能是因为设备 (CC3351) 可能 没有 GATT 服务器、据我所知、基于 Bluez 的栈会尝试读取它、如果找不到、则断开对等器件。 是否有 GATT 服务器?

    通常、除了我这边的错误、我使用 GATT 服务器进行了测试、但我无法列出该服务。

    [引述 userid=“202081" url="“ url="~“~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1598416/cc3351-fail-to-connect-with-ble-using-mcu-r7-2/6188223

    关于 Zephyr — 在广播开始后,似乎向驱动程序发送了一些意外的数据包类型值(似乎不一致) 。

    尽管连接似乎成功、但我们遇到了 ACL 长度不匹配的问题。

    [/报价]

    是的、我尚未找到此根本原因。

    我也有另一个问题/意见。 Feasycom 的联系我们告诉我们,他们已经找到了问题并修复了类似的问题 CC3351 : Feasycom 解决方案 TI CC3351 蓝牙 BLE RX 无法接收数据包 。 他对我们说:“我们 分析了 TI 发送的 IQ 数据包被识别为错误数据包、因此无法计算灵敏度测试的数量。 我们通过基于 TI 的 wave 文件生成 wave 文件包来解决此问题“。 但是、我不明白这种情况下的 wave 文件是什么。 您是否知道 TI 是否有人解决了上述 TT 并对其有一些意见?

    谢谢、

    Gaetan

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

    Gaetan、

    谢谢。 这是有用的信息。

    您提到您可以 使用 bluetoothctl 连接到、但不能使用 nrfconnect 连接到。 在这两种情况下、我假设 CC3351 使用公共地址。 “那又怎么样? 您能否确认两个对等设备也使用公共地址?

    我想问的原因是连接失败的一个原因是对等设备使用的是 RPA、但在 CC3351 上未启用地址解析(这是通过主机端的命令在初始化期间启用它)。

    您提到“通常情况下、除了我这边的错误外、我使用 GATT 服务器进行了测试、但我无法列出该服务。“ -你能详细说明吗? 我能够在 bluetoothctl 注册服务。 如果需要、我可以分享如何操作。

    关于你分享的评论 Feasycom — 我更新了所有相关的人。 我们将更新。

     

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

    您好:

    您提到您可以 通过 bluetoothctl 连接到 、但不能通过 nrfconnect 连接到。 在这两种情况下、我假设 CC3351 使用公共地址。 “那又怎么样? 您能否确认两个对等方也使用公共地址?

    我可以确认两者都使用公共地址。 具有 CC3351 的器件使用 7C:72:E7:22:4D:9A 和我的笔记本电脑 9C:B1:50:D2:13:E1。

    ]我问的原因之一是连接失败的原因之一是对等器件使用 RPA、但 CC3351 上未启用地址解析(这通过主机端的命令在初始化期间启用该设置)。

    我尝试启用它、结果相同。 nrfconnect 无法在 bluetoothctl 可以连接但不能读取 GATT 属性的所有条件下进行连接。

    您提到“通常情况下、除了我这边的错误外、我使用 GATT 服务器进行了测试、但我无法列出服务。“ -你能详细说明吗? 我能够在 bluetoothctl 注册服务。 如果需要、我可以分享如何操作。

    我使用了更多日志进行了测试、看到我的 GATT 在 Zephyr 上注册。 此外、这段代码在我看来很常见、可与其他电路板配合使用。 当我使用另一个电路板(使用另一个 BLE 驱动程序)时、它会工作、当 bluetoothctl 连接到设备时、所有蓝牙 GATT 都在 Linux 端收到。 然而、当在 CC3351 和 HCI H4 Zephyr 驱动程序中使用相同的代码时、不会推送 GATT 属性。

    我还尝试将 UART 上的通信减慢到 115200、这似乎删除了我在 Zephyr 侧进行 H4 帧解码的错误日志。 但是、一旦连接、我仍然无法从 bluetoothctl 获取 GATT 信息。

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

    大家好、

    我在这个问题上取得了一些进展。

    首先、我已经能够将笔记本电脑连接到设备并获取 GATT(服务特性列表)。 这方面的问题是默认情况下 Zephyr 启用的 ACL 流控制、我不得不禁用它。 启用后、我没有看到任何 ACL 数据包通过 HCI UART 总线传输。 现在这是工作的,我没有任何错误/警告日志,一旦我的笔记本电脑连接到设备.

    然后,我使用了另一个设备 (esp32) 使用另一个 WIFI/双芯片。 它使用相同的应用程序代码、但可以与 nrfconnect 配合使用(至少我可以连接和读取 GATT)。 我已经比较和使能配置、使此板和我的板之间的 HCI 初始化流程完全相同。 这还没有解决我的问题。 此外、我使用该器件来查看 nrfconnect 使用的 BLE 地址、这是一个随机地址、而当我使用 Bluetoothctl 时、它是一个公共地址。

    您是否知道 CC3351 是否支持随机地址、以及是否有特殊配置?

    我还没有成功测试将 bluetoothctl 与随机地址连接到我的设备以确保解决了这个问题。 现在我不能说这是问题的根本原因。

    我已在这条消息上附加了一个捕获。 它包含、引导序列和初始化。 与 bluetoothctl 的连接(使用 9C:B1:50:D2:13:E1 地址)以及与 nrfconnect 的连接尝试。 在日志中、我无法找到连接 attempts.e2e.ti.com/.../1638.stream.csv 的跟踪

    谢谢、

    Gaetan

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

    您好:

    我想知道您是否有关于此问题的消息?

    我觉得这与使用随机 BLE 地址(通过手机)有关、CC3351 似乎不支持或不支持该地址。 您是否知道它是否受支持、以及是否需要特殊配置?

    谢谢、

    Gaetan

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

    Gaetan、

    很抱歉我迟到了。

    是的。 CC3351 支持随机地址。 使用随机静态地址的工作方式应与公共地址类似。 但是、如果您使用 RPA 地址、则需要启用隐私并设置 IRK。 您能否确认它已启用? 如果有帮助、我可以分享在 Linux 中是如何实现的。

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

    大家好、

    感谢您的提议。 我已经仔细研究了 Zephyr BLE 栈的价格和 irk、似乎是在 BLE 连接上配置的。
    因此、如果我回答正确、CC3351 希望配置 IRK 和隐私、以允许使用随机地址连接控制器。 但是、Zephyr 在进行 BLE 连接时进行配置、因此我们可能会被阻止。

    如果 Linux 有所帮助、我可以分享它是如何在 Linux 中完成的。

    如果您有一个示例、说明如何使其与 HCI 命令顺序配合使用、我想请您看到它。 我想这将有助于我在 Zephyr 上配置它以执行相同的操作。

    非常感谢、

    Gaetan

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

    再次大家好、

    很抱歉垃圾邮件。 最后、我可以手动发送 HCI 命令“address resolution enable“来使其正常工作。 Zephyr 仅在连接/断开连接时执行、与配置 IRK 时相同。

    非常感谢您为解决此问题提供的帮助!

    Gaetan

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

    Gaetan、

    感谢您的更新。

    很高兴看到现在一切都正常运行。

    是的。 必须在连接之前启用地址解析、以便可以使用 IRK 解析地址。

    如有需要、请随时提出任何其他问题。

    伙计