Eextended Deep Sleep DSP

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
16个职位/ 0个新职位
最后发表
腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
Eextended Deep Sleep DSP

你好对话框!

我们想要为DSPS启用深度睡眠模式,我们已经将kel项目中user_config.h上的配置值更改为

const static sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON;

我们还在config_basic.h中禁用了调试模式

# undef CFG_DEVELOPMENT_DEBUG

在keil上的user_外围_setup.h,我们已经更改为:

#定义CFG_UART_HW_FLOW_CTRL
# undef CFG_UART_HW_FLOW_CTRL

当我们打开设备电源,我们有一个电池操作的设备,我们有一个10秒的广播,可能停止睡觉,但当我们发现与DSPS应用程序。

任何进一步的帮助非常感谢我有附件的图像。

提前谢谢,
腻过

设备:
PM_Dialog
离线
最后看到:17小时43分钟前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

DSPS参考应用程序代码不支持深度睡眠配置。除此之外,深度睡眠模式需要燃烧到OTP。请查看介绍部分UM-B-038:对话串口配置文件用户手册(DA14580)用户手册从我们的支持页面。中央和外围设备都可以在主动模式或延长睡眠模式下运行,而不是在深度睡眠模式下。通过取消定义CFG_DEVELOPMENT_DEBUG,您将禁用调试模式,因此您将不能热连接调试器并获得调试信息。例如,如果出现硬故障或NMI,您将无法捕获它。此外,如果启用了CFG_DEVELOPMENT_DEBUG,您可以在不编程OTP内存的情况下模拟深度睡眠模式,但是正如我已经提到的,ni DSPS应用程序不支持深度睡眠。关于CFG_UART_HW_FLOW_CTRL的定义,请阅读用户手册的5.1.3部分。DSPS提供软件(XON/XOFF)和硬件(RTS/CTS)流量控制方案,分别由user_perip_setup .h配置文件中的CFG_UART_SW_FLOW_CTRL和CFG_UART_HW_FLOW_CTRL定义选择。请您运行您的代码在开发模式中,热附加调试器和找到的原因代码崩溃当设备进入睡眠模式>设备从未醒来最可能的原因是代码停止后由于Hardfault或敝中断,所以它停止广告,你不能发现它与DSPS移动应用程序。请先将设备配置为扩展睡眠模式,并定义CFG_DEVELOPMENT_DEBUG。

谢谢,PM_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好,谢谢你的快速

你好,谢谢你的快速回复!!
是的,你说得对,我是说延长睡眠模式!

我们想让Da14580进入DSPS支持的延长睡眠模式,
有优化的功耗。

我们在自定义板上使用外部atmel处理器,在活动模式下一切工作良好。

如何让DA14580进入睡眠状态?

1)当没有从手机中发现进程时,da 14580进入睡眠状态
2)
如果我们发现从手机,然后醒来和连接
和传输数据

现在我们有600 uA

提前谢谢,
腻过

PM_Dialog
离线
最后看到:17小时43分钟前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

为了使DA14580进入扩展睡眠模式,您应该将app_default_sleep_mode值用正确的定义配置到user_config.h头文件中。请检查下面的代码片段:

  • 扩展睡眠模式配置const static sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON;
  • 激活模式配置const static sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF;

注意设备在广告/连接间隔期间进入睡眠状态。你能解释一下吗?如果我们从手机上发现,然后唤醒和连接?有关DSPS参考应用代码的更多信息,请阅读UM-B-038:对话串口配置文件用户手册(DA14580)用户手册从我们的支持页面。在本文档中,您将能够了解DSPS的体系结构和软件实现细节。如果您认为以上答案有用,请将其中一个标记为已接受。

谢谢,PM_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

你能检查一下你那边的代码吗?

请帮助我们解决这个600 uA的巨大电流消耗

我如何将DSP项目发送到您身边的DSP项目,因为我无法在论坛上上传超过10 MB。

我们想要达到1,6 uA或类似的东西就可以了。

在活跃和延长睡眠模式下,我们有相同的电流消耗。

我附上了一些照片。

预先感谢你宝贵的帮助!

很高兴很快听到你的声音!

提前,
腻过

附件:
PM_Dialog
离线
最后看到:17小时43分钟前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

当设备处于睡眠模式时,实现〜1.6UA功耗,根本没有任何活动。DSP示例不会陷入永久性睡眠,但根据其广告和连接间隔,继续醒来,因此无法看到〜1.6UA功耗。这意味着该设备在广告和连接间隔之间进入延长睡眠。此外,DSP示例使用UART接收和传输数据,因此功耗将相当增加。如果您使用外部SPI Flash,请澄清您是否可以澄清?如果是,请注意,如果您的电路板上的SPI闪光灯也在增加功耗,如果您没有向下电(通过闪存 - SPI_FLASH_POWER_DOWN()的电源掉电命令)。如果您有一个定制板,因为我能从PDF中看到,我强烈建议您检查您的电路板是否有任何组件,可以增加功耗。上传您的DSP项目是不需要的,因为功耗增加的最可能原因不会来自DSPS代码。另外,你能告诉我你什么时候获得600U的电流消耗?传输或接收数据时? Please, try to review your PCB first.

谢谢,PM_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

1) Yes we are using external spi flash memory that is recommended from dialog (Smartbond w25x20CL)

我已经在我们的定制板上附加了da14580的总体源代码配置和功耗。

2)我们已经改变了UART TX GPIO从默认的PO_5到p1_3,因为我们有冲突在spi flash是

corect吗?

有什么建议吗?我们可以用什么来避免与spi发生冲突?

RX GPIO引脚P0_4保持默认值。

我们还没有连接cts和rts引脚,使用HW流量控制需要这个引脚吗?

正如你在前一篇文章中提到的“(通过flash的电源关闭命令- spi_flash_power_down()””二世隔层

我们添加或配置此参数的代码的一部分?

3)我们测量了我们的板,没有DA14580芯片24ua时功耗正常

提前谢谢,
腻过

附件:
PM_Dialog
离线
最后看到:17小时43分钟前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

  1. 你能澄清一下你是否想要从SPI flash启动吗?如果是,请注意DA14580从标准gpio启动。请参阅表格一AN-B-001:从串行接口启动DA14580 / 581/583文档来自我们的支持门户。
  2. 您已正确配置UART TX GPI,您可以使用UART配置所需的任何PIN。如果您使用HW流量控制,则应连接CTS / RTS引脚。
  3. 功耗增加的最可能原因是您可能将电流泄漏到您的电路板中。由于您将设备配置为扩展睡眠模式,因此您不应该有600UA功耗,所以我想它是一个基于软件的问题。您衡量的消耗是您发送或接收数据的情况?正如我已经提到的那样,DSPS项目不会永久进入延长睡眠。如果您能够与DSP Android应用程序连接,请告诉我,如果您能够发送/接收数据,请您知道吗?我强烈建议您使用SDK的BLE_APP_SLEEPMODE示例并测量由于设备进入睡眠模式的功耗。哪个是使用此示例的SDK的功耗?
  4. 如果取消定义CFG_DEVELOPMENT_DEBUG,请注意,您将不能热连接调试器。

谢谢,PM_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!正如你在附件中看到的那样,我们最终归档了上述配置的低功耗。但当我们处于延长睡眠模式时,我们无法接收到另一边的任何数据。当我们处于活动模式时,一切都如预期的那样工作。

系统广播,我们能够连接并试图发送数据,但没有成功。

1)我们使用Hw流量控制。如何设置CTS和RTS引脚?
2)这个引脚需要连接在我们的Atmel处理器上,如果需要,需要高或低?
3)没有这些引脚我们可以使用HW流量控制吗?如果是,怎么做?

提前谢谢,
腻过

PM_Dialog
离线
最后看到:17小时43分钟前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

请在user_periph_setup.c文件中查看gpio_reservations()和set_pad_functions()函数,您将找到UART GPIOS的设置。如果您决定使用硬件流控制,则应使用CTS / RTS引脚。请检查user_periph_setup.h标题文件中是否定义了cfg_uart_hw_flow_ctrl?此定义启用/禁用硬件流控制。此外,我强烈建议您检查DSP是否正在使用DSP移动应用程序正常工作,并尝试向设备发送一些字节。你能看到你的设备是广告吗?

谢谢,PM_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

是的,DA14580广告,我们可以接通。
2)我们用DSPS应用程序发送数据,而另一边什么也没有。

如何使用CTS和RTS引脚什么是正确的连接到我们的atmel处理器?

我们已经阅读了UM-B-038:对话串口配置文件(DA14580)的用户手册,但它并不清楚。
你能给我们更多信息吗?

CTS / RTS握手的时序图是什么时候确定何时需要高或低,以从DSPS复制从DS14580开始和停止读取数据?

/ * *
****************************************************************************************

* @file user_periph_setup.h

* @brief设置外设头文件。

*版权(C) 2012。雷竞技电竞平台对话半导体有限公司,未出版作品。这台电脑
*程序包含机密,专有信息,是商业机密
*天雷竞技电竞平台宇半导体有限公司禁止所有使用、披露和/或复制
*除非书面授权。版权所有。

*和贡献者。

****************************************************************************************
* /

的ifndef _USER_PERIPH_SETUP_H_
#定义_USER_PERIPH_SETUP_H_

/*
*包括文件
****************************************************************************************
* /

# include“rwip_config.h”
# include“global_io.h”
#include“arch.h”
#include“da1458x_periph_setup.h”
# include“i2c_eeprom.h”
/*
*定义
****************************************************************************************
* /

# undef CFG_UART_SW_FLOW_CTRL
#定义CFG_UART_HW_FLOW_CTRL

///可用波特率115200、57600、38400、19200、9600
#定义CFG_UART_SPS_BAUDRATE UART_BAUDRATE_9K6
/ *启用wkupct。wkupct_quadec驱动程序要求。* /
#定义WKUP_ENABLED

/****************************************************************************************/
/* UART配置*/
/****************************************************************************************/

#定义GPIO_UART1_TX_PORT GPIO_PORT_0
#定义GPIO_UART1_TX_PIN GPIO_PIN_4
#定义GPIO_UART1_RX_PORT GPIO_PORT_1
#定义GPIO_UART1_RX_PIN GPIO_PIN_3
#定义GPIO_UART1_RTS_PORT GPIO_PORT_0
#定义GPIO_UART1_RTS_PIN GPIO_PIN_3
#定义GPIO_UART1_CTS_PORT GPIO_PORT_0
#定义GPIO_UART1_CTS_PIN GPIO_PIN_2

/****************************************************************************************/
/* UART2 GPIO配置*/
/****************************************************************************************/

# ifdef CFG_PRINTF_UART2
#定义GPIO_UART2_TX_PORT GPIO_PORT_1
#define gpio_uart2_tx_pin gpio_pin_2

#定义GPIO_UART2_RX_PORT GPIO_PORT_1
#定义GPIO_UART2_RX_PIN GPIO_PIN_3
# endif
/*
*函数声明
****************************************************************************************
* /

空白periph_init(无效);

空白GPIO_reservations(无效);

# endif / / _USER_PERIPH_SETUP_H_

提前谢谢,
腻过

MT_dialog
离线
最后看到:两个月三个星期前
工作人员
加入:2015-06-08 34
嗨腻过,

嗨腻过,

参考设计使用的RTS/CTS是带有H/W流控制的标准UART, ATMEL的RTS转到580的CTS和相应的连接
580的RTS和ATMEL的CTS。只要外部处理器fw或任何控制ATMEL上的UART遵守使用HW流量控制的UART协议,那么你应该能够通信。我建议先尝试使用一个FTDI需求方的电缆和连接设备与PC机用户手册(嗯- b - 038)建议或试图跟踪的UART行580年和580年检查实际上发送数据,但是由于某种原因你不能收到它在另一边。文件中还提出了适当的连接(第8段)。

由于MT_dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

感谢您提供的有用信息!

1)可以使用S / W流量控制并具有
低功耗?如果是,如何处理?

2) Hw流量控制可以不用这些引脚吗?CTS /RTS是我们可以做的事情,因为我们只使用接收数据从DA14580,而不是传输。

谢谢你! !
很高兴很快听到你的声音!
腻过

MT_dialog
离线
最后看到:两个月三个星期前
工作人员
加入:2015-06-08 34
嗨腻过,

嗨腻过,

  1. SW流控制中存在缺点,并且在仅使用扩展睡眠时进行操作时,可以控制其可以控制DA14580,在休眠时间内将忽略任何传入的XON / Xoff(这也在UM-B-038中提到).在活动模式下完全支持软件流量控制。
  2. HW流量控制是CTS / RTS引脚,没有CTS / RTS引脚,您只有UART,根本没有流量控制。

由于MT_Dialog

腻过
离线
最后看到:三个月三个星期前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

我们的处理器处于睡眠状态,等待DA14580唤醒它,当数据从dsps应用程序可用时,我们如何设置这个?

我们已经为HW流量控制配置了cts/rts引脚。

当DA14580没有数据进行传输时,我们希望来自DA14580的RTS信号保持恒定的高电平,当DA14580有数据进行传输时,RTS信号应该保持低电平。
我们已经观察到,当DA14580配对前RTS信号是高的,每1秒周期是广告周期。当它醒来时,这会导致许多问题
我们的控制器没有任何原因。另外,当与DA14580配对时,我们观察到RTS信号的快速变化。这同样会导致外部处理器上的唤醒问题。只有当DA14580
接收数据发送RTS信号稳定恒定低。因此,我们必须改变DA14580软件,以便在广告和配对期间有稳定的RTS高电平信号。

请回复我们是如何影响DA14580软件使RTS信号失效的?

我已附上上述RTS的测量值。

非常感谢您对我们的要求如此感兴趣
很高兴能指导我们实现这一目标
提前感谢,
腻过

附件:
MT_dialog
离线
最后看到:两个月三个星期前
工作人员
加入:2015-06-08 34
嗨腻过,

嗨腻过,

好吧,580当操作与DSPS固件时,当设备醒来,它将切换RTS线到低,以表明它已经准备好了(设备将拉
无论何时RTS低唤醒,在每个连接间隔或广告间隔,也要意识到,当设备正在接收,当传输的数据到达内部FIFO
而RTS便会回到较高的阈值去通知对方它应该停止发送数据)。在DSPS的RTS信号是由HW和软件控制(无论何时Rx FIFO得到一个特定的阈值,HW将自动拉高RTS,以表明对方不发送任何数据)。如果您想改变这一点,那么您可以在uart_sps_init()中改变UART配置,或者从引脚中删除CTS功能。

由于MT_dialog