Integration notes

To integrate the Gazell Link Layer library in your application, you need to:

  • Link in the GZLL library. See the Configuration section.

  • Supply the glue code used by the library. See the Glue layer section.

RTOS

Gazell Link Layer API is not reentrant. It should be called by only a single thread in an RTOS.

Configuration

In the nRF Connect SDK, you can enable the GZLL library using the CONFIG_GZLL Kconfig option. Look for the menu item “Enable Gazell Link Layer”. The build system will link in the appropriate library for your SoC.

Glue layer

The glue layer lets you to select the hardware resources for Gazell.

Radio

Gazell accesses directly the 2.4 GHz radio peripheral.

When the 2.4 GHz radio makes an interrupt request, the glue function nrf_gzll_radio_irq_handler() needs to be called for Gazell processing.

Timer

Gazell requires a timer peripheral for timing purposes. It accesses directly the timer instance provided by the nrf_gzll_timer variable. It consults the nrf_gzll_timer_irqn variable for the interrupt number of the timer.

When the timer makes an interrupt request, the glue function nrf_gzll_timer_irq_handler() needs to be called for Gazell processing.

Software interrupt

Gazell consults the nrf_gzll_swi_irqn variable for the software interrupt number to use.

When the software interrupt is triggered, the glue function nrf_gzll_swi_irq_handler() needs to be called for Gazell processing.

PPI channels

For the nRF52 Series, Gazell takes three PPI channels. It consults the following variables for the PPI channel numbers, event end points (EEP) and task end points (TEP):

DPPI channels

For the nRF53 Series, Gazell takes three DPPI channels. It consults the following variables for the DPPI channel numbers:

High frequency clock

You can configure Gazell to automatically switch on and off the high frequency oscillator (NRF_GZLL_XOSC_CTL_AUTO). It calls the following glue functions for high frequency clock requests:

Microseconds delay

Gazell calls the glue function nrf_gzll_delay_us() to delay a number of microseconds.