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.

[参考译文] LP-EM-CC2340R5:通过 IMX93 Linux 平台检查 CC2340R5 蓝牙

Guru**** 2763595 points

Other Parts Discussed in Thread: CC2340R5, LP-EM-CC2340R5, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1598781/lp-em-cc2340r5-cc2340r5-bluetooth-check-with-imx93-linux-platform

器件型号: LP-EM-CC2340R5
主题中讨论的其他器件: CC2340R5UNIFLASH

你(们)好  

我正在使用 IMX93 Linux 平台开发 CC2340R5 蓝牙模块。 使用 Type-C USB 连接 CC2340R5 模块。 在 IMX93 器件控制台上、观察以下内容  

root@imx93:~# lsusb
总线 001 设备 001:ID 1d6b:0002
Bus 001 Device 002:ID 0451:bef3

root@imx93:~# ls /dev/usb/hiddev0
/dev/usb/hiddev0

root@imx93:~# ls /dev/bus/usb/001/00 *
/dev/bus/usb/001/001 /dev/bus/usb/001/002

root@imx93:~# bluetoothctl
代理注册到蓝牙...
【蓝牙】#器件
没有可用的默认控制器
【蓝牙】#

无法在 bluetoothctl 中找到设备  

我是否需要刷写 CC2340R5 模块、如果是、则刷写蓝牙模块的过程/步骤是什么。 或需要遵循的任何其他事项


谢谢!  
 

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

    Hi Himanishu:

    您需要使用host_test 示例 固件对 CC2340R5 低功耗蓝牙模块进行编程、然后需要执行额外的步骤、使用 hciattach/hciconfig 命令将 COM 端口连接到 Bluez。  您可以参阅此 相关的 E2E 主题OpenThread 示例指南 (仅参考 BLE 说明、可以忽略 Thread 部分)。

    编辑: BLE_controller 固件 应与 Bluez 一起使用。

    此致、
    Ryan

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

    您好、Ryan
    感谢您的重播
    如果我使用 CC2340R5 蓝牙器件进行多次量产、那么我是否需要在每个蓝牙板上都遵循此流程。

    此致、
    Himanishu  

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

    是的、因为 CC2340R5 没有使用您应用所需的固件进行预编程。  您可以使用 JTAG SWD 或 ROM 串行引导加载程序来实现这一点 、并且有多个可用的编程工具选项。

    此致、
    Ryan

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

    您好、Ryan  
    我正在使用  LP-EM-CC2340R5 蓝牙 EVK。 对于 TI 蓝牙 EVK、我是否需要遵循编程过程、或者 EVK 已经预先编程。  
    如果已预编程蓝牙 EVK、则如何检查控制台上的日志。

    此致、
    Himanishu

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

     LP-EM-CC2340R5 可能  预编程了 basic_ble、但如果这样做、将无法满足您的需求。  可以使用 Uniflash ->设置和实用程序->“执行空白检查“来验证 CC2340R5 是否在闪存存储器中包含映像。

    此致、
    Ryan

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

    生成了  empty_LP_EM_CC2340R5_freertos_ticlang.out 源文件。 并使用 UniFlash 在 LP-EM-CC2340R5 EVK 中刷写.out 文件  

    LP-EM-CC2340R5  EVK 使用 XDS110 调试器连接到 Linux 系统、并执行以下命令  

    root@root:~# lsusb
    Bus 001 Device 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
    Bus 001 Device 002:ID 0451:bef3 Texas Instruments、Inc. CC1352R1 Launchpad

    root@root:~# hciattach /dev/ttyACM0 any 115200
    设备设置完成

    root@root:~# hciconfig -A
    hci0:类型:主总线:UART
    BD 地址:00:00:00:00:00:00 ACL MTU:0:0 SCO MTU:0:0
    向下
    Rx 字节:0 ACL:0 SCO:0 事件:0 错误:0
    TX 字节:4 ACL:0 SCO:0 命令:1 错误:0
    功能:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    数据包类型:Dm1 DH1 HV1
    链接策略:
    链接模式:外设接受

    root@root:~# hciconfig hci0 向上
    无法初始化设备 hci0:连接超时 (110)


    已创建 hci0 节点、但 BT 地址为  00:00:00:00:00:00

    从 UniFlash 检查存储器地址  0x4E000058、值为  B0155406。

    我们如何在 Linux 中获取 hci0 蓝牙节点的 MAC 地址


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

    不是  empty_LP_EM_CC2340R5_freertos_ticlang.out 您需要进行编程、而host_test 应该用于 BlueZ 的任何用途。  空示例没有低功耗蓝牙栈或 UART 通信层、因此返回的 BT 地址无效。  您还可以  在尝试 BlueZ 之前使用 BTool 确认操作。

    如果您不需要使用 BlueZ 向 CC2340R5 发送蓝牙指令、而只需要使用命令行界面读取存储在 FCFG 中的 BT 地址、则可以尝试使用 Uniflash CLI 内存模式

    编辑: BLE_controller 固件 应与 Bluez 一起使用。

    此致、
    Ryan

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

    我已经  使用对 LP-EM-CC2340R5 EVK 进行了编程  host_test_LP_EM_CC2340R5_freertos_ticlang.out   XDS110 调试程序生成工程文件。  

    现在、我能够获得 hci0 节点的 BT 地址、但无法使用 hciconfig hci0 up 或 bluetoothctl Linux 命令为器件上电。

    我已附加 dmesg 日志

    root@LPT424:~$ ls /dev/ttyACM *
    /dev/ttyACM2 /dev/ttyACM3

    root@LPT424:~$sudo hciattach /dev/ttyACM2 any 115200
    设备设置完成

    root@LPT424:~$ sudo hciconfig -A
    hci0:类型:主 总线:UART
    BD 地址:40:F3:B0:15:54:06 ACL MTU:255:5 SCO MTU:0:0
    向下  
    Rx 字节:247 ACL:0 SCO:0 事件:18 错误:0
    TX 字节:90 ACL:0 SCO:0 命令:18 错误:0
    特性:0x00 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x00
    数据包类型:Dm1 DH1 HV1  
    链接策略:  
    链接模式:外设接受


    root@LPT424:~$sudo hciconfig hci0 up
    无法初始化设备 hci0:未实现函数 (38)

    root@LPT424:~$sudo dmesg
    [2129.823981] USB 1-2:USB 断开连接、设备编号 19
    [2130.122221] USB 1-2:使用 xhci_hcd 的新高速 USB 设备 20
    [2130.249682] USB 1-2:找到新的 USB 设备、idVendor=0451、idProduct=bef3、bcdDevice= 1.00
    [2130.249699] USB 1-2:新的 USB 设备字符串:MFR=1、Product=2、SerialNumber=3
    [ 2130.249705] USB 1-2:产品:XDS110 (03.00.00.41) 嵌入 CMSIS-DAP
    [2130.249710] USB 1-2:制造商:Texas Instruments
    [2130.249714] USB 1-2:SerialNumber:LS470IBJ
    [2130.356221] CDC_ACM 1-2:1.0:ttyACM2:USB ACM 设备
    [2130.458105] CDC_ACM 1-2:1.3:ttyACM3:USB ACM 设备
    [ 2130.460238] hid-generic 0003:0451:BEF3.000E:hiddev0、hidraw1:Texas Instruments HID v1.11 器件[USB XDS110 (03.00.00.41) 嵌入 CMSIS-DAP]上的 USB-0000:00:14.0-2/input5
    [2130.490140] USB 1-2:USB 断开连接、设备编号 20
    [2145.614641] USB 1-2:使用 xhci_hcd 的新型高速 USB 设备 21
    [2145.742244] USB 1-2:找到新的 USB 设备、idVendor=0451、idProduct=bef3、bcdDevice= 1.00
    [2145.742251] USB 1-2:新的 USB 设备字符串:MFR_1、Product=2、SerialNumber=3
    [ 2145.742254] USB 1-2:产品:XDS110 (03.00.00.41) 嵌入 CMSIS-DAP
    [2145.742255] USB 1-2:制造商:Texas Instruments
    [2145.742257] USB 1-2:SerialNumber:LS470IBJ
    [2145.849343] CDC_ACM 1-2:1.0:ttyACM2:USB ACM 设备
    [2145.951571] CDC_ACM 1-2:1.3:ttyACM3:USB ACM 设备
    [2145.954044] hid-generic 0003:0451:BEF3.000F:hiddev0、hidraw1:Texas Instruments HID v1.11 器件[USB XDS110 (03.00.00.41) 嵌入 CMSIS-DAP]上的 USB-0000:00:14.0-2/input5
    [2167.563837]蓝牙:hci0:意外 cc 0x203b 长度:1 < 2
    [ 2167.563933]蓝牙:hci0:操作码 0x203b 失败:–38
    [2179.407789] debugfs:目录“hci0"中“中的文件“ut_mode"已“已存在!
    [ 2179.466747]蓝牙:hci0:意外 cc 0x203b 长度:1 < 2.
    [ 2179.466861]蓝牙:hci0:操作码 0x203b 失败:–38
    root@LPT424:~ó n$  

    root@LPT424:~$ bluetoothd -v
    5.64

    连接设置图像: LP-EM-CC2340R5  EVK 使用 XDS110 调试器连接到 Linux 系统、并遵循以下命令  


    如何打开蓝牙

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

    感谢您的更新。  我想为广播 host_test 深表歉意、因为此固件本应用于 与 Bluez 不兼容的不同上下文、如自述文件所述:

    host_test:实现纯蓝牙低耗能网络处理器、与外部微控制器或 PC 软件应用程序(如 BTool(随 SDK 提供)配合使用。 主机测试支持所有 GAP 角色:中央角色、外设角色、广播设备和观测器角色、以及这些角色的多角色组合。 网络处理器在无线 MCU 上整合了协议栈的 TI BLE 主机和控制器组件以及位于外部微控制器上的蓝牙应用。 使用主机控制器接口 (HCI) 协议通过串行接口 (UART 或 SPI) 与网络处理器进行通信。 外部应用程序使用 TI 供应商特定的 HCI 命令和低功耗蓝牙 HCI 命令/事件的有限子集来实现蓝牙应用程序。 通过将主机和控制器放置在无线 MCU 上、由于只需要应用、因此降低了应用处理器的存储器要求。 注意:不能将外部蓝牙主机协议栈(如 BlueZ)与主机测试结合使用、因为网络处理器实现了主机组件。 外部应用程序必须使用 TI 供应商特定的 HCI 命令来实现 GAP、GATT、配对/绑定等功能。
    BLE_controller: 
    实现一个蓝牙控制器、该控制器通过 UART 或 SPI 接口使用主机控制器接口 (HCI) 协议进行通信。 该工程旨在充当内部/外部微控制器或 PC 软件应用与蓝牙网络之间的桥梁、通过这些接口管理所有传入和传出数据和命令。

    您应 改用 ble_controller 示例。  下面是 有关此主题的类似 E2E 帖子、供您参考。

    此致、
    Ryan

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

    您好、Ryan  
    按照您的建议、我已刷写  LP-EM-CC2340R5 蓝牙 EVK 中的 ble_controller 固件。 它仅与 XDS110 调试器配合使用。 如果我将 LP-EM-CC2340R5 蓝牙 EVK UART 引脚连接到 TTL、将 USB 转换器连接到 Linux PC、则此设置出现问题、无法获取 MAC 地址。
    ...  
    是否有检测 Linux 系统上蓝牙模块所需的任何 nRST(复位)引脚序列。
    LP-EM-CC2340R5 蓝牙 EVK -----------------------  TTL 到 USB
    1- 3.3V-   --------------------------------------------------------------------------------------------- 3.3V  
    3- RXD------   ---------------------------------------------------------------------------------------- RXD
    4- TXD   ----------------------------------------------------------------------------------------------  TXD
    20/22-接地------------------------------------------------------------------------    GND
    37. CTS............................................................   .................... CTS
    36-rts --------------------------------------------------------------------------------    RTS

    我使用 3.3V 和 5V 进行了检查、但观察结果相同。 无法使用上述设置启动蓝牙

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

    我很高兴听到你们正在取得进展。  使用 TTL-232R-3V3 替代 XDS110 反向通道 UART 时没有任何问题。  请确保使用 3V3 版本、因为 CC2340R5 不支持 5V。  代码实现不支持 UART 流控制 (RTS/CTS)、但只要两端都同意未使用导线、连接导线就没问题。  请记住、UART 的工作原理是一端的 TX 连接到另一端的 RX、因此连接图应按原样显示

    LP-EM-CC2340R5 蓝牙 EVK -----------------------  TTL 到 USB
    1- 3.3V-   --------------------------------------------------------------------------------------------- 3.3V  
    3- RXD------   ---------------------------------------------------------------------------------------- TXD
    4- TXD   ----------------------------------------------------------------------------------------------  RXD
    20/22-接地------------------------------------------------------------------------    GND

    此致、
    Ryan

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

    它应该可以与配合使用 BLE_controller 二进制正确吗?  LP-EM-CC2340R5 蓝牙 EVK 上是否需要任何额外的连接/跳线?
    如果我按照上面的连接进行连接、则能够看到 ttyUSB0 节点。 之后 sudo hciattach /dev/ttyUSB0 any 115200 已创建命令节点、但未将 MAC 地址分配给 hci0 节点

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

    它应该能够与 ble_controller 配合使用、否则它将无法与 XDS110 配合使用、并且在我列出的内容之外不需要额外的跳线连接、在考虑 XDS110 解决方案时也很明显。  您是否使用“sudo hciconfig hci0 down“删除任何现有适配器?   您可以继续将正常工作的 XDS110 配置与  TTL-232R-3V3 版本进行比较、即使将 UART RX/TX 线路与逻辑分析仪进行比较也是如此、以便您可以发现差异。

    此致、
    Ryan

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

    我已将 EVK 连接到 Linux 系统、如下所示  
    您能否确认连接。  


    我已检查万用表上的电压是否为 3.3V、但在 hci0 节点 BD 地址为 00:00:00:00:00、然后关闭。  LP-EM-CC2340R5 EVK 中刷写了 BLE_controller 固件。

    root@LPT424:~$sudo hciattach /dev/ttyUSB0 any 115200
    设备设置完成

    root@LPT424:~$ sudo hciconfig -A
    hci0:类型:主 总线:UART
            BD 地址:00:00:00:00:00:00 ACL MTU:0:0 SCO MTU:0:0
        向下  
        Rx 字节:0 ACL:0 SCO:0 事件:0 错误:0
        TX 字节:4 ACL:0 SCO:0 命令:1 错误:0
        特性:0x00 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x00
        数据包类型:Dm1 DH1 HV1  
        链接策略:  
        链接模式:外设接受



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

    您的连接看起来几乎正确、但是图像没有足够的分辨率来验证 TX/RX 连接、我对您的特定 TTL 加密狗了解不多。  您是否确定它为 CC2340R5 提供了足够的 3V3?  您是否有可用于测试的逻辑分析仪?

    此致、
    Ryan

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

    连接如下所示
     
    LP-EM-CC2340R5 蓝牙 EVK -----------------------  TTL 到 USB
    1- 3.3V-   --------------------------------------------------------------------------------------------- 3.3V  
    3- RXD------   ---------------------------------------------------------------------------------------- TXD
    4- TXD   ----------------------------------------------------------------------------------------------  RXD
    20/22-接地------------------------------------------------------------------------    GND

    是、它在 3.3V 引脚、TXD 和 RXD 引脚上提供 3.3V 电压

    是的、有逻辑分析仪  

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

    这应该是校正连接图。  我不知道为什么 XDS110 会工作、但您的 TTL 不工作。  比较 XDS110 和 TTL 设置之间的逻辑分析仪捕获结果可以揭示更多详细信息。

    此致、
    Ryan