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.

[参考译文] WL1835MODCOM8B:无法同步&无法设置 HCI 接口

Guru**** 2008950 points
Other Parts Discussed in Thread: WL18XXCOM82SDMMC, WL1835MODCOM8B
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/926222/wl1835modcom8b-fail-to-sync-fail-to-setup-hci-interface

器件型号:WL1835MODCOM8B
Thread 中讨论的其他器件:WL18XXCOM82SDMMC

我正在尝试使用 WL1835MODCOM8B 和适配器 WL18XXCOM82SDMMC 设置蓝牙 HCI 接口。

现在已经有几天了、所以我将尽量提供更多 详细信息。

我的设置是 Windows 10主机和 Ubuntu 20 VM (VMware 在重要的情况下、因为我以前曾在 VirtualBox 中遇到蓝牙问题)。

我通过 USB 将电路板连接到 VM、实际上我看到创建的4个 USB 器件、/dev/ttyUSB0..3

首先、我尝试使用 btattach:

John@ubuntu20:~$ sudo btattach -B /dev/ttyUSB0 -S 115200 -N
将主控制器连接到/dev/ttyUSB0
已切换行规程
从0连接到15已连接设备索引0

实际上、我看到 HCI 接口、但是 btattach 卡在那里、并且接口配置错误:

John@ubuntu20:~$ 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
数据包类型:Dm1 DH1 HV1
链接策略:
链接模式:从器件接受

与"-R"标志类似:

John@ubuntu20:~$ sudo btattach -B /dev/ttyUSB0 -S 115200 -N -R
将主控制器连接到/dev/ttyUSB0
已切换行规0至15设备
索引0已连接

...
(笑声)
(笑声)

hci0:类型:主总线:UART
BD 地址:00:00:00:00:00:00 ACL MTU:0:0 SCO MTU:0:0
正在运行 RAW
RX 字节:0 ACL:0 SCO:0事件:0错误:0
TX 字节:4 ACL:0 SCO:0命令:1错误:0

缺少 BD 地址、无法正确读取/写入(我将在下面显示我尝试过的内容)

我尝试过许多不同的配置、例如不同的波特率和删除"-N"标志等。 我也在 Ubuntu 16上尝试过相同的配置、但运气不好。

使用 hciattach 时,接口甚至不会出现:

John@ubuntu20:~$ sudo hciattach /dev/ttyUSB0 Texas 115200
初始化超时。

(我再次尝试了许多不同的配置、包括 Ubuntu 16和20)

这是我的 dmesg 输出:

John@ubuntu20:~$ dmesg | grep HCI
[1.084280] EHCI_hcd:USB 2.0 '增强型'主机控制器(EHCI)驱动程序
[1.08446] EHCI-PCI:EHCI PCI 平台驱动程序
[1.084780] EHCI-PCI 0000:02:03.0:EHCI 主机控制器
[1.099915] EHCI 主机控制器[1.0100b1] EHCI 控制

器:1.100b1:1.02]] EHCI 控制器:1.100b1:1.002]] EHCI 控制器产品启动[1.100b1:USB 控制器100b1:1.100b1:USB 控制器100b1:1.02 EHCI 通用平台驱动
程序[1.101250] ohci_hcd:USB 1.1 '开放'主机控制器(OHCI)驱动程序
[1.101337] ohci-pci:OHCI PCI 平台驱动程序
[1.101409] ohci-platform:OHCI 通用平台驱动程序
[1.1019191919] UHCCI_hcd 0000:02:00.0:UHCI 主机控制器[1.101409] UHCI

主机控制器[1.15052] UHCI:UHCI:1.527] USB 主机控制器[1.15052]产品:UHCI:UHCI 2505b2]] AHCI 0001.0300 32插槽30端口6 Gbps 0x3ffffffff 实施 SATA 模式
[104.857262]蓝牙:HCI 设备和连接管理器已初始化
[104.857715]蓝牙:HCI 套接字层已初始化
[104.870146]蓝牙:HCI UART 驱动程序版本2.3
[104.870147]蓝牙:HCI UART 协议 H4已注册
[104.870148]蓝牙: HCI UART 协议 BCSP 已注册
[104.870161]蓝牙:HCI UART 协议 LL 已注册
[104.870162]蓝牙:HCI UART 协议 ATH3K 已注册
[104.870570]蓝牙:HCI UART 协议已注册[104.871097]
蓝牙:HCI UART 协议 Intel 已注册
[104.873032]蓝牙:HCI UART 协议已注册
[104.873396]蓝牙:HCI UART 协议已注册[104.873396] HCI UART 协议 QCA 已注册
[104.873397]蓝牙:HCI UART 协议 AG6XX 已注册
[104.873721]蓝牙:HCI UART 协议 Marvell 已注册

现在我已经尝试直接写入/dev/ttyUSB0、它已成功打开、但无法从中读取:(老实说、如果这是意外行为、则为 idk)

John@ubuntu16:~







@~$ cat test.py import serial ser = serial.Serial (port=('/dev/ttyUSB0)、baudrate=115200、timeout=2、write_timeout=2) print ('write:%s'% ser.write ('test1234567890') data = ser.read () print ('Read %d bytes:'%、write'%(test.py)/udpython 数据

:读:14)(读出:读出:)。

所以我尝试了一些不同的东西、在 Windows 上使用无线工具、但是文档不是很清楚、但它说您只能使用 SD 或 FPC 的电源连接到调试端口...

实际上、当我使用 USB 连接(即连接引脚 J20)时、我看不到任何东西、因此我连接了 J6、并且几乎可以连接 J9 (BT_EN)、J28 (DBG_LG)、J23 (EXT_32K、慢时钟)、J27 (主器件/从器件)和 J7、J8、J10、J11组的任何排列都没有尝试交换主机或调试配置

(在 Windows 上、我的端口是 COM3..7、因此 COM4是调试端口)

然而、在 gLogger 中、我通常会看到不同的输出(取决于连接的引脚)、具体如下所示:

100 2020年7月23日15:27:25.338已成功连接到 COM4
202020年7月23日15:27:25.822记录器已启动。
3002020年7月23日15:27:25.823收到坏数据包。 正在同步...
400 0202020-07-23 15:27:31.893同步:1个接收到的有效数据包
中的1个50202020-07-2315:27:31.894已同步。
600 2020年7月23日15:27:31.894同步完成前接收到无效数据包fffb01fffb03fffdfffb2c3b6a1a121b820a42842321284681d63607-4e1101ff811c7c521864a72481827
:32012027接收到错误数据包(0:31.20202027) 正在同步...
800 2020年7月23日15:27:35.175同步:接收到1个有效数据包中的1个
902020年7月23日15:27:35.176已同步。
1000 202020-07-2315:27:35.176同步完成前接收到无效数据包135258411502ffc1f4015811c7c5cac7c501e8155419ff2b8812120b921a5284231a84681d63884711c2ff1148341e85268231d85268231d85268231d801d85268231d3621d
(接收到错误数据包) 正在同步...
1200 2020年7月23日15:27:44.316同步:接收到1个有效数据包中的1
个1302020年7月23日15:27:44.316已同步。
1400202020-07-23 15:27:44.317在同步完成前接收到无效数据包51ff115811ffaad695a2d2d5410834e406a4fe4a1021684a7248184206c662641cd4135258411502ff4118d1fect1
15:232020-07-23收到错误数据包 正在同步...
1600 2020年7月23日15:27:44.318同步:接收到1个有效数据包中的1个

(我甚至不确定是哪种配置、我认为 J6、J28和断开的 J20)

但是、无论我尝试何种配置、都不起作用、通常根本不会进行任何通信...

奇怪的是、我无法连续同步多次(默认情况下需要8、在上面的输出中我已将其降低为1)

再次尝试 COM3和不同的波特率以及所有引脚排列...

希望了解有关引脚的详细信息、以及是否可以仅使用 USB 进行调试。

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

    您是否见过以下文档?

    https://www.ti.com/lit/an/spracl0/spracl0.pdf

    如何计算 MMC 适配器外部所需的线缆连接、特别是 BT_EN。  我不确定是否可以这样将 COM8/ADAPTER 连接到 PC。  我将与我们的专家一起探讨。

    此致、

    特拉维斯

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

    我成功地发现问题是通信失败(hci0接口被设置的事实让我失望)、并且发现 J7引脚与文档可能建议的引脚相反。

    不清楚哪些引脚为1和3、因此我将使用左侧和右侧(相对于 SD 卡引脚朝上)这两个术语、我的当前配置为:

    J7 -左侧-中间短接(这个与预期相反)
    J8 -右中短接
    J10 -底部-中间短接
    J11 -底部-中间短接

    现在 HCI 通信按预期工作、但我还有另一个问题;我正在使用 USB 进行电源和通信- COM3或/dev/ttyUSB0用于 HCI、调试端口应为 COM4或/dev/ttyUSB1、但 gLogger 无法正常工作。 它无法同步或显示数据包错误、我已尝试所有其他引脚配置或波特率。 为此、我尝试了 USB 和 SD 卡电源。 在调试端口(COM4 )上使用"Logger"(不同于"gLogger"的工具)、我会看到一些类似于我通过 HCI (COM3)发送的内容的内容、其中包含一些额外的字节、但没有任何行解析任何调试信息。

    这可能是因为我提供的固件二进制文件版本不正确、我从以下位置下载了3个最新版本:

    https://git.ti.com/cgit/wilink8-wlan/wl18xx_fw/log/

    由于我的开发套件从命令 HCI_READ_LOCAL VERSION_Information 返回 HCI 版本6、以及版本8.32 (SW MAJOR 8、SW MINOR 32)、从命令 HCI_VS_GET_System_Status 返回芯片版本32。 但我在上面的链接中看不到任何 FW 8.32。 还不清楚我需要先刷写此固件、还是只需匹配版本即可...

    gLogger 没有任何意义、示例如下:

    1 0 0 2020年7月29日14:29:59.369成功连接到 COM4  
    2 0 0 2020年7月29日14:30:00.009记录器启动。  
    3 0 0 2020年7月29日14:30:00.009接收到错误数据包。 正在同步...  
    4 0 0 2020-07-29 14:30:00.010同步完成前接收到无效数据包1a97121886011a971287010abe1018060a9120a0d0d1e180d0d19100d0d1410070d0ac6050aca100a760206022060a9120a9120a9d0d0d0d0d0d180100b180100100100b0d100100100a010100100100a0310b0100b010b010201002010020100b0102010020100b010240100100b010b010240100100b010b010240100b010240100b010b010240100b010240100b010b010240100100100100100100100100100b010b010b0
    5 0 0 2020-07-29 14:30:02.028同步完成前接收到无效数据包0cea040ad4020a9d0b200d1e18010d12f1420112f042014c123443011a97121787011a97121886010a9120a9d200d18010d10d10d12f14100a09100a0800100a100a0800100b100100f100100f100a0800100a0800100a0800100a10b100f100f100f10b080010020100f10b0800100a0800b
    6 0 0 202020-07-29 14:30:04.155同步完成前接收到无效数据包5f0aeb010c1b040b1617170b281b08202c590c08c9010ab3222506010cea040ad4020a9d0b200d1e18010d12f14100a0800202410a0800100a0100a0800202410a0100a049100a0100a0100a0100a0100a049100a0100a0100a012100a0100a100a0100a0100a0100a049100a0100a0100a012100a100a0100a0100a012100a100a049100a0100a0100a018100a0100a0100a0100a0100a100a

    如下图所示的"记录器"显示了发送单个命令 HCI_VS_GET_System_Status 后的日志 。 但是、缺少文件名、行等信息

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

    我成功地发现问题是通信失败(hci0接口被设置的事实让我失望)、并且发现 J7引脚与文档可能建议的引脚相反。

    不清楚哪些引脚为1和3、因此我将使用左侧和右侧(相对于 SD 卡引脚朝上)这两个术语、我的当前配置为:

    J7 -左侧-中间短接(这个与预期相反)
    J8 -右中短接
    J10 -底部-中间短接
    J11 -底部-中间短接

    现在 HCI 通信按预期工作、但我还有另一个问题;我正在使用 USB 进行电源和通信- COM3或/dev/ttyUSB0用于 HCI、调试端口应为 COM4或/dev/ttyUSB1、但 gLogger 无法正常工作。 它无法同步或显示数据包错误、我已尝试所有其他引脚配置或波特率。 为此、我尝试了 USB 和 SD 卡电源。 在调试端口(COM4 )上使用"Logger"(不同于"gLogger"的工具)、我会看到一些类似于我通过 HCI (COM3)发送的内容的内容、其中包含一些额外的字节、但没有任何行解析任何调试信息。

    这可能是因为我提供的固件二进制文件版本不正确、我从以下位置下载了3个最新版本:

    https://git.ti.com/cgit/wilink8-wlan/wl18xx_fw/log/

    由于我的开发套件从命令  HCI_READ_LOCAL VERSION_Information 返回 HCI 版本6、以及版本8.32 (SW MAJOR 8、SW MINOR 32)、从命令  HCI_VS_GET_System_Status 返回芯片版本32。 但我在上面的链接中看不到任何 FW 8.32。 还不清楚我需要先刷写此固件、还是只需匹配版本即可...

    gLogger 没有任何意义、示例如下:

    1 0 0 2020年7月29日14:29:59.369成功连接到 COM4  
    2 0 0 2020年7月29日14:30:00.009记录器启动。  
    3 0 0 2020年7月29日14:30:00.009接收到错误数据包。 正在同步...  
    4 0 0 2020-07-29 14:30:00.010同步完成前接收到无效数据包1a97121886011a971287010abe1018060a9120a0d0d1e180d0d19100d0d1410070d0ac6050aca100a760206022060a9120a9120a9d0d0d0d0d0d180100b180100100100b0d100100100a010100100100a0310b0100b010b010201002010020100b0102010020100b010240100100b010b010240100100b010b010240100b010240100b010b010240100b010240100b010b010240100100100100100100100100100b010b010b0
    5 0 0 2020-07-29 14:30:02.028同步完成前接收到无效数据包0cea040ad4020a9d0b200d1e18010d12f1420112f042014c123443011a97121787011a97121886010a9120a9d200d18010d10d10d12f14100a09100a0800100a100a0800100b100100f100100f100a0800100a0800100a0800100a10b100f100f100f10b080010020100f10b0800100a0800b
    6 0 0 202020-07-29 14:30:04.155同步完成前接收到无效数据包5f0aeb010c1b040b1617170b281b08202c590c08c9010ab3222506010cea040ad4020a9d0b200d1e18010d12f14100a0800202410a0800100a0100a0800202410a0100a049100a0100a0100a0100a0100a049100a0100a0100a012100a0100a100a0100a0100a0100a049100a0100a0100a012100a100a0100a0100a012100a100a049100a0100a0100a018100a0100a0100a0100a0100a100a

    如下图所示的"记录器"显示了发送单个命令 HCI_VS_GET_System_Status 后的日志 。 但是、缺少文件名、行等信息