工具/软件:Linux
尊敬的支持团队
我在 Atmel sama5d36ek( Linux 3.18)中实施 bluez5。安装的 Bluez utils 似乎可以,但问题是通过 hciattach 启用时总是超时 ,如下所示。
将 PIOB25用作 BT_EN。
Echo 57 >/sys/class/gpio/export
回显>/sys/class/gpio/pioB25/direction
echo 0 >/sys/class/gpio/pioB25/value
Echo 1 >/sys/class/gpio/pioB25/value
hciattach -s 115200 /dev/ttyS2 Texas 115200 noflow
找到了德州仪器的芯片!
固件文件:/lib/firmware/ti-connectivity/TIInit_11.8.32.bts
已加载 BTS 脚本版本1
TExaS:将波特率更改为115200、将流控制更改为0
蓝牙:hci0命令0x1003 TX 超时
蓝牙:hci0命令0x1001 TX 超时
蓝牙:hci0命令0x1009 TX 超时
初始化超时。
使用 USart1和 DTS 设置、如下所示。
正如 Atmel 的评论所说,不使用 uart1的 DMA,因此我标记了 CTS/RTS 并使用115200。
USART1:串行@f0020000{
兼容="Atmel、at91sam9260-USART";
reg =<0xf0020000 0x100>;
中断=<13 IRQ_TYPE_LEVEL_HIGH 5>;
//DMA =<&dma0 2 AT91_DMA_CFG_PER_ID (5)>、
//<&dma0 2 (AT91_DMA_CFG_PER_ID (6)| AT91_DMA_CFG_FIFOCFG_ASAP)>;
//dma-names ="TX"、"Rx";
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_usart1>;
时钟=<&usart1_clk>;
时钟名称="USART";
状态="正常";
};
USART1:串行@f0020000{
DMA =<0>、<0>;//请勿将 DMA 用于 USart1 */
pinctrl-names ="default";
//pinctrl-0 =<&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
pinctrl-0 =<&pinctrl_usart1 >;
状态="正常";
};
关于内核配置,我已选择所需的蓝牙 TTY 驱动程序,可以看到驱动程序在 下面的引导广告时按照链接:www.linuxforums.org/.../183146-bluez-rn42-bluetooth-module-hciattach-fails.html 打印。
蓝牙:内核版本2.19
NET:注册协议系列31
蓝牙:HCI 设备和连接管理器已初始化
蓝牙:HCI 套接字层已初始化
蓝牙:已初始化 L2CAP 套接字层
蓝牙:SCO 套接字层已初始化
蓝牙:HCI UART 驱动程序版本2.2
蓝牙:HCI H4协议已初始化
蓝牙:HCI BCSP 协议已初始化
蓝牙:HFILL 协议已初始化
蓝牙:已初始化 RFCOMM TTY 层
蓝牙:已初始化 RFCOMM 套接字层
蓝牙:RFCOMM 版本1.11
蓝牙:BNEP (以太网仿真)版本1.3
蓝牙:BNEP 筛选器:协议多播
蓝牙:BNEP 套接字层已初始化
蓝牙:HIDP (人机接口仿真)版本1.2
蓝牙:已初始化 HIDP 套接字层
似乎已实现蓝牙驱动程序。 在来自示波器的 TX/Rx 引脚上也有波。
请告诉我任何部件缺失或需要修复。
完整日志 attached.e2e.ti.com/.../BT_5F00_hciattach_5F00_timeout.txt
非常感谢!