Thread 中讨论的其他器件:CC3301
工具与软件:
您好!
我正在使用 M2-CC3301 (MCU126A)、标题为 "I. MX 8M Mini"主机并尝试使 bttti_uart 运行。
我使用的驱动程序版本为1.0.0.7、因此:
- 无线驱动程序版本1.7.0.128
- 无线固件版本1.7.0.188
- 无线 PHY 版本1.2.39.5.44.67
我的第一个尝试是将带内 SDIO 用于蓝牙、因此我刚刚将以下内容添加到了 devicetre 中的 MMC 节点:
btti@1 { reg = <1>; compatible = "ti,cc33xxbt"; };
运行正常、我能够使用蓝牙接口、如"Linux CC33XX 用户指南"的"software-examples"->"ble-basics"部分中所述。
现在、我尝试在 UART 接口上运行该示例、这看起来更复杂一点。
我已将以下内容添加到 devicetree 中、如"Linux CC33XX 用户指南"的"迁移指南"中所述:
cc33xx_supply: fixedregulator@1 { compatible = "regulator-fixed"; regulator-name = "cc33xx_supply"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&gpio_buff 1 GPIO_ACTIVE_HIGH>; /* Using WL REG ON as well here on #WDISABLE1 */ enable-active-high; };
&uart1 { /* Bluetooth UART */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; status = "okay"; assigned-clocks = <&clk IMX8MM_CLK_UART1>; assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>; resets = <&modem_reset>; fsl,uart-has-rtscts; bluetooth { compatible = "ti,cc33xx-bt"; cc33xx-supply = <&cc33xx_supply>; max-speed = <115200>; }; };
当在 dmesg 中为蓝牙执行 grep 操作时、我会得到以下数据:
# dmesg | grep "Bluetooth" [ 0.078914] Bluetooth: Core ver 2.22 [ 0.078947] Bluetooth: HCI device and connection manager initialized [ 0.078954] Bluetooth: HCI socket layer initialized [ 0.078960] Bluetooth: L2CAP socket layer initialized [ 0.078970] Bluetooth: SCO socket layer initialized [ 1.730326] Bluetooth: RFCOMM TTY layer initialized [ 1.735218] Bluetooth: RFCOMM socket layer initialized [ 1.740383] Bluetooth: RFCOMM ver 1.11 [ 1.744143] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 1.749460] Bluetooth: BNEP filters: protocol multicast [ 1.754693] Bluetooth: BNEP socket layer initialized [ 1.759663] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 1.765589] Bluetooth: HIDP socket layer initialized [ 6.256206] Bluetooth: [bt sdio] BLE SDIO init module [ 6.456486] Bluetooth: [bt sdio] PROBE vendor=0x97, device=0x4077, class=255, fn=1 0xffff0000048a9800 [ 6.465810] Bluetooth: [bt sdio] sdio device tree data not available
看起来、他仍在尝试使用 bttti_sDIO 路径? 如何在 SDIO 和 UART 之间切换?
我还尝试进一步调试 bttti_uart.c。 使用 rmmod 删除模块并使用 insmod 再次添加模块时、我可以看到以下输出:
[ 163.965415] btti serial0-0: Host wakeup NOT enabled [ 163.970391] btti serial0-0: SM: Got EVENT_PROBE_DONE, moving from STATE_PROBING to STATE_HW_OFF
查看 bttti_uart.c 的源代码时、似乎他在成功打开串行接口后卡住了。 但现在他正在等待来自 CC3301的"魔法"数据包、以便注册 HCI 器件、但成效显著。 有没有我遗漏的东西? CC3301将如何知道应使用哪个接口? 为什么 UART 上没有任何内容? 我还用逻辑分析仪检查过、UART 线路上没有任何东西?
有什么想法或想法吗?
非常感谢!
此致、
SJ