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.

[参考译文] WL1837MOD 蓝牙

Guru**** 2905440 points

Other Parts Discussed in Thread: WL1837MOD, AM5728

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1113471/wl1837mod-bluetooth

Thread 中讨论的其他器件:WL1837MODWL1837AM5728

将 ti-linux-kernel 5.10和 bluez 5.55与 WL1837MOD 配合使用时、此序列会导致主机处理器与 WL1837MOD 失去通信。

# hciconfig hci0 up

# hciconfig hci0 down

# hciconfig hci0 up

[5307.109954]蓝牙:hci0:命令0x1001 TX 超时

[5315.174041]蓝牙:hci0:读取 TI 版本信息失败(-110)

[5315.180938]蓝牙:hci0:下载固件失败、正在重试...

(笑声)

在执行 DOWN 命令后、模块似乎停止与主机处理器通信、但 DOWN 命令似乎不会向 WL1837MOD 发送任何 HCI 命令。

可以通过从 Linux 命令提示符执行"reboot"命令来清除错误。

WL1837MOD 蓝牙在发出"DOWN"命令之前正常工作。

什么会阻止 WL1837在执行"DOWN"命令后作出响应。

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

    肯尼思、您好!

    重新引导允许您使用 hciconfig 命令并下载固件?

    您能否尝试使用:

    Hciattach“您的串行端口”Texas 

    谢谢、

    Jacob

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

    当在器件树中配置蓝牙时、用户空间中不提供 UART 串行驱动程序。 所以没有一个/dev/ttySx 要传递给 hciattach。

    git.ti.com/.../ti-bluetooth.txt

    DTS 摘录:

    uart10:串行@0{
      兼容="ti、dra742-UART"、"ti、OMAP4-UART";
      reg =<0x0 0x100>;
      中断=<0 221 4>;
      时钟频率=<48000000>;
      STATUS ="禁用";
      };

    uart10{(&U)
     状态="正常";
     pinctrl-names ="default";
     pinctrl-0 =<&uart10_pins_default &bt_pines>;
     UART-has rtscts;

     中断扩展=<&crossbar_MPU 0 221 4
      &dra7_PMX_CORE 0x394>;

     蓝牙{
     兼容="ti、wl1837-st";
     ENABLE-GPIO =<&GPIO2 20 0>;
     };

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

    肯尼思、您好!

    我认为您必须定义 UART 实例才能在 Linux 中与 WL1837通信。  

    例如、我使用此文件 e2e.ti.com/.../am335x_2D00_bone_2D00_e14_2D00_wl1837.dtsi 定义蓝牙 UART 串行实例、并将其与此文件 e2e.ti.com/.../am335x_2D00_boneblack.dts 一起引用

    您是否定义了用于蓝牙的 UART 引脚? UART10看起来是禁用的。

    谢谢、
    Jacob

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

    我认为我所描述的问题可能会有一些混淆。 启动后、我可以发出"hciconfig hci0 UP"、蓝牙工作正常。 如果适配器启动后、我发出"hciconfig hci0 down"、然后发出"hciconfig hci0 UP"、则从驱动程序中获得超时错误。

    在您提供的 AM335x-bone-E14-wl1837.dtsi 中、驱动程序为"兼容="tibt"。 该驱动程序的来源是什么? 我使用的是 ti-linux-kernel 5.10中的 hci_l.c (链接如下)。

    引脚定义:

    uart10_PINS_DEFAULT:uart10_PINS_DEFAULT{
    pinctrl-single、pins =<
    0x394 (PIN_INPUT_PULLUP | MUX_MODE2)/* mmc3_dat4.uart10_RXD *
    0x398 (PIN_OUTPUT | MUX_Mode2 | SLEWCONTROL)/* mmc3_dat5.uart10_TXD *
    0x39c (PIN_INPUT_PULLUX | MUX_MODE2)/* mmc3_dat6.uart10_CTSN *
    0x3a0 (PIN_OUTPLUG_PULLUP | MUX_MODE2 | SLEWCONTROL)/* mmc3_dat7.uart10_rtsn *
    >;
    };

    BT_PINS:pinmux_bt_PINS{
    pinctrl-single、pins =<
    DRA7XX_CORE_IOPAD (0x34B8、PIN_OUTPUT | MUX_MODE14)/* GPIO2_10 BT_EN *
    >;
    };

    启用 uart10 (请参阅"状态="确定"行)

    uart10{(&U)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&uart10_pins_default &bt_pines>;
    UART-has rtscts;

    中断扩展=<&crossbar_MPU GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH
    &dra7_PMX_CORE 0x394>;

    蓝牙{
    兼容="ti、wl1837-st";
    ENABLE-GPIO =<&GPIO2 20 GPIO_ACTIVE_HIGH_>;
    };

    };

    git.ti.com/.../ti-bluetooth.txt
    git.ti.com/.../hci_ll.c

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

    您好 Kenneth、

    很抱歉耽误你的时间-你正在使用什么 MPU 主机?

    谢谢、
    Jacob

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

    TI AM5728

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

    谢谢 Kenneth、

    我将在明天添加更多输入。

    最棒的
    Jacob

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

    您好 Kenneth、

    TI 并不正式支持 BlueZ、但我将尝试为您提供一些帮助。 我们之前使用了4.19内核并在内核中引入了"tibt"。 "hciattach"用于将蓝牙控制器连接到用户空间中的 Linux 主机 TTY 串行实例、并将固件发送到控制器(.bts)。  

    您是否知道内核5.10中的 BlueZ 如何将固件发送到 WL1837MOD? 只是通过切换接口吗?

    谢谢、
    Jacob  

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

    您好、Jacob、

    TI 提供的 HCI 链路层驱动程序可在此处找到。


    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/bluetooth/hci_ll.c?h=linux-5.10.y

    我相信您会在函数 l_setup()和 download_firmware()中找到问题的答案。

    我愿意考虑蓝本的替代方案。 TI 在 ti-linux-kernel 5.10上支持什么蓝牙堆栈?

    好吧、

    Ken

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

    您好、Jacob、

    我们已经能够在 BeagleBoard Green 上重现此问题。 使用此图像:

    https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-1BUptXj3op/08.02.00.24/tisdk-default-image-am335x-evm.wic.xz

    请注意 、需要在内核配置中启用 CONFIG_BT_HCEUART_LL。

    好吧、

    Ken

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

    您好 Kenneth、

    [~引语 userid="514965" URL"支持/无线连接/bluetooth-group/f/bluetooth-forum/1113471/wl1837mod-bluetooth/4144110#4144110"] TI 在 ti-linux-kernel 5.10上支持哪些蓝牙堆栈?

    TI 正式支持包含在用户空间中的 BluetopiaPM 栈(并利用内置 Linux 内核功能)。 此处提供最新版本(v5.1) 、其中包含入门文档  

    [引用 userid="514965" URL"~/support/wireless-connectivity/bluetooth-group/f/bluetooth-forum/1113471/wl1837mod-bluetooth/4145456#4145456"]请注意 ,需要在内核配置中启用 CONFIG_BT_HCEART_LL。[/quot]

    是的、你是对的。 我之前忘记提到这一点、但需要在内核中编译 HFILL 协议标志。   

    谢谢、
    Jacob