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

PA LNA in a serialized application

Hi,

I am currently working with two nrf52 boards in a serialized configuration. I wanted to add the PA and LNA pin toogle on the connectivity chip. As the gpio can't be configured from the application chip, I did a little work around to allow the application to ask the connectivity to enable PA and LNA pins : I added the following code in the connectity application (in conn_mw_ble.c, in the function conn_mw_ble_opt_set()):

if(opt_id == BLE_COMMON_OPT_PA_LNA){
    sd_err_code = pa_lna_init(19,20);
}else{
    sd_err_code = sd_ble_opt_set(opt_id, p_opt);
}

With pa_lna_init(), the function you gave in an other forum post.

And I used it as follow on the application chip :

gap_params_init();
advertising_init();
services_init();
sensor_simulator_init();
conn_params_init();

// Start execution.
NRF_LOG_INFO("Heart Rate Sensor Start!\r\n");
sd_ble_opt_set(BLE_COMMON_OPT_PA_LNA, NULL);

This configuration works perfectly with the SPI 5W serialization, but stop after the call to sd_ble_opt_set(BLE_COMMON_OPT_PA_LNA, &opt) in the standart SPI serialization (6 wires).

Does anybody have an idea of the differences between the normal SPI and the 5W SPI which could lead to this behavior ?

Regards,

Romain

Parents
  • The problem is probably with the PPI channel used. SPI 6W serialization use channel 0 for the READY signal:

    #define SER_PHY_SPI_PPI_RDY_CH                  0
    

    Which is the same used in the pa_lna_init(..) function in the blogpost. Change the PPI channel used for the RDY line or the PPI channels used in pa_lna_init(..).

    EDIT:

    You should also not use the same GPIOTE channel. Channel 0 is used for the READY signal in SPI 6W serialization:

    #define SER_PHY_SPI_GPIOTE_RDY_CH               0
    

    Which is the same used in the pa_lna_init(..) function in the blogpost.

Reply
  • The problem is probably with the PPI channel used. SPI 6W serialization use channel 0 for the READY signal:

    #define SER_PHY_SPI_PPI_RDY_CH                  0
    

    Which is the same used in the pa_lna_init(..) function in the blogpost. Change the PPI channel used for the RDY line or the PPI channels used in pa_lna_init(..).

    EDIT:

    You should also not use the same GPIOTE channel. Channel 0 is used for the READY signal in SPI 6W serialization:

    #define SER_PHY_SPI_GPIOTE_RDY_CH               0
    

    Which is the same used in the pa_lna_init(..) function in the blogpost.

Children
Related