RX enable time on the PA LNA driver for nRF21540

Hi

I'm using the PA LNA driver for the nRF21540 with the function:

void mesh_lna_setup_start(uint32_t rampup_start_capture_time, uint32_t timer_index)

Now, when I check the TX and RX signals, I can see that the RX enable PIN is switched low every 200ms, not only during the TX interval.

How can I change this to 100% receiving time? When a packet is coming over BLE and the RX is switched off, this packet is getting lost.

Here is the plot of the TX, RX enable Pins:

CH1 is TX, CH2 (green) is RX:

  • Hi,

    Can you give more details about your setup? 

    What SDK and version are you using? What example are you testing? What modifications have you made to the example?

  • Hi

    I'm using ## BLE Mesh v5.0.0 @anchor release_notes_500 @par Release Date: Week 47, 2020

    I'm implementing my own code with BLE mesh, there is no example for the nRF21540 LNA driver with BLE Mesh SDK.

    I use the default settings:

    #define LNA_PPI_CH_ID_SET   0
    #define LNA_PPI_CH_ID_CLR   1
    #define LNA_GPIOTE_CH_ID    0
    
    #ifndef MESH_PA_SETUP_TIME_US
    #define MESH_PA_SETUP_TIME_US 18
    #endif
    
    #ifndef MESH_LNA_SETUP_TIME_US
    #define MESH_LNA_SETUP_TIME_US 18
    #endif
    
    
    #if defined(NRF52_SERIES)
        /**
         * Maximum packet length supported by the radio
         * This includes: S0 + LENGTH + S1 + PAYLOAD
         */
        #define RADIO_MAX_PACKET_LEN          258
    
        #define PREAMBLE_LEN(MODE) (((MODE) == RADIO_MODE_BLE_2MBIT) ? 2 : 1)
        #define RADIO_TIME_PER_BYTE(MODE) (((MODE) == RADIO_MODE_NRF_2MBIT || (MODE) == RADIO_MODE_BLE_2MBIT) ? 4 : 8)
    
        #define RADIO_RAMPUP_TIME   (40)
    
        #define PREAMBLE_LEN(MODE) (((MODE) == RADIO_MODE_BLE_2MBIT) ? 2 : 1)
    
    
    
    static mesh_pa_lna_gpiote_params_t m_pa_lna_params =
    {
    	.lna_cfg = {
    		.enable = 1,
    		.active_high = 1,
    		.gpio_pin = ANT_RX_EN
    	},
    	.pa_cfg = {
    		.enable = 1,
    		.active_high = 1,
    		.gpio_pin = ANT_TX_EN
    	},
    	.ppi_ch_id_set = LNA_PPI_CH_ID_SET,
    	.ppi_ch_id_clr = LNA_PPI_CH_ID_CLR,
    	.gpiote_ch_id = LNA_GPIOTE_CH_ID
    };

  • Hi, 

    I would highly recommend you to use our nRF Connect SDK for Mesh. The examples have support for nRF21540 by default.

  • Hi

    The complete Mesh Project is still running with BLE Mesh SDK, and the nRF21540 is running correctly, I was only not sure about the timegap, but this should be the same if I use the connect SDK or BLE Mesh.

    Can you send me this timing on nRF connect SDK?

    What is the reason why BLE Mesh is not recommended?

  • Hi,

    Dominik Eugster said:
    What is the reason why BLE Mesh is not recommended?

    nRF5 SDK for Mesh is in maintenance mode only so newer features won't addded. New features and improvements will only come to nRF Connect SDK moving forward, which is why it is recommended to move to nRF Connect SDK with newer designs. More details can be found here.

    What is your scan window(BEARER_SCAN_WINDOW_DEFAULT_MS) and scan interval(BEARER_SCAN_INT_DEFAULT_MS) set to?

Related