This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Controlling a PA/LNA (SKY66112-11) with the nRF52832 and proprietary protocols

Hi all,

We are currently developing a wireless system for a musical instrument and MIDI controller based on a nRF52832 (using Laird BL652 modules). Our requirements prevents us from using BLE (way too much latency), thus we used Nordic's Gazell implementation (nRF5 SDK 14.2.0) and it worked quite well for us.

However, we need to increase the range of our system, thus we tried to replace our Laird BL652 modules with a Fanstel BT832X, which features a nRF52832 as well as a Skyworks SKY66112-11 PA/LNA module.

As we couldn't see any PA/LNA support in the Nordic Gazell Link Layer implementation and couldn't add it ourselves due to the lack of source code, we switched to Nordic's ESB implementation, which we could modify to control the CTX and CRX pins with correct timing (inspired from the documentation of the S132 PA/LNA control API), mostly using PPIs and GPIOTE. However, even after several different implementations we couldn't manage to get it working correctly (much poorer range than the module without PA/LNA, and missed packets). In comparison, the same implementation (without activating PA/LNA control) works flawlessly on our BL652 modules.

I could provide further detail on our implementation, but I'd like to first know whether there is any guideline or code example for implementing PA/LNA support with Nordic's proprietary protocols.

Best regards,

Jonathan

Parents
  • A while back I wrote some PA/LNA code for DTM which is functionally proprietary protocol since it doesn't use the SD.

    Basically you just use ppi/gpiote and the radio events to drive the solution.  I'm sure you can figure out how to implement from the code.

    Here is the link:

    https://devzone.nordicsemi.com/f/nordic-q-a/13515/pa-lna-assist-in-dtm-direct-test-mode

  • Thanks for the link. We already know your solution and implemented something based on it with PPI and GPIOTE: IIRC, once RADIO emits a READY event, turn on the PA and start a timer whose COMPARE0 event, 4µs later, will trigger RADIO's START task, so that the PA has enough time to warm up, without amplifying too much noise. This also required us to remove the shortcut between RADIO's READY event and its START task in the the latest version of Nordic's implementation. We also tried two other variants that didn't require removing the shortcut (one with a timer, one without), but all of them led to the same poor performance we observed.

    If this works for you on nRF52832, though, we'll try to carefully reexamine your examples and re-check if we missed anything. Meanwhile, I'm open to any other piece of advice from any customer or Nordic employee on PA/LNA control without S132.

Reply
  • Thanks for the link. We already know your solution and implemented something based on it with PPI and GPIOTE: IIRC, once RADIO emits a READY event, turn on the PA and start a timer whose COMPARE0 event, 4µs later, will trigger RADIO's START task, so that the PA has enough time to warm up, without amplifying too much noise. This also required us to remove the shortcut between RADIO's READY event and its START task in the the latest version of Nordic's implementation. We also tried two other variants that didn't require removing the shortcut (one with a timer, one without), but all of them led to the same poor performance we observed.

    If this works for you on nRF52832, though, we'll try to carefully reexamine your examples and re-check if we missed anything. Meanwhile, I'm open to any other piece of advice from any customer or Nordic employee on PA/LNA control without S132.

Children
Related