嗨支持团队,
我从fh_proxr_sdk(v3.0.6)中创建软件并添加了SPI从驱动程序。
SPI奴隶驱动程序在#undef CFG_EXT_SLEEP条件下运行良好。
但是在ext_sleep模式下,BLE堆栈似乎已停止。
BLE在空闲模式下工作(起始后)。
但是进入ext_sleep模式后,BLE堆栈停止。
我发现这个问题与spi_dready_high()有关;手术。
如果我不调用spi_hci_flow_on_func()(该函数包括spi_dready_high();)在初始化时,输入ext_sleep模式后,BLE堆栈不会停止。
并且我发现ext_sleep模式下的SPI_DREADY_PIN端口输出脉冲信号,以便在称为SPI_DREADY_HIGH()的情况下。
如果我没有调用spi_hci_flow_on_func(),脉冲信号不会输出和ble堆栈很好。
所以我想知道如何在下面的时间做某事....
app_sleep_entry_proc();//在wfi()之前输入ext_sleep
app_sleep_exit_proc();//退出WFI()...
谢谢。
关键词:
你好Maro,
我问了一个当地团队联系你。在扩展睡眠模式下,堆栈将关闭,BLE定时器/应用程序定时器正在决定当设备由于中断或BLE事件而恢复睡眠状态。
BR JE_DIALOG.
嗨je_dialog。
我有理由。
从WFI();,spi_hci_flow_on_func()的每个唤醒时间都是自动调用的。
因此SPI_DREADY_PIN每次输出高信号。
但我们的外部CPU在扩展睡眠模式期间,我们的外部CPU不关心来自DA14580的减排信号......
然后DA14580等待响应,但外部CPU没有回答,然后BLE堆栈时间延迟......
我们的CPU也消耗了每DA14580唤醒时机的减排中断信号。
它是更好的传输信号必须仅更改SPI通信发生。无需在DA14580唤醒时序。
所以我在spi_hci_flow_on_func()中添加了状态检查代码;
:
if(app_get_sleep_mode()== arch_ext_sleep_on)返回;//检测从ext睡眠模式的唤醒。
:
有什么问题吗??或者请告诉我更好的解决方案......
布尔
嗨Maro,其中一支当地团队将致电您讨论您的解决方法。BR JE_DIALOG.