DA14681 UART能否在延长睡眠模式下工作

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
13个职位/0个新职位
最后一篇文章
古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
DA14681 UART能否在延长睡眠模式下工作

嗨,dialog
当DA14681处于延长睡眠模式时,它能否通过uart接收中断唤醒并从收发器接收数据字节?如何设置?

设备:
LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
你好,古翔,

你好,古翔,

UART硬件在延长睡眠模式下关闭,因此无法使用它唤醒系统。

然而,有一个解决办法,你必须非常小心,这不是一个正式推荐的。

您可以在进入睡眠前将UART引脚映射到GPIO以进行外部唤醒,并将其用作唤醒的触发器,然后在唤醒后将该引脚映射回UART以通过UART接收数据。

但是,您必须非常小心地管理以下内容:波特率、去抖动和唤醒延迟。

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC

嗨,LC
can you give me a demo code to learn it?

LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
你好,古翔,

你好,古翔,

此方法用于下面提到的无代码项目。以user\u prepare\u sleep()函数为起点。

https://support.dialog-semiconductor.com/connectivity/reference-design/smartbond-codeless-serial-link

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC

嗨,LC
档案显示对我来说是“受限的”。你能允许我下载吗?
my email:414095539@qq.com

LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
你好,古翔,

你好,古翔,

It is due to the license agreement needs to be accepted before downloading file. Please accept the license and you should be able to download the files on this support portal.

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC

嗨,LC
I have accepted the license agreement and submited it , but it didn't reply me and still I can't get access to download the file.

LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
你好,古翔,

你好,古翔,

你能在你的个人资料中提供一个有效的地址和其他细节吗。我们需要一些有效的信息来访问门户上的内容。

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC,

嗨,LC,
I have updated my profile . Please check it again.

LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
古翔你好,

古翔你好,

你现在应该可以下载内容了。

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC,

嗨,LC,
现在它可以通过uart rx引脚从延长睡眠模式中唤醒。但有时在系统唤醒后,它会进入“HW\ U UART\ U INT\ U BUSY\ U DETECTED”中断。虽然我可以使用“hw\u uart\u transmit\u fifo\u empty(uart)”退出“hw\u uart\u INT\u BUSY\u DETECTED”中断,但我发现波特率不正确,导致错误的字符传输。如何解决这个问题?

LC\U对话框
离线
最后一次见到:4周1天前
工作人员
已加入:2016-09-19 23:20
你好,古翔,

你好,古翔,

因此,首先,在进入休眠模式之前,您将UART Rx引脚配置为GPIO,并在该引脚上启用唤醒中断,其中1个事件计数。为了唤醒系统,你需要发送一个@字符,这个字符可以将引脚拉低足够的时钟周期。

在你醒来之后,你就可以启动UART了。如果您的实现正在执行此操作,您仍然可以看到HW\u UART\u INT\u BUSY\u DETECTED中断。请确认。

最好的,
信用证

古香
离线
最后一次见到:3周5天前
已加入:2017-05-12 04:18
嗨,LC

嗨,LC
是的,我可以将UART Rx引脚配置为GPIO唤醒引脚,并可以唤醒系统。现在它在大多数情况下运行良好。但我没有只发送一个@字符。因为有时只有一个@字符是不够的时钟周期醒来。但当我发送一个长字符串(超过20字节@字符,波特率38400)唤醒系统时,更容易发生“HW\u UART\u INT\u BUSY\u DETECTED”中断,似乎波特率是错误的。
配置代码如下:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void console\u uart\u leave\u from\u sleepmode(void)
{
hw\u wkup\u set\u pin\u state(UART\u RX\u PORT,UART\u RX\u pin,false);
hw\u gpio\u set\u pin\u功能(UART\u RX\u端口、UART\u RX\u pin、hw\u gpio\u MODE\u INPUT\u PULLUP,
HW_GPIO_FUNC_UART_RX);// RX pin enable
控制台\u uart \u init();
uart\u rx\u int\u enable(硬件UART1,真);
}
void console\u uart\u prepare\u for\u sleepmode(void)
{

hw_wkup_init(NULL);
hw_wkup_reset_counter();
hw\u wkup\u set\u debounce\u time(0);
hw_wkup_set_counter_threshold(1);

硬件gpio\设置\引脚\功能(硬件gpio\端口\ 4、硬件gpio\引脚\ 7、硬件gpio\模式\输入\上拉、硬件gpio\功能\ gpio);
hw\u wkup\u set\u pin\u state(hw\u GPIO\u PORT\u 4,hw\u GPIO\u pin\u 7,true)//将rx引脚配置为唤醒引脚
hw\ U wkup\ U set\ U pin\ U触发器(hw\ U GPIO\ U PORT\ U 4、hw\ U GPIO\ U pin\ U 7、hw\ U wkup\ U pin\ U STATE\ U LOW);
hw_wkup_register_interrupt (wkup_handler configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY);

硬件\ gpio \设置\引脚\功能(UART \ U RX \ U端口、UART \ U RX \ U引脚、硬件\ gpio \ U模式\ U输入,
HW_GPIO_FUNC_GPIO);//RX引脚禁用
uart\ U rx\ U int\ U enable(HW\ U UART1,false);
uart_clock_disable();
}