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:

Parents
  • 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
    };

Reply
  • 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
    };

Children
No Data
Related