你好
我们想知道如何通过DA14585的UART模式启用BT HCI。是否需要进行任何设置?我们希望通过UART将BT HCI命令直接发送到BLE控制器,并返回响应。我们想使用另一个蓝牙协议栈,直接与芯片通信。
谢谢
拉胡尔
关键词:
设备:
你好
我们想知道如何通过DA14585的UART模式启用BT HCI。是否需要进行任何设置?我们希望通过UART将BT HCI命令直接发送到BLE控制器,并返回响应。我们想使用另一个蓝牙协议栈,直接与芯片通信。
谢谢
拉胡尔
嗨,拉胡特,
为了使585在HCI模式下运行,您必须下载相应的fw,您将能够在SDK 6.0.4中的以下目录DA14585_SDK\6.0.4.326\projects\target_apps\HCI中找到fw,然后您必须提供带有相应管脚的RX/TX/RTS/CTS连接(这取决于您使用的设备)您将能够直接向585发送UART HCI命令,并获得相应的响应。
谢谢你的对话
嗨,MT_dialog,
尝试构建“DA14585_SDK\6.0.4.326\projects\target_apps\hci”项目,并在调试模式下使用选定的目标hci_585执行,但发现了硬故障。试图找出问题,但无法找到根本原因。请做好准备
细节:
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_选项卡,rom_hci_cmd_desc_root_选项卡,48);在arch_rom.c中
R14(LR):0xFFFFF9,
MSP:0x07FC35F8-谁的PC:0x07F1E0AC
请告知将DA14585用作BT HCI UART模式所需的任何配置。
谢谢
尼蒂什
你好,尼蒂什,
我只是重复了你的步骤,只要我使用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.当我在下载和运行HCI固件后,通过picoscope示波器监控独立对话框585 P0_4和P0_5引脚时,看到一些随机的意外信号(附图像)。
注:
1.通过UART hci接口,BT主机设置与其他BT控制器运行良好。
2.主机和对话框的uart设置都很好。配置115K2波特率,无奇偶校验,并尝试启用和禁用HW流控制。
请让我们知道是否有任何其他设置/uart配置,以使它工作。
谢谢
尼蒂什
你好,尼蒂什,
我相信,拆除跳线并连接到BT主机的程序可以触发DA14585 a复位。你能在开始和结束时尝试将UART与BT主机连接吗重复步骤1?JTAG(SWDIO和SWCLK)用于将代码下载到SRAM中,但UART用于Keil。
谢谢你的对话,
我尝试了以下步骤,但发现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.现在使用SmartSnippets工具箱,选择用于Da14585的Jtag配置选项,打开设备并选择“引导器”工具。
-使用了使用Keil生成的DA14585\DA14585\U SDK\6.0.4.326\projects\target\u apps\hci\hci\Keil\u 5\out\u 585\hci\u 585.hex二进制文件。
-选项保持原样。SysCtrlReg=0xA6表示585
-尝试同时启用和禁用“关闭调试会话”。
3.下载后fw成功。现在,在UART端口P0_4-P0_7中看不到随机信号,但也看不到主机发送的HCI重置命令的任何响应(通过Picoscope示波器监控P0_4 uTx)。
请建议。
谢谢
尼蒂什
引导程序日志:
[INFO General@17-09-14 17:30:26]固件文件C:\DiaSemi\SmartSnippetsStudio\Toolbox\common\u resources\jtag\u programmer\u 585.bin已选择下载。
[INFO General @17-09-14 17:37:41]无法测量总的IR len。TDO是恒定的高。
[INFO General @17-09-14 17:37:41]无法测量总的IR len。TDO是恒定的高。
[INFO General@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设备。
[INFO Booter@17-09-14 18:48:27]找到ID为0x0BB11477的SWD-DP
[INFO Booter@17-09-14 18:48:27]FPUnit:4个代码(BP)插槽和0个文字插槽
[INFO Booter@17-09-14 18:48:27]发现Cortex-M0 r0p0,Little endian。
[INFO Booter@17-09-14 18:48:28]已成功将固件文件下载到主板。
你好,尼蒂什,
没有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_外部_唤醒
请让我知道这些建议是否解决了问题
谢谢你的对话,
通过禁用睡眠模式,UART通信工作正常。请查找内联评论。
1.电路板上有XTAL 32K吗?如果不是,请将CFG_LP_CLK定义为LP_CLK_RCX20,因为LP_CLK用于唤醒芯片。
-[Nitish]根据DA14580开发工具包Pro文档,此开发板支持XTAL32K。我通过设置断点来检查LP时钟是否设置为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_外部_唤醒
-[Nitish]现在,即使在睡眠模式下,也可以通过启用外部唤醒来正常工作。但请参见以下观察或性能问题。
使用app_default_sleep_mode = ARCH_SLEEP_OFF;BT init在一秒内发生。
在app_default_sleep_mode=ARCH_sleep_ON&&CFG_EXTERNAL_WAKEUP启用的情况下,查看BT初始化需要4-5秒。不知道DA585为什么要花这么多时间来响应。
如果可以采取任何措施解决DA585的性能问题,请告知我们。
问候,
尼提斯语。
嗨Nitish W,
我已经按原样测试了HCI fw(取决于您关于流量控制、无流量控制/有流量控制的配置),据我所知,您不需要定义CFG_EXTERNAL_唤醒,除非您使用额外的pin来唤醒设备。检查HW_配置是否设置为与pro dk一起工作,并确保发出HCI命令的终端已启用RTS/CTS流量控制。在我这一方使用pro套件进行测试,用于获取bd地址的命令和重置命令的响应是正确的,我看不到命令和响应之间有任何延迟。此外,由于该设备仅在禁用睡眠的情况下工作,我可以假设流量控制有问题,因此请确保您已从发送HCI命令的终端启用该功能。
谢谢你的对话
嗨,支持团队,
首先,我无法在网站上发布新的查询。
其次,我在DA14585上使用的BT固件中发现了一个bug。
问题:启用BLE扫描后BLE广告启用命令失败(根据BT规范,adv和le扫描可以同时进行(通过分时))。
步骤:
1.使用Keil为585构建项目DA14585_SDK\6.0.4.326\projects\target_apps\hci。(已尝试禁用和启用睡眠模式应用程序\默认\睡眠\模式)
2.现在使用SmartSnippets工具箱,选择用于Da14585的Jtag配置选项,打开设备并选择“引导器”工具。
-使用了使用Keil生成的DA14585\DA14585\U SDK\6.0.4.326\projects\target\u apps\hci\hci\Keil\u 5\out\u 585\hci\u 585.hex二进制文件。
3.下载后fw成功。
4.在DA585上运行我的主机堆栈,然后主机应用程序执行ble扫描启用,然后执行ble广告启用。但播发启用hci命令(0x200a)失败,状态为“cmd disallowed 0x0C”。
日志::
Nitish::prepare_cmd:opcode=0x2008
Nitish::prepare_cmd:opcode=0x2006
prepare_cmd: params [0] = 0 x40
prepare_cmd:params[1]=0x0
xa0 prepare_cmd: params [2] = 0
prepare_cmd: params [3] = 0 x0
prepare_cmd: params [4] = 0 x3
准备命令:参数[5]=0x0
准备命令:参数[6]=0x0
准备命令:参数[7]=0x0
prepare_cmd: params [8] = 0 x0
prepare_cmd:params[9]=0x0
准备命令:参数[10]=0x0
prepare_cmd:params[11]=0x0
prepare_cmd:params[12]=0x0
prepare_cmd: params [13] = 0 x7
prepare_cmd: params [14] = 0 x0
Nitish::prepare_cmd:opcode=0x200a
准备命令:参数[0]=0x1
CC_evt:操作码= 0 x2008 = 0 x00地位
CC_evt:opcode=0x2006,状态=0x00
CC_evt:操作码=0x200a,状态=0x0c
5.但是,如果执行相同的adv enable命令而不发出BLE scan enable命令,则会成功。我认为这是问题的根源。请确认此问题并与我们分享此问题的解决方案。
注:
1.相同的主机应用程序和堆栈在不同的ble控制器上运行。发布的命令符合BT 5.0规范。
2.附加hci命令和事件发送和接收到控制器,以供参考。
谢谢
尼蒂什
嗨Nitish W,
关于你不能发布新问题的事实,请打开支持论坛的三个主要类别中的一个,应该有一个黑色按钮指示“新主题”,你能看到。
关于第二个问题,585的BLE堆栈不支持同时扫描和播发,当您连接时,您可以扫描或播发,但不能同时扫描和播发。那么,在开始新的广告或相应的扫描之前,您是否已停止扫描或广告?
谢谢你的对话