通过UART数据传输唤醒。

18个帖子/ 0新
最后一篇
chungtran
离线
最后一次露面:5年2个月前
加入:2015-01-21 05:57
通过UART数据传输唤醒。

嗨,你们所有人,

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

问候,

Chung Tran。

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

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

mt_dialog.
离线
最后一次露面:4个月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年2个月前
加入:2015-01-21 05:57
嗨MT_Dialog,

嗨MT_Dialog,

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

问候,

Chung Tran。

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

你好,

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

我已将设备配置为#define cfg_ext_sleep

然而,目前的绘图约600uA,无论如何。

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

嗨Chungtran.

对不起,但似乎我误解了你的问题。

你能告诉我你想做什么吗?您的第一个帖子中的意思是什么“收到一些离散数据”以及正常数据对您意味着什么?您是否遇到了现有的参考设计,或者您正在尝试做其他事情?

谢谢mt_dialog.

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

嗨MT_Dialog,

哦,这是我的情况:D

我正在做DSPS参考设计。我已经通过在da14580_config.h中定义CFG_EXT_SLEEP测试了扩展睡眠模式。我意识到dsp在延长睡眠模式下工作得很好,但是我不能接收从我的android设备发送到Da14580的数据。(我想这可能是由睡眠模式引起的)。那么,我是否可以将Data从android设备发送到DA14580,并定义延长睡眠模式?我的意思是,芯片将一直休眠,当有传入数据(外部唤醒事件)时才从休眠模式中醒来。

问候,

Chung Tran。

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

嗨Chungtran,

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

当然,您可以从Android设备发送数据,这不是一个延长睡眠的东西负责,请检查Dev-kit上的连接,请参阅用户手册UM-B-038。DA在每个连接间隔内睡眠并唤醒,而不是每次有传入数据的间隔。

谢谢mt_dialog.

chungtran
离线
最后一次露面:5年2个月前
加入: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.
离线
最后一次露面:4个月1周前
职员
加入:2015-06-08 11:34
嗨Chungtran.

嗨Chungtran.

你想干什么?您想在连接事件之间唤醒da以实现更快的响应吗?您想要断开外设与中央的连接,并将数据保存在永久休眠状态,直到新数据到达数据的uart并被唤醒?

谢谢mt_dialog.

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

嗨mt对话框,

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

Chungtran。

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

嗨Chungtran.

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

谢谢mt_dialog.

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

嗨mt_dialog,

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

问候,

Chungtran。

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

嗨Chungtran.

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

谢谢mt_dialog.

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

嗨mt_dialog,

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

问候,

Chungtran.

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

嗨mt_dialog,

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

ragards,

Chung Tran。

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

嗨Chungtran,

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

谢谢mt_dialog.

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

嗨mt_dialog,

我得到了它。谢谢

Chung Tran。

主题锁定