⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
17个员额/ 0个新员额
最后发表
GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
睡眠模式集成

嗨,团队,

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

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

谢谢,

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

嗨,团队,

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

谢谢,

IBA_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2018-01-02 45
嗨GAK,

嗨GAK,

谢谢你对DA14580感兴趣,

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

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

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

你可以为外围设备的例子使用/添加这些api。

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

问候

IBA_Dialog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

谢谢你的支持,

按照你的建议,我使用from pressing button来唤醒(如果按下按钮,唤醒回调只调用一次)。
它通过使用唤醒中断处理程序(wkupct_register_callback(app_button_press_cb))和(wkupct_enable_irq())工作得很好。

我想使用一些GPIO引脚(port1_pin3)来代替按钮唤醒。
对于这个我是保留的,配置GPIO引脚并注册我的回调(wkupct_register_callback(app_button_press_cb)),并启用GPIO引脚并设置极性(高)到适当的引脚(wkupct_enable_irq())。

GPIO的输入是高的,过了一段时间它就低了。(就像按按钮一样)
在这个时候,唤醒呼叫被调用,唤醒工作正常。

但是,即使GPIO处于低电平,唤醒呼叫也总是被调用(GPIO状态是用万用表检查的-电压仅为0.0v)。
这里编程像“wkupct_enable_irq(WKUPCT_PIN_SELECT(GPIO_PORT_1, GPIO_PIN_3), //选择pin (GPIO_BUTTON_PORT, GPIO_BUTTON_PIN)”
wkupct_pin_极性(GPIO_PORT_1, GPIO_PIN_3, WKUPCT_PIN_POLARITY_HIGH), //极性低
1, // 1事件
“那就是我被利用了。”
我的期望是,GPIO针将低,唤醒回叫是不应该调用。
只有GPIO管脚处于高stat状态时才应该调用它。

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

这也解释。

请尽快证明你的支持。

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

很高兴您能够通过按下按钮并按照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并在运行时更改休眠模式。

谢谢,PM_Dialog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

是的,你是对的,
请查看以下信息,以便您的澄清。

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

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

GPIO中断由外部MCU驱动?是的,

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

请尽快提供您的支持。

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

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

这篇文章可能会帮助你为了捕获外部MCU生成的中断,你应该调用app_easy_gap_advertise_stop函数。此外,您还可以检查CodeLess引用应用程序代码。使用此应用程序,您可以通过UART将AT命令发送到DA14580,因此您可以通过发送适当的AT命令将设备配置为扩展休眠模式

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

谢谢,PM_Dialog

GAK
离线
最后看到:1年11个月前
加入: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唤醒DA14580使用wkupct_irq。
代码更改,
#定义GPIO_BUTTON_PORT GPIO_PORT_0
#定义GPIO_BUTTON_PIN GPIO_PIN_1
(我给信号(GPIO) P1_3的DA14580从外部MCU(低到高))
实际的问题是,
一旦P0_1pin状态由低变为高,wkupct_callback每3秒调用一次。
它只在我使用sw3/sw2时被调用一次(例如,wkupct_irq在sw3/sw2的单按下时被调用一次)
我的观察是,在将SW2/SW3改为GPIO P1_3后,即使GPIO P1_3变高,wkupct irq也会每3秒被调用一次。

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

请尽快提供您的支持

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

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

如果我理解正确,您希望从pin_3唤醒设备,并删除SW3和SW2的唤醒功能。那是正确的吗?您是否在user_peripher_setup中配置了Pin1_3 ?抱歉,我对你的描述有点困惑,你能解释一下你想要完成的是什么吗?你想从哪个GPIO中醒来?Pin0.1是做什么的?能否上传一下Pin1_3的配置和叫醒步骤?

谢谢,PM_Dialog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

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

你想从哪个GPIO中醒来?<<<< GPIO P1_3正在使用中。

Pin0.1是做什么的?对不起,用错了。使用GPIO P1_3。
请找到上传的文件供参考。

谢谢,

附件:
PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

根据你的描述,P1_3是高有源的,外部MCU是由低到高触发的,对吗?如果是,您应该更改极性,因为在您所附加的代码片段中,您使用的是WKUPCT_PIN_POLARITY_LOW极性。按钮被配置为INPUT_PULLUP,所以唤醒控制器被触发时,GPIO达到低,这就是为什么灌木按钮的极性是低的。在你的情况下,你应该做相反的事。此外,您应该将p_3配置为INPUT_PULLDOWN并使用WKUPCT_PIN_POLARITY_HIGH。请查收附件P1_3唤醒过程的示例。

谢谢,PM_DIalog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

谢谢你的支持,

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

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

但是在我的情况下,唤醒控制器“app_button_press_cb()”回调被触发超过一次(外部MCU的GPIO P1_3从高到低)。

请给予支持。

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

你说唤醒控制器被多次触发是什么意思?如果它被触发超过一次,这意味着你得到一个中断超过一次。请问P1_3是否被外部MCU多次触发?

谢谢,PM_Dialog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

是的,一个中断被触发不止一次。

请找到内联的波纹管,
请问P1_3是否被外部MCU多次触发?>>我通过外部MCU侧的CRO检查了P1_3状态,未多次触发。
另外,我正在通过CRO检查DA145080 Pro套件中的一个引脚,这个引脚的状态也根据外部MCU发生了变化。

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

app_button_press_cb()当你得到一个活跃的低中断到唤醒控制器。这意味着app_button_press_cb()只会在设备处于永久休眠且您得到唤醒中断时执行。如果设备仍在发布,则不会触发此回调。所以,你的设备进入永久休眠模式,你发送一个中断来唤醒你的设备,然后它是广告,回调仍然执行?我想知道你的问题是什么。

谢谢,PM_Dialog

GAK
离线
最后看到:1年11个月前
加入:2018-10-01 11:18
嗨,团队,

嗨,团队,

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

谢谢,

PM_Dialog
离线
最后看到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨GAK,

嗨GAK,

我想让你知道这是一个有点奇怪的情况。请检查默认ble_app_sleepmode示例,您将看到app_button_enable()只到空白user_app_adv_undirect_complete()函数,所以app_button_press_cb()将被触发只有当设备进入永久的睡眠模式,你会得到一个唤醒中断。在你的情况下,我不完全确定你的固件是什么。在我的情况下,我无法复制这个问题。如果app_button_press_cb()被执行了多次,这意味着你将中断发送给唤醒控制器的次数多于一次。你是否试图使连接到唤醒控制器的GPIO出现问题?

谢谢,PM_Dialog