Using BT HCI over UART for DA14585

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
14个帖子/ 0新
最后一篇
rahult.
离线
最后一次露面:3 years 6 months ago
加入:2017-07-14 13:22
Using BT HCI over UART for DA14585

你好,

我们想知道如何通过DA14585的UART模式启用BT HCI。是否有任何需要完成的设置?我们要将BT HCI命令直接发送给UART到BLE控制器并返回响应。我们希望使用另一个蓝牙堆栈并直接与芯片通信。

谢谢,
拉胡湖

Keywords:
设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨rahult,

嗨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.

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
嗨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 configured for UART, J10 is enabled, J3 is open.
4. SDK config files needed no changes post downloading the 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模式所需的任何配置。

谢谢,

MHv_Dialog
离线
最后一次露面:2个月1周前
职员
加入:2013-12-06 15:10
嗨nitish,

嗨nitish,

I just repeated your steps and have no issues as long as I am using mass production version of the DA14585. Trying to repeat with revision AB silicon, I am getting the exact same hardfault.

如果字母AB是SOC上的修订号标记的一部分(芯片标识符DA14585下面),则您有必须更换的早期硬件。有关如何安排更换的详细信息,请联系您当地的销售代表。MP硬件上的修订号是所有零。

/MHv

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
你好MHV,

你好MHV,

附加DA14585的图像,以及我们看到的修订号如下。不要以为它的ab硅。请告诉我们我们可以做些什么来实现这项工作。
如果你可以帮助我们尽快享受。
DA14585-01ATDB-P(1711_00015)。

谢谢,

MHv_Dialog
离线
最后一次露面:2个月1周前
职员
加入:2013-12-06 15:10
Thanks for providing the

Thanks for providing the pictures. Your daughter card appears to be an early engineering sample. Please ask your Dialog distributor or representative for a board replacement.

/MHv

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
Thanks MHv,

Thanks MHv,
我们采购了新硅,现在我们没有看到硬断层。但看到一些其他问题。

1. Built the project DA14585_SDK\6.0.4.326\projects\target_apps\hci for 585, started the debug session and started executing the code(F5). I now think that firmware is downloaded to SRAM (through UART1 P0_4utx, P0_5urx, P0_6ucts, P0_7urts ) and started executing. Now stopped the debug session(which was using the uart1).
2.但现在我们认为UART1将用于the BT HCI interfacing (BT host and Dialog585 BT controller ). So, removed the jumpers in J5, connecting the UART P0_4-P0_7 with USB comm pins. And interfaced the UART P0_4-P0_7 with the controller running the BT host via UART interface. And see there is no proper communication happening.
3.当我监视独立对话框585 P0_4和P0_5引脚下载并运行HCI固件,通过PicoSce,请参阅一些随机意外的信号(附加图像)。
笔记:
1. BT host set up runs fine with the other BT controllers over UART hci interface.
2.Both the Host and Dialog uart settings are fine. configured 115K2 baud, No parity, and tried with both enabling and disabling the HW flow control.

Kindly let us know if any other settings/uart configuration to be used to make it work.

谢谢,

mh_dialog(未经验证)
嗨nitish,

嗨nitish,

我相信拆下跳线并连接到BT主机的程序可以触发DA14585复位。你可以尝试在开头和bt主机连接uart重复步骤1?JTAG(SWDIO和SWCLK)用于将代码下载到SRAM中,但在KEIL中。

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
谢谢mh_dialog,

谢谢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命令。

Kindly suggest.

谢谢,

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] Could not measure total IR len. TDO is constant high.
[INFO General @17-09-14 17:37:41] Could not measure total IR len. TDO is constant high.
[信息概述@ 17-09-14 17:37:41]找到了带ID 0x0BB11477的SWD-DP
[INFO General @17-09-14 17:37:41] FPUnit: 4 code (BP) slots and 0 literal slots
[信息概述@ 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]成功地将固件文件下载到电路板上。

mh_dialog(未经验证)
嗨nitish,

嗨nitish,

没有响应DA14585的可能原因。

1.电路板上有XTAL 32K吗?如果没有,请将CFG_LP_CLK定义为LP_CLK_RCX20,因为LP_CLK用于唤醒芯片。

2.if you have XTAL 32K, then please disable the sleep mode to see if there is any response. Change app_default_sleep_mode = ARCH_SLEEP_OFF;

3.如果步骤2工作,请恢复睡眠模式并定义CFG_EXTERNAL_WAKEUP

Please let me know if these recommendations fix the problems

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
谢谢mh_dialog,

谢谢mh_dialog,
通过禁用睡眠模式,UART通信工作正常。请在内联的评论中找到。

1.电路板上有XTAL 32K吗?如果没有,请将CFG_LP_CLK定义为LP_CLK_RCX20,因为LP_CLK用于唤醒芯片。
- [Nitish]根据DA14580 Dev Kit Pro文件,该DEV板对XTAL32K提供了支持。我通过将断点检查为XTAL32K来检查它来验证它。

In file: arch_system.c, init_pwr_and_clk_ble()
setbits16(sys_ctrl_reg,clk32_source,1);//选择xtal32k作为LP时钟

2.if you have XTAL 32K, then please disable the sleep mode to see if there is any response. Change app_default_sleep_mode = ARCH_SLEEP_OFF;
- [nitish]是的,现在DA585正在响应主机BT HCI命令。

3.如果步骤2工作,请恢复睡眠模式并定义CFG_EXTERNAL_WAKEUP
- [nitish]现在即使在睡眠模式下,它通过启用外部唤醒而工作正常。但看到以下观察或绩效问题。
With app_default_sleep_mode = ARCH_SLEEP_OFF; BT init happens within a second.
使用app_default_sleep_mode = arch_sleep_on && cfg_external_wakeup启用,请参阅bt init需要4-5秒。不确定为什么DA585正在花这么多时间来回应。
请告诉我们,如果可以解决任何事情以解决DA585可以解决此问题。

Regards,
nitish。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
Hi Nitish W,

Hi Nitish W,

我测试了HCI FW(取决于您对流量控制的配置,没有流量控制/有流量控制),只要我可以告诉您不需要定义CFG_EXTERNAL_WAKEUP,除非您使用额外的PIN唤醒设备。检查HW_Config是否设置为使用PRO DK,而不是并确保您发出的终端发出HCI命令具有启用RTS / CTS流量控制。使用Pro套件在我的身边测试,对获取BD地址的命令和reset命令的命令响应是正确的,我不会在命令和响应之间看到任何延迟。此外,由于设备仅与睡眠失效,因此我可以假设流量控制有问题,因此请确保您已从您发送HCI命令的终端启用它。

谢谢mt_dialog.

nitish w.
离线
最后一次露面:2年10个月前
加入:2017-08-30 09:49
嗨支持团队,

嗨支持团队,

首先,我无法在网站上发布新询问。
Secondly, Am seeing a bug in BT firmware that am using on DA14585.

问题: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]=0x40
prepaser_cmd:params [1] = 0x0
prepare_cmd: params[2]=0xa0
prepare_cmd: params[3]=0x0
prepare_cmd: params[4]=0x3
prepace_cmd:params [5] = 0x0
prepace_cmd:params [6] = 0x0
prepack_cmd:params [7] = 0x0
prepare_cmd: params[8]=0x0
prepace_cmd:params [9] = 0x0
prepack_cmd:params [10] = 0x0
prepace_cmd:params [11] = 0x0
prepace_cmd:params [12] = 0x0
prepare_cmd: params[13]=0x7
prepare_cmd: params[14]=0x0
nitish :: prepaser_cmd:opcode = 0x200a

prepace_cmd:params [0] = 0x1
CC_evt: opcode=0x2008, status=0x00

cc_evt:opcode = 0x2006,status = 0x00

cc_evt:opcode = 0x200a,status = 0x0c

但是当执行相同的adv启用命令而不发出ble scan enable命令时,它会成功。我认为这是问题的根本原因。请确认此问题并为我们分享此问题的修复。

笔记:
1.和相同的主机应用程序和堆栈在不同的BLE控制器上运行。并且已发布的命令是BT 5.0规范符合标准。
2.Attaching the hci commands and events sent & received to/from controller for reference.

谢谢,

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
Hi Nitish W,

Hi Nitish W,

Regarding the fact that you are not able to post a new question, please open one of the three main categories on the support forum and there should be a black button indicating "New Topic" are you able to see that.

关于您的第二个问题,585的BLE堆栈不支持扫描和广告同时,当您连接时,您可以同时扫描或宣传但不同时宣传和扫描。所以在开始新的广告或扫描之前,您是否停止扫描或广告?

谢谢mt_dialog.