你好对话框!
我们想为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_peripher_setup .h,我们已经更改为:
#定义CFG_UART_HW_FLOW_CTRL
# undef CFG_UART_HW_FLOW_CTRL
当我们打开设备时,我们有一个电池供电的设备,我们有一个10秒的广播,然后停止,可能会进入睡眠,但永远不会醒来,当我们发现与DSPS应用程序。
任何进一步的帮助,非常感谢我有附图。
提前谢谢,
腻过
设备:
嗨腻过,
DSPS引用应用程序代码不支持深度睡眠配置。除此之外,深度睡眠模式需要燃烧到OTP。请查看介绍部分UM-B-038:对话串口配置文件用户手册(DA14580)用户手册从我们的支持页。中央和外围设备都可以在Active模式或Extended sleep模式下运行,而不是在deep sleep模式下运行。通过取消定义CFG_DEVELOPMENT_DEBUG,您将禁用调试模式,因此您将无法热附加调试器并获取调试信息。例如,如果发生硬故障或NMI,您将无法捕获它。此外,如果启用CFG_DEVELOPMENT_DEBUG,您可以在不编程OTP内存的情况下模拟深度睡眠模式,但是正如我已经提到的,在DSPS应用程序中,不支持深度睡眠。关于CFG_UART_HW_FLOW_CTRL定义,请参见用户手册5.1.3章节。DSPS提供软件(XON/XOFF)和硬件(RTS/CTS)流量控制方案,分别由user_peripheral _setup.h配置文件中的CFG_UART_SW_FLOW_CTRL和CFG_UART_HW_FLOW_CTRL定义选择。请您运行您的代码在开发模式中,热附加调试器和找到的原因代码崩溃当设备进入睡眠模式>设备从未醒来最可能的原因是代码停止后由于Hardfault或敝中断,所以它停止了广告,你无法通过DSPS移动应用程序发现它。请首先将设备配置为扩展睡眠模式,并定义CFG_DEVELOPMENT_DEBUG。
谢谢,PM_Dialog
你好,谢谢你的快速回复!!
是的,你有权利,我的意思是延长睡眠模式!
我们想让Da14580进入我们知道的DSPS支持的扩展睡眠模式,
有优化的功耗。
我们使用外部atmel处理器在我们的自定义板,一切工作良好的活动模式。
如何让DA14580进入睡眠?
1)当不是从一个电话发现进程da14580去睡觉
2)
如果我们从电话中发现,然后醒来并联系
和传输数据
现在我们有600 uA
提前谢谢,
腻过
嗨腻过,
为了使DA14580进入扩展睡眠模式,您应该在user_config.h头文件中配置app_default_sleep_mode值,并使用正确的定义。请检查下面的代码片段:
请注意,在广告和连接之间,设备会进入休眠状态。你能不能澄清一下:如果我们发现从电话,然后醒来和连接”?有关DSPS参考应用程序代码的更多信息,请阅读UM-B-038:对话串口配置文件用户手册(DA14580)用户手册从我们的支持页。在本文档中,您将能够了解DSPS的架构和软件实现细节。如果你发现上面的任何一个答案有用,请标记其中一个为接受。
谢谢,PM_Dialog
你好PM_Dialog !
谢谢您的快速回复!
你能从你那边检查密码吗?
请帮助我们解决这个600 uA的巨大电流消耗
我如何将DSP项目发送到您身边的DSP项目,因为我无法在论坛上上传超过10 MB。
我们希望达到1.6 uA或类似的水平就可以了。
我们在激活和延长睡眠模式下有相同的电流消耗。
我附上了一些照片。
提前感谢您的宝贵帮助!
很高兴听到你的消息!
提前,
腻过
嗨腻过,
当设备处于睡眠模式时,实现〜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
你好PM_Dialog !
谢谢您的快速回复!
1)是的,我们使用的是对话框推荐的外部spi闪存(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
你好PM_Dialog !
谢谢您的快速回复!我们最终存档了低功耗的预期与上述配置,如您所见的附件图像。但是当我们处于长时间睡眠模式时,我们无法接收到任何数据到对方。当我们处于活动模式时,一切都按预期工作。
系统广播,我们能够连接并试图发送数据,但没有成功。
1)我们采用Hw流量控制。如何设置CTS和RTS引脚?
2)这个引脚需要连接到我们的Atmel处理器上,如果是,需要高或低?
3)没有这些引脚我们可以使用HW流量控制吗?如果有,怎么做?
提前谢谢,
腻过
嗨腻过,
请在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
你好PM_Dialog !
谢谢您的快速回复!
1)是的DA14580广告,我们可以联系。
2)我们用DSPS app发送数据,另一边什么也没有。
如何使用CTS和RTS引脚什么是正确的连接到我们的atmel处理器?
我们已经阅读了UM-B-038:对话串行端口配置文件(DA14580)用户手册,但它不清楚。
你能给我们更多信息吗?
CTS / RTS握手的时序图是什么时候确定何时需要高或低,以从DSPS复制从DS14580开始和停止读取数据?
/**
****************************************************************************************
*
* @file user_periph_setup.h
*
* @brief外设安装头文件。
*
*版权所有(C) 2012。雷竞技电竞平台Dialog半导体有限公司,未发表的作品。这台电脑
*程序包括机密、专有信息,是商业秘密
* 雷竞技电竞平台Dialog半导体有限公司禁止使用、披露和/或复制
*除非书面授权。版权所有。
*
*和贡献者。
*
****************************************************************************************
* /
的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_
提前谢谢,
腻过
嗨腻过,
参考设计使用的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
你好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信号失效的。
我已附上RTS的上述测量值。
非常感谢您对我们的要求的极大兴趣
很高兴能指导我们实现这一目标
先谢谢你,
腻过
嗨腻过,
嗯,580当操作与DSPS固件时,当设备醒来时,它将切换RTS线到低,以表明它准备好了(设备将拉
当它醒来时,RTS低,在每个连接间隔或广告间隔,也要意识到当设备接收,当传输的数据到达内部FIFO
阈值,RTS将回到高,通知另一方它应该停止发送数据)。在dsp中,RTS信号是由HW和软件控制的(无论何时Rx FIFO得到一个特定的阈值,HW将自动拉高RTS,以指示另一方不发送任何数据)。如果您想要更改这一点,那么您可以在uart_sps_init()中更改UART配置,或者从大脚中删除CTS功能。
由于MT_dialog