通过UART数据传输唤醒。

18个员额/ 0个新员额
最后发表
chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
通过UART数据传输唤醒。

嗨,你们所有人,

我正在研究DSPS源代码,并正在处理一个问题,如何唤醒扩展睡眠模式由UART。我已经通过在da14580_config.h中添加#define CFG_EXT_SLEEP定义了扩展睡眠模式。结果,我看到我只是从UART接收了一些离散的数据(这可能由睡眠模式引起)。我的目标是,即使在定义了“CFG_EXT_SLEEP”之后,仍然能够从UART接收正常数据。任何回复都将不胜感激。

问候,

钟Tran。

设备:
chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
谁能帮我一下吗

有人能帮我解答这个问题吗?的问候!

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34

嗨chungtran

如果我理解正确的话,你是想让你的外围设备进入长时间睡眠。根据我们的理解,这发生在
A)设备是空闲的,没有连接或
B)它是连接的,与远程之间的通信事件。
在这两种情况下,您都应该从外部处理器(连接580 UART的处理器)唤醒设备。为此你需要
实现唤醒机制。有两个选项你可以实现:

Sol1)你可以使用硬件流控制和RTS/CTS来从睡眠中唤醒。
你可以使用Rx/Tx。在这种情况下,应该存在一个软件流控制。
在流关闭命令之后,将Tx设置为0,以表示设备正在休眠。要唤醒设备,请切换处方。等待TX变高并接收
在发送实际数据之前,输入一个Flow On命令,让设备有时间唤醒。
我们推荐使用Sol1。

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_Dialog,

嗨MT_Dialog,

谢谢你有用的回答!但是你能详细告诉我关于RTS/CTS信号我要做什么吗?它是否使用唤醒定时器和正交解码器驱动程序?

问候,

钟tran。

imalamoud
离线
最后看到:6个月4天前
加入:2014-11-16 21:34
你好,

你好,

我如何将14580放入RTS/CTS的扩展睡眠模式?

我已经将设备配置为#define CFG_EXT_SLEEP

然而,无论如何,电流都在600uA左右。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran

嗨chungtran

对不起,我好像误解你的问题了。

你能告诉我你到底想做什么吗?在你的第一篇文章中“接收到一些离散数据”是什么意思?正常数据对你来说意味着什么?您是否对现有的参考设计有问题,或者您正在尝试做一些其他的事情?

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_Dialog,

嗨MT_Dialog,

我的情况是这样的:D

我正在做DSPS参考设计。我已经通过在da14580_config.h中定义CFG_EXT_SLEEP测试了扩展睡眠模式。我意识到DSPS在扩展睡眠模式下工作良好,但我不能接收从我的android设备发送到Da14580的数据。(我认为这可能是睡眠模式造成的)。所以,我可以从android设备发送数据到DA14580与定义扩展睡眠模式?我的意思是,芯片将一直处于睡眠状态,当有传入数据时(外部唤醒事件)从睡眠模式中醒来。

问候,

钟Tran。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran,

嗨chungtran,

我以为你是想修改参考设计。很抱歉搞混了。

当然,你可以从你的android设备发送数据,这不是延长睡眠负责的事情,请检查你的开发套件上的连接,并查看用户手册UM-B-038。da在每个连接间隔中休眠和唤醒,而不是在每次有传入数据时。

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_dialog,

嗨MT_dialog,

非常感谢你清晰的回答!我得到它!所以如果我想使用uart通信来触发(唤醒)DA,这是可能的吗?我的想法是,我将使用唤醒定时器和正交解码器驱动程序来处理uart pin_port。这是我的代码,我已经添加到app_sps_device_project.c,它似乎对我工作:

空白app_uart_data_trans_incoming(空白)

// Init System Power Domain blocks: GPIO, WD Timer, Sys Timer等
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
//退出休眠模式后重新启动外围设备
periph_init ();

//当出现传入数据时触发
wkupct_register_callback (app_uart_data_trans_idle);// uart事件电阻
Wkupct_enable_irq (0x20, 0x00, 1,0);// P0_5 (UART Rx),极性高(0高& 1低)1事件,去噪时间= 0

app_uart_status = 1;

if(ke_state_get(TASK_APP) == APP_CONNECTABLE)

/ /唤醒祝福

app_ble_force_wakeup ();
app_ble_ext_wakeup_off ();

/ / SetBits32 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);

ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);

谢谢

钟Tran。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran

嗨chungtran

你想干什么?你想唤醒连接事件之间的da,以实现更快的响应?您想要断开外围设备和中央设备的连接,并将da设置为永久休眠,直到新的数据到达da的uart,然后唤醒?

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨太对话框中,

嗨太对话框中,

是的,我的目标是将DA设置为永久休眠,直到新的数据到达DA的uart,然后唤醒。问候,

Chungtran。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran

嗨chungtran

在你的代码中,你正在使用Rx引脚来唤醒芯片(在我的理解中),你的芯片醒来并传输,但你在输出中经历了损坏的数据吗?你将不得不考虑到芯片需要一些时间才能从睡眠中醒来,请建议帖子#3。

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_dialog,

嗨MT_dialog,

是的,它是,我的意思是,DA似乎唤醒和传输数据,但有时当我调试我的代码,然后它不工作!你能详细告诉我DA需要几点醒来吗?是否可以设置为0,因为我希望它在有传入数据后立即醒来。

问候,

Chungtran。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran

嗨chungtran

芯片完成唤醒过程大约在3-4毫秒(但它取决于SDK,如果它的581或580芯片,你可以从智能片段计算唤醒时间),没有办法覆盖....这就是为什么你必须切换Rx和等待之前,你通过蓝牙传输任何东西。

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_dialog,

嗨MT_dialog,

非常感谢你的帮助!但是您能确切地告诉我,对于您推荐给我的两种解决方案,我该怎么做吗?如何使用CTS/RTS信号来解决我的问题?

问候,

Chungtran

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_dialog,

嗨MT_dialog,

在解决方案2中,你说“设置你的Tx为0,在一个流关闭命令信号后,设备正在休眠。要唤醒设备,请切换处方。等待TX变高并接收
在发送实际数据之前,会有一个Flow On命令,让你的设备有时间醒来。”我被这个搞糊涂了!你能给我一个示例代码或任何定义这个的参考设计吗?

Ragards,

钟Tran。

MT_dialog
离线
最后看到:5个月1个星期前
工作人员
加入:2015-06-08 34
嗨chungtran,

嗨chungtran,

抱歉,上面的场景没有实现代码。

由于MT_dialog

chungtran
离线
最后看到:5年3个月前
加入:2015-01-21 05:57
嗨MT_dialog,

嗨MT_dialog,

我得到了它。谢谢

钟Tran。

主题锁定