Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

General Radio PA/LNA usage question.

So, my understanding of the current support for a PA/LNA is a set of configuration options you can pass into a BLE library and then the soft device will handle the operation of the pin(s). 

It is also my understanding that the Softdevice firmware is not available as source (correct me if I am wrong). 

My question is , would it be possible to extract out the code from the Softdevice source that handles the PA/LNA timing?

I am assuming there are timings that are built into the code when the radio is being enabled for transmit and when it is disabled for reception. Is there any way to get those pieces of source and nothing else??

It would really help with people trying to implement ESB.

Parents
  • Hi,

    handling PA/LNA is a straigtforward task - enable a pin before radio starts and disable it when everything is done. In softdevice specfication you can find timings used by SD, in your own implementation you can adjust them according to switching parameters of PA/LNA chip. Just curious what you would like to look in softdevice source code...

Reply
  • Hi,

    handling PA/LNA is a straigtforward task - enable a pin before radio starts and disable it when everything is done. In softdevice specfication you can find timings used by SD, in your own implementation you can adjust them according to switching parameters of PA/LNA chip. Just curious what you would like to look in softdevice source code...

Children
  • The source I imagine has the setup and timing all set up. That would make grafting it to the ESB driver source easier.

    I was looking for the source pieces that consume and set up using nrf52 using the static ble_opt_t pa_lna_opts  variable.

    My assumption is that Nordic owns the source for these Soft devices, and that the functionality of controlling the radio "properly" for BLE would translate into ESB or other radio code. Things like using the shortcuts or specific timers, would help our evaluation and development a lot. 
    Perhaps these "pieces" I am requesting are too difficult to copy an paste from the source code to release as a stand alone, also there could be some kind of license restrictions for Nordic on the release of "any part" of the source for the SoftDevices. I can understand that kind of a restriction, if it exists.

    You are saying that the specifications for the SoftDevice describe these timings, but it still would be nice to see the code.

    The other side of this is for radio certification, if the company that makes a module with a PA/LNA and certify for their radios for BLE in the US, then it stands to reason that the timings for PA On/Off would be a good starting point for development using a different protocol , like ESB. I understand that "radio" isn't a one configuration fits all regulations type thing. I just wanted a starting point, considering not every manufacturer of a module with a PA/LNA use the same circuit and I imagine that they behave differently.

    So my question is:

    Can Nordic release pieces of source code for the SoftDevice that consume the  static ble_opt_t pa_lna_opts  variable?

    Tony

  • Anthony,

    Softdevice is responsible for the radio timing to match the BLE protocol only. And hence it will enable the and disable the PA/LNA pins based on the detail timings it understands on the TX and RX. It could add few delays to compensate jitter and/or do other adjustments to make this efficient. This piece of logic probably is not compatible with other protocols apart from BLE. 

    If you still want to look at the logic of how it is done, you can get best understanding from the opensource projects like Zephyr.

    Please look into the radio.c file where you can clearly see the setup of PA/LNA using the GPIOTE//PPI channels

Related