嗨,支持团队,
我正在从fh\u proxr\u sdk(v3.0.6)创建软件,并添加了SPI从驱动程序。
SPI从驱动程序在#undef CFGŠu EXTŠ睡眠条件下工作良好。
但在EXT\u睡眠模式下,BLE堆栈似乎停止了。
BLE在空闲模式下工作(刚启动后)。
但BLE堆栈在进入EXT\ U睡眠模式后停止。
我发现这个问题与spi_dready_high();操作有关。
如果在初始化时不调用spi_hci_flow_on_func()(函数包括spi_dready_high();),BLE堆栈在进入EXT_睡眠模式后不会停止。。
我发现在被称为SPI\u DREADY\u high()的情况下,SPI\u DREADY\u PIN端口在ext\u睡眠模式下输出脉冲信号。
如果我没有调用spi\u hci\u flow\on\u func(),脉冲信号就不能输出,BLE堆栈工作得很好。。
所以我想知道如何在下面的时间做一些事情。。。。
app_sleep_entry_proc();//在WFI()之前输入ext_sleep
app_sleep_exit_proc();//退出WFI()后。。。
谢谢。
你好,Maro,
我已经让当地的一个小组和你联系了。在扩展睡眠模式下,堆栈将关闭,BLE定时器/应用定时器决定设备何时因中断或BLE事件而退出睡眠。
BR JE\u对话框
嗨,我的对话。
我有个理由。
从WFI();、spi_hci_flow_on_func()的每个唤醒时间都会自动调用。
所以每次SPI引脚都会输出高信号。
但是我们的外部CPU不关心在延长睡眠模式下来自DA14580的可怕信号。。。
然后DA14580等待响应,但是外部CPU没有应答,然后BLE堆栈计时被延迟。。。
此外,我们的CPU消耗可怕的中断信号每DA14580唤醒时间的权力。
最好是可怕的信号必须改变只有SPI通信发生。无需在DA14580唤醒时间更改。
所以我在spi_hci_flow_on_func()中添加了状态检查代码;
:
if(app_get_sleep_mode()==ARCH_EXT_sleep_ON)return;//从EXT sleep mode检测唤醒。
:
有什么问题吗??或者请告诉我更好的解决方案。。。
比尔
你好,Maro,当地的一个团队会打电话给你讨论解决方法。BR JE\u对话框