你好,
我们想知道如何在DA14585的UART模式下启用BT HCI。需要做什么设置吗?我们想通过UART将BT HCI命令直接发送给BLE控制器,并取回响应。我们想使用另一种蓝牙堆栈,直接与芯片通信。
谢谢,
拉胡尔
关键词:
设备:
你好,
我们想知道如何在DA14585的UART模式下启用BT HCI。需要做什么设置吗?我们想通过UART将BT HCI命令直接发送给BLE控制器,并取回响应。我们想使用另一种蓝牙堆栈,直接与芯片通信。
谢谢,
拉胡尔
嗨rahult,
为了让585在HCI模式下运行,你必须下载相应的fw,你可以在SDK 6.0.4中找到fw,在以下目录DA14585_SDK\6.0.4.326\projects\target_apps\ HCI中,然后你将必须提供RX/TX/RTS/CTS连接与相应的引脚(这取决于你使用的设备),你将能够发送UART HCI命令直接到585,并得到适当的响应。
谢谢mt_dialog.
嗨mt_dialog,
尝试构建'DA14585_SDK\6.0.4.326\projects\target_apps\hci'项目,并在Debug模式下使用选定的目标hci_585执行,但是看到Hardfault。试着找出问题所在,但无法找到根本原因。请做
细节:
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接口将UART P0_4-P0_7与运行BT主机的控制器连接。你就会发现根本就没有交流。
3.当我监视独立Dialog585 P0_4和P0_5引脚后下载和运行HCI固件,通过picoscope,看到一些随机的意外信号(附加的图像)。
笔记:
1.BT主机设置通过UART hci接口与其他BT控制器正常运行。
2.主机和对话框uart设置都很好。configured 115K2 baud, No parity, and tried with both enabling and disabling the HW flow control.配置115K2波特率,无奇偶校验,并尝试启用和禁用HW流控制。
如果使用任何其他设置/uart配置使其工作,请让我们知道。
谢谢,
总裁
嗨nitish,
我相信拆下跳线并连接到BT主机的程序可以触发DA14585复位。你可以尝试在开头和bt主机连接uart重复步骤1?JTAG(SWDIO和SWCLK)用于将代码下载到SRAM中,但在KEIL中。
谢谢MH_Dialog,
我尝试了以下步骤,但看到没有响应/活动从P0_5 [uRx]引脚或其他UART引脚(P0_4, P0_6或P0_7)的DA14585。
脚步:
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 = 0 xa6为585
- 尝试使用启用和禁用“关闭调试会话”。
3.下载FW的发布成功。现在,不要看到UART端口P0_4-P0_7中的随机信号,但我也不看出任何响应(通过Pycope监视P0_4 UTX通过PicoSce)从主机发送的HCI RESET命令。
请建议。
谢谢,
总裁
橄榄球员日志:
[INFO General @17-09-14 17:30:26]固件文件C:\DiaSemi\ smartsnippetstudio \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 code (BP)插槽和0字面值插槽
[INFO General @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个字幕插槽
[INFO Booter @17-09-14 18:48:27] Found 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 W,
我已经测试了HCI fw作为(取决于配置,你有关于流量控制,没有流量控制/有流量控制),据我所知,你不需要定义CFG_EXTERNAL_WAKEUP,除非你使用一个额外的引脚来唤醒设备。检查HW_CONFIG是否设置为与pro dk一起工作,并确保您发出HCI命令的终端启用了RTS/CTS流控制。在我的一边用pro工具包测试,得到bd地址和重置命令的命令的响应是正确的,我没有看到任何命令和响应之间的延迟。此外,由于设备仅在休眠状态下工作,我可以假设流量控制出了问题,所以请确保您已经在发送HCI命令的终端上启用了它。
谢谢mt_dialog.
嗨支持团队,
首先,我无法在网站上发布新询问。
其次,我在DA14585上使用的BT固件中发现了一个bug。
问题:BLE广告启用命令失败后BLE扫描被启用(根据BT规范,adv和le扫描可以同时进行(通过分时))。
脚步:
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 scan enable,然后是ble advertising enable。但是发布enable hci命令(0x200a)失败,状态为'cmd disallowed 0x0C'。
日志::
总裁:x2008 prepare_cmd:操作码= 0
总裁:x2006 prepare_cmd:操作码= 0
prepare_cmd: params [0] = 0 x40
prepare_cmd: params [1] = 0 x0
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
prepace_cmd:params [7] = 0x0
prepare_cmd: params [8] = 0 x0
prepace_cmd:params [9] = 0x0
prepace_cmd:params [10] = 0x0
prepare_cmd: params [11] = 0 x0
prepare_cmd: params [12] = 0 x0
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:操作码= 0 x2006 = 0 x00地位
cc_evt:opcode = 0x200a,status = 0x0c
但是当执行相同的adv启用命令而不发出ble scan enable命令时,它会成功。我认为这是问题的根本原因。请确认此问题并为我们分享此问题的修复。
笔记:
1.和相同的主机应用程序和堆栈在不同的BLE控制器上运行。并且已发布的命令是BT 5.0规范符合标准。
2.附加hci命令和从控制器发送和接收的事件以供参考。
谢谢,
总裁
嗨Nitish W,
关于你不能发布新问题的事实,请在支持论坛上打开三个主要类别中的一个,应该有一个黑色按钮表示“新话题”,你能看到吗?
关于您的第二个问题,585的BLE堆栈不支持扫描和广告同时,当您连接时,您可以同时扫描或宣传但不同时宣传和扫描。所以在开始新的广告或扫描之前,您是否停止扫描或广告?
谢谢mt_dialog.