NRF52840 BLE 3-Wire Coexistence with WiFi Module

I am looking to use the NRF52840 Coexistence feature with an external WiFi radio. However, the NRF52 appears to have a more complex coexistence protocol then the WiFi radio I am using. I am looking for a way to configure the NRF52 or use some method to use 3-wire coexistence without the "handshaking" signal I'll describe below.

Coexistence uses a Request, Grant and Priority/Direction signal. I'm going to ignore the Priority/Direction in this discussion.

The Request signal is used to indicate that the NRF52 would like to transmit, and the Grant signal is used to indicate whether or not the NRF52 is allowed to transmit.My understanding has been that when the GRANT signal is low, BLE transmission will be blocked. My WiFi radio has equivalent GPIO and does exactly that.

It appears that the NRF52 needs a sort of handshake between the Request and Grant signal for every single transmission. Let me explain using some oscilloscope captures.

Notice that I am using he nRF52840-DK evaluation kit and using the example coexistence application with no changes. I have connected jumpers on the board as specified.
Bluetooth: External radio coexistence using 3-wire interface

In all of the following scope shots I've connected channel 1 to the GRANT signal, and channel 2 to the REQUEST signal.

Below is a scope shot of the default behavior when the system boots up, where the example code is working in grant mode, meaning it is allowed to send packets. I confirmed that I see RF transmission coming out of the module. This works as I expected it to. The GRANT signal is high, and BLE is allowed to transmit messages. I am able to sniff packets with another NRF52 set up as a BLE sniffer with Wireshark.

Once the "d" character is sent to the demo code it denies RF transmission by driving the GRANT signal. I am able to confirm via a BLE scanner that no messages are getting sent. As you can see, there is a very short pulse on the grant pin which prevents the BLE system from transmitting. I expected to see the GRANT line to go low to prevent transmission, but the fact that it is low for such a short period of time I find strange.

Next I connected the grant signal to GND to force it to be low. I expected that holding this line low would prevent any transmission, in a "big hammer" method vs denying each transfer individually. However, that is NOT the case. Holding the GRANT line low has no influence on RF transmission. I see the NRF52 advertising messages on my BLE sniffer.

I looked back at the Coexistence documentation, found here:
Bluetooth External Radio Coexistence

There is a definition for Tmax_BLE_GRANT_reactivation_delay which is most likely what is happening on the GRANT signal.

Is this the expected behavior??
Does my WiFi module have to listen to every assertion of the REQUEST line, and produce a less-then-100uS negative pulse on the GRANT line to indicate that it is in the middle of a transmission and the NRF52 must not transmit?

My WiFi Radio's version of Coexistence is that it will stop transmitting when it sees that someone else is holding it's GRANT line asserted. Is there any way to get this kind of behavior from the NRF52? So if the GRANT line is low, NRF52 won't transmit.

Thanks!

Parents Reply Children
Related