跳过主要内容

SmartBond™DA14585和DA14586

d

SmartBond 5.0:更智能、更灵活、更低功耗

连接设备在不断发展。新一代的手机更智能,功能更齐全,电池寿命更长。为了实现这一点,SmartBond也进行了发展。DA14585和DA14586为设计人员提供了业界领先的DA14580的所有优点,但具有更大的灵活性,可以用最小的占用空间和功耗预算创建更高级的应用程序。雷竞技安卓下载

作为Dialog SmartBond系列的一部分,DA14585&6是最小、最低功耗和最集成的蓝牙®解决方案。这种多功能SoC非常适合在远程控制、邻近标签、信标、联网医疗设备和智能家庭节点等产品中添加低功耗蓝牙。雷电竞官网登录它支持所有蓝牙开发,包括蓝牙5和蓝牙低能量Mesh。此外,DA14585&6拥有96 kB的RAM,为用户应用程序提供了其前身两倍的内存,以充分利用该标准的特性。雷竞技安卓下载它还包括一个集成麦克风接口的声音支持在低额外成本。广泛的供电电压范围(0.9 -3.6 V)涵盖了更大的能源选择,并提供了充分的设计灵活性。

智能债券™ DA14586结合了最低功耗、最小尺寸和最低系统成本的优势,将蓝牙低能耗片上系统与集成闪存结合在一起。此外,DA14586与DA14585是针对针兼容的,因此提供了从闪存到OTP的独特成本下降路径。

与所有SmartBond解决方案一样,DA14585&6易于设计,并支持独立和托管应用程序。雷竞技安卓下载它由一个完整的开发环境和Dialog的SmartSnippets™软件支持,该软件可以帮助您优化软件的功耗。

生命周期状态

忙碌的

特性

符合蓝牙5核心规范

集成One-Time-Programmable记忆

2mb Flash (DA14586)

扩展用户内存(96 kB)

低工作电压(1.8 V至3.6 V)

I2C和PDM音频接口

好处

用于构建复杂应用程序的大内存雷竞技安卓下载

电池寿命最长

适用于蓝牙网

低系统物料清单

雷竞技安卓下载

遥控器

接近标签和跟踪器

灯塔

医疗设备连接

智能家居

人机接口设备

VR控制器

连接传感器

无线充电

QFN-40 (5.0 x 5.0 x 0.9 mm)

wlsp -34 (2.4 x 2.66 x 0.39 mm)

每个季度,我们都将我们的产品、软件开发主题、培训、活动的最佳技术信息捆绑在一起,并将其发送到您的收件箱。雷电竞官网登录

签我
查看以前的版本

保持联系

请直接通过我们的全球销售办事处与我们联系,或与我们的全球分销商和代表联系。

调查 分销商和代表 注册时事通讯
数据表
的名字 日期 版本
AN-B-088: DA145xx闪光灯选择指南(165.93 KB) 28/09/2021 1.4
DA14585数据表(5.06 MB) 15/10/2018 3.3
DA14585 datasheet(数据表(4.96 MB) 06/12/2018 3.2
DA14586数据表(5 MB) 15/01/2018 3.3
产品简短
的名字 日期 版本
SmartBond™DA14585(557.51 KB) 01/01/2016 1.0
SmartBond™DA14585产品简介简体中文(658.36 KB) 01/01/2016 1.0
SmartBond™DA14586产品简介(556.91 KB) 01/01/2016 1.0
SmartBond™DA14586产品简介简体中文(651.05 KB) 01/01/2016 1.0
SmartBond™DA1458x系列产品(2.01 MB) 22/06/2017 1.0
SmartBond™DA1458x系列產品(2.19 MB) 22/06/2017 1.0
SmartBond™DA1458x製品ファミリ(2.16 MB) 22/06/2017 1.0
SDK
的名字 日期 版本
DA14531和DA14585/6的SDK6.0.16.1144(9.47 MB) (仅注册用户) 29/09/2021 6.0.16.1144
SW-B-002 DA14531 SDK Release Notes v.6.0.16.1144(341.82 KB) (仅注册用户) 29/09/2021 6.0.16.1144
SDK用户手册
的名字 日期 版本
DA145xx SDK6 API文档(Doxygen)(5.42 MB) 29/04/2020 SDK6.0.14.1114
SDK6已知限制列表(25.09 KB) 29/04/2021 1.0
UM-B-049 DA14585 & DA14586入门指南与PRO-Development Kit (HTML)(25.09 KB) 02/11/2018 2.1
UM-B-049 DA14585 & DA14586入门指南与PRO-Development Kit (PDF)(2.36 MB) 02/11/2018 2.1
UM-B-119:DA14585-DA14531 SW平台参考(25.09 KB) 10/04/2020 2.0
UM-B-143对话框外部处理器接口(6.15 MB) 11/12/2020 0.2
嗯- b - 146 - da14585 da14531人机交互命令(778.48 KB) 10/11/2020 1.0
开发工具
的名字 日期 版本
SmartSnippets Studio发布说明(304.81 KB) 04/02/2021 2.0.16
SmartSnippets Studio V2.0.16 for Linux OS(872.03 MB) 04/02/2021 2.0.16
macOS的SmartSnippets Studio V2.0.16(497.78 MB) 04/02/2021 2.0.16
SmartSnippets Studio V2.0.16 for Windows OS(707.61 MB) 04/02/2021 2.0.16
SmartSnippets工具箱发布说明(461.34 KB) 04/02/2021 5.0.16
SmartSnippets工具箱V5.0.16 for Linux OS(163.27 MB) 04/02/2021 5.0.16
SmartSnippets工具箱V5.0.16 for Windows OS(123.77 MB) 04/02/2021 5.0.16
UM-B-057 SmartSnippets Studio用户手册(3.07 MB) 04/02/2021 2.0.16
UM-B-083 SmartSnippets工具箱用户手册(25.09 KB) 04/02/2021 5.0.16
UM-B-138: flash编程用户手册(HTML)(25.09 KB) 24/03/2020 1.0
软件应用与示例雷竞技安卓下载
的名字 日期 版本
从Github克隆的例子(25.09 KB)
对话串行端口服务(7.58 KB)
SmartBond™-无代码AT命令(7.58 KB)
软件应用和示例:外雷竞技安卓下载设驱动程序/适配器
的名字 日期 版本
FDC2112电容传感器演示(1.87 MB) 12/09/2019 1.0
单线采用DS18B20温度传感器(702.48 KB) 15/10/2018 1.0
移动应用程序
的名字 日期 版本
对话dsp -源代码- Android(1.73 MB) (仅注册用户) 29/01/2020 3.210.8
对话框DSP-源代码-iOS(6.78 MB) (仅注册用户) 29/10/2019 3.220.6
对话框SmartTags -源代码- Android(3.3 MB) (仅注册用户) 24/10/2019 3.270.6
对话框SmartTags -源代码- iOS(5.05 MB) (仅注册用户) 23/10/2019 3.280.6
对话框SUOTA -源代码- Android(3.03 MB) (仅注册用户) 04/05/2020 3.190.18
对话框SUOTA -源代码- iOS(4.11 MB) (仅注册用户) 04/05/2020 3.200.14
对话语音RCU -源代码- Android(3.35 MB) (仅注册用户) 24/10/2019 3.310.6
生产线工具包
的名字 日期 版本
生产线工具文件(7.58 KB)
应用笔记
的名字 日期 版本
AN-B-007 DA1458x蓝牙直接测试模式(1.28 MB) 02/04/2017 1.2
AN-B-010 DA14580使用SUOTA(空中软件更新)(1.99 MB) 02/12/2016 1.2
AN-B-021 DA1458x WLCSP光敏度(701.54 KB) 22/02/2017 1.2
AN-B-027:设计智能蓝牙打印天线(1.64 MB) 25/06/2020 2.3
AN-B-027:设计打印天线:DXF文件(12.38 KB) 04/04/2017 1.0
AN-B-054: DA14585/586应用硬件设计指南(546.76 KB) 18/05/2018 1.2
AN-B-055: DA14585与外部存储器接口(2.42 MB) 04/08/2020 1.6
白皮书
的名字 日期 版本
蓝牙低能耗遥控器的语音指令(489.87 KB) 01/04/2018 启一个
教程
的名字 日期 版本
BLE广告教程(HTML)(25.09 KB) 25/10/2019 1.0
DA14585/DA14586和DA14531设备上的BLE SUOTA更新(25.09 KB) 13/07/2021 2.2
在DA14531和DA14585/DA14586设备上创建自定义GATT配置文件特征(25.09 KB) 01/04/2020 2.0
入门SDK6 (HTML)(25.09 KB) 07/05/2021 2.1
教程3:自定义配置文件gatt cmd示例(1.09 MB) 03/04/2019 1.2
教程4:睡眠模式电流测量(2.44 MB) 27/03/2017 1.0
教程5:BLE安全示例(2.31 MB) 27/03/2017 1.2
教程6:SUOTA工具ZIP文件(92.68 KB) 24/05/2018 1.0
教程7:DA1458x原型带出指南(1.06 MB) 03/02/2017 1.2
教程8:调试方法(1.19 MB) 27/03/2017 1.1
教程:对于DA14585/586设备,如何更改RAM大小以减少扩展睡眠模式下的功耗(1.32 MB) 17/08/2018 1.0
使用SDK6外围驱动程序(HTML)(25.09 KB) 05/03/2021 1.6
已知的限制列表
的名字 日期 版本
DA1458x硬件已知限制(81.22 KB) 19/01/2018 1.0
FCC, ETSI认证
的名字 日期 版本
DA14585 EN 300 328认证测试报告(578.09 KB) 26/06/2020 2.2.2
DA14585 EN 300 328认证测试报告(1.72 MB) 31/07/2017 2.1.1
DA14585, 586相似声明(242.98 KB) 17/06/2020 2.0
BT团体认证
的名字 日期 版本
DA14585-DA14586 QDID控制器子系统(0字节) 14/02/2017 D034285
DA14585-DA14586 QDID主机子系统(0字节) 14/02/2017 D034283
RoHS,达到
的名字 日期 版本
DA1458x达到宣言(188.37 KB) 22/05/2018 1.0
DA1458x RoHS 2声明(183.6 KB) 22/05/2018 1.0
参考设计和开发工具包文档
的名字 日期 版本
DA14585物联网多传感器套件产品简介(1.59 MB) 01/01/2018 1.0
发布说明DA1458x DA1468x PLT v4.2(222.87 KB) 24/10/2017 PLT v4.2
SmartBond DA14585物联网多传感器开发工具包产品简介(1.26 MB) 26/06/2018 1.0
UM-B-041: SmartBond生产线工具用户手册(5.64 MB) 01/10/2020 4.5
UM-B-089用户手册DA14585范围扩展器参考应用(4.21 MB) 01/08/2019 1.1
之前的软件版本
的名字 日期 版本
SmartSnippets工具箱V5.0.12 for Windows OS(1字节) 14/03/2020 5.0.12
存档
的名字 日期 版本
DA14585/6_Software_Release_Notes_v6.0.10(239.33 KB) 02/08/2018 6.0.10
DA14585/6_Software_Release_Notes_v6.0.8(319.8 KB) 21/05/2018 6.0.8
对话框SmartTags -源代码- Android(3.76 MB) (仅注册用户) 03/04/2017 3.270.2
对话框SmartTags -源代码- iOS(5.05 MB) (仅注册用户) 23/10/2019 3.280
对话框SUOTA -源代码- Android(2.86 MB) (仅注册用户) 24/10/2019 3.190.16
对话框SUOTA -源代码- Android(3.33 MB) (仅注册用户) 31/10/2017 3.19.14
对话框SUOTA -源代码- iOS(4.09 MB) (仅注册用户) 29/10/2019 3.200.12
对话框SUOTA -源代码- iOS(3.93 MB) (仅注册用户) 31/10/2017 3.200.10
低功耗连接软件许可协议(120.04 KB)
为DA14585/6 SDK6.0.10(3.09 MB) (仅注册用户) 02/08/2018 6.0.10
DA14531和DA14585/6的SDK6.0.14.1114(9.45 MB) (仅注册用户) 29/04/2020 SDK6.0.14.1114
为DA14585/6 SDK6.0.8(3.09 MB) (仅注册用户) 21/05/2018 6.0.8
SDK_6.0.12.1020.2 for DA14531 and DA14585/6[包括SDK api文档](9.18 MB) (仅注册用户) 12/12/2019 6.0.12.1020.2
SDK_6.0.12.1020.2_hotfix_001(90.61 KB) (仅注册用户) 06/03/2020 6.0.12.1020.2
SDK_6.0.14.1114_hotfix_001(6.31 MB) (仅注册用户) 15/07/2020 SDK_6.0.14.1114_hotfix_001
SmartSnippets Studio V2.0.10 for Linux OS(810.84 MB) 02/10/2019 2.0.10
SmartSnippets Studio V2.0.10 for Windows OS(575.68 MB) 02/10/2019 2.0.10
SmartSnippets Studio V2.0.12适用于Linux操作系统(1字节) 14/03/2020 2.0.12
SmartSnippets Studio V2.0.12 for Windows OS(1字节) 14/03/2020 2.0.12
SmartSnippets Studio V2.0.14适用于Linux操作系统(870.09 MB) 28/05/2020 2.0.14
macOS的SmartSnippets Studio V2.0.14(496.8 MB) 28/05/2020 2.0.14
SmartSnippets Studio V2.0.14 for Windows OS(705.78 MB) 28/05/2020 2.0.14
SmartSnippets Studio V2.0.7适用于Linux操作系统(834.05 MB) 15/02/2019 2.0.7
SmartSnippets Studio V2.0.7 for Windows OS(604.71 MB) 15/02/2019 2.0.7
SmartSnippets Studio V2.0.8 for Linux OS(834.34 MB) 03/04/2019 2.0.8
SmartSnippets Studio V2.0.8 for Windows OS(607.06 MB) 03/04/2019 2.0.8
SmartSnippets工具箱发布说明(507.24 KB) 27/09/2019 5.0.10
SmartSnippets工具箱V5.0.10 for Linux OS(205.02 MB) 02/10/2019 5.0.10
适用于Windows操作系统的SmartSnippets工具箱V5.0.10(137.45 MB) 02/10/2019 5.0.10
SmartSnippets工具箱V5.0.12 for Linux OS(1字节) 14/03/2020 5.0.12
SmartSnippets工具箱V5.0.14 for Linux OS(162.73 MB) 28/05/2020 5.0.14
SmartSnippets工具箱V5.0.14 for Windows OS(123.2 MB) 28/05/2020 5.0.14
SmartSnippets工具箱V5.0.7 for Linux OS(193.92 MB) 08/02/2019 5.0.7
SmartSnippets工具箱V5.0.7用于Windows操作系统(128.51 MB) 08/02/2019 5.0.7
SmartSnippets工具箱V5.0.8 for Linux OS(194.13 MB) 03/04/2019 5.0.8
SmartSnippets工具箱V5.0.8 for Windows OS(128.72 MB) 03/04/2019 5.0.8
SW-B-002 DA14531 SDK Release Notes v.6.0.12.1020.2(179.09 KB) 12/12/2019 6.0.12.1020.2
SW-B-002 DA14531 SDK发行说明v.6.0.14.1114(315.84 KB) (仅注册用户) 29/04/2020 SDK6.0.14.1114
UM-B-012 DA14580/581/583创建辅助引导加载程序(1.15 MB) 24/08/2016 3.2
UM-B-079 DA14585 & DA14586软件平台参考(SDK 6.0.8)(4.73 MB) 21/05/2018 5.0
UM-B-080 DA14585和DA14586软件开发人员指南(SDK 6.0.8)(4.27 MB) 10/11/2017 5.0
UM-B-082: DA14585 & DA14586 SDK6移植指南(483.24 KB) 21/05/2018 4.0

开发工具包和参考设计

基于DA14585和DA14586的硬件开发工具包
DA14585开发工具包-基本
DA14585开发工具包- Pro
基于DA14585和DA14586的硬件应用重点开发工具包
DA14585语音RCU开发工具包
DA14585物联网多传感器开发工具包
基于DA14585和DA14586的参考设计
DA14585增程器
DA14585瓷砖参考设计
视频缩略图,点击打开并播放

对话框SmartBond™DA14586

最小,最低的功耗和最集成的蓝牙5 SoC与集成的Flash

视频缩略图,点击打开并播放

SmartBond™DA14585 Basic开发工具包

在本视频中,您可以看到如何设置DA14585 Basic开发工具包,并查看它的一些重要功能。

视频缩略图,点击打开并播放

SmartBond™DA14585 Development Kit Pro

开始使用SmartBond™DA14585 Development Kit Pro。这个开发工具包为您提供了开发产品所需的所有灵活性,以最小的占用空间创建更高级的连接应用程序。雷竞技安卓下载

视频缩略图,点击打开并播放

DA14585物联网多传感器套件

使用Dialog的DA14585物联网多传感器套件,以最低功耗和最小占用空间将传感器连接到云

视频缩略图,点击打开并播放

智能债券™ DA14585开发套件专业版

从此开始了解智能债券™ DA14585开发套件专业版。这个开发套件为您提供了开发产品需要的所有灵活性,有助于您开发具有最小尺寸和最低功耗的更先进的连网应用。在此视频中,您将会了解开发套件专业版的内容和若干重要功能,以及了解对话开发工具和如何建立开发环境。

视频缩略图,点击打开并播放

线上工具箱研讨会

模块 关键特性
DA14585 / AzureWave AW-CU362
  • DA14585 BLE5.0 SoC
  • 1 mbit SPI闪光
  • 嵌入式天线
立即购买
DA14585 /英业达ISM14585-L35
  • DA14585 BLE5.0 SoC
  • 板上最多8位SPI闪存
  • 车载可选SkyWorks PA,用于增加发射功率
现在从Digi-Key购买
现在从慕斯购买
DA14585 / Panasonic / PAN1740A
  • 9.0 x 9.5 x 1.8毫米
  • 集成天线和预认证
  • ARM®Cortex®-M0, 96kB SRAM, 64kB OTP
立即购买

立即购买

产品 商店
DA14585 Digikey 逮老鼠 Avnet硅 Avnet我们
DA14586 Digikey 逮老鼠 Avnet硅 Avnet我们
生产线工具包(PLT) Avnet我们
回的结果

DA14585

三个月前

在DA14585上从深度睡眠中醒来

发布的分别Michihiro挂川135点 8回答说
0的问题

你好,

我使用的是DA14585,我的申请是广播广告,也使用深度睡眠来节省电池消耗。

我已经将固件编程到OTP内存中,看看它是否进入深度睡眠和醒来,并再次开始广告。

不幸的是,它没有。

我正在寻找一些线索,解释为什么它没有再次开始做广告。

我正在使用Android的BLE Scanner应用程序接收广告。

当我的自定义板运行时,它接收到一个广告,在触发自定义板上的唤醒中断后,它不接收。

我已经从广告完整函数(user_app_adv_nonconn_complete()函数)调用该函数进入深度睡眠。
我已经定义了EXCLUDE_DLG_MSG(0)(用于发生唤醒回调)

我需要进一步的程序开始广告后,从深度睡眠醒来?

我将把我的代码放在下面。

在我的自定义板上没有XTAL32kHz,所以我已经定义了CFG_LP_CLK到LP_CLK_RCX20和未定义cfg_xtal16m_adaptive_settle

三个月前

分别Michihiro挂川 135点

当我用注释掉的arch_set_deep_sleep()函数启动调试会话时,它不会进入深度睡眠,但它将在唤醒中断后重新启动广告(在我的情况下从GPIO中唤醒)。

src / user_app / user_deep_sleep.c

void put_system_into_deep_sleep(void){//配置唤醒中断按钮app_button_enable();//设置深度睡眠-外部中断唤醒// arch_set_deep_sleep(true);// <——comment out for debug}

下面是我的代码片段的固件,被编程到OTP。(SDK版本为6.0.14.114)

src / user_app / user_deep_sleep.h

/**************************************************************************************** * 选择完成后,设备将进入睡眠模式广告* * - * * CFG_APP_GOTO_DEEP_SLEEP深度睡眠模式CFG_APP_GOTO_HIBERNATION休眠模式(仅DA14531) * *——CFG_APP_GOTO_STATEFUL_HIBERNATION状态休眠模式(仅限DA14531) * *注意:如果没有定义,则系统将进入选定的扩展睡眠模式* * * *如果定义了cfg_app_goto_stateful_hibernate,CFG_STATEFUL_HIBERNATION * *应定义为好(在选择目标“DA14531”- > Asm - > * *条件汇编控制符号- >定义 :) * ****************************************************************************************/ # 定义CFG_APP_GOTO_DEEP_SLEEP #如果定义(CFG_APP_GOTO_DEEP_SLEEP)/**************************************************************************************** * 深度睡眠模式,从深度睡眠中唤醒配置* *选择触发机制从深度睡眠醒来。* * * * - 从运动销CFG_DEEP_SLEEP_WAKEUP_POR——醒来  * * * * - CFG_DEEP_SLEEP_WAKEUP_GPIO——醒来唤醒控制器  * * * * - CFG_DEEP_SLEEP_WAKEUP_RTC——从RTC计时器(只有在DA14531醒来 ) * * * * - CFG_DEEP_SLEEP_WAKEUP_TIMER1——从Timer1(只有在DA14531醒来 ) * * * * 注意:* *硬件复位或电源周期总是会唤醒系统从深度睡眠。* ****************************************************************************************/ # undef CFG_DEEP_SLEEP_WAKEUP_POR #定义CFG_DEEP_SLEEP_WAKEUP_GPIO  /**************************************************************************************** * 深度睡眠模式配置*****************************************************************************************/ # 定义CFG_DEEP_SLEEP_RAM1 PD_SYS_DOWN_RAM_OFF # define CFG_DEEP_SLEEP_RAM2 PD_SYS_DOWN_RAM_OFF # define CFG_DEEP_SLEEP_RAM3 PD_SYS_DOWN_RAM_OFF # define CFG_DEEP_SLEEP_PAD_LATCH_EN假

src / user_app / user_deep_sleep.c

/** **************************************************************************************** * @ 简短的处理深度睡眠时APP_WAKEUP_MSG发送设备出口。按下按钮触发。**************************************************************************************** */ 静态孔隙app_wakeup_cb(空白){/ /如果没有空闲状态,忽略了消息(ke_state_get (TASK_APP) = = APP_CONNECTABLE) {user_app_adv_start ();} } /** **************************************************************************************** * @ 简短的常规系统从睡眠状态恢复。**************************************************************************************** */ 静态孔隙app_resume_system_from_sleep(空白){如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN)) {periph_init ();} if (arch_ble_ext_wakeup_get()) {arch_set_sleep_mode(app_default_sleep_mode);arch_ble_force_wakeup ();arch_ble_ext_wakeup_off ();app_easy_wakeup ();} } /** **************************************************************************************** * @ 短暂的按钮按下回调函数。 Registered in WKUPCT driver. **************************************************************************************** */ static void app_button_press_cb(void) { app_resume_system_from_sleep(); } void app_button_enable(void) { app_easy_wakeup_set(app_wakeup_cb); wkupct_register_callback(app_button_press_cb); wkupct_enable_irq(WKUPCT_PIN_SELECT(GPIO_INPUT_PORT, GPIO_INPUT_PIN), // select pin WKUPCT_PIN_POLARITY(GPIO_INPUT_PORT, GPIO_INPUT_PIN, WKUPCT_PIN_POLARITY_LOW), // polarity low 1, // 1 event 0x3F); // debouncing time = 63ms } #if defined (CFG_APP_GOTO_DEEP_SLEEP) /** **************************************************************************************** * @brief Put the system into deep sleep mode. It demonstrates the deep sleep mode usage * and how the system can wake up from it. Once the system enters deep sleep state * it retains NO RAM blocks. The exit from the deep sleep state causes a system * reboot. * @note The system can wake up from deep sleep by: * - external wake up interrupt, caused e.g. by button press (properly configured GPIO pin) * - power on reset, caused e.g. by button press (properly configured GPIO pin) * - H/W reset button press or power cycle (at any time) * When the system exits deep sleep state, the boot process is triggered. * The application code has to be programmed in an external memory resource or * in the OTP memory, in order for the system to reboot properly. **************************************************************************************** */ void put_system_into_deep_sleep(void) { // Configure button for wake-up interrupt app_button_enable(); // Set deep sleep - external interrupt wake up arch_set_deep_sleep(true); } #endif //(CFG_APP_GOTO_DEEP_SLEEP)

src / user_platform / user_periph_setup.h

/****************************************************************************************/ /* GPIO配置  */ /****************************************************************************************/ # 定义GPIO_INPUT_PORT GPIO_PORT_1 # define GPIO_INPUT_PIN GPIO_PIN_2

src / user_platform / user_periph_setup.c

void set_pad_functions(void){//配置GPIO引脚GPIO_ConfigurePin(GPIO_INPUT_PORT, GPIO_INPUT_PIN, INPUT_PULLUP, PID_GPIO, false);}

src / user_app / user_name_of_my_project.c

struct gapm_start_advertise_cmd *cmd = app_easy_gap_non_connectable_advertise_get_active(); //如果通告被取消,则更改间隔并重新开始通告;switch(curr_state) {case ST_ADV2: //更改发布cmd的间隔->intv_min = MS_TO_BLESLOTS(ADV_INTV_1000MS);// 1s cmd->intv_max = MS_TO_BLESLOTS(ADV_INTV_1000MS);/ / 1 s打破;case ST_ADV1: //更改发布cmd的间隔->intv_min = MS_TO_BLESLOTS(ADV_INTV_100MS);// 0.1s cmd->intv_max = MS_TO_BLESLOTS(ADV_INTV_100MS);/ / 0.1 s打破;案例ST_STOP: arch_ble_ext_wakeup_on ();//将系统放入深度睡眠put_system_into_deep_sleep();返回; default: break; } app_easy_gap_non_connectable_advertise_start(); } }

src / user_config / user_modules_config.h

/***************************************************************************************/ /* 排除一个模块在用户的应用程序代码。*/ /* */ /*(0) -包含模块。模块的消息由SDK处理。*/ /* */ /*(1) -模块被排除。用户必须处理模块的消息。*/ /* */ /*注意:*/ /*这个设置没有作用,如果各自的模块是一个BLE Profile */ /*没有被包含在用户的应用程序中。*/ /***************************************************************************************/ # 定义EXCLUDE_DLG_GAP (0) # define EXCLUDE_DLG_TIMER # define EXCLUDE_DLG_MSG (0) (0) # define EXCLUDE_DLG_SEC # define EXCLUDE_DLG_DISS (0) (0) # define EXCLUDE_DLG_PROXR (0) # define EXCLUDE_DLG_BASS # define EXCLUDE_DLG_FINDL(0)(0) #定义EXCLUDE_DLG_FINDT(0) #define EXCLUDE_DLG_SUOTAR (0) #define EXCLUDE_DLG_CUSTS1 (0) #define EXCLUDE_DLG_CUSTS2 (0)

src / user_config / da1458x_config_advanced.h

/****************************************************************************************/ /* 低功率时钟选择。* / / * -LP_CLK_XTAL32外部XTAL32K振荡器* / / * -LP_CLK_RCX20内部时钟RCX * / / * -LP_CLK_FROM_OTP使用OTP头的选择相应的字段  */ /* */ /* 注意:禁用CFG_XTAL16M_ADAPTIVE_SETTLING国旗当RCX选为LP时钟* / / * OTP的头或SDK。*/ /****************************************************************************************/ # 定义CFG_LP_CLK LP_CLK_RCX20  /****************************************************************************************/ /* 输出Hardfault串行/ UART接口的参数。*/ /****************************************************************************************/ # 定义CFG_PRODUCTION_DEBUG_OUTPUT  /****************************************************************************************/ /* 代码位置选择。*/ /* - CFG_CODE_LOCATION_EXT: Code is loaded from SPI flash / I2C EEPROM / UART */ /* - CFG_CODE_LOCATION_OTP: Code is burned in the OTP */ /*以上选项互斥,必须启用其中一个。*/ /****************************************************************************************/ # undef CFG_CODE_LOCATION_EXT #定义CFG_CODE_LOCATION_OTP  /*****************************************************************************************/ /* 使权力使用XTAL16M自适应解决算法的优化。*/ /*注:XTAL16M自适应稳定算法仅适用于XTAL32K,而不适用于RCX,作为LP时钟。*/ /*****************************************************************************************/ # undef CFG_XTAL16M_ADAPTIVE_SETTLING

src / user_config / da1458x_config_basic.h

/****************************************************************************************************************/ /* 支持开发/调试模式。对于生产模式构建,必须禁用它。*/ /*当启用以下调试特性时,将启用*/ /* -允许模拟OTP镜像到系统RAM。没有对RAM进行实际的写操作,但是花费的时间与发生镜像的时间完全相同。这是为了模仿*/ /*行为,就好像系统代码已经在OTP中,并且镜像在唤醒后发生,*/ /*但(开发)代码仍然驻留在外部源代码中。*/ /* - GPIO保留的验证。*/ /* -在Hardfault和NMI (Watchdog)处理程序中启用调试模块并设置代码在断点中执行。* / / *它允许开发人员热附加调试器调试信息  */ /****************************************************************************************************************/ # undef CFG_DEVELOPMENT_DEBUG  /****************************************************************************************************************/ /* UART控制台打印。如果定义了CFG_PRINTF,将启用串行接口日志记录机制。 */ /* If CFG_PRINTF_UART2 is defined, then serial interface logging mechanism is implented using UART2, else UART1 */ /* will be used. */ /****************************************************************************************************************/ #undef CFG_PRINTF

三个月前

PM_Dialog

嗨分别Michihiro挂川,

感谢您的在线问题和分享代码片段。

您提到设备是从OTP启动的。我看到CFG_DEVELOPMENT_DEBUG未定义,那么如何调试呢?你的设计中有SPI闪光灯吗?您可以编程SPI flash和检查DA14585唤醒。我也会在我这边测试一下,然后告诉你。

谢谢,PM_Dialog

三个月前

分别Michihiro挂川 135点

你好

谢谢您的回复。

是的,在将固件编程到OTP之后,它正在从OTP启动。

之后,我用Keil uVision通过我的项目的J-Link运行调试(对配置标志做了一些更改)。

我已经如下设置了OTP头字段,并且我没有更改SWD enable标志字段(值为JTAG enable,与默认值相同),我认为该字段使我能够运行调试。

的名字 价值
应用程序标记1 是的
应用程序标记2 是的
OTP DMA长度 166C

(OTP DMA Length字段的值设置为应用程序图像的大小除以4(十六进制格式)。)

我复制了原来的项目文件夹,并将其命名为[my_project_name]_for_test(这样我就可以保留原来的项目),并在复制的项目中更改了如下的配置标志以进行调试。

在src / user_config / da1458x_config_advanced.h

#定义CFG_DEVELOPMENT_DEBUG

在src / user_config / da1458x_config_basic.h

#undef CFG_PRODUCTION_DEBUG_OUTPUT #define CFG_CODE_LOCATION_EXT

然后我开始调试会话。

我已经将J-Link连接到我的自定义板上,使用SWD接口进行调试。

抱歉,我的设计中没有SPI闪光灯。

在查看我的程序时,我想知道在将系统置于深度睡眠模式之前调用app_easy_gap_non_connectable_advertise_get_active()函数是否会导致某种问题。

void user_app_adv_nonconn_complete(uint8_t status) {if (status == GAP_ERR_CANCELED) {struct gapm_start_advertise_cmd *cmd = app_easy_gap_non_connec_table_advertise_get_active ();

三个月前

分别Michihiro挂川 135点

你好,

而peripher_init()的代码片段

src / user_platform / user_periph_setup.c

Void peripher_init (Void) {....//设置pad功能set_pad_functions();//初始化I2C模块i2c_init(&i2c_cfg);....}

在深度睡眠之前添加void i2c_release(void)函数的函数调用会有区别吗?

wkupct_enable_irq()函数的恢复时间设置为0x3F (63ms)。

LP_CLK_RCX20设置为低功耗时钟。

这会在peripher_init()中(或之后)引起一些问题吗?

三个月前

PM_Dialog

嗨分别Michihiro挂川,

所以,实际的问题是设备不能从深度睡眠中唤醒使用唤醒控制器。另外,您使用P1_2作为叫醒针。

由于OTP是编程的,我建议编程一个干净的板(空OTP),并通过Keil IDE在调试模式下运行您的代码。当设备从System-RAM引导时,您是否能够复制此行为?例如,在唤醒回调中添加一个断点,断点是否命中?

如果定义了CFG_DEVELOPMENT_DEBUG宏,则可以模拟到System RAM的OTP镜像。

也许代码会堆栈到断言等等。

另外,当您试图通过P1_2唤醒设备时,DA14585是否重置或什么都不做?你能提供一个电源跟踪器吗?

谢谢,PM_Dialog

2个月前

分别Michihiro挂川 135点

你好,下午好

感谢您的回复和关于如何调试的建议。

是的,我的问题是设备不能从深度睡眠中唤醒使用唤醒控制器。

是的,我用P1_2作为叫醒针。

我的项目文件的基础是empty_peripheral_template在projects/target_apps/template,

为了让系统进入深度睡眠模式,我在ble_app_sleepmode和prox_reporter中引用了projects/target_apps/ble_example中的过程。

我可能误解了你上面的评论“既然OTP是编程的,我建议编程一个干净的板(空的OTP)”。

您的意思是将固件编程到定义了“define CFG_DEVELOPMENT_DEBUG”(然后通过Keil IDE在调试模式下运行)的OTP中吗?

我有两个自定义板“此刻”,这两个已经被OTP编程。

除了这两个自定义板,我有一个干净的板(空的OTP) DA14585上,但这不是完全相同的自定义板。

对于这个板(它有空的OTP),我尝试通过Keil IDE运行调试,定义了CFG_DEVELOPMENT_DEBUG。

当我试图通过P1_2唤醒设备时,调用了app_easy_wakeup()函数,

static void app_resume_system_from_sleep(void) {if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)) {pher_init ();} if (arch_ble_ext_wakeup_get()) {arch_set_sleep_mode(app_default_sleep_mode);arch_ble_force_wakeup ();arch_ble_ext_wakeup_off ();app_easy_wakeup ();} }

但并没有触及唤醒回调的断点。它在main()函数中循环,没有断言。(代码不会陷入断言中。)

配置标志如下

#define CFG_DEVELOPMENT_DEBUG #undef CFG_CODE_LOCATION_EXT #define CFG_CODE_LOCATION_OTP

通过功率跟踪,我将其理解为The power measurement of The SmartSnippets Tools > power Profiler,或通过某种测量工具来测量电流。

我恐怕不能提供功率跟踪,因为我既没有DKs也没有测量低电流的测量工具。

2个月前

分别Michihiro挂川 135点

你好

当固件被编程到OTP时,什么可能是不开始从深度睡眠醒来的原因?

我可以在哪里查看?

2个月前

PM_Dialog

嗨分别Michihiro挂川,

我为耽搁道歉。可能是唤醒控制器配置不当。

我将在这个论坛线程私下联系你。

谢谢,PM_Dialog