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.

[参考译文] Linux/CC2564MODA:ST_register 失败且 hcitool 扫描为空

Guru**** 2577385 points
Other Parts Discussed in Thread: CC2564MODA, CC2564

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/588528/linux-cc2564moda-st_register-failed-and-empty-hcitool-scan

器件型号:CC2564MODA
主题中讨论的其他器件: CC2564

工具/软件:Linux

您好!

我们正在目标器件上使用'CC2564MODACMOGMO'模块(基于 ARM 架构的 Linux 内置)。
并按照 wiki 页面"processors.wiki.ti.com/.../Shared_Transport_Driver'  "为启用支持
Linux 中的共享传输驱动程序和 btwilink 驱动程序。

下面是我们所做的内核更改。
CONFIG_TI_ST=y
CONFIG_BT_WiLink=y


其他新增内容:
CONFIG_BT=y                       (支持蓝牙子系统)
BT_BREDR=y                        (蓝牙经典(BR/EDR)特性)
CONFIG_BT_RFCOMM=y                (支持 RFCOMM 协议)
CONFIG_BT_RFCOMM_TTY=y            (支持 RFCOMM TTY)
CONFIG_BT_BNEP=y                  (支持 BNEP 协议)
CONFIG_BT_BNEP_MC_FILTER=y        (支持多播滤波器)
CONFIG_BT_BNEP_PROTO_FILTER=y     (支持协议滤波器)
CONFIG_BT_HIDD=y                  (支持 HIDP 协议)
BT_LE_=y                           (低功耗蓝牙(LE)特性)
 

我们还在上面的链接中进行了所需的“平台更改”。


然后下载了服务包"cc256xb_bt_sp_v1.6.zip"并复制了
将'initscripts-TIInit_6.7.16_ble_add-on.bts'添加到目标器件的'/lib/firmware /'目录中、
并将 BTS 文件重命名为"TIInit_6.7.16.bTS"。

但是、当器件启动时、我们会收到以下错误消息。

(STK):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install = 1.
(STK):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
蓝牙:ST_register 失败-22


现在、如果 发出命令"hciconfig hci0 up"、则输出将是、

(STC): ChnL_id list empty :4.
(STK):st_km_start (stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待 ldisc 取消安装时超时蓝牙:ST_register failed -22
无法初始化设备 hci0:输入/输出错误(5)


如果我们将 btwilink 驱动程序构建为模块并使用 modprobe 加载它、则会出现相同的错误消息。

我们还使用链接git.ti.com/.../initscripts'上的固件文件更改了固件文件
TIInit_6.7.16.bts 并复制到目标器件的"/lib/firmware "目录、然后驱动程序也会生成相同的错误消息。


我们还尝试了另一种方法、即禁用"btwilink"驱动程序支持并使用普通 UART 内核模块、
然后、我们会收到以下错误消息。

内核更改:
已启用:
CONFIG_BT_HCIUART=y        (HCI UART 驱动程序)
CONFIG_BT_HAIUART_H4=y     (支持 UART (H4)协议)  
CONFIG_BT_HCEUART_BCSP=y   (支持 BCSP 协议)
CONFIG_BT_HCEUART_LL=y     (支持 HFILL 协议)


已禁用:
CONFIG_TI_ST
CONFIG_BT_WiLink


现在复制了固件文件,在启动后,我们使用了以下命令来引入'hci0'接口,

命令: bluetoothd &
输出:      

命令:hciattach -n -s 115200 /dev/ttySC2 Texas 115200流&
输出:
           找到了德州仪器的芯片!
           固件文件:/lib/firmware/TIInit_6.7.16.bts
           已加载 BTS 脚本版本1
           器件设置完成

命令:hciconfig hci0 up
输出:

命令:hciconfig hci0 piscan
输出:

命令:hciconfig -a
输出:
       hci0:  类型:BR/EDR 总线:UART
       BD 地址:CC:78:AB:3F:45:87 ACL MTU:1021:4 SCO MTU:180:4
       运行 PSCAN ISCAN
       RX 字节:1507 ACL:0 SCO:0事件:48错误:0
       TX 字节:1063 ACL:0 SCO:0命令:48错误:0
       特性:0xFF 0xFE 0x2D 0xFE 0xdb 0xff 0x7B 0x87
       数据包类型:Dm1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
       链接策略:RSWITCH 保持监听
       链接模式:从器件接受
       名称:'BuildRoot-0'
       类:0x400100
       服务类:电话
       设备类:计算机,未分类
       HCI 版本:4.0 (0x6) 修订版本:0x0
       LMP 版本:4.0 (0x6) 子版本:0x1b90
       制造商:Texas Instruments Inc.(13)


命令:hcitool 扫描
输出:



在这里、hcitool 扫描会检测周围的设备、但在大多数情况下、它不会检测周围的任何设备、
即不产生输出、器件"buildroot-0"也无法检测到其他器件。


如果我们更改从 URLgit.ti.com/.../initscripts'下载的固件文件。
命令'hciattach -n -s 115200 /dev/ttySC2 Texas 115200 flow &'将产生以下输出。

输出:

   找到了德州仪器的芯片!
   固件文件:/lib/firmware/TIInit_6.7.16.bts
   已加载 BTS 脚本版本1
   TExaS:将波特率更改为3000000、将流控制更改为1
  
   初始化超时。






谢谢、

Deepak

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

    您正在使用哪种 Linux 内核版本和 BlueZ 版本?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    以下是详细信息、

    内核版本:我们使用的是 Linux 内核(4.0)

    BlueZ 实用程序版本:4.101.



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

    您好!

    有什么解决方案?

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

    您好!

    我们能够使其与'TI E2E 社区'上的固件配合使用
    (URL: e2e.ti.com/.../439676),由 Gigi Joseph 建议文件名: initscripts-TIInit_6.7.16_bt_spec 4.0-MOD.BTS
    我们能够成功扫描和连接到蓝牙设备。
    但是、如果我们再次将波特率增加到3000000、则会失败并显示以下消息。


    STK:已安装线路规则
    UIM:已安装的 N_TI_WL 行显示
    UIM:开始轮询...
    STK:未知数据包
    STK:未知数据包
    STK:未知数据包
    STK:未知数据包
    (STK):等待版本信息-超时或接收到信号
    (STK):Kim:无法读取本地版本(stk):download firmware failed.(STK:下载固件失败。
    (STK):ldisc_install = 0
    UIM:由于事件10 (PRI:2/ERR:8)(STC):ST_TTY_CLOSE、轮询中断
    UIM:从安装中读取0
    UIM:@ st_uart_config
    UIM:未安装的 N_TI_WL 行显示
    蓝牙:ST_register 失败-22
    UIM:开始轮询...



    固件可用于高达1152000的波特率、它是否有效固件?

    谢谢、
    Deepak

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

    Deepak、您好!

    我还使用具有 UART 接口的同一模块 CC2564Moda。

    我已禁用 ti-st 和 btwilink、并在您的过程中启用了一些 BT_HCI 配置。

    接下来、当我尝试使用 hciattach 命令获取 hci0节点时、仍然面临相同的 "初始化超时"错误

    对此有任何建议。

    谢谢

    Surya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为、该模块基于 CC2564B、根据 BTS 脚本文件下载页面中提供的注释、UART 速度高达11.52K。 请查看此处-
    processors.wiki.ti.com/.../CC256x_Downloads

    我将与其他产品工程师联系、然后返回。

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

    我们使用了共享传输和 Btwilink 驱动程序、以下是已启用的内核配置。

    CONFIG_TI_ST
    CONFIG_BT
    BT_BREDR
    BT_LE
    CONFIG_BT_RFCOMM
    CONFIG_BT_BNEP
    CONFIG_BT_HIDP
    CONFIG_BT_WiLink    (构建为模块)


    TI_UIM (应用)

    并完成了链接 processors.wiki.ti.com/.../Shared_Transport_Driver 中提到的平台更改

    以下是用于启动 HCI 接口的命令序列、

    UIM 和

    蓝牙-n 和

    modprobe btwilink


    加载上述模块(btwilink)后、hci0接口将可用。
    谢谢、
    Deepak
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、
    感谢您的回复。

    我还有一个查询。 CC2564模块中的 SLOW_CLK_IN (引脚8)会怎么样?
    您是否在设备树中写入了任何内容以使其处于活动状态?

    它实际上需要32kHz 时钟。 那么、您如何提供该时钟源。

    谢谢
    Surya