The following peripherals are used by the Zigbee stack and the 802.15.4 radio driver and cannot be used directly by an application:
Peripheral | Zigbee stack | 802.15.4 Radio Driver | Comment |
---|---|---|---|
TIMER1 | X | ||
TIMER2 | X | Optional, unused by default. | |
TIMER3 | X | ||
RTC2 | X | X | Zigbee uses RTC2 for sleep through radio driver API. |
UART0 | X | Only for CLI/LOG over UART. | |
USB | X | Only for CLI/LOG over USB. | |
RADIO | X | ||
SWI3 | X | Single Phy: Only channel 15, without ISR. Multiprotocol: channels 0, 1, 2, 15 with ISR. | |
RNG | X | ||
ECB | X | ||
PPI | X | Channels 0-5 for debug mode; 6-12 for driver core. | |
PPI group | X | Group 0 used by driver core. | |
GPIOTE | X | 2 channels selected by user: 1 for PA, 1 for LNA. |
In the multiprotocol Zigbee/BLE solution, the SoftDevice uses additional peripherals. For details, see S140 SoftDevice hardware peripherals usage.
The following figures present a typical flash and RAM layout for an application that uses the Zigbee stack in single and multiprotocol scenarios.
For details on the values of APP_CODE_BASE
and APP_RAM_BASE
, see S140 SoftDevice memory resource map and usage.
The following table summarizes typical flash and RAM requirements for various Zigbee device types, including simple user application. The values for end device, router, and coordinator were calculated based on the light control example built with the GCC compiler.
The values for multiprotocol Zigbee/BLE were calculated based on multiprotocol examples and include SoftDevice flash and RAM requirements.
Role | Example | Flash [kB] (Zigbee stack + app) | Persistent data [kB] | Production configuration [kB] | RAM [kB] (Zigbee stack + app) | Flash [kB] (BLE stack) | RAM [kB] (BLE stack) | Total ROM [kB] | Total RAM [kB] |
---|---|---|---|---|---|---|---|---|---|
End device | Light control/switch | 175 | 32 | 16 | 14 | 224 | 14 | ||
Router | Light control/bulb | 231 | 32 | 16 | 20 | 279 | 20 | ||
Coordinator | Light control/coordinator | 210 | 32 | 16 | 27 | 258 | 27 | ||
Router + BLE Peripheral | Light bulb + Eddystone | 284 | 32 | 16 | 56 | 152 | 5.5 | 484 | 61 |
ZED + BLE Peripheral | Light switch + NUS | 192 | 32 | 16 | 39 | 152 | 5.5 | 392 | 44 |
ZED + BLE Central | Light bulb + Thingy | 192 | 32 | 16 | 40 | 152 | 5.5 | 398 | 46 |
The Zigbee solution provided with the SDK allows you to adjust the flash and memory requirements at application compile time. By convention, all examples provided in the SDK use minimal configuration for end devices, medium for routers, and maximum for coordinators. For details, see Zigbee stack RAM usage configuration and Zigbee stack flash usage configuration.