⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
14个职位/ 0个新职位
最后发表
rahult
离线
最后看到:3年6个月前
加入:2017-07-14章22节
DA14585通过UART使用BT HCI

你好,

我们想知道如何在DA14585的UART模式下启用BT HCI。有什么设置需要做吗?我们希望通过UART将BT HCI命令直接发送到BLE控制器,并得到响应。我们希望使用另一个蓝牙堆栈,直接与芯片通信。

谢谢,
拉胡尔

关键词:
设备:
MT_dialog
离线
最后看到:2个月2周以前
工作人员
加入:2015-06-08 34
嗨rahult,

嗨rahult,

为了让585在HCI模式下运行,你必须下载相应的fw,你将能够在以下目录下找到fw在SDK 6.0.4 DA14585_SDK\6.0.4.326\projects\target_apps\ HCI,然后,您将必须提供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执行,但看到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): 0 xfffffff9,
MSP: 0x07FC35F8 - whose PC: 0x07F1E0AC . exe

请告知使用DA14585作为BT HCI UART模式所需的任何配置。

谢谢,
总裁

MHv_Dialog
离线
最后看到:2个月1个星期前
工作人员
加入:15 2013-12-06
嗨,总裁,

嗨,总裁,

我只是重复了你的步骤,只要我使用DA14585的量产版本就没有问题。尝试重复与修订AB硅,我得到了完全相同的硬故障。

如果字母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个星期前
工作人员
加入:15 2013-12-06
谢谢您提供

谢谢提供图片。你的女儿卡似乎是早期工程样本。如需更换主板,请与您的Dialog经销商或代表联系。

/ MHv

Nitish W
离线
最后看到:2年10个月前
加入:2017-08-30 09:49
谢谢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.当我监视独立的Dialog585 P0_4 & P0_5引脚发布下载和运行HCI固件时,通过picoscope,看到一些随机的意外信号(附图片)。
注意:
1.通过UART hci接口,BT主机设置与其他BT控制器运行良好。
2.主机和对话框的uart设置都很好。配置115K2波特率,无奇偶校验,并尝试启用和禁用HW流控制。

请让我们知道是否有任何其他设置/uart配置,以使它工作。

谢谢,
总裁

MH_Dialog(未验证)
嗨,总裁,

嗨,总裁,

我相信去掉跳线并连接到BT主机的程序可以触发DA14585一次复位。你可以尝试连接UART与BT主机在开始和重复步骤1 ?JTAG (SWDIO和SWCLK)用于将代码下载到SRAM,但在Keil中使用UART。

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.现在使用SmartSnippets工具箱与Jtag配置Da14585选项被选中,打开设备并选择'Booter'工具。
-使用DA14585\DA14585_SDK\6.0.4.326\projects\target_apps\hci\hci\Keil_5\out_585\hci_585使用keil生成的十六进制二进制文件。
-保留选择方案。SysCtrlReg = 0 xa6为585
-尝试同时启用和禁用“关闭调试会话”。
3.下载后fw成功。现在在UART端口P0_4- p0_7中看不到随机信号,但我也没有看到任何响应(通过Picoscope监视P0_4 uTx)从主机发送的HCI复位命令。

请建议。

谢谢,
总裁

橄榄球员日志:
[INFO General @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是恒定的高。
[INFO General @17-09-14 17:37:41]找到ID为0x0BB11477的SWD-DP
[INFO General @17-09-14 17:37:41] FPUnit: 4个代码(BP)槽,0个文字槽
[INFO General @17-09-14 17:37:41] Found Cortex-M0 r0p0, Little endian。
[INFO General @17-09-14 17:37:41] BTLE设备已选中。
[INFO bootter @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:27]
[INFO boot @17-09-14 18:48:28]成功下载固件文件到单板。

MH_Dialog(未验证)
嗨,总裁,

嗨,总裁,

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

请让我知道这些建议是否解决了问题

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用于唤醒芯片。
根据DA14580 Dev kit 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_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的性能问题,可以解决。

问候,
总裁。

MT_dialog
离线
最后看到:2个月2周以前
工作人员
加入:2015-06-08 34
嗨Nitish W,

嗨Nitish W,

我已经对HCI fw进行了测试(取决于你对流量控制的配置,没有流量控制/有流量控制),就我所知,你不需要定义CFG_EXTERNAL_WAKEUP,除非你使用一个额外的针来唤醒设备。检查HW_CONFIG是否被设置为与pro dk一起工作,并确保你发出HCI命令的终端启用了RTS/CTS流控制。在我的一边与专业套件测试,为获得bd地址和重置命令的命令的响应是正确的,我没有看到命令和响应之间的任何延迟。此外,由于设备只在休眠状态下工作,我可以假设流量控制有问题,所以请确保您已经从发送HCI命令的终端启用了它。

由于MT_dialog

Nitish W
离线
最后看到:2年10个月前
加入:2017-08-30 09:49
嗨,支持团队,

嗨,支持团队,

首先,我无法在网站上发布新的查询。
其次,我在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.现在使用SmartSnippets工具箱与Jtag配置Da14585选项被选中,打开设备并选择'Booter'工具。
-使用DA14585\DA14585_SDK\6.0.4.326\projects\target_apps\hci\hci\Keil_5\out_585\hci_585使用keil生成的十六进制二进制文件。
3.下载后fw成功。
4.在DA585上运行我的主机堆栈,然后主机应用程序启用ble扫描,然后启用ble广告。但是发布启用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
prepare_cmd: params [5] = 0 x0
prepare_cmd: params [6] = 0 x0
prepare_cmd: params [7] = 0 x0
prepare_cmd: params [8] = 0 x0
prepare_cmd: params [9] = 0 x0
prepare_cmd: params [10] = 0 x0
prepare_cmd: params [11] = 0 x0
prepare_cmd: params [12] = 0 x0
prepare_cmd: params [13] = 0 x7
prepare_cmd: params [14] = 0 x0
总裁:x200a prepare_cmd:操作码= 0

prepare_cmd: params [0] = 0 x1
CC_evt:操作码= 0 x2008 = 0 x00地位

CC_evt:操作码= 0 x2006 = 0 x00地位

CC_evt:操作码= 0 x200a = 0 x0c地位

5.但是当执行相同的adv enable命令而不发出BLE scan enable命令时,它就成功了。我认为这是问题的根本原因。请确认这个问题,并分享给我们这个问题的修复。

注意:
1.同样的主机应用程序和堆栈运行在不同的ble控制器上。发布的命令符合BT 5.0规范。
2.附加hci命令和事件发送和接收到控制器,以供参考。

谢谢,
总裁

MT_dialog
离线
最后看到:2个月2周以前
工作人员
加入:2015-06-08 34
嗨Nitish W,

嗨Nitish W,

关于你不能发布新问题的事实,请打开支持论坛的三个主要类别中的一个,应该有一个黑色按钮指示“新主题”,你能看到。

关于你的第二个问题,585的BLE堆栈不支持同时扫描和广告,当你连接时,你可以扫描或广告,但不能同时广告和扫描。那么,在开始新的广告或相应的扫描之前,你是否已经停止了扫描或广告?

由于MT_dialog