Hey!
I have inherited a project with a nRF9160 + nRF52480 combination to do LTE and BLE communication.
The setup is as follows:
- nRF9160 using BSDlib @ NCS 1.5.0
- nRF52840 running HCI_SPI example acting as a controller
Issue:
Host (nRF9160) is unable to keep up with interrupts generated by HCI controller. When the IRQ is lost / not processed quickly enough the HCI layer gets stuck in a situation where the HCI controller waits for the host to read data, and the host waits for an interrupt that never comes (the IRQ is trigger by GPIO state change, but the IRQ pin is already active (low on our board).
I have gone through the threads running in this application (7 in total) and they are all with lower priority than the HCI SPI thread. The only thing I have found that have higher priority (except for kernel stuff) is the BSDLib interrupts.
This also correlates with my findings when probing the IRQ pin, activity stops dead when there is LTE traffic (MQTT data in this application).
My question is then:
Does it sound reasonable that HCI SPI processing gets interrupted and delayed by BSDLib? Any tips on how I can verify/debunk my theory?
EDIT: bluetooth is running a a simple passive advertisement scanner