当DA14580进入下一睡眠模式时,BLE停止。

4个职位/ 0个新职位
最后发表
马络
离线
最后看到:4年11个月前
加入:2014-07-11 06:48
当DA14580进入下一睡眠模式时,BLE停止。

嗨,支持团队,

我正在从fh_proxr_sdk (v3.0.6)创建软件,并添加了SPI从驱动。

SPI从驱动程序在#undef CFG_EXT_SLEEP条件下工作良好。
但是在EXT_SLEEP模式下,BLE堆栈似乎停止了。

BLE在IDLE模式下工作(启动后)。
但是BLE堆栈在进入EXT_SLEEP模式后停止。

我发现这个问题与spi_dready_high()有关;操作。

如果我没有在初始化时调用spi_hci_flow_on_func()(该函数包含spi_dready_high();), BLE堆栈在进入EXT_SLEEP模式后不会停止。

我发现在ext_sleep模式下调用spi_dready_high()的SPI_DREADY_PIN端口输出脉冲信号。
如果我没有调用spi_hci_flow_on_func(),脉冲信号不输出,BLE堆栈工作良好。

所以我想知道如何在下面的时间....做一些事情
app_sleep_entry_proc ();//在WFI()之前输入ext_sleep
app_sleep_exit_proc ();//在退出WFI()…

谢谢。

关键词:
JE_Dialog
离线
最后看到:3个月2个星期前
工作人员
加入:2013-12-05 14:02
你好马络,

你好马络,

我已经让当地的团队联系你了。在扩展睡眠模式下,堆栈将关闭,BLE定时器/ app定时器将决定设备何时由于中断或BLE事件从睡眠中出来。

BR JE_Dialog

马络
离线
最后看到:4年11个月前
加入:2014-07-11 06:48
嗨JE_Dialog。

嗨JE_Dialog。

我有个理由。
每次WFI()的唤醒时间,都会自动调用spi_hci_flow_on_func()。
所以SPI_DREADY_PIN每次输出高信号。

但是我们的外部CPU并不关心DA14580在扩展睡眠模式下发出的DREADY信号……
然后DA14580等待响应,但外部CPU没有响应,然后BLE堆栈计时被延迟…

同时我们的CPU通过DREADY中断信号来消耗能量。
最好是DREADY信号必须改变,只有SPI通信发生。DA14580唤醒时间不需要更改。

所以我在spi_hci_flow_on_func()中添加了状态检查代码;

if (app_get_sleep_mode() == ARCH_EXT_SLEEP_ON)返回;//检测从下一个睡眠模式唤醒。

有什么问题吗?或者请告诉我更好的解决方案…

BR

JE_Dialog
离线
最后看到:3个月2个星期前
工作人员
加入:2013-12-05 14:02
你好,Maro,当地人

嗨,Maro,一个本地团队会打电话给你讨论你的解决方案。BR JE_Dialog