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.

[参考译文] CC3351MOD:将 CC3351 模块与 NXP 处理器集成不支持从 USB-UART 桥 CP2102 派生的 UART 信号

Guru**** 2516170 points
Other Parts Discussed in Thread: TUSB8041

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1559175/cc3351mod-integrating-cc3351module-with-nxp-processor-does-not-support-uart-signals-derived-from-usb-uart-bridge-cp2102

部件号:CC3351MOD
主题中讨论的其他器件:TUSB8041

工具/软件:

尊敬的团队:

观察结果:

  • 。  _tti_UART 驱动程序 TI 提供的接口似乎与本机 UART 接口(直接来自 SOM) 紧密)紧密耦合、并且不太可能与通过 USB 转 UART 转换器扩展的 UART 接口配合使用。
  • 驱动程序需要器件树中有相应的节点、并在枚举期间从该节点检索配置详细信息。 但是、由于 USB 转 UART 串行端口是动态分配的、因此无法在设备树中预配置该端口。 因此、在当前实现中、蓝牙控制器和主机控制器之间不会发生绑定。

执行的实验:

  1. CC33xx BLE over USB‑to‑UART link by 从用户空间将串行端口连接到 Bluez (例如,btattach/hciattach) 完成蓝牙通信 (通过 Wi-Fi‑Fi 端命令触发)上的 CC33xx。

 

电子邮件主题中提供了原理图、如果需要、请告知我。

此致、

Madhurya  

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

    没错。 btti 驱动程序依赖于 serdev、无法使用基于 USB 的 UART 进行配置。

    您将需要使用 btattach、这是有效的。 请注意、hciattach/hciconfig 适用于旧版本的 Bluez 栈。 您现在应该使用 btattach/bluetoothctl。

    btattach -B /dev/ttyUSB0 -P H4 &

    bluetoothctl

    此固件中存在一个错误(可能仍然存在)、这会导致 UART 出现另一个问题、因为 UART 不会立即对流控制做出响应。 我已经看到、基于 FTDI 的 USB/UART 也会发生这种情况。 解决方法 是在任何 BT 活动之前禁用自主模式。

    回波“0">“>/sys/kernel/debug/ieee80211/wlan0/cc33xx/sleep_auth

    IMHO、这是一个固件错误、因为即使数据表规定 UART 可以处理 16 个字节、它在流出一个字节后也无法处理。

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

    已执行以下 btattach 命令、仍然收到类似的错误


    medos64:/home/devuser
    medos64:/home/devuser
    medos64:/home/devuser
    medos64:/home/devuser # lsusb
    Bus 001 Device 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
    Bus 001 Device 002:ID 0451:8142 Texas Instruments、Inc. TUSB8041 4 端口集线器
    Bus 001 Device 003:ID 0451:8242 Texas Instruments、Inc.
    Bus 001 Device 004:ID 10c4:ea60 Silicon Labs CP210x UART 桥接器
    Bus 002 Device 001:ID 1d6b:0003 Linux Foundation 3.0 根集线器
    总线 002 设备 002:ID 0451:8140 Texas Instruments、Inc. TUSB8041 4 端口集线器
    medos64:/home/devuser # dmesg | grep tty
    [ 0.512732] 30860000.serial: ttymxc0 (MMIO 0x30860000 (IRQ = 211、base_baud = 1500000) 是一个 IMX
    [ 0.514332] MMIO 0x30880000 (IRQ = 212、BASE_BAUD = 5000000) 处的 30880000.serial: ttymxc2 是一个 IMX
    [ 0.514458]串行串行 0:tty 端口 ttymxc2 已注册
    [0.515158]在 MMIO 0x30890000 (IRQ = 213、base_baud = 1500000) 处的 30890000.serial: ttymxc1 是 IMX
    [0.736482] printk: console [ttymxc1] enabled
    [ 3.960641] systemd[1]:已创建切片/system/getty.
    [ 3.982766] systemd[1]:创建 Slice Slice /system/serial-getty.
    [5.062214] USB 1-1.2.2:cp210x 转换器现在连接到 ttyUSB0
    [6.224074]审计:type=1300 审计 (1755004382.568:2):arch=c00000b7 syscall=206 成功=yes exit=60 a0=3 a1=ffffffffffef9c17a2=3c a3=0 项目=0 ppid=541 pid=560 auid=429467fsuid=0 /usr/sbin/auditctl
    [6.283025]审计:type=1300 审计 (1755004382.568:3):arch=c00000b7 syscall=206 成功=yes exit=60 a0=3 a1=fffffffffffff9c17a2=3c a3=0 项目=0 ppid=541 pid=560 auid=429467fsuid=0 /usr/sbin/auditctl
    [6.3382221]审计:type=1300 审计 (1755004382.568:4):arch=c00000b7 syscall=206 成功=yes exit=60 a0=3 a1=ffffffffffef9c17a2=3c a3=0 项目=0 ppid=541 pid=560 auid=429467fsuid=0 /usr/sbin/auditctl
    medos64:/home/devuser # btattach -B /dev/ttyUSB0 -P H4 &
    [1] 715
    medos64:/home/devuser #将主控制器连接到/dev/ttyUSB0

    medos64:/home/devuser # hciconfig
    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 字节:8 ACL:0 SCO:0 命令:2 错误:0

    medos64:/home/devuser # bluetoothctl
    代理注册到蓝牙...
    【蓝牙】#开机
    没有可用的默认控制器
    【蓝牙】#扫描打开
    没有可用的默认控制器
    【蓝牙】#

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

    是的。

    正如我提到的、如果您使用 FTDI USB-UART、则必须 在进行任何蓝牙活动之前禁用自主模式。

    所需步骤、必须按以下顺序:
    1) 通过 向 SLEEP_AUTH 参数写入 0 来禁用自主模式

    2) 通过向 ble_enable 参数写入 1 来启用蓝牙

    3) 使用 btattach 启动蓝牙堆栈