你好对话!
我们想要为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.
在ysel_periph_setup.h上,我们已更改为:
#定义CFG_UART_HW_FLOW_CTRL
#undef cfg_uart_hw_flow_ctrl.
当我们对DIV的电源时,我们有电池供电设备,我们播出了10秒钟,并且停止可能会睡觉,但是当我们发现DSP应用程序时从未再次唤醒。
任何进一步的帮助非常感谢我有附件的图像。
提前谢谢,
玛罗斯
关键词:
设备:
嗨玛丽奥斯,
DSP参考应用程序代码不支持深度睡眠配置。除了深度睡眠模式的需求还需要燃烧到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
你好谢谢你的快速回复!!
是的,你有权利我的意思是延长睡眠模式!
我们想让Da14580进入DSPS支持的延长睡眠模式,
优化能耗。
我们在自定义板上使用外部atmel处理器,在活动模式下一切工作良好。
如何获得DA14580进入睡眠?
1)当没有从手机中发现进程时,da 14580进入睡眠状态
2)
如果我们发现从手机,然后醒来和连接
并传输数据
现在我们有600 uA
提前谢谢,
玛罗斯
嗨玛丽奥斯,
要将DA14580获取扩展睡眠模式,您应该使用正确的定义为user_config.h头文件配置App_default_sleep_mode值。请检查以下代码片段:
注意设备在广告/连接间隔期间进入睡眠状态。你能解释一下吗?如果我们从手机发现,那就醒来并连接”?有关DSPS参考应用代码的更多信息,请阅读UM-B-038:对话框串行端口配置文件的用户手册(DA14580)用户手册从我们的支持页面。在本文档中,您将能够了解DSP的体系结构和软件实现细节。如果您发现上述任何答案有用请标记其中一个接受。
谢谢,PM_Dialog
你好PM_DIALOG!
感谢您的快速回复 !
你能从你身边检查代码吗?
请帮助我们解决这个600 uA的巨大电流消耗
我怎么能把dsps项目发给你在你这边测试,因为我不能在论坛上上传超过10mb。
我们希望获得1,6 ua或类似的东西。
我们在主动和延长的睡眠模式下具有相同的毅力消费。
我附上了一些照片。
预先感谢你宝贵的帮助!
很高兴听到你的声音!
提前,
玛罗斯
嗨玛丽奥斯,
当设备处于休眠模式而没有任何活动时,可以实现~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
你好PM_Dialog !
感谢您的快速回复 !
1)是的,我们正在使用对话框推荐的外部SPI闪存(SmartBond W25X20CL)
我在我们的自定义板上附加了整个源代码配置和DA14580的功耗。
2)我们已经将UART TX GPIO从默认PO_5更改为P 1_3,因为我们在SPI Flash期间发生冲突就是这样
corect吗?
有什么建议吗?我们可以用什么来避免与spi发生冲突?
RX GPIO引脚P0_4仍然默认为仍然存在。
我们还没有连接CTS和RTS引脚是这种销钉的推销,可以使用HW流量控制吗?
正如您在上一篇文章上提到的那样“(通过闪存的电源下降命令 - SPI_FLASH_POWER_DOWN()”II WICH
我们添加或配置此参数的代码的一部分?
3)我们已经测量了我们的电路板,没有DA14580芯片24 UA的正常功耗
提前谢谢,
玛罗斯
嗨玛丽奥斯,
谢谢,PM_Dialog
你好PM_DIALOG!
感谢您的快速回复!由于您在附加的图像上看到,我们最终终于使用上述配置进行了预期的低功耗。但是,当我们在扩展睡眠模式时,我们无法将任何数据收到到另一边。当我们处于活动模式时,一切都按预期工作。
系统广播,我们能够连接并试图发送数据,但没有成功。
1)我们使用Hw流量控制。如何设置CTS和RTS引脚?
2)此引脚需要在我们的Atmel处理器上连接,如果是,则需要高或低?
3)我们可以在没有这些引脚的情况下使用HW流量控制吗?如果是的话怎么样?
提前谢谢,
玛罗斯
嗨玛丽奥斯,
请检查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
你好PM_DIALOG!
感谢您的快速回复!
是的,DA14580广告,我们可以接通。
2)我们用DSPS应用程序发送数据,而另一边什么也没有。
如何使用CTS和RTS PINS到我们的Atmel处理器的正确连接是什么?
我们已经阅读了UM-B-038:对话串口配置文件(DA14580)的用户手册,但它并不清楚。
你能否介绍有关情况?
CTS/RTS握手的时间图是什么,以确定何时需要高或低来启动和停止从DSPS应用程序接收DA14580的数据?
/ **
****************************************************************************************
*
* @file user_periph_setup.h
*
* @brief外设设置头文件。
*
*版权所有(c)2012。Dialog Se雷竞技电竞平台miconductum Ltd,未发表的工作。这台电脑
*计划包括机密,专有信息,是一个商业秘密
*对雷竞技电竞平台话半导体有限公司禁止所有使用,披露和/或复制
*除非得到书面授权。保留所有权利。
*
*和贡献者。
*
****************************************************************************************
* /
的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
#define 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.
#define gpio_uart1_rx_port gpio_port_1.
#定义GPIO_UART1_RX_PIN GPIO_PIN_3
#define gpio_uart1_rts_port gpio_port_0.
#define gpio_uart1_rts_pin gpio_pin_3.
#define gpio_uart1_cts_port gpio_port_0.
#define 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
#define gpio_uart2_rx_port gpio_port_1.
#define gpio_uart2_rx_pin gpio_pin_3.
#万一
/ *
*函数声明
****************************************************************************************
* /
空白periph_init(无效);
空白GPIO_reservations(无效);
#endif // _user_periph_setup_h_
提前谢谢,
玛罗斯
嗨玛丽奥斯,
参考设计用途的RTS / CTS是具有H / W流量控制的标准UART,Atmel的RTS转到580的CT和相应的连接
对于Atmel的580和CTS的RTS。只要外部处理器FW或任何控制Atmel上的UART使用HW流控制符合UART协议,那么您就可以进行通信。我建议首次尝试使用FTDI电缆并将DSP设备与PC连接,因为用户手册(UM-B-038)建议或尝试追踪580的UART行并检查580是否实际发送数据但是某种原因你不能在另一边收到它。同样在文件中还提出了适当的连接(第8段)。
由于MT_dialog
你好PM_DIALOG!
感谢您的快速回复!
谢谢你的含量信息!
1)是否可以使用S/W流量控制
低功耗?如果是的话怎么样?
2) Hw流量控制可以不用这些引脚吗?CTS /RTS是我们可以做的事情,因为我们只使用接收数据从DA14580,而不是传输。
谢谢 !!!
很高兴听到你的声音!
玛罗斯
嗨玛丽奥斯,
谢谢mt_dialog.
你好PM_DIALOG!
感谢您的快速回复!
我们的处理器睡眠状态,等待DA14580唤醒它,当数据从DSPS应用程序中获取数据时我们如何设置这个?
我们已经为HW流量控制配置了cts/rts引脚。
当DA14580没有传输数据时,我们希望来自DA14580的RTS信号恒定恒定,当DA14580具有传输RTS信号时,应低电平。
我们已经观察到,当DA14580配对前RTS信号是高的,每1秒周期是广告周期。当它醒来时,这会导致许多问题
我们的控制器没有任何原因。另外,当与DA14580配对时,我们观察到RTS信号的快速变化。这同样会导致外部处理器上的唤醒问题。只有当DA14580
接收数据以传输RTS信号稳定恒定。因此,我们必须更改DA14580软件,以便在广告和剪辑期间在RTS处具有稳定的高电平信号。
请回复我们如何影响DA14580软件以具有RTS信号陈旧的Bahavior。
我已经上面测量了RTS。
非常感谢您对我们的要求如此感兴趣
很高兴能指导我们实现这一目标
提前感谢,
玛罗斯
嗨玛丽奥斯,
好吧,580当操作与DSPS固件时,当设备醒来,它将切换RTS线到低,以表明它已经准备好了(设备将拉
RTS低于它醒来时,在每个连接间隔或广告间隔中,也请注意,当设备接收时,当数据传输到内部FIFO时
阈值RTS将返回高电平,以通知它应该停止发送数据的另一侧)。在DSP中,RTS信号由HW和软件控制(只要RX FIFO进入特定阈值,HW将自动地拉高RT,以便向另一侧指示不发送任何数据)。如果您想更改此,则可以在UART_SPS_INIT()中更改UART配置,或从PIN中删除CTS功能。
由于MT_dialog