大家好,
我正在研究DSPS源代码,并处理如何通过UART从扩展的睡眠模式唤醒的问题。我已经通过在da14580_config中添加#define cfg_ext_sleep来定义扩展睡眠模式。结果,我看到我刚收到来自UART的一些离散数据(它可能会通过睡眠模式导致)。即使我定义了“CFG_EXT_SLEEP”,我的目标是如何从UART接收正常数据。任何答复都将非常欣赏。
问候,
Chung Tran。
有人可以帮助我这个问题吗?问候!
嗨Chungtran.
如果我正确地找到,您正在尝试在延长睡眠中设置外围设备。为了我们的理解,发生这种情况a)设备空闲,未连接或未连接b)与遥控器的通信事件之间连接。在这两种情况下,您应该将设备从外部处理器唤醒(连接到580 UART的设备)。为此,您需要实施唤醒机制。您可以实现两个选项:
sol1)您可以使用硬件流量控制和RTS / CTS以从睡眠中唤醒。sol2)您可以使用rx / tx。在这种情况下,应存在软件流控制。在流关闭命令后将其设置为0,以发出设备正在睡眠状态。唤醒设备缩短rx。等待TX变高,接收发送实际数据之前的命令流程,为您的设备提供时间唤醒。我们建议使用Sol1。
谢谢mt_dialog.
嗨mt_dialog,
谢谢你的答案!但是,你能告诉我关于我与RTS / CTS信号有关的详细信息吗?它是否使用了唤醒定时器和正交解码器驱动程序?
你好,
如何通过RTS / CTS将14580放入扩展睡眠模式?
我已将设备配置为#define cfg_ext_sleep
然而,目前的抽签约为600A。
对不起,但似乎我误解了你的问题。
你能告诉我你想做什么吗?您的第一个帖子中的意思是什么“收到一些离散数据”以及正常数据对您意味着什么?您是否遇到了现有的参考设计,或者您正在尝试做其他事情?
哦,这是我的情况:D
我正在研究DSP参考设计。我已经通过在da14580_config中定义CFG_EXT_SLEEP来测试扩展睡眠模式。我意识到DSP在扩展睡眠模式下工作精细,但我无法接收从我的Android设备发送到DA14580的数据。(我认为这可能是由睡眠模式引起的)。这样,我可以将来自Android设备的数据发送到DA14580,定义扩展睡眠模式吗?我的意思是,当有传入数据(外部唤醒事件)时,芯片会暂时睡眠状态,并且在睡眠模式下醒来
嗨Chungtran,
我虽然你正在尝试修改参考设计。抱歉混淆了。
当然,您可以从Android设备发送数据,这不是一个延长睡眠的东西负责,请检查Dev-kit上的连接,请参阅用户手册UM-B-038。DA在每个连接间隔内睡眠并唤醒,而不是每次有传入数据的间隔。
非常感谢你明确答案!我知道了!所以,如果我想使用UART通信来触发(唤醒)DA,它是否有可能?我的想法是我将使用唤醒定时器和正交解码器驱动程序来处理UART PIN_PORT。这是我已添加到app_sps_device_project.c的代码,似乎为我工作:
void app_uart_data_trans_incoming(void){// init系统电源域块:GPIO,WD计时器,SYS计时器等。if(getBits16(sys_stat_reg,per_is_down))//从睡眠模式退出后重新启动外围设备periph_init();
//出现传入数据时触发wkupct_register_callback(app_uart_data_trans_idle);// UART事件RERISTwkupct_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);}}
谢谢
你想做什么?您想唤醒连接事件之间的DA,以便实现更快的响应?您想从中央断开外围设备,并在永久睡眠中设置DA,直到新数据到达DA的UART然后唤醒?
嗨mt对话框,
是的,我的目标是我想在永久睡眠中设置DA,直到新数据到达DA的UART然后唤醒。问候,
Chungtran。
在您的代码中,您正在使用RX引脚才能唤醒芯片(在我的未加工中),您的芯片是否唤醒并传输,但您在输出中遇到损坏的数据?您必须考虑芯片需要一段时间才能从睡眠中醒来,请咨询#3帖子。
是的,我的意思是Da似乎唤醒并传输数据,而是在我再次调试代码时的某个时候,它不起作用!你能告诉我一个Da需要醒来的时间吗?是否可以设置为零,因为我希望它在传入数据后醒来。
芯片在大约3-4ms中完成了唤醒Proccess(但它取决于SDK,如果它的581或580芯片,您可以从智能Snippets计算唤醒时间)没有办法覆盖其中的....那个为什么你必须在传输蓝牙传输任何内容之前切换RX并等待。
非常感谢你的帮助!但是你能告诉我我对我推荐的2个解决方案有关的事情。我如何使用CTS / RTS信号来解决我的问题?
Chungtran.
在Solution 2中,您所说的“将TX设置为0,流关闭命令以发出设备睡眠后的命令。要唤醒设备,请向上切换RX。等待TX变高并接收在发送实际数据之前的命令流程,为您的设备提供时间唤醒。“我令人困惑!你能给我一个示例代码或任何已经定义的参考设计吗?
ragards,
对不起,上述方案没有实现代码。
我知道了。谢谢
有人可以帮助我这个问题吗?问候!
嗨Chungtran.
如果我正确地找到,您正在尝试在延长睡眠中设置外围设备。为了我们的理解,发生这种情况
a)设备空闲,未连接或未连接
b)与遥控器的通信事件之间连接。
在这两种情况下,您应该将设备从外部处理器唤醒(连接到580 UART的设备)。为此,您需要
实施唤醒机制。您可以实现两个选项:
sol1)您可以使用硬件流量控制和RTS / CTS以从睡眠中唤醒。
sol2)您可以使用rx / tx。在这种情况下,应存在软件流控制。
在流关闭命令后将其设置为0,以发出设备正在睡眠状态。唤醒设备缩短rx。等待TX变高,接收
发送实际数据之前的命令流程,为您的设备提供时间唤醒。
我们建议使用Sol1。
谢谢mt_dialog.
嗨mt_dialog,
谢谢你的答案!但是,你能告诉我关于我与RTS / CTS信号有关的详细信息吗?它是否使用了唤醒定时器和正交解码器驱动程序?
问候,
Chung Tran。
你好,
如何通过RTS / CTS将14580放入扩展睡眠模式?
我已将设备配置为#define cfg_ext_sleep
然而,目前的抽签约为600A。
嗨Chungtran.
对不起,但似乎我误解了你的问题。
你能告诉我你想做什么吗?您的第一个帖子中的意思是什么“收到一些离散数据”以及正常数据对您意味着什么?您是否遇到了现有的参考设计,或者您正在尝试做其他事情?
谢谢mt_dialog.
嗨mt_dialog,
哦,这是我的情况:D
我正在研究DSP参考设计。我已经通过在da14580_config中定义CFG_EXT_SLEEP来测试扩展睡眠模式。我意识到DSP在扩展睡眠模式下工作精细,但我无法接收从我的Android设备发送到DA14580的数据。(我认为这可能是由睡眠模式引起的)。这样,我可以将来自Android设备的数据发送到DA14580,定义扩展睡眠模式吗?我的意思是,当有传入数据(外部唤醒事件)时,芯片会暂时睡眠状态,并且在睡眠模式下醒来
问候,
Chung Tran。
嗨Chungtran,
我虽然你正在尝试修改参考设计。抱歉混淆了。
当然,您可以从Android设备发送数据,这不是一个延长睡眠的东西负责,请检查Dev-kit上的连接,请参阅用户手册UM-B-038。DA在每个连接间隔内睡眠并唤醒,而不是每次有传入数据的间隔。
谢谢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计时器等。
if(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。
嗨Chungtran.
你想做什么?您想唤醒连接事件之间的DA,以便实现更快的响应?您想从中央断开外围设备,并在永久睡眠中设置DA,直到新数据到达DA的UART然后唤醒?
谢谢mt_dialog.
嗨mt对话框,
是的,我的目标是我想在永久睡眠中设置DA,直到新数据到达DA的UART然后唤醒。问候,
Chungtran。
嗨Chungtran.
在您的代码中,您正在使用RX引脚才能唤醒芯片(在我的未加工中),您的芯片是否唤醒并传输,但您在输出中遇到损坏的数据?您必须考虑芯片需要一段时间才能从睡眠中醒来,请咨询#3帖子。
谢谢mt_dialog.
嗨mt_dialog,
是的,我的意思是Da似乎唤醒并传输数据,而是在我再次调试代码时的某个时候,它不起作用!你能告诉我一个Da需要醒来的时间吗?是否可以设置为零,因为我希望它在传入数据后醒来。
问候,
Chungtran。
嗨Chungtran.
芯片在大约3-4ms中完成了唤醒Proccess(但它取决于SDK,如果它的581或580芯片,您可以从智能Snippets计算唤醒时间)没有办法覆盖其中的....那个为什么你必须在传输蓝牙传输任何内容之前切换RX并等待。
谢谢mt_dialog.
嗨mt_dialog,
非常感谢你的帮助!但是你能告诉我我对我推荐的2个解决方案有关的事情。我如何使用CTS / RTS信号来解决我的问题?
问候,
Chungtran.
嗨mt_dialog,
在Solution 2中,您所说的“将TX设置为0,流关闭命令以发出设备睡眠后的命令。要唤醒设备,请向上切换RX。等待TX变高并接收
在发送实际数据之前的命令流程,为您的设备提供时间唤醒。“我令人困惑!你能给我一个示例代码或任何已经定义的参考设计吗?
ragards,
Chung Tran。
嗨Chungtran,
对不起,上述方案没有实现代码。
谢谢mt_dialog.
嗨mt_dialog,
我知道了。谢谢
Chung Tran。