DA14580,Linux HCI / Bluez

13个职位/0个新职位
最后一篇文章
光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
DA14580,Linux HCI / Bluez

亲爱的各位,

我试图端口da14581补丁RAM代码到da14580,有不同的ROM内容。

所以,我到现在为止做的是:

1从DA14581\u HCI\u Release\u v.3.110.2.12包开始,用于DA14581
2在uVision项目中,我应用了DA1458x\usdk3.0.6中的DA14580散点文件
三。在uVision项目中,我根据DA14580应用程序将“rom\u symdef”应用到DA1458x\u SDK\u3.0.6中
4.使用Patched HCiatTach加载,我可以正确上传固件
5我可以编译没有错误。上传并执行FW后,没有HCI回复,因此hciattach超时。
6.实际上,代码执行锁定到“RWIP_INIT”,如下所示:

#ifdef无线电580
iq_trim_from_otp();
#结束

/ *
************************************************************************************
*BLE初始化
************************************************************************************
*/

初始化电源和时钟();
//诊断();

//射频初始化(&rwip\u rf);
//设置32(BLE\ U RADIOCNTL1\ U REG,XRFSEL,3);

#如果在工厂未校准
SetBits16(带隙_REG,BGR _TRIM,0x0);//修剪RET带隙
SetBits16(带隙_REG,LDO _RET _TRIM,0xA);//修剪RET LDO
设置字16(RF\ LNA\ CTRL1\ REG,0x24E);
设置字16(RF\ LNA\ CTRL2\ REG,0x26);
设置字16(RF\U LNA\U CTRL3\U REG,0x7);
设置字16(RF\U VCO\U CTRL\U REG,0x1);
SetBits16(CLK\ U 16M\ U REG,RC16M\ U TRIM,0xA);
#结束

//初始化可重用堆栈
NVIC\u ClearPendingIRQ(BLE\u SLP\u IRQn);
NVIC\u ClearPendingIRQ(BLE\u EVENT\u IRQn);
NVIC\u ClearPendingIRQ(BLE\u RF\u DIAG\u IRQn);
NVIC\u ClearPendingIRQ(BLE\u RX\u IRQn);
NVIC\u ClearPendingIRQ(BLE\u CRYPT\u IRQn);
NVIC\u ClearPendingIRQ(BLE\u FINETGTIM\u IRQn);
nvic_clearpendingirq(ble_grosstgtim_irqn);
nvic_clearpendingirq(ble_wakeup_lp_irqn);

>>>rwip\ u init(错误);

#if((ble_app_present == 0 || ble_integrate_host_gtl == 1)&& ble_host_present)
补丁gtl_task();
#endif//#if(BLE_APP_PRESENT==0 | | BLE_INTEGRATED_HOST_GTL==1)

感谢您的帮助。
此致,
安杰洛

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
我分享我的进步,

我和大家分享我的进步,希望他们能对某些人有用,也许dialog能在这方面对我有所帮助。

实际上,我看到了uart上的调试,所有的代码都在arch\u main.c主循环中执行。
打电话后

#if(ble_hcic_itf)
//在拆分模式下,初始化HCI
hci_init(rwip_eif_get(rwip_eif_HCIC));
#结束日期

在rwble.c中,我不能再使用uart进行调试,因为它是由HCI层控制的。
所以代码执行,但是没有对发送到模块的第一个HCI命令的回复
在FW更新之后。
HCI部分目前仅作为对象提供。
通过作用域,我看到FW被发送,就在CRC OK id显示之后,我看到linux发送第一个HCI命令,TX线路上有4个字节,并且在每个bite接收之后,从模块端只发送一些ack位。

JE\U对话框
离线
最后一次见到:11小时40分钟前
工作人员
已加入:2013-12-05 14:02
在那里,我们知道了

你好,我们知道一个与蓝色Z有关的问题原因是BlueZ发送了一些HCI命令给标准和不可编程控制器,这让我们的设备搞混了”。。我们正在寻找一个补丁,但现在还需要几个星期。BR JE\u对话框

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
嗨,很高兴知道,我是

嗨,很高兴知道,我正在进步,如果我成功了,我可以发布补丁然后。

我看到的是:
使用示波器,我看到有一个UART回复,但是2个字节,0x04和0x10。这就是当前HCIATTACH未显示任何内容并超时的原因,因为HCIATTACH.C READ_HCI_EVENT()期望其他字节,至少3(字节3是Params Count)。

所以我修改了hciattach以查看返回代码:i get

bash-3.2#.hciattachttymxc1对话框115200
下载hci-固件.bin...
CRC正常(cd)。
在开始对话前发送HCI重置。。。
对话框自定义协议:EVT\u HARDWARE\u ERROR

硬件错误。代码是否可能是DA14581并检查某些产品ID,或者我的模块可能损坏?与此同时,我在另一个板上测试。

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
好吧,HW错误只是到期

好吧,HW Error只是由于全局“错误”变量无初始化。
如果从主循环应用程序排队,我似乎可以发送HCI消息,但是HCI线程/模块本身没有回复我发送的任何消息。

这似乎与da14580的不同ROM内核代码有关。

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
大家好,

大家好,
又有进展了。
-仍然混合了da14580、da14581代码(da14581\u HCI\u Release\u v.3.110.2.12)和sdk3.0、c文件/散点文件混合,并保留了da14580 symdefs
-另外,我还替换了uart.c驱动程序中的一些uart函数
-另外,我在跳转表的最后一部分添加了HCI任务,这不是为da14580定义的
-另外,由于还有不确定的原因,我不得不在arch\u main.c函数的主循环之前“uart\u flow\u off\u func”。

bash-3.2#/开始.sh
下载hci-固件.bin...
CRC正常(90)。
在开始对话前发送HCI重置。。。
resp:03 0C

===============================================
HCI版本:蓝牙核心规范4.0(0x06)
警告:模块的制造商不是对话框半导体(0x0060)!!!yabo国际娱乐
HCI版本:0x0706
模块LMP版本:0x06
模块LMP子版本:0x0706
设备设置完整
bash-3.2#hciconfig
hci0:类型:BR/EDR总线:UART
BD地址:00:13:43:0D:09:83 ACL MTU:0:0 SCO MTU:0:0
向下
接收字节:64 acl:0 sco:0个事件:5 错误:0
德克萨斯州字节:20 acl:0 sco:0个命令:5 错误:0

但仍存在一些问题:

bash-3.2#hciconfig hci0向上
蓝牙:hci0命令0x1003发送超时
蓝牙:hci0命令0x1001发送超时
蓝牙:hci0命令0x1009发送超时
无法初始化设备hci0:连接超时(110)

也许我现在正面临着你提到的问题?
将继续下周。

重新获得

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
还是向前迈进了一步,

还是向前迈进了一步,
我解决了一些uart流控制问题,实际上通信是正确的。

但似乎固件实际上没有正确响应“Read Class of Device”命令,
奇怪的MTU值读为0。

bash-3.2蓝牙监视器5.14版
=新索引:00:13:43:0D:09:83(BR/EDR,UART,hci0)[hci0]0.657956

bash-3.2#hciconfig hci0向上
>HCI事件:命令完成(0x0e)plen 12[hci0]8.672730
阅读本地支持的功能(0x04 | 0x0003)NCMD 10
状态:成功(0x00)
特点:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>HCI事件:命令完成(0x0e)plen 12[hci0]8.677712
读取本地版本信息(0x04 | 0x0001)ncmd 10
状态:成功(0x00)
HCI版本:Bluetooth 4.0(0x06)-修订版1798(0x0706)
LMP版本:蓝牙4.0(0x06)-Subversion 1798(0x0706)
制造商:RivieraWaves S.A.S(96)
> HCI事件:命令完成(0x0E)PLEN 10 [HCI0] 8.682438
读取BD ADDR(0x04 | 0x0009)ncmd 10
状态:成功(0x00)
地址:00:13:43:0D:09:83(Matsushita电子元件(欧洲)GmbH)
>HCI事件:命令完成(0x0e)plen 11[hci0]8.687327
读取缓冲区大小(0x04 | 0x0005)NCMD 10
状态:成功(0x00)
ACL MTU:0 ACL MAX数据包:0
SCO MTU:0 SCO最大数据包:0
>HCI事件:命令完成(0x0e)plen 4[hci0]8.691511
设备读取类(0x03 | 0x0023)ncmd 10
状态:未知HCI命令(0x01)

其他一些信息:

bash-3.2#cd蓝色/
bash-3.2#/开始.sh
下载hci-固件.bin...
CRC正常(18)。
在开始对话前发送HCI重置。。。
resp:03 0C

===============================================
HCI版本:蓝牙核心规范4.0(0x06)
制造商:RivieraWaves SAS(0x0060)
HCI版本:0x0706
模块LMP版本:0x06
模块LMP子版本:0x0706
设备设置完整

bash-3.2#hciconfig hci0向上
无法init设备hci0:无效的请求代码(56)

bash-3.2#dmesg | grep蓝
[0.312654]蓝牙:核心版本2.16
[0.312693]蓝牙:HCI设备和连接管理器已初始化
[0.312705]蓝牙:HCI套接字层初始化
[0.312716]蓝牙:L2CAP套接字层已初始化
[0.312737]蓝牙:SCO套接字层已初始化
[3.675536]蓝牙:HCI UART驱动程序2.2版
[3.678705]蓝牙:HCI H4协议已初始化
[3.682216]蓝牙:HCI BCSP协议已初始化
[3.685916]蓝牙:已初始化HCILL协议
[4.653492]蓝牙:RFCOMM TTY层已初始化
[4.657130]蓝牙:RFCOMM套接字层已初始化
[4.660993]蓝牙:RFCOMM VER 1.11
[4.663465]蓝牙:BNEP(以太网仿真)1.3版
[4.667507]蓝牙:BNEP过滤器:协议组播
[4.671459]蓝牙:BNEP套接字层初始化
[4.675154]蓝牙:HIDP(人机界面仿真)1.2版
[4.679800]蓝牙:已初始化HIDP套接字层

bash-3.2#hciconfig-a
hci0:类型:BR/EDR总线:UART
BD地址:00:13:43:0D:09:83 ACL MTU:0:0 SCO MTU:0:0
向下
接收字节:640 acl:0 sco:0个事件:50 错误:0
德克萨斯州字节:200 acl:0 sco:0个命令:50 错误:0
特点:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
数据包类型:DM1 DH1 HV1
链接策略:
链路模式:从机接受

bash-3.2#hciconfig hci0向上
无法init设备hci0:无效的请求代码(56)

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
好吧,看来至少是主要的

好吧,看来至少主要功能现在起作用了。

bash-3.2#hciconfig-a
hci0:类型:BR/EDR总线:UART
BD地址:00:13:43:0D:09:83 ACL MTU:27:18 SCO MTU:0:0
正在运行
接收字节:339 acl:0 sco:0个事件:37 错误:0
德克萨斯州字节:370 acl:0 sco:0个命令:37 错误:0
特点:0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x00 0x00
数据包类型:DM1 DH1 HV1
链接策略:
链路模式:从机接受

bash-3.2#hciconfig hci0导线V

我从手机上看到了模块。

斯布拉
离线
最后一次见到:5年5个月前
专家
已加入:2015-02-25 09:51
你好,波谱,

你好,波谱,

我很感兴趣的是你如何解决你的问题,我试图做同样的,但实际上它不工作。

比尔

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
嗨Sbourahla,

嗨Sbourahla,
我对原来的“DA14581\u HCI\u Release\u v.3.110.2.12”包做了很多修改,最终得到了一个与PAN1740兼容的固件。
我现在正在研究许可证的事情,让我们看看我是否可以分享uVision项目。
在分享之前我还会做更多的测试。

致以最诚挚的问候
安杰洛

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
你好,

你好,
在一些测试之后,似乎至少有一些连接问题:

$sudo gatttool-b 00:13:43:0D:09:83-我
[00:13:43:0D:09:83] [Le]>连接
正在尝试连接到00:13:43:0D:09:83
[00:13:43:0D:09:83][LE]>扫描间隔:60.000毫秒(0x0060)
扫描窗口:30.000毫秒(0x0030)
筛选策略:未使用白名单(0x00)
对等地址类型:Public(0x00)
同行地址:00:13:43:0D:09:83(松下电子元件(欧洲)有限公司)
自有地址类型:Public(0x00)
最小连接间隔:50.00毫秒(0x0028)
最大连接间隔:70.00毫秒(0x0038)
连接延迟:0x0000
监督超时:420毫秒(0x002a)
最小连接长度:0.000毫秒(0x0000)
最大连接长度:0.000毫秒(0x0000)
>HCI事件:命令状态(0x0f)plen 4[hci0]8.248374
LE创建连接(0x08 | 0x000d)ncmd 1
状态:成功(0x00)
>HCI事件:LE Meta Event(0x3e)plen 19[hci0]15.921321
LE连接完成(0x01)
状态:成功(0x00)
手柄:72
角色:主(0x00)
对等地址类型:Public(0x00)
连接成功
[00:13:43:0D:09:83][LE]>对等地址:00:13:43:0D:09:83(松下电子元件(欧洲)股份有限公司)
连接间隔:70.00毫秒(0x0038)
连接延迟:0.00毫秒(0x0000)
监督超时:420毫秒(0x002a)
母钟精度:0x00
@连接的设备:00:13:43:0D:09:83(1)标志0x0000
>HCI事件:断开连接完成(0x05)增压器4[hci0]16.411320
状态:成功(0x00)
手柄:72
原因:连接超时(0x08)
@设备已断开连接:00:13:43:0D:09:83(1)原因1

似乎最后的断开是在接近管理器超时的时间之后到达的。

现在我不知道这是否是一个问题,也可见的da14581或如果它可以是一些有关我的修改固件。
da14581上是否有人携带HCI正常工作?

当做
安杰洛

光谱
离线
最后一次见到:5年9个月前
已加入:2015-03-11 18:26
你好,

你好,
我分享我现在的代码。连接仍然不能正常工作,连接成功后断开连接。

https://github.com/spectrum70/pan1740-firmware.

致以最诚挚的问候
安杰洛

JE\U对话框
离线
最后一次见到:11小时40分钟前
工作人员
已加入:2013-12-05 14:02
嗨,我们有

高光谱,我们有客户使用HCI成功的DA14581与外部微处理器。我们有一个内部项目的蓝色-Z实现工作,因为我们说(第三方正在为我们工作)。

你有14581的仪器要测试吗?你可以为14581重新建立你的形象并进行测试。

BR JE\u对话框