52832 PA

2019-07-14 11:41发布

PA / LNA support in S132

The S132 SoftDevice for the nRF52 has support for enable/disable switching of external Power Amplifiers (PA) and Low Noise Amplifiers (LNA) using GPIO pins. This was introduced in S132 version 2.0.0-7.alpha. In the nRF51 there was an option to use the VDD_PA pin to detect when the radio was in TX mode, but this is not an option on the nRF52, making the SoftDevice solution necessary. The following function can be used to enable PA/LNA signal. Adapt it as required in order to change the number of pins (1 or 2), pin numbers, polarity etc. static void pa_lna_assist(uint32_t gpio_pa_pin, uint32_t gpio_lna_pin) { ret_code_t err_code; static const uint32_t gpio_toggle_ch = 0; static const uint32_t ppi_set_ch = 0; static const uint32_t ppi_clr_ch = 1; // Configure SoftDevice PA/LNA assist ble_opt_t opt; memset(&opt, 0, sizeof(ble_opt_t)); // Common PA/LNA config opt.common_opt.pa_lna.gpiote_ch_id = gpio_toggle_ch; // GPIOTE channel opt.common_opt.pa_lna.ppi_ch_id_clr = ppi_clr_ch; // PPI channel for pin clearing opt.common_opt.pa_lna.ppi_ch_id_set = ppi_set_ch; // PPI channel for pin setting // PA config opt.common_opt.pa_lna.pa_cfg.active_high = 1; // Set the pin to be active high opt.common_opt.pa_lna.pa_cfg.enable = 1; // Enable toggling opt.common_opt.pa_lna.pa_cfg.gpio_pin = gpio_pa_pin; // The GPIO pin to toggle // LNA config opt.common_opt.pa_lna.lna_cfg.active_high = 1; // Set the pin to be active high opt.common_opt.pa_lna.lna_cfg.enable = 1; // Enable toggling opt.common_opt.pa_lna.lna_cfg.gpio_pin = gpio_lna_pin; // The GPIO pin to toggle err_code = sd_ble_opt_set(BLE_COMMON_OPT_PA_LNA, &opt); APP_ERROR_CHECK(err_code); } The plot below shows a measurement using the PA/LNA signal when starting up the radio in TX mode. In the plot, M2 is the point where the analyzer triggered on the PA signal from the GPIO. This is ~7.6 us after the radio was turned on (M1) and ~5.8 us before the radio starts to modulate data (M3). The measurement was performed using S132 version 2.0.0-7.alpha.