你好,
我们想知道如何通过DA14585的UART模式启用BT HCI。是否有任何需要完成的设置?我们要将BT HCI命令直接发送给UART到BLE控制器并返回响应。我们希望使用另一个蓝牙堆栈并直接与芯片通信。
谢谢,
拉胡湖
关键词:
设备:
你好,
我们想知道如何通过DA14585的UART模式启用BT HCI。是否有任何需要完成的设置?我们要将BT HCI命令直接发送给UART到BLE控制器并返回响应。我们希望使用另一个蓝牙堆栈并直接与芯片通信。
谢谢,
拉胡湖
嗨rahult,
为了使585在HCI模式下运行,您必须下载相应的FW,您将能够在以下目录DA14585_SDK \ 6.0.4.326 \ Projects \ target_apps \ hci中找到sdk 6.0.4中的fw。然后,您必须提供与相应引脚的Rx / Tx / RTS / CTS连接(这取决于您使用的设备),您将能够将UART HCI命令直接发送到585并返回适当的响应。
谢谢mt_dialog.
嗨mt_dialog,
尝试构建'da14585_sdk \ 6.0.4.326 \ projects \ target_apps \ hci'项目,并使用选定的目标hci_585在调试模式下执行,但看到硬盘。试图找出这个问题,但不能root原因导致它。请做
细节:
1.DA14585_SDK 6.0.4.326
2.DA14585 Dev Kit Pro
3.J5已配置为UART, J10已启用,J3已打开。
4.下载SDK后,不需要更改SDK配置文件。
调试详细信息:
崩溃在:memcpy(hci_cmd_desc_root_tab,rom_hci_cmd_desc_root_tab,48);在Arch_rom.c.中
R14(LR):0xFFFFFFF9,
MSP:0x07FC35F8 - 其PC:0x07F1E0AC
请告诉我们使用DA14585作为BT HCI UART模式所需的任何配置。
谢谢,
硝
嗨nitish,
我只是重复了你的步骤,只要我使用DA14585的量产版本就没有问题。尝试重复与修订AB硅,我得到了完全相同的硬故障。
如果字母AB是SOC上的修订号标记的一部分(芯片标识符DA14585下面),则您有必须更换的早期硬件。有关如何安排更换的详细信息,请联系您当地的销售代表。MP硬件上的修订号是所有零。
/ MHv
你好MHV,
附加DA14585的图像,以及我们看到的修订号如下。不要以为它的ab硅。请告诉我们我们可以做些什么来实现这项工作。
如果你可以帮助我们尽快享受。
DA14585-01ATDB-P(1711_00015)。
谢谢,
硝
谢谢提供图片。你的女儿卡似乎是早期工程样本。如需更换主板,请与您的Dialog经销商或代表联系。
/ MHv
谢谢MHv,
我们采购了新硅,现在我们没有看到硬断层。但看到一些其他问题。
1.为585构建项目DA14585_SDK\6.0.4.326\projects\target_apps\hci,启动调试会话并开始执行代码(F5)。我现在认为固件已经下载到SRAM(通过UART1 P0_4utx, P0_5urx, P0_6ucts, P0_7urts)并开始执行。现在停止调试会话(它正在使用uart1)。
2.但是现在我们期望UART1将用于BT HCI接口(BT主机和Dialog585 BT控制器)。因此,移除J5中的跳线,用USB通信引脚连接UART P0_4-P0_7。UART P0_4-P0_7通过UART接口与运行BT主机的控制器对接。并没有进行适当的沟通。
3.当我监视独立对话框585 P0_4和P0_5引脚下载并运行HCI固件,通过PicoSce,请参阅一些随机意外的信号(附加图像)。
笔记:
1.通过UART hci接口,BT主机设置与其他BT控制器运行良好。
2.主机和对话框的uart设置都很好。配置115K2波特率,无奇偶校验,并尝试启用和禁用HW流控制。
请让我们知道是否有任何其他设置/uart配置,以使它工作。
谢谢,
硝
嗨nitish,
我相信拆下跳线并连接到BT主机的程序可以触发DA14585复位。你可以尝试在开头和bt主机连接uart重复步骤1?JTAG(SWDIO和SWCLK)用于将代码下载到SRAM中,但在KEIL中。
谢谢mh_dialog,
我尝试了以下步骤,但请参阅DA14585的P0_5 [URX]引脚或其他UART引脚(P0_4,P0_6或P0_7)没有响应/活动。
脚步:
1.使用Keil为585构建项目DA14585_SDK \ 6.0.4.326 \ Projects \ Target_Apps \ HCI。
2.现在使用“选择DA14585选项的JTAG配置”使用SmartSnippets工具箱,打开设备并选择“Booter”工具。
- 使用da14585 \ da14585_sdk \ 6.0.4.326 \ projects \ target_apps \ hci \ hci \ keil_5 \ out_585 \ hci_585.hex二进制使用keil生成的。
- 根据它的选择保留。sysctrlreg = 0xa6 585
- 尝试使用启用和禁用“关闭调试会话”。
3.下载FW的发布成功。现在,不要看到UART端口P0_4-P0_7中的随机信号,但我也不看出任何响应(通过Pycope监视P0_4 UTX通过PicoSce)从主机发送的HCI RESET命令。
请建议。
谢谢,
硝
Booter日志:
[信息常规@ 17-09-14 17:30:26]固件文件c:\ diasemi \ smartsnippetsstudio \ toolbox \ common_resources \ jtag_programmer_585.bin已被选中以下载。
[INFO General @17-09-14 17:37:41]无法测量总的IR len。TDO是恒定的高。
[INFO General @17-09-14 17:37:41]无法测量总的IR len。TDO是恒定的高。
[信息概述@ 17-09-14 17:37:41]找到了带ID 0x0BB11477的SWD-DP
[INFO General @17-09-14 17:37:41] FPUnit: 4个代码(BP)槽,0个文字槽
[信息概述@ 17-09-14 17:37:41]找到了Cortex-M0 R0P0,Little Endian。
[信息常规@ 17-09-14 17:37:41]选择了BTLE设备。
[信息Booter @ 17-09-14 18:48:27]找到了带ID 0x0BB11477的SWD-DP
[info booter @ 17-09-14 18:48:27] FpUnit:4代码(BP)插槽和0个字幕插槽
[信息Booter @ 17-09-14 18:48:27]找到了Cortex-M0 R0P0,Little Endian。
[info booter @ 17-09-14 18:48:28]成功地将固件文件下载到电路板上。
嗨nitish,
没有响应DA14585的可能原因。
1.电路板上有XTAL 32K吗?如果没有,请将CFG_LP_CLK定义为LP_CLK_RCX20,因为LP_CLK用于唤醒芯片。
2.如果你有XTAL 32K,请关闭睡眠模式,看看是否有任何响应。更改app_default_sleep_mode = ARCH_SLEEP_OFF;
3.如果步骤2工作,请恢复睡眠模式并定义CFG_EXTERNAL_WAKEUP
请让我知道这些建议是否解决了问题
谢谢mh_dialog,
通过禁用睡眠模式,UART通信工作正常。请在内联的评论中找到。
1.电路板上有XTAL 32K吗?如果没有,请将CFG_LP_CLK定义为LP_CLK_RCX20,因为LP_CLK用于唤醒芯片。
- [Nitish]根据DA14580 Dev Kit Pro文件,该DEV板对XTAL32K提供了支持。我通过将断点检查为XTAL32K来检查它来验证它。
文件:arch_system.c, init_pwr_and_clk_ble()
setbits16(sys_ctrl_reg,clk32_source,1);//选择xtal32k作为LP时钟
2.如果你有XTAL 32K,请关闭睡眠模式,看看是否有任何响应。更改app_default_sleep_mode = ARCH_SLEEP_OFF;
- [nitish]是的,现在DA585正在响应主机BT HCI命令。
3.如果步骤2工作,请恢复睡眠模式并定义CFG_EXTERNAL_WAKEUP
- [nitish]现在即使在睡眠模式下,它通过启用外部唤醒而工作正常。但看到以下观察或绩效问题。
使用app_default_sleep_mode = ARCH_SLEEP_OFF;BT init在一秒内发生。
使用app_default_sleep_mode = arch_sleep_on && cfg_external_wakeup启用,请参阅bt init需要4-5秒。不确定为什么DA585正在花这么多时间来回应。
请告诉我们,如果可以解决任何事情以解决DA585可以解决此问题。
问候,
nitish。
嗨Nitish W,
我测试了HCI FW(取决于您对流量控制的配置,没有流量控制/有流量控制),只要我可以告诉您不需要定义CFG_EXTERNAL_WAKEUP,除非您使用额外的PIN唤醒设备。检查HW_Config是否设置为使用PRO DK,而不是并确保您发出的终端发出HCI命令具有启用RTS / CTS流量控制。使用Pro套件在我的身边测试,对获取BD地址的命令和reset命令的命令响应是正确的,我不会在命令和响应之间看到任何延迟。此外,由于设备仅与睡眠失效,因此我可以假设流量控制有问题,因此请确保您已从您发送HCI命令的终端启用它。
谢谢mt_dialog.
嗨支持团队,
首先,我无法在网站上发布新询问。
其次,我在DA14585上使用的BT固件中发现了一个bug。
问题:BLE广告enable命令失败后BLE扫描已启用(根据BT规范,ADV&LE SCAN都可以同时进行(按时间分享))。
脚步:
1.使用Keil为585构建项目DA14585_SDK \ 6.0.4.326 \ Projects \ Target_Apps \ HCI。(尝试禁用和启用睡眠模式app_default_sleep_mode)
2.现在使用“选择DA14585选项的JTAG配置”使用SmartSnippets工具箱,打开设备并选择“Booter”工具。
- 使用da14585 \ da14585_sdk \ 6.0.4.326 \ projects \ target_apps \ hci \ hci \ keil_5 \ out_585 \ hci_585.hex二进制使用keil生成的。
3.下载FW的发布成功。
4.在DA585上运行主堆栈,然后主机应用程序执行BLE扫描启用,然后是BLE广告启用。但是,广告启用HCI命令(0x200A)失败,状态'CMD不允许0x0C'失败。
日志::
nitish :: prepaser_cmd:opcode = 0x2008
nitish :: prepaser_cmd:opcode = 0x2006
prepare_cmd: params [0] = 0 x40
prepaser_cmd:params [1] = 0x0
xa0 prepare_cmd: params [2] = 0
prepare_cmd: params [3] = 0 x0
prepare_cmd: params [4] = 0 x3
prepace_cmd:params [5] = 0x0
prepace_cmd:params [6] = 0x0
prepack_cmd:params [7] = 0x0
prepare_cmd: params [8] = 0 x0
prepack_cmd:params [9] = 0x0
prepack_cmd:params [10] = 0x0
prepace_cmd:params [11] = 0x0
prepace_cmd:params [12] = 0x0
prepare_cmd: params [13] = 0 x7
prepare_cmd: params [14] = 0 x0
nitish :: prepaser_cmd:opcode = 0x200a
prepace_cmd:params [0] = 0x1
CC_evt:操作码= 0 x2008 = 0 x00地位
cc_evt:opcode = 0x2006,status = 0x00
cc_evt:opcode = 0x200a,status = 0x0c
但是当执行相同的adv启用命令而不发出ble scan enable命令时,它会成功。我认为这是问题的根本原因。请确认此问题并为我们分享此问题的修复。
笔记:
1.和相同的主机应用程序和堆栈在不同的BLE控制器上运行。并且已发布的命令是BT 5.0规范符合标准。
2.附加hci命令和事件发送和接收到控制器,以供参考。
谢谢,
硝
嗨Nitish W,
关于你不能发布新问题的事实,请打开支持论坛的三个主要类别中的一个,应该有一个黑色按钮指示“新主题”,你能看到。
关于您的第二个问题,585的BLE堆栈不支持扫描和广告同时,当您连接时,您可以同时扫描或宣传但不同时宣传和扫描。所以在开始新的广告或扫描之前,您是否停止扫描或广告?
谢谢mt_dialog.