⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support.我们将在未来几天内修复bug/优化搜索和标记。
17个员额/0个新员额
最后一篇文章
离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
睡眠模式集成

嗨,团队,

我已经在SDK 5.0.2.1中使用ble_app_peripheral示例进行UART数据传输。
我需要在ble_app_外围设备示例中添加睡眠模式功能。
要求是,,
当我从外部MCU(通过任何GPIO引脚)发送GPIO中断时,现有代码应该进入睡眠模式。
(默认睡眠应该关闭,它应该发送/接收数据,外部MCU将在运行时设置/ON睡眠模式)
我还想禁用/唤醒睡眠模式使用相同的gpio引脚像切换。

请分享你对这个ASPS的看法。

谢谢

设备:
离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

请分享你对这个ASPS的看法。

谢谢

IBA_对话框
离线
最后一次见到:3周6天前
工作人员
加入:2018-01-02 45
嗨,嘎,

嗨,嘎,

感谢您对DA14580的关注,

支持DA14580的最新SDK版本是5.0.4版本,您可以参考它。

我们已经提供了一个应用程序ble_应用程序_睡眠模式演示如何使用
睡眠模式API,并在运行时更改睡眠模式。DA14580有两种睡眠模式:
● 延长睡眠模式
●深度睡眠模式

在示例中,用户可以通过按下一个按钮来唤醒设备。按下按钮后,设备将开始再次广告预定的时间,然后去睡觉。

例如,您可以使用/添加这些API。

如果您还有什么问题,请告诉我们。

当做

IBA_对话框

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

谢谢你的支持,

根据您的建议,我使用from pressing按钮进行了唤醒。(如果按下按钮,则只调用一次唤醒回调)
它通过使用唤醒中断处理程序(wkupct_register_callback(app_button_press_cb))和(wkupct_enable_irq())工作得很好。

我想用一些GPIO引脚(端口1\U引脚3)来代替按钮进行唤醒。
为此,我被保留,配置GPIO引脚并注册我的回调(wkupct_register_callback(app_button_press_cb))并启用GPIO引脚,并将极性(高)设置为适当的引脚(wkupct_enable_irq()。

GPIO的输入是高的,一段时间后它会变低。(就像按按钮一样)
此时将调用唤醒回拨,唤醒工作正常。

但是,即使GPIO处于低电平,唤醒呼叫也总是被调用(GPIO状态是用万用表检查的-电压仅为0.0v)。
这里的编程类似于“wkupct\U启用\U irq(wkupct\U引脚\U选择(GPIO\U端口\U 1,GPIO\U引脚\U 3)”//选择引脚(GPIO\U按钮\U端口,GPIO\U按钮\U引脚)
WKUPCT_引脚_极性(GPIO_端口_1、GPIO_引脚_3、WKUPCT_引脚_极性_高),//极性低
1,//1事件
“那就是我被利用了。”
我的期望是,GPIO引脚将变低,不应调用唤醒回调。
只有GPIO管脚处于高stat状态时才应该调用它。

我还想知道这个唤醒功能如何完美的工作按钮按下?
按一次=叫醒一次,回叫。
SDK中没有wkupct_disable_irq()回调。

这也解释。

请尽快证明你的支持。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

很高兴您能够按IBA_Dialaog的指示,通过按键唤醒您的设备。但是,我需要对您试图实现的内容进行一些澄清。抱歉,但我无法完全理解您试图实现的目标,因此,让我问您一些问题,让我把事情弄清楚。

  • “要求是,当我从外部MCU(通过任何GPIO引脚)发送GPIO中断时,现有代码应进入睡眠模式。”。

(默认睡眠应该关闭,它应该发送/接收数据,外部MCU将在运行时设置/ON睡眠模式)
我还想禁用/唤醒睡眠模式使用相同的gpio引脚像切换。”

如果我理解正确,设备最初将处于活动模式,并且应该能够通过UART发送或接收数据。您希望通过GPIO中断实现什么?是否要接收中断并将设备设置为延长睡眠模式?您希望如何将睡眠模式配置从活动模式更改为扩展睡眠模式?GPIO中断由外部MCU驱动?请注意,由于设备进入延长睡眠模式,所有外围设备模块都将关闭,因此您将无法进行UART活动。

为了获得关于ble_app_sleepmode示例的更多信息,我强烈建议您阅读8.50 Pillar 5 (Sleep Mode)的
UM-B-050: DA1458x软件开发指南(SDK5).你可以在我们的支持页面的DA14580选项卡上找到它。这个应用程序示例的主要目的是展示如何使用休眠模式API并在运行时更改休眠模式。

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

是的,你是对的,
请查找以下信息以供澄清,

1)设备最初处于主动模式,能够通过UART发送或接收数据。
2)如果GPIO中断是由外部MCU驱动的,设备应该进入扩展睡眠模式。
3)唤醒也是由外部MCU控制,另一个GPIO中断由外部MCU驱动进行唤醒。
4) 醒来后,我应该能够恢复BLE设备状态,以便继续数据传输。

找到内联答案,
是否要接收中断并将设备设置为延长睡眠模式?<<是,
当接收到外部MCU的中断时,应该将设备设置为扩展睡眠模式。
您希望如何将睡眠模式配置从活动模式更改为扩展睡眠模式<<<
步骤1)设备处于主动模式(通告/连接(BLE设备可以通过空中传输数据))
步骤2)进入扩展睡眠模式(通过外部MCU驱动的GPIO中断)
步骤3)设备从睡眠模式唤醒(通过外部MCU的GPIO中断)
步骤4)唤醒后设备应准备好传输数据

GPIO中断由外部MCU驱动?对

请注意,由于设备进入扩展睡眠模式,所有外围设备模块都将断电,因此您将无法进行UART活动。<<是,在睡眠模式下,无需通过UART发送任何数据。但是,当从睡眠中醒来时,它应该恢复旧的状态,如广告/数据传输。

请尽快提供您的支持。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

你能按顺序检查一下下面的帖子吗?
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。

这篇文章可能会帮助您捕获外部MCU生成的中断,您应该调用app_easy_gap_advertive_stop函数。此外,您还可以检查无代码参考应用程序代码。使用此应用程序,您可以通过UART将AT命令发送到DA14580,以便您可以通过发送适当的AT命令

https://support.dialog-semiconductor.com/connectivity/product/da14580?qt..。

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

我已经在使用“唤醒计时器”块来唤醒DA14580,并且唤醒计时器在SW3(P1_1)和SW2 (P0_6)交换机上工作得很好。
如上所述"https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl“…”并不是给我一个确切的解决方案。

我想使用GPIO P1_3通过wkupct_irq唤醒DA14580。
代码更改是,
#定义GPIO\U按钮\U端口GPIO\U端口\U 0
#定义GPIO\U按钮\U引脚GPIO\U引脚\U 1
(我从外部MCU(从低到高)向DA14580的(GPIO)P1_3发送信号)
实际问题是,,
一旦P0_1pin状态从低变为高,wkupct_回调每3秒调用一次。
仅当我使用sw3/sw2时才调用一次(即,单次按下sw3/sw2时调用wkupct_irq一次)
我的观察是,在将SW2/SW3改为GPIO P1_3后,即使GPIO P1_3变高,wkupct irq也会每3秒被调用一次。

但它不应该每3秒调用一次,它的工作方式类似SW2/SW3按键。

请尽快提供您的支持

连接:
J5 - DA14580的第5引脚
跳线用于将外部MCU GPIO引脚连接到DA14580 GPIO P1_3。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

如果我理解正确,您希望从Pin1_3唤醒设备,并从SW3和SW2中删除唤醒功能。是否正确?您是否在user_periph_设置中配置了Pin1_3?抱歉,但我对您的描述有点困惑,请您解释一下您试图实现的功能?您希望从哪个GPIO中完成唤醒?Pin0.1的功能是什么?请上传Pin1_3的配置和唤醒程序好吗?

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

如果我理解正确,您希望从Pin1_3唤醒设备,并从SW3和SW2中删除唤醒功能。<<是,这是正确的。

您想从哪个GPIO唤醒?<

Pin0.1的作用是什么抱歉,使用错误。使用了GPIO P1_3。
请查找上传的文件供参考。

谢谢

附件:
PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

根据您的描述,P1_3处于高激活状态,外部MCU从低到高触发,对吗?如果是,则应更改极性,因为在附加的代码段中,您使用的是WKUPCT_PIN_polarity_LOW polarity。该按钮配置为INPUT_PULLUP,因此当GPIO变为low(低)时会触发唤醒控制器,这就是布什按钮极性低的原因。在你的情况下,你应该做相反的事情。此外,您应该将P1_3配置为输入_下拉菜单,并使用WKUPCT_引脚_极性_高。请参阅随附的P1_3唤醒程序示例。

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

谢谢大家的支持,

我在我的项目中使用了上述配置。
请查看下面的行内说明,
P1_3是高有源,外部MCU是由低到高触发,对吗?< < <是的。

实际情况是,当外部MCU从低到高触发时,“app_button_press_cb()”回调仅调用一次。

但在我的例子中,唤醒控制器“app_button_press_cb()”回调被触发多次(外部MCU将GPIO P1_3从高变低)。

请在这方面提供您的支持。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

唤醒控制器被触发不止一次是什么意思?如果它被触发不止一次,这意味着您会被中断不止一次。请检查P1_3是否从外部MCU被触发多次?

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

是的,中断会被触发多次。

请在线查找下面的命令,
您能检查P1_3是否从外部MCU触发多次吗?>>我通过外部MCU侧的CRO检查了P1_3的状态,但未触发多次。
此外,我正在通过CRO检查DA145080 Pro套件中的同一pin,该pin的状态也会根据外部MCU而改变。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

当唤醒控制器中有一个激活的低电平中断时,应用程序按钮按下应用程序cb()。这意味着应用程序按钮按下应用程序cb()将仅在设备处于永久睡眠状态且您收到唤醒中断时执行。如果设备仍在播发,则不会触发此回调。因此,您的设备进入永久睡眠模式,您发送一个中断以唤醒设备,然后它正在播发且回调仍在执行?我正在尝试理解你的问题是什么。

谢谢,下午好

离线
最后一次见到:1年9个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

...你发送一个中断唤醒你的设备,然后它是广告和回调仍然执行?是的,它是正确的,唤醒回调甚至在广告设计执行。

谢谢

PM_对话框
离线
最后一次见到:4天9小时前
工作人员
加入:2018-02-08 11:03
嗨,嘎,

嗨,嘎,

我想让你知道,这是一个有点奇怪的情况。请检查默认的ble_app_sleepmode示例,您将看到app_button_enable()仅被调用到void user_app_adv_unddirective_complete()函数中,因此只有当设备进入永久睡眠模式并且您得到唤醒中断时,才会触发app_button_press_cb()。在你的情况下,我不完全确定什么是你的固件。就我而言,我无法复制这个问题。如果app_按钮_press_cb()被执行多次,这意味着您向唤醒控制器发送中断的次数超过on次。您是否尝试对连接到唤醒控制器的GPIO出问题?

谢谢,下午好