亲爱的大家,
我试图端口da14581补丁RAM代码到da14580,有不同的ROM内容。
所以,在这里,我才才才到目前为止:
1从DA14581\u HCI\u Release\u v.3.110.2.12包开始,用于DA14581
2.在UVISION项目中,我从DA1458x_sdk_3.0.6应用DA14580分散文件
3.在UVISION项目上,我将“ROM_SYMDEF”应用于DA1458X_SDK_3.0.6
4加载补丁hciattach,我可以正确上传固件
我可以没有错误编译。在上传和执行FW之后,没有HCI回复,因此HCIATTACH超时。
6实际上,代码执行锁定到“rwip\ u init”中,如下所示:
#ifdef无线电580
iq_trim_from_otp();
#结束
/*
************************************************************************************
*BLE初始化
************************************************************************************
*/
初始化电源和时钟();
//诊断();
// rf_init(&rwip_rf);
//设置32(BLE\ U RADIOCNTL1\ U REG,XRFSEL,3);
#如果在工厂未校准
setbits16(bandgap_reg,bgr_trim,0x0);//修剪Ret带隙
setbits16(bandgap_reg,ldo_ret_trim,0xa);//修剪ret ldo
setword16(rf_lna_ctrl1_reg,0x24e);
设置字16(RF\ LNA\ CTRL2\ REG,0x26);
setword16(rf_lna_ctrl3_reg,0x7);
setword16(rf_vco_ctrl_reg,0x1);
SetBits16(CLK\ U 16M\ U REG,RC16M\ U TRIM,0xA);
#结束
//初始化ble堆栈
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_clearpendingirq(ble_crypt_irqn);
NVIC\u ClearPendingIRQ(BLE\u FINETGTIM\u IRQn);
NVIC清算机构(BLE\ U GROSSTGTIM\ U IRQn);
NVIC\u ClearPendingIRQ(BLE\u WAKEUP\u LP\u IRQn);
>>> Rwip_init(错误);
#if((BLE|u APP|u PRESENT==0 | | BLE|u INTEGRATED|u HOST|GTL==1)和BLE|u HOST|PRESENT)
补丁gtl_task();
#endif // #if(ble_app_present == 0 || ble_integrate_host_gtl == 1)
感谢您的帮助。
顺致敬意,
安杰洛

我分享我的进步,希望他们对某人有用,也许对话可以支持我。
实际上,我看到了uart上的调试,所有的代码都在arch\u main.c主循环中执行。
打电话后
#如果(BLE\u HCIC\u ITF)
//在拆分模式下,初始化HCI
hci_init(rwip_eif_get(rwip_eif_hcic));
#endif // ble_hcic_itf.
在Rwble.c中,我不能使用UART来调试,因为它是从HCI层的控制。
所以代码执行,但没有回复发送到模块的第一个HCI命令
就在固件更新之后。
HCI部分仅作为对象可用。
通过作用域,我看到FW被发送,就在CRC OK id显示之后,我看到linux发送第一个HCI命令,TX线路上有4个字节,并且在每个bite接收之后,从模块端只发送一些ack位。
在那里,我们知道与蓝Z相关的问题......“Bluez是Bluez为标准而不是BLE控制器发送一些HCI命令,这让我们的设备混在一起”..我们正在调查补丁,但是这是现在几个星期的距离。BR JE_DIALOG.
嗨,很高兴知道,我正在进步,如果我成功了,我可以发布补丁然后。
我所看到的是:
我看到示波器有一个UART应答,但有2个字节,0x04和0x10。这就是为什么当前hciattach没有显示任何内容并且超时,因为hciattach.c read\u hci\u event()需要其他字节,至少3个(字节3是params count)。
所以我修改了HCIATACH,看看返回码是什么:我得到了
bash-3.2#.hciattachttymxc1对话框115200
下载HCI固件.bin ...
CRC OK(CD)。
在开始对话之前发送HCI重置...
对话框自定义协议:EVT\u HARDWARE\u ERROR
硬件错误。有没有可能代码是da14581和检查一些制造商id,或者有可能是我的模块损坏了?同时我在另一块板上测试。
嗯,硬件错误只是由于全局“error”变量未初始化。
如果从主循环应用程序排队,我似乎可以发送HCI消息,但是HCI线程/模块本身没有回复我发送的任何消息。
这似乎与da14580的不同ROM内核代码有关。
大家好,
再次进展。
- 仍然具有DA14580,DA14581代码(DA14581_HCI_REASE_V.3.110.2.12)和SDK 3.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重置...
响应:03 0c
===============================================
HCI版本:蓝牙核心规范4.0(0x06)
警告:模块的制造商不是Dialog Semiconductor(0x0060)雷竞技电竞平台!!!
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
TX字节:20 ACL:0 SCO:0命令:5错误:0
但仍然存在一些问题:
bash-3.2#hciconfig hci0以上
蓝牙:HCI0命令0x1003 TX超时
蓝牙:HCI0命令0x1001 TX超时
蓝牙:hci0命令0x1009发送超时
无法初始化设备hci0:连接超时(110)
也许我现在正面临着你提到的问题?
下周继续。
雷格斯
还是向前迈进了一步,
我解决了一些uart流控制问题,实际上通信是正确的。
但似乎固件实际上没有正确回复“读取的设备”命令,
奇怪的是,MTU值被读取为0。
BASH-3.2#蓝牙监视器VER 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
>HCI事件:命令完成(0x0e)plen 12[hci0]8.677712
>HCI事件:命令完成(0x0e)plen 10[hci0]8.682438
> HCI事件:命令完成(0x0E)PLEN 11 [HCI0] 8.687327
>HCI事件:命令完成(0x0e)plen 4[hci0]8.691511
读取本地支持的功能(0x04 | 0x0003)ncmd 10
状态:成功(0x00)
特点:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
读取本地版本信息(0x04 | 0x0001)ncmd 10
状态:成功(0x00)
HCI版本:蓝牙4.0(0x06) - 修订版1798(0x0706)
LMP版本:蓝牙4.0(0x06) - Subversion 1798(0x0706)
制造商:Rivierawaves S.A.S(96)
读取BD addr(0x04 | 0x0009)NCMD 10
状态:成功(0x00)
地址:00:13:43:0D:09:83(松下电子元件(欧洲)有限公司)
读取缓冲区大小(0x04 | 0x0005)ncmd 10
状态:成功(0x00)
ACL MTU:0 ACL最大数据包数:0
SCO MTU:0 SCO MAX数据包:0
设备读取类(0x03 | 0x0023)ncmd 10
状态:未知HCI命令(0x01)
其他信息:
bash-3.2 #cd蓝色/
bash-3.2#/开始.sh
下载HCI固件.bin ...
CRC OK(18)。
在开始对话之前发送HCI重置...
响应:03 0c
===============================================
HCI版本:蓝牙核心规范4.0(0x06)
制造商:RivieraWaves SAS(0x0060)
HCI版本:0x0706
模块LMP版本:0x06
模块LMP子版:0x0706
设备设置完成
bash-3.2#hciconfig hci0以上
无法初始化设备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 1.11版
[4.663465]蓝牙:BNEP(以太网仿真)1.3版
[4.667507]蓝牙:BNEP过滤器:协议多播
[4.671459]蓝牙:BNEP套接字层初始化
[4.675154]蓝牙:HIDP(人力界面仿真)Ver 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
TX字节:200 ACL:0 SCO:0命令:50错误:0
特点:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
数据包类型:DM1 DH1 HV1
链接策略:
链接模式:从属接受
bash-3.2#hciconfig hci0以上
无法初始化设备hci0:请求代码无效(56)
好的,似乎至少有主要的功能。
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
我从手机上看到了模块。
你好,波谱,
我很感兴趣的是你如何解决你的问题,我试图做同样的,但实际上它不工作。
布尔
嗨,斯布拉,
我对原始“da14581_hci_release_v.110.2.12”包进行了许多更改,并结束了Pan1740兼容FW。
我现在正在研究许可证的事情,让我们看看我是否可以分享uVision项目。
在分享之前我还会做更多的测试。
最好的祝福
安杰洛
你好,
在一些测试之后,似乎至少有一些连接问题:
$ sudo gatttool -b 00:13:43:0D:09:83 -I扫描间隔:60.000毫秒(0x0060)
[00:13:43:0D:09:83][LE]>连接
正在尝试连接到00:13:43:0D:09:83
[00:13:43:0D:09:83] [LE]>
扫描窗口:30.000毫秒(0x0030)
过滤策略:未使用白色列表(0x00)
PEER地址类型:公共(0x00)
PEER地址:00:13:43:0D:09:83(Matsushita电子元件(欧洲)GmbH)
自己的地址类型:公共(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事件(0x3E)PLEN 19 [HCI0] 15.921321
LE连接完成(0x01)
状态:成功(0x00)
手柄:72
角色:大师(0x00)
PEER地址类型:公共(0x00)
连接成功
[00:13:43:0D:09:83][LE]>对等地址:00:13:43:0D:09:83(松下电子元件(欧洲)股份有限公司)
连接间隔:70.00毫秒(0x0038)
连接延迟:0.00 msec(0x0000)
监控超时:420毫秒(0x002a)
主时钟精度:0x00
@连接的设备:00:13:43:0D:09:83(1)标志0x0000
> HCI事件:断开完整(0x05)PLEN 4 [HCI0] 16.411320
状态:成功(0x00)
手柄:72
原因:连接超时(0x08)
@设备已断开:00:13:43:0D:09:83(1)原因1
似乎最后的断开是在接近管理器超时的时间之后到达的。
现在我不知道这是一个在da14581上可见的问题,还是可以是与我修改的固件相关的东西。
有没有人在DA14581上工作,正常工作?
当做
安杰洛
你好,
我分享我现在的代码。连接仍然不能正常工作,连接成功后断开连接。
https://github.com/spectrum70/pan1740-firmware
最好的祝福
安杰洛
高光谱,我们有客户使用HCI成功的DA14581与外部微处理器。我们有一个内部项目的蓝色-Z实现工作,因为我们说(第三方正在为我们工作)。
你有14581的设置吗?您可以重新构建图像14581并测试。
BR JE_DIALOG.