你好对话!
我们希望为DSP启用深度睡眠模式,我们已将kel项目中用户_config.h上的配置值更改为
const static sleep\u state\u t app\u default\u sleep\u mode=ARCH\u EXT\u sleep\u ON;
我们还在config_basic.h中禁用了调试模式
# undef CFG_DEVELOPMENT_DEBUG
在keil上的user_periph_setup.h,我们已更改为:
#定义CFG\u UART\u HW\u FLOW\u CTRL
# undef CFG_UART_HW_FLOW_CTRL
当我们打开divice时,我们有一个电池驱动的设备,我们有一个10秒的广播,可能会进入睡眠状态,但当我们使用dsps应用程序发现时,再也不会醒来。
任何进一步的帮助非常感谢我有阿塔奇图像。
提前感谢,,
腻过
关键词:
设备:
嗨腻过,
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_periph_setup.h配置文件中的CFG_UART_SW_flow_CTRL和CFG_UART_HW_flow_CTRL定义选择。请在开发模式下运行代码,热连接调试器,并查找设备进入睡眠模式时代码崩溃的原因>最可能的原因由于硬件故障或NMI导致代码停止后,设备将永远不会唤醒,因此它将停止播发,并且您无法使用DSPS移动应用程序发现它。请先将您的设备配置为扩展睡眠模式,然后定义CFG_DEVELOPMENT_DEBUG。
谢谢,下午好
您好,谢谢您的快速回复!!
是的,你有权利,我的意思是延长睡眠模式!
我们希望Da14580进入扩展睡眠模式,我们知道该模式在DSP中受支持,
优化电力消耗。
我们在定制板上使用外部atmel处理器,在活动模式下一切正常。
如何让DA14580进入睡眠?
1) 当没有从电话中进行descover处理时,DA14580进入睡眠状态
2)
如果我们从电话中发现,然后醒来联系
并传输数据
现在我们有600个uA
提前感谢,,
腻过
嗨腻过,
为了使DA14580进入扩展睡眠模式,您应该在user_config.h头文件中配置app_default_sleep_mode值,并使用正确的定义。请检查下面的代码片段:
请注意,设备在广告/连接间隔之间进入睡眠状态。请你澄清一下:如果我们从电话中发现,然后醒来并连接”? 有关DSPS参考应用程序代码的更多信息,请阅读UM-B-038:对话框串行端口配置文件用户手册(DA14580)用户手册从我们的支持页。在本文档中,您将能够了解DSPS的架构和软件实现细节。如果你发现上面的任何一个答案有用,请标记其中一个为接受。
谢谢,下午好
你好,PM_对话!
谢谢你的快速回复!
你能从你那边检查密码吗?
请帮助我们解决600 uA的巨大电流消耗
我如何能发送你的dsps项目测试在你的一边,因为我不能上传超过10 Mb的论坛。
我们希望达到1.6 uA或类似的水平就可以了。
在活动和延长睡眠模式下,我们的当前消耗量相同。
我有一些照片。
提前感谢您宝贵的帮助!
很高兴很快听到你的声音!
提前
腻过
嗨腻过,
大约1.6uA的功耗是在设备处于完全没有活动的休眠模式时实现的。DSPS的例子并没有进入永久的睡眠状态,而是根据其广告和连接间隔不断地醒来和进入睡眠状态,所以没有办法看到~1.6uA的功耗。这意味着该设备在广告和连接间隔之间进入了长时间的休眠。另外,DSPS示例使用UART来接收和发送数据,因此功耗会大大增加。请问您是否使用外部SPI闪光灯?如果是,请注意,如果您不将其下电(通过flash的下电命令- spi_flash_power_down()),则单板上的SPI flash也会增加功耗。如果你有一个自定义板,因为我可以看到从pdf,我强烈建议你检查你的板是否有任何组件增加功耗。不需要上传您的DSPS项目,因为增加功耗的最可能的原因不是来自DSPS代码。另外,您能告诉我600uA的current consumption是什么时候收到的吗?当你发送或接收数据时? Please, try to review your PCB first.
谢谢,下午好
你好,PM_对话!
谢谢你的快速回复!
1) 是的,我们正在使用dialog(Smartbond w25x20CL)推荐的外部spi闪存
我已经在我们的定制板上附上了da14580的总体源代码配置和功耗。
2)我们已经改变了UART TX GPIO从默认PO_5到p1_3,因为我们有冲突spi flash是
正确吗?
有什么建议吗?为了避免与spi冲突,我们可以使用哪个pin?
RX GPIO管脚P0_4保持默认状态。
我们还没有连接cts和rts引脚,这些引脚使用HW流量控制是必要的吗?
正如你在上一篇文章中提到的“(通过flash-spi_flash_power_down())的掉电命令
我们添加或配置此参数的部分代码?
3)我们测量了我们的板,在没有DA14580芯片24ua的情况下,它的功耗正常
提前感谢,,
腻过
嗨腻过,
谢谢,下午好
你好,PM_对话!
谢谢您的快速回复!我们最终存档了低功耗的预期与上述配置,如您所见的附件图像。但是当我们处于长时间睡眠模式时,我们无法接收到任何数据到对方。当我们处于活动模式时,一切都按预期工作。
系统广播,我们可以连接并尝试发送数据,但没有成功。
1) 我们使用硬件流控制。如何设置CTS和RTS引脚?
2)这个引脚需要连接到我们的Atmel处理器上,如果是,需要高或低?
3)没有这些引脚我们可以使用HW流量控制吗?如果有,怎么做?
提前感谢,,
腻过
嗨腻过,
请检查user_periphu_setup .c文件中的GPIO_reservations()和set_pad_functions()函数,您将发现UART gpio的设置。如果你决定使用硬件流控制,你应该使用CTS/RTS引脚。请检查user_peripher_setup .h头文件中是否定义了CFG_UART_HW_FLOW_CTRL ?这个定义启用/禁用硬件流控制。另外,我强烈建议您使用我们的DSPS移动应用程序检查DSPS是否正常工作,并尝试发送一些字节到您的设备。你能看到你的设备在做广告吗?
谢谢,下午好
你好,PM_对话!
谢谢您的快速回复!
1) 是的,DA14580广告,我们可以与之联系。
2) 我们使用dsps应用程序发送数据,但另一端没有任何数据。
如何使用CTS和RTS引脚与atmel处理器的正确连接是什么?
我们已经阅读了UM-B-038:Dialog串行端口配置文件(DA14580)的用户手册,但不清楚。
你能给我们更多的信息吗?
CTS/RTS握手的时序图是什么,以确定何时需要高或低,以启动和停止从DSPS应用程序接收DA14580数据?
/**
****************************************************************************************
*
*@file user\u periph\u setup.h
*
* @brief外设安装头文件。
*
*版权所有(C)2012。Dialog半导体雷竞技电竞平台有限公司,未出版作品。此计算机
*程序包括机密、专有信息,是商业秘密
* 雷竞技电竞平台Dialog半导体有限公司禁止使用、披露和/或复制
*除非得到书面授权。保留所有权利。
*
*和贡献者。
*
****************************************************************************************
*/
#ifndef\u用户\u外围\u设置\u_
#定义(用户)(外围)(设置)_
/*
*包含文件
****************************************************************************************
*/
# include“rwip_config.h”
#包括“全球io.h”
# include“arch.h”
# include“da1458x_periph_setup.h”
#包括“i2c_eeprom.h”
/*
*定义
****************************************************************************************
*/
# undef CFG_UART_SW_FLOW_CTRL
#定义CFG\u UART\u HW\u FLOW\u CTRL
///可用波特率1152005760038400192009600
#定义CFG_UART_SPS_波特率UART_波特率_9K6
/ *启用WKUPCT。wkupct_quadec驱动程序需要。*/
#定义WKUP_ENABLED
/****************************************************************************************/
/* UART配置*/
/****************************************************************************************/
#定义GPIO_UART1_TX_PORT GPIO_PORT_0
#定义GPIO_UART1_TX_PIN GPIO_PIN_4
#定义GPIO\U UART1\U RX\U端口GPIO\U端口\U 1
#定义GPIO_UART1_RX_引脚GPIO_引脚3
#定义GPIO\U UART1\U RTS\U端口GPIO\U端口\U 0
#定义GPIO_UART1_RTS_PIN GPIO_PIN_3
#定义GPIO\U UART1\U CTS\U端口GPIO\U端口\U 0
#定义GPIO\U UART1\U CTS\U引脚GPIO\U引脚2
/****************************************************************************************/
/*UART2 GPIO配置*/
/****************************************************************************************/
# ifdef CFG_PRINTF_UART2
#定义GPIO_UART2_TX_PORT GPIO_PORT_1
#定义GPIO_UART2_TX_PIN GPIO_PIN_2
#定义GPIO\U UART2\U RX\U端口GPIO\U端口\U 1
#定义GPIO_UART2_RX_PIN GPIO_PIN_3
#恩迪夫
/*
*函数声明
****************************************************************************************
*/
无效周界初始(无效);
作废GPIO_预订(作废);
# endif / / _USER_PERIPH_SETUP_H_
提前感谢,,
腻过
你好,马里奥斯,
参考设计使用的RTS/CTS是带有H/W流量控制的标准UART, ATMEL的RTS到580的CTS和相应的连接
用于580的RTS和ATMEL的CTS。只要外部处理器fw或控制ATMEL上UART的任何东西使用HW流量控制遵守UART协议,您就应该能够通信。我建议首先尝试使用FTDI电缆,并按照用户手册(UM-B-038)的建议将DSPS设备与PC连接,或者尝试跟踪580的UART线路,检查580是否确实发送数据,但由于某种原因,您无法在另一端接收数据。文件中还介绍了适当的连接(第8段)。
谢谢你的对话
你好,PM_对话!
谢谢您的快速回复!
谢谢你提供的有用信息!
1)是否有可能使用S/W流量控制
低功耗?如果是,怎么做?
2) 也可以在没有这些引脚的情况下使用硬件流量控制?CTS/RTS是我们可以做的事情,因为我们只用于接收来自DA14580的数据,而不用于传输。
谢谢你! !
很高兴很快听到你的声音!
腻过
嗨腻过,
谢谢你的对话
你好,PM_对话!
谢谢您的快速回复!
我们的处理器处于睡眠状态,等待DA14580唤醒它,当数据可用时,从dsps应用程序,我们如何设置这?
我们已经为硬件流量控制配置了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信号由硬件和软件控制(每当Rx FIFO进入特定阈值时,硬件将自动拉高RTS,以指示另一方不发送任何数据)。如果您想更改此设置,则可以在UART_sps_init()中更改UART配置或从引脚中删除CTS功能。
谢谢你的对话