DA14580准备在醒来后接收UART

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇
Avouaill.
离线
最后一次露面:3年8个月前
加入:2016-09-19 15:21
DA14580准备在醒来后接收UART

你好,

我触发了一个中断以唤醒DA14580。
我想知道是什么时候准备好接收UART信息并发送它们。它会在回调函数的末尾还是进一步在代码上?
提前致谢。

设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Avouaill,

嗨Avouaill,

当在睡眠模式下,设备关闭XTAL16,这对UART的时钟产生至关重要,因此在醒来之后,您必须等待XTAL16才能定居。最安全的地方,以确保XTAL16已经解决的是App_On_ble_powered回调(因为核心也需要XTAL16以运行),经过该函数,只要您不睡觉,设备将使XTAL16结算准备好了,您将能够通过UART接收数据。

谢谢mt_dialog.

Avouaill.
离线
最后一次露面:3年8个月前
加入:2016-09-19 15:21
你好,

你好,

感谢您的回答。
我实际上使用了V.150.2版本,我找不到任何app_on_ble_powered函数。您是否知道我使用的版本中有相同的。

提前致谢

问候

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Avouaill,

嗨Avouaill,

在所有SDK5版本中,回调名为App_On_ble_Powered,即使在SDK5.0.2.1中也是第一个SDK 5发行版,我想使用SDK3。在这种情况下,没有任何回调,您可以附上您的源代码和相关挂钩,您可以放置​​代码是app_asynch_trm()函数。但我强烈建议搬到SDK 5。

谢谢mt_dialog.

Avouaill.
离线
最后一次露面:3年8个月前
加入:2016-09-19 15:21
你好,

你好,

好,我知道了。
我尝试做的是从扩展睡眠模式唤醒BLE模块,并在UART准备就绪时发送对UC的中断。
是否有可能向我提供一个回调函数,可以正确地唤醒BLE模块所有必要的功能?我将增加中断以便之后与我的要求匹配。

问候

Avouaill.
离线
最后一次露面:3年8个月前
加入:2016-09-19 15:21
你好,

你好,

几乎完成了,CallBcack函数称为正确调用,我在内部切换BLE_INT以在UC上生成中断。
问题是,在完全3醒来之后,无缘无故,它不会再切换ble_int。
以下是我的回调函数的代码:

void ext_wakeup_cb(void)
{
if(fsleep == arch_ext_sleep_on)
{
if(getBits16(sys_stat_reg,per_is_down))
{

if(development_debug){
gpio_reservations();
}
}

setbits32(gp_control_reg,ble_wakeup_req,1);
fsleep = arch_sleep_off;
}
别的
fsleep = arch_ext_sleep_on;

gpio_setactive(gpio_port_0,gpio_pin_7);//向UC发出警告UART已准备就绪
wkupct_enable_irq(0x40,0x00,1,0);
wkupct_register_callback(ext_wakeup_cb);
gpio_setinactive(gpio_port_0,gpio_pin_7);//向UC发出警告UART已准备就绪
}

在我的功能中,我没有看到的问题。

提前致谢

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Avouaill,

嗨Avouaill,

我不确定这是你正在寻找的,但为了强迫唤醒ble(没有待处理的活动,所以应用程序必须强迫ble唤醒)你必须调用Arch_ble_force_wakeUp();在这样做后,设备应该开始唤醒核心的过程,一旦核心唤醒了App_Asynch_trm()就会被执行。

关于您在稍后的帖子上提到的问题,我想你没有看到GPIO切换,因为你期望的,我不会在回调函数中看到任何地方来调用Periph_init()函数,以便初始化引脚,因此,如果设备切换引脚的时间也恰好发生设备和外围设备唤醒。一些评论也是,没有必要调用GPIO_Reservations(),它在系统初始化期间调用的功能,无需再次调用它。如果我可以使用ARCH_BLE_FORCE_WAKEUP()函数,请通过直接在寄存器上撰写寄存器,而不是通过arch_ble_force_wakeup()函数来实现BLE核心,如果我正确地记得SDK 3上有完全相同的APP_BLE_FORCE_WAKEUP()。还允许我再次提及您正在提出唤醒BLE核心的事实并不意味着核心立即唤醒,一旦设备进入我的App_Asynch_trm()即可醒来之前提到过。请检查SDK5中的BLE_APP_SLEEPMODE示例它可能有点不同的SDK,但唤醒序列遵循SDK的非常相似。我坚持最新的SDK。

谢谢mt_dialog.

Avouaill.
离线
最后一次露面:3年8个月前
加入:2016-09-19 15:21
你好,

你好,

非常感谢您的帮助。
我将搬到最新的SDK并设法使一切都与您的提示合作。
主题可以关闭。

问候

Aurelien.