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

The nrf21540 amplifier can't enable Transmit mode after Receive mode

I have a issue with nrf21540 in the Transmit state after the Receive state with using of GPIO for control Transmit / Receive switch.

I'm  doing next steps for reproducing the issue (I'm doing this steps on the debug mode):

1 - power on amplifier and master MCU (nrf52840)

2 - configure and pulled Down all gpio that use for control amplifier : MODE, RX_EN, TX_EN, PDN, CSN.

3 - puled Up PDN,      long delay (> 1s)

4 - configuring amplifier over SPI: write TX_GAIN field to register CONFREG0  (5 dBm)

5 - checking configuration: read the register CONFREG0

6- pull Up TX_EN,      long delay (> 1s)

7 - start radio transmit . With using RF spectrum analyzer, check that amplifier works as expected (first cycle everything is OK, amplifier works as expected). 

8 - stop radio transmit,      long delay (> 1s)

9 - puled Down TX_EN,      long delay (> 1s)

10 - puled Up RX_EN, puled Down  CSN      long delay (> 1s)

11 - puled Up CSN, puled Down RX_EN       long delay (> 1s)

12 - go to step 6

On the second and next cycles, I can't see radio signal on my  spectrum analyzer at the step 7.

Are my configuration and manner of switching Tx/Rx mode is correct ? Why does amplifier can't works  in the Transmit state on the second and next cycles of my flow? 

Also I am not sure that amplifier switching to the Receive state.

Parents Reply Children
  • Thanks for getting back to me so quickly.

    I tested without CSN - unfortunately behavior the same.

    I begin analyze driver for nrf21540 from nRF5_SDK_17.0.2. As i can see, we can select only one way control: SPI or GPIO. But, if I select GPIO, I cant use SPI for adjustment TX_GAIN field on the CONFREG0, because I need SPI for this. If I use GPIO I can only use MODE pin and configuration from registers CONFREG2 or CONFREG3. But for this I need program this two OTP registers before using amplifier (with using higher voltage level and so on).

    But I need next behavioure (SPI +GPIO): once I write settings to the TX_GAIN field of the CONFREG0 register (over SPI) it should be used every time when I switch amplifier to TX state (with using GPIO). Or I need update TX_GAIN field every time over SPI before start Transmit ?
    Or in case of using GPIO for controlling, I can use only MODE pin and CONFREG2 or CONFREG3 registers?

  • Hi,

     

    Using a combination should not be a problem, but as you say currently there is no support for that directly from the SDK.

    The TX_GAIN you write will be used every time but reset when the device enters the PROGRAM state, so you will need to set it every time you enter TX. Using POUTA_UICR or POUTB_UICR will default to the value you program in that, without having to write TX_GAIN, but as you know this is OTP.

    When using GPIO MODE is used instead of CONFREG2 and CONFREG3 yes.

     

    Best regards,

    Andreas

Related