深度睡眠睡眠障碍

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
16个帖子/ 0新
最后一篇
玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
深度睡眠睡眠障碍

你好对话框!

我们希望为DSP启用深度睡眠模式,我们已在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,我们已经更改为:

#define cfg_uart_hw_flow_ctrl.
#undef cfg_uart_hw_flow_ctrl.

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

任何进一步的帮助,我有actached图像。

提前致谢,
玛罗斯

设备:
PM_DIALOG.
离线
最后一次露面:17小时56分钟前
职员
加入:2018-02-08 11:03
嗨玛丽奥斯,

嗨玛丽奥斯,

DSP参考应用程序代码不支持深度睡眠配置。除了深度睡眠模式的需求还需要燃烧到OTP。请检查介绍部分UM-B-038:对话串口配置文件用户手册(DA14580)来自我们的支持页面的用户手册。中央和外围设备都可以在活动模式下或延长睡眠而不是深度睡眠模式操作。通过拒绝cfg_development_debug,您可以禁用调试模式,因此您无法热热连接调试器并获得调试信息。例如,如果将发生硬肢或NMI,则无法捕获它。此外,如果启用CFG_DEVELINMENT_DEBUG,则可以在不编程OTP内存的情况下模拟深度睡眠模式,但是NI DSPS应用程序,因为我已经提到,不支持深度睡眠。关于CFG_UART_HW_FLOW_CTRL定义,请阅读用户手册的5.1.3部分。DSP提供了软件(XON / XOFF)和硬件(RTS / CTS)流控制方案,分别由user_periph_setup.h配置文件中的cfg_uart_sw_flow_ctrl和cfg_uart_hw_flow_ctrl定义选择。请您可以在开发模式下运行代码,热连接调试器,并找到代码在设备进入睡眠模式时崩溃的原因>如果代码由于硬盘驱动器之后,设备永远不会醒来的最可能原因或者是NMI,所以它停止广告,您无法使用DSP移动应用程序发现它。请首先在扩展睡眠模式下配置您的设备,并定义CFG_DEVELVEMMENT_DEBUG。

谢谢,PM_DIALOG.

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好谢谢你的快速

你好,谢谢你的快速回复!!
是的,你有权利我的意思是延长睡眠模式!

我们希望DA14580进入我们知道在DSP中所用的扩展睡眠模式,
优化能耗。

我们在我们的自定义板上使用外部Atmel处理器一切都在活动模式下运行良好。

如何获得DA14580进入睡眠?

1)当不是手机中的删除过程时,DA 14580睡觉
2)
如果我们从手机发现,那么醒来并恰好
和传输数据

现在我们有600 ua

提前致谢,
玛罗斯

PM_DIALOG.
离线
最后一次露面:17小时56分钟前
职员
加入:2018-02-08 11:03
嗨玛丽奥斯,

嗨玛丽奥斯,

要将DA14580获取扩展睡眠模式,您应该使用正确的定义为user_config.h头文件配置App_default_sleep_mode值。请检查以下代码片段:

  • 扩展睡眠模式配置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;

请注意,设备在广告/连接间隔之间睡眠。你能澄清一下:“如果我们从手机上发现,然后唤醒和连接?要获取有关DSP参考应用程序代码的更多信息,请阅读UM-B-038:对话串口配置文件用户手册(DA14580)来自我们的支持页面的用户手册。在本文档中,您将能够了解DSP的体系结构和软件实现细节。如果您发现上述任何答案有用请标记其中一个接受。

谢谢,PM_DIALOG.

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

你能从你身边检查代码吗?

请帮助我们将这种巨大的顽固消耗Slove为600 ua

我怎么能把dsps项目发给你在你这边测试,因为我不能在论坛上上传超过10mb。

我们希望获得1,6 ua或类似的东西。

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

我的一些照片。

谢谢你的珍贵帮助!

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

提前,
玛罗斯

附件:
PM_DIALOG.
离线
最后一次露面:17小时56分钟前
职员
加入:2018-02-08 11:03
嗨玛丽奥斯,

嗨玛丽奥斯,

当设备处于休眠模式而没有任何活动时,可以实现~1.6uA的功耗。DSPS的例子并不会陷入永久睡眠,而是会根据广告和连接间隔持续醒来并进入睡眠,所以没有办法看到~1.6uA的功耗。这意味着该设备在广告和连接间隔之间进入了长时间睡眠状态。另外,DSPS示例使用UART来接收和发送数据,因此功耗将大大增加。你能澄清一下你使用的是外部SPI闪光灯吗?如果是,请注意,如果您不将其断电(通过flash的断电命令- spi_flash_power_down()),您的板上的SPI flash也会增加功耗。如果您有一个定制的板,正如我可以从pdf中看到的,我强烈建议您检查您的板中是否有任何增加功耗的组件。不需要上传您的DSPS项目,因为增加功耗的最可能的原因不是来自DSPS代码。另外,你能告诉我600uA的电流消耗是什么时候得到的吗?什么时候发送或接收数据? Please, try to review your PCB first.

谢谢,PM_DIALOG.

玛罗斯
离线
最后一次露面:4个月6天前
加入: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更改为P 1_3,因为我们在SPI Flash期间发生冲突就是这样

隐窝?

有关这一点的任何建议吗?我们可以用来避免与SPI冲突?

RX GPIO引脚P0_4仍然默认为仍然存在。

我们还没有连接CTS和RTS引脚是这种销钉的推销,可以使用HW流量控制吗?

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

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

3)我们已经测量了我们的电路板,没有DA14580芯片24 UA的正常功耗

提前致谢,
玛罗斯

附件:
PM_DIALOG.
离线
最后一次露面:17小时56分钟前
职员
加入:2018-02-08 11:03
嗨玛丽奥斯,

嗨玛丽奥斯,

  1. 如果您想从SPI Flash启动,请澄清您是否可以澄清?如果是,请注意DA14580靴子标准GPIOS。请检查表1的AN-B-001: DA14580/581/583从串口启动来自我们的支持门户的文档。
  2. 您已经正确配置了UART TX GPI,您可以使用任何您想要的UART配置引脚。如果你使用HW流量控制,你应该连接CTS/RTS引脚。
  3. 增加功耗的最可能的原因是,您可能有一个电流泄漏到您的板。由于您将设备配置为扩展睡眠模式,因此不应该有600uA的功耗,所以我认为这是一个基于软件的问题。您测量的消耗是在发送或接收数据时吗?正如我已经提到的,DSPS项目并不是永久地进入延长睡眠状态。你能告诉我你是否能连接到DSPS android应用程序,如果你能发送/接收数据?我强烈建议您使用SDK的ble_app_sleepmode示例,并测量设备进入睡眠模式后的功耗。哪个是使用这个SDK示例的功耗?
  4. 如果取消定义CFG_DEVELOPMENT_DEBUG,请注意,您将不能热连接调试器。

谢谢,PM_DIALOG.

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!由于您在附加的图像上看到,我们最终终于使用上述配置进行了预期的低功耗。但是,当我们在扩展睡眠模式时,我们无法将任何数据收到到另一边。当我们处于活动模式时,一切都按预期工作。

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

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

提前致谢,
玛罗斯

PM_DIALOG.
离线
最后一次露面:17小时56分钟前
职员
加入:2018-02-08 11:03
嗨玛丽奥斯,

嗨玛丽奥斯,

请检查user_perip_setup .c文件中的GPIO_reservations()和set_pad_functions()函数,您将发现UART gpio的设置。如果你决定使用硬件流控制,你应该使用CTS/RTS引脚。请检查CFG_UART_HW_FLOW_CTRL是否定义在user_外围_setup.h头文件中?此定义启用/禁用硬件流控制。此外,我强烈建议您检查DSPS是否工作正确使用我们的DSPS移动应用程序,并尝试发送一些字节到您的设备。你能看到你的设备在做广告吗?

谢谢,PM_DIALOG.

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

1)是的DA14580广告,我们可以与之连接。
2)我们将数据与DSP应用程序发送,另一边没有任何东西。

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

我们已阅读UM-B-038:对话框串口配置文件(DA14580),但尚不清楚。
你能否介绍有关情况?

CTS/RTS握手的时间图是什么,以确定何时需要高或低来启动和停止从DSPS应用程序接收DA14580的数据?

/ * *
****************************************************************************************
*
* @file user_periph_setup.h.
*
* @brief外设设置头文件。
*
*版权(C) 2012。雷竞技电竞平台对话半导体有限公司,未出版作品。这台电脑
*计划包括机密,专有信息,是一个商业秘密
*对雷竞技电竞平台话半导体有限公司禁止所有使用,披露和/或复制
*除非得到书面授权。保留所有权利。
*
*和贡献者。
*
****************************************************************************************
* /

#ifndef _user_periph_setup_h_
#define _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.
#define cfg_uart_hw_flow_ctrl.

///可用波特率115200、57600、38400、19200、9600
#定义CFG_UART_SPS_BAUDRATE UART_BAUDRATE_9K6
/ *启用WKUPCT。wkupct_quadec驱动所需。* /
#define wkup_enabled.

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

#define gpio_uart1_tx_port gpio_port_0.
#define gpio_uart1_tx_pin gpio_pin_4.
#定义GPIO_UART1_RX_PORT GPIO_PORT_1
#define gpio_uart1_rx_pin gpio_pin_3.
#定义GPIO_UART1_RTS_PORT GPIO_PORT_0
#define 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.
#define gpio_uart2_tx_port gpio_port_1.
#定义GPIO_UART2_TX_PIN GPIO_PIN_2

#定义GPIO_UART2_RX_PORT GPIO_PORT_1
#define gpio_uart2_rx_pin gpio_pin_3.
# endif
/ *
*功能声明
****************************************************************************************
* /

void periph_init(空白);

void gpio_reservations(无效);

#endif // _user_periph_setup_h_

提前致谢,
玛罗斯

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 34
嗨腻过,

嗨腻过,

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

谢谢mt_dialog.

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

谢谢你的含量信息!

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

2)还可以使用HW流量控制而没有这些引脚?CTS / RTS是我们可以做的事情,因为我们仅用于来自DA14580的接收数据而不传输。

谢谢 !!!
很高兴很快听到你的声音!
玛罗斯

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 34
嗨玛丽奥斯,

嗨玛丽奥斯,

  1. sw流控制有缺点,当使用扩展休眠操作时,它的部分支持只能控制DA14580的输入数据,任何输入的XON/XOFF将在休眠期间被忽略(这也在UM-B-038中提到)。在活动模式下完全支持软件流程控制。
  2. HW流量控制是CTS/RTS引脚,没有CTS/RTS引脚,你只有UART没有流量控制。

由于MT_Dialog

玛罗斯
离线
最后一次露面:4个月6天前
加入:2017-05-09 20:27
你好PM_Dialog !

你好PM_Dialog !

感谢您的快速回复!

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

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

当DA14580没有传输数据时,我们希望来自DA14580的RTS信号恒定恒定,当DA14580具有传输RTS信号时,应低电平。
。我们已经观察到,当BA14580之前的DA14580在配对之前,每个1秒钟都低于广告时段。这会导致许多问题醒来
我们的控制器无缘无故。与DA14580配对时,我们观察RTS信号的快速变化。这会导致唤醒处理器的问题。只有在DA14580时
接收数据以传输RTS信号稳定恒定。因此,我们必须更改DA14580软件,以便在广告和剪辑期间在RTS处具有稳定的高电平信号。

请回复我们如何影响DA14580软件以具有RTS信号陈旧的Bahavior。

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

非常感谢您对我们的要求感兴趣
很高兴引导我们实现这一目标
提前致谢 ,
玛罗斯

附件:
mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 34
嗨玛丽奥斯,

嗨玛丽奥斯,

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

谢谢mt_dialog.