亲爱的对话支持团队:
我已经成功了综合了UART.示例的SDKble_app_peripheral..我有能力发送和接收数据,同时有BLE功能。
但是,当UART不忙节省电量时,我试图将我的电路板放入扩展的睡眠模式。换句话说,两件事应该能够在扩展睡眠模式下唤醒板:
1-BLE计时器发送通告报文。
2 -UART RX PIN..
我理解应该为此目的采取以下步骤:
1-在睡觉前,我必须禁用UART并将RX引脚设置用于唤醒电路板。
2-当从这个大头针有一个唤醒,我应该激活uart并开始侦听消息。(我知道我可能会丢失一些数据!)
我有点丢失了如何正确配置扩展睡眠模式并设置回调。您能否在这方面向我提供一些指示?(由于硬件限制,我不能在4线模式下使用UART,因此;我试图用SAM RX引脚来均以两个目的。)
问候,
汉米德
设备:
嗨哈米德,
谢谢你的问题。我建议首先查看DA14531产品页面上的睡眠模式教程-为方便您,下面提供了链接:
http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode+/index.html
此外,SDK的BLE_APP_SLEEPMODE示例在永久睡眠模式下配置了DA14531。为了唤醒它,您应该使用唤醒控制器。请检查app_button_enable()函数。
谢谢,PM_Dialog
你好,
感谢您的答复。
我读过了教程,但我找不到我的答案。
是可以使用的app_easy_timer在延长睡眠模式期间?换句话说,这个定时器可以从延长睡眠中唤醒板吗?据说,董事会将睡觉,除非需要唤醒发送广告数据包,或者在UART忙时醒来。
问候,
汉米德
嗨哈米德,
对不起,可能我误解了你的问题。是的,您可以使用app_easy_timer(0才能定期唤醒,因为使用BLE定时器,因此可以在睡眠模式下使用。
让我们假设你想醒来并开始广告。这可以通过设置定时器来实现,如下所示:
cb_my_timeout app_easy_timer (100);
第一个参数指定在100 * 10ms = 1000ms = 1s之后超时的定时器。此时将调用回调cb_my_timerout() get。
谢谢,PM_Dialog
你好,
谢谢很多。这对我来说澄清了这个问题的一些部分。我有另一个问题,我怀疑了:
我想使用UART_Rx_PIN和计时器一样,用来唤醒你。更明确地说,我想要知道唤醒的方法(计时器和提到的大头针)。
据我所知,在醒过来的时候我需要回叫
然后我就可以开始了接收数据.之后我必须
恢复正常运作。
我对么?是否有可能在这样的操作期间改变引脚?
问候,
汉米德
嗨哈米德,
如果您想通过GPIO触发器(UART Rx)唤醒,您应该配置WAKEUP控制器并注册该引脚。在SDK的ble_app_sleepmode示例中,可以通过GPIO_BUTTON_PORT /_PIN唤醒设备。请检查wkupct_enable_irq()。在您的情况下,应该使用UART Rx引脚配置它。
请记住,当系统处于睡眠模式时,所有外围域(包括UART)都将关闭,因此在芯片休眠时不可能有UART活动。这意味着您将错过第一个字符露营到UART Rx引脚,以唤醒它。
谢谢,PM_Dialog
到目前为止,我已经做到了以下几点:
然而,当我在调试模式下运行代码时,在接收到唤醒引脚上的新字节时并没有变化,设备继续发布广告。关于这个问题的可能原因,你能给我一些建议吗?
问候,
汉米德
你好,
我想指出的是,我已经成功地实现了我想要的架构。谢谢你的时间。
问候,
汉米德
嗨哈米德,
很高兴你识上你的问题,谢谢你让我们知道。根据app_wkup_pin_enable(),低脉冲信号应触发唤醒控制器。
如果您有任何其他问题,请提出一个新的论坛帖子。
谢谢,PM_Dialog