通过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接收正常数据。任何回复都将不胜感激。

问候,

Chung Tran。

设备:
chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
有人可以帮助我

有人可以帮助我这个问题吗?问候!

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34

嗨Chungtran.

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

sol1)您可以使用硬件流量控制和RTS / CTS以从睡眠中唤醒。
sol2)您可以使用rx / tx。在这种情况下,应存在软件流控制。
在流关闭命令后将其设置为0,以发出设备正在睡眠状态。唤醒设备缩短rx。等待TX变高,接收
发送实际数据之前的命令流程,为您的设备提供时间唤醒。
我们推荐使用Sol1。

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt_dialog,

嗨mt_dialog,

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

问候,

Chung Tran。

imalamoud.
离线
最后一次露面:6个月5天前
加入:2014-11-16 21:34
你好,

你好,

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

我已将设备配置为#define cfg_ext_sleep

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

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11: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与定义扩展睡眠模式?我的意思是,芯片将一直处于睡眠状态,当有传入数据时(外部唤醒事件)从睡眠模式中醒来。

问候,

Chung Tran。

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34
嗨Chungtran,

嗨Chungtran,

我虽然你正在尝试修改参考设计。抱歉混淆了。

当然,您可以从Android设备发送数据,这不是一个延长睡眠的东西负责,请检查Dev-kit上的连接,请参阅用户手册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的代码,似乎为我工作:

void app_uart_data_trans_incoming(void)
{
// init系统电源域块:GPIO,WD计时器,SYS计时器等。
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
//从睡眠模式退出后重新启动外围设备
periph_init();

//出现传入数据时触发
wkupct_register_callback(app_uart_data_trans_idle);// UART事件RERIST
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)
{
//唤醒这里的ble

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);
}
}

谢谢

Chung Tran。

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34
嗨Chungtran.

嗨Chungtran.

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

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt对话框,

嗨mt对话框,

是的,我的目标是我想在永久睡眠中设置DA,直到新数据到达DA的UART然后唤醒。问候,

Chungtran。

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34
嗨Chungtran.

嗨Chungtran.

在您的代码中,您正在使用RX引脚才能唤醒芯片(在我的未加工中),您的芯片是否唤醒并传输,但您在输出中遇到损坏的数据?您必须考虑芯片需要一段时间才能从睡眠中醒来,请咨询#3帖子。

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt_dialog,

嗨mt_dialog,

是的,我的意思是Da似乎唤醒并传输数据,而是在我再次调试代码时的某个时候,它不起作用!你能告诉我一个Da需要醒来的时间吗?是否可以设置为零,因为我希望它在传入数据后醒来。

问候,

Chungtran。

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34
嗨Chungtran.

嗨Chungtran.

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

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt_dialog,

嗨mt_dialog,

非常感谢你的帮助!但是你能告诉我我对我推荐的2个解决方案有关的事情。我如何使用CTS / RTS信号来解决我的问题?

问候,

Chungtran.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt_dialog,

嗨mt_dialog,

在Solution 2中,您所说的“将TX设置为0,流关闭命令以发出设备睡眠后的命令。要唤醒设备,请向上切换RX。等待TX变高并接收
在发送实际数据之前,会有一个Flow On命令,让你的设备有时间醒来。”我被这个搞糊涂了!你能给我一个示例代码或任何定义这个的参考设计吗?

ragards,

Chung Tran。

mt_dialog.
离线
最后一次露面:5个月1个星期前
职员
加入:2015-06-08 11:34
嗨Chungtran,

嗨Chungtran,

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

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年3个月前
加入:2015-01-21 05:57
嗨mt_dialog,

嗨mt_dialog,

我得到了它。谢谢

Chung Tran。

主题锁定