Part Number Hot Search : 
DN6847 LTP455AP ASRD806 SI230 TS822IZ 2N5484 W9825 MCG5659
Product Description
Full Text Search
 

To Download AT86RF212B-14 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  1 42002c ? mcu wireless ? 08/13 at86rf212b features ? fully integrated 769 ? 935 mhz transceiver including: - chinese wpan band from 779 to 787 mhz - european srd band from 863 to 870 mhz - north american ism band from 902 to 928 mhz - japanese band from 915 to 930 mhz ? direct sequence spread spectrum with different mod ulation and data rates: - bpsk with 20 and 40kb/s, compliant to ieee ? 802.15.4 - 2003/2006/2011 - o - qpsk with 100 and 250kb/s, compliant to ieee 802.15.4 - 2006/2011 - o - qpsk with 250kb/s, compliant to ieee 802.15.4 - 2011 - o - qpsk with 200, 400, 500, and 1000kb/s psdu data rate ? flexible combination of frequency bands and data rates ? industry leading link budget: - receiver sensitivity up to - 110 dbm - programmable tx output power up to +10 dbm ? ultra - low current consumption: - sleep = 0.2 a - trx_off = 450 a - rx_on = 9.2 ma - busy_tx = 18.0 ma at tx output power +5 dbm ? ultra - low supply voltage ( 1.8 v to 3.6 v ) with internal regulator ? easy to use interface: - registers, frame buffer, and aes accessible through fast spi - clock output with pre scaler from radio transceiver ? radio transceiver features: - 128- byte fifo (sram) for data buffering - fully integrated, fast settling pll to support frequency hopping - battery monitor - adjustable receiver sensitivity - integrated tx/rx switch, lna, and pll loop fi lter - automatic vco and filter calibration - integrated 16mhz crystal oscillator ? special ieee 802.15.4 ? - 2011 hardware support: - fcs computation and clear channel assessment - rssi measurement, energy detection and link quality indication ? mac hardware accelerator: - automated acknowledgement and retransmission - csma - ca and listen before talk (lbt) - automatic address filtering and automated fcs check ? extended feature set hardware support: - aes 128 - bit hardware accelerator - antenna diversity - rx/tx indication for external rf front end control - true random number generation for security application ? optimized for low bom cost and ease of production: - few external components necessary (crystal, capacitors and antenna) - excellent esd robustness - industrial t emperature range from - 40c to +85 c ? i/o and packages: - 32- pin low - profile qfn package 5 x 5 x 0.9mm3 - rohs/fully green ? compliant to ieee 802.15.4 - 2003/2006/2011 ? compliant to etsi en 300 220 - 1, and fcc 47 cfr section 15.247 low power , 700/800/900 mhz transceiver for zigbee, ieee 802.15.4, 6lowpan , and ism applications at86rf212b rev. 42002c ? mcu wireless ? 08/13
2 42002c ? mcu wireless ? 08/13 a t86rf212b 1 pin - out diagram figure 1 - 1 . atmel at86rf212b pin - out diagram . 32 24 23 22 21 20 19 18 17 1 2 3 4 5 6 7 8 at 86 rf 212 b clkm dvss dig 3 dig 4 avss avss rfp rfn dvss / rst dig 1 dig 2 slp _ tr dvss dvdd dvdd devdd dvss sclk miso dvss mosi / sel irq xtal 2 xtal 1 avss evdd avdd avss avss avss 31 30 29 28 27 26 25 9 10 11 12 13 14 15 16 avss exposed paddle note: 1. the exposed paddle is electrically connected to the die inside the package. it shall be soldered to the board to ensure electrical and thermal contact and good mechanical stability.
3 42002c ? mcu wireless ? 08/13 at86rf212b 1.1 pin description s table 1 - 1 . atmel at86rf212b pin description . pins name type description 1 dig3 digital output (ground) 1. rx/tx indication , see section 11.4 2. if disabled, pull - down enabled (avss) 2 dig4 digital output (ground) 1. rx/tx indication ( dig3 i nverted ) , see section 11.4 2. if disabled, pull - down enabled (avss) 3 avss ground ground for rf signals 4 rfp rf i/o differential rf signal 5 rfn rf i/o differential rf signal 6 avss ground ground for rf signals 7 dvss ground digital ground 8 /rst digital input chip reset; active low 9 dig1 digital output (ground) 1. antenna diversity rf switch control, see section 11.3 2. if disabled, pull - down enabled (dvss) 10 dig2 digital output (ground) 1. antenna diversity rf switch control (dig1 inverted), see section 11.3 2. rx frame time stamping, see section 11.5 3 . if functions disabled, pull - down enabled (dvss) 11 slp_tr digital input controls sleep, transmit start, and receive states; active high; see section 6.6 12 dvss ground digital ground 13, 14 dvdd supply regulated 1.8v voltage regulator output or regulated voltage input ; digital domain, see section 9.5 15 devdd supply external supply voltage; digital domain 16 dvss ground digital ground 17 clkm digital output master clock signal output; low if disabled, see section 9.7 18 dvss ground digital ground 19 sclk digital input spi clock 20 miso digital output spi data output (master input slave output) 21 dvss ground digital ground 22 mosi digital input spi data input (master output slave input) 23 /sel digital input spi select, active low 24 irq digital output 1. interrupt request signal; active high or active low; configurable , see section 6.7 2. frame buffer empty indicator; active high, see section 11.6 25 xtal2 analog input crystal pin, see section 9.7 26 xtal1 analog input crystal pin or external clock supply, see section 9.7 27 avss ground analog ground 28 evdd supply external supply voltage, analog domain 29 avdd supply regulated 1.8v voltage regulator output or regulated voltage input ; analog domain, see section 9.5 30, 31, 32 avss ground analog ground paddle avss ground analog ground; exposed paddle of qfn package
4 42002c ? mcu wireless ? 08/13 a t86rf212b 1.2 analog and rf pins 1.2.1 supply and ground pins evdd, devdd evdd and devdd are analog and digital supply voltage pins of the atmel ? at86rf212b radio transceiver. avdd, dvdd avdd and dvdd are outputs of the internal voltage regulators and require bypass capacitors for stable operation. the voltage regulators are controlled independently by the radio transceivers state machine and are activated depending on the current radio tr ansceiver state. the voltage regulators can be configured for external supply; for details, refer to section 9.5 . avss, dvss avss and dvss are analo g and digital ground pins respectively. the analog and digital power domains should be separated on the pcb. 1.2.2 rf pins rfn, rfp a differential rf port (rfp/rfn) provides common - mode rejection to suppress the switching noise of the internal digital signal pro cessing blocks. at board - level, the differential rf layout ensures high receiver sensitivity by reducing spurious emissions originated from other digital ics such as a microcontroller. the rf port is designed for a 100 ? differential load. a dc path between the rf pins is allowed; a dc path to ground or supply voltage is not allowed. therefore, when connecting a n rf - load providing a dc path to the power supply or ground, ac - coupling is required as indicated in table 1 - 2 . a simplified schematic of the rf front end is shown in figure 1 - 2 . figure 1 - 2 . simplified rf front - end schematic . lna pa rxtx 0.9v tx rx cm feedback m0 at86rf212b pcb
5 42002c ? mcu wireless ? 08/13 at86rf212b the rf port dc values depend on the operating state; refer to chap ter 7 . in trx_off state, when the analog front - end is disabled (see section 7.1.2.3 ), the rf pins are pulled to ground, preventing a floating voltage larger than 1.8v which is not allo wed for the internal circuitry. in transmit mode, a control loop provides a common - mode voltage of 0.9v. transistor m0 is off, allowing the pa to set the common - mode voltage. the common - mode capacitance at each pin to ground shall be < 100 pf to ensure the stability of this common - mode feedback loop. in receive mode, the rf port provides a low - impedance path to ground when transistor m0 (see figure 1 - 2 ) pulls the inductor center tap to ground. a dc voltage drop of 20 mv across the on - chip inductor can be measured at the rf pins. 1.2.3 crystal oscillator pins xtal1, xta l2 the pin 26 ( xtal1 ) of atmel at86rf212b is the input of the reference oscillator amplifier (xosc), the pin 25 ( xtal2 ) is the output. a detailed description of the crystal oscillator setup and the related xtal1/xtal2 pin configuration can be found in section 9.7 . when using an extern al clock reference signal, xtal1 shall be used as input pin. for further details, refer to section 9.7.3 . 1.2.4 analog pin summary table 1 - 2 . analog pin behavior ? dc values . pin values and conditions comments rfp/rfn v dc = 0.9 v (busy_tx) v dc = 20 mv (receive states) v dc = 0 mv (otherwise) dc level at pins rfp/rfn for various transceiver states . ac coupling is required if a circuitry with a dc path to ground or supply is used. serial capacitance and capacitance of each pin to ground must be < 100 pf . xtal1/xtal2 v dc = 0.9v at both pins c par = 3 pf dc level at pins xtal1/xtal2 for various transceiver states . parasitic capacitance (c par ) of the pins must be considered as additional load capacitance to the crystal. dvdd v dc = 1.8 v (all states, except sleep) v dc = 0 mv (otherwise) dc level at pin dvdd for various transceiver states . supply pins (voltage regulator output) for the digital 1.8v voltage domain. the outputs shall be bypassed by 1 f . avdd v dc = 1.8v (all states, except p_on, sleep, reset, and trx_off) v dc = 0 mv (otherwis e) dc level at pin avdd for various transceiver states. supply pin (voltage regulator output) for the analog 1.8v voltage domain. the outputs shall be bypassed by 1 f .
6 42002c ? mcu wireless ? 08/13 a t86rf212b 1.3 digital pins the atmel at86rf212b provides a digital microcontroller interface. the interface comprises a slave spi (/sel , sclk, mosi, and miso ) and additional control signals ( clkm, irq, slp_tr, /rst, and dig2) . the microcontroller interface i s described in detail in chapter 6 . additional digital output signals dig1, ?, dig4 are provided to control external blocks, that is for antenna diversity rf switch control or as an rx/tx indicator; see section 11.3 and section 11.4 respectively. 1.3.1 driver strength settings the driver strength of all digital output pins (miso, irq, dig1, ?, dig4) and clkm pin can be configured using register bits pad_io and pad_io_clkm ( regis ter 0x03 , trx_ctrl_0); see table 1 - 3 . table 1 - 3 . digital output driver configuration . pin default driver strength comment miso, irq, dig1, ?, dig4 2 ma adjustable to 2ma, 4ma, 6ma, and 8ma clkm 4 ma adjustable to 2ma, 4ma, 6ma, and 8ma the capacitive load should be as small as possible and not larger than 50 pf when using the 2 ma minimum driver strength setting. generally, the output driver strength should be adjusted to the lowest possible value in order to keep the current consumption and the emission of digital signal harmonics low. 1.3.2 pull - up and pull - down configuration pulling tr ansistors (10a current source) are internally connected to all digital input pins in radio transceiver state p_on, including reset during p_on; refer to section 7.1.2.1 and section 7.1.2.8 . table 1 - 4 summarizes the pull - up and pull - down configuration. table 1 - 4 . pull - u p / pull - down configuration of digital input pins . pin h = ? pull - up, l = ? pull - down /rst h /sel h sclk l mosi l slp_tr l in all other radio transceiver states, including reset, no pull - up or pull - down transistors are connected to any of the digital input pins mentioned in table 1 - 4 . note: 1. in all other states, external circuitry should guaranty defined levels at all input pins. floating input pins may cause unexpected functionality and increased power consumption, for example in sleep state. if the additional digital output signals dig1, ?, dig4 are not activated, these pins are pulled - down to digital ground (dig1/dig2) or analog ground (dig3/dig4).
7 42002c ? mcu wireless ? 08/13 at86rf212b 1.3.3 register description note: 1. throughout this datasheet, underlined values indicate reset settings. register 0x03 (trx_ctrl_0): the trx_ctrl_0 re gister controls the driver current of the digital output pads and the clkm clock rate. figure 1 - 3 . register trx_ctrl_0. bit 7 6 5 4 0x03 pad_io pad_io_clkm trx_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 0 1 bit 3 2 1 0 0x03 clkm_sha_sel clkm_ctrl trx_ctrl_0 read/write r/w r/w r/w r/w reset value 1 0 0 1 ? bit 7:6 - pad_io these register bits set the output driver current of digital output pads, except clkm. table 1 - 5 . pad_io. register bits value description pad_io 0 2ma 1 4ma 2 6ma 3 8ma note: 1. selecting low - level driver current reduces power consumption and minimizes transceiver?s harmonic distorion. ? bit 5:4 - pad_io_clkm these register bits set the output driver current of pin clkm. it is recommended to reduce the driver strength to 2ma (pad_io_clkm = 0) if possible. this reduces power consumption and spurious emissions. table 1 - 6 . pad_io_clkm. register bits value description pad_io_clkm 0 2ma 1 4ma 2 6ma 3 8ma
8 42002c ? mcu wireless ? 08/13 a t86rf212b 2 disclaimer typical values contained in this datasheet are based on simulations and testing. min imum and m ax imum values are available when the radio transceiver has been fully characterized. 3 overview the atmel at86rf212b is a low - power, low - voltage 700/800/900 mhz transceiver specially designed for the zigbee/ieee 802.15.4 , 6lowpan, and h igh data rate sub - 1ghz ism applications. for the sub - 1ghz bands, all modulation schemes and data rates according to ieee 8 02.15.4 - 2003 [1] , ieee 802.15.4 - 2006 [2] s tandards, and the respective 802.15.4c - 2009 [3] a mendment are supported. all these phy modes are summarized in ieee 802.15.4 - 2011 [4] standard. furthermore, proprietary high data rate modes up to 1000kb/s can be employed. the at86rf212b is a true spi - to - antenna solution. all rf - critical components except the antenna, crystal, and de - coupling capacitors are integrated on- chip. mac and aes hardware accelerators improve overall system power efficiency and timing. therefore, the at86rf212b is particularly suitable for applications like: ? sub - 1ghz ieee 802.15.4 and zigbee systems ? en ergy harvesting systems ? 6lowpan systems ? wireless sensor networks ? industrial control ? residential and commercial automation ? health care ? consumer electronics ? pc peripherals the at86rf212b can be operated by using an external microcontroller like atmel avr ? microcontrollers. a comprehensive software programming description can be found in reference [ 11 ] .
9 42002c ? mcu wireless ? 08/13 at86rf212b 4 general circuit description the atmel at86rf212b single - chip radio transceiver provides a complete radio transceiver interface between an antenna and a m icrocontroller. it comprises the analog radio, digital modulation and demodulation including time and frequency synchronization , as well as data buffering. a single 128 - byte trx buffer stores receive or transmit data. communication between transmitter and receiver is based on direct sequence spread spectrum with different modulation schemes and spreading codes. the at86rf212b diagram is shown in figure 4 - 1 . figure 4 - 1 . at86rf212b blo ck diagram . xtal1 xtal2 voltage regulator lna frequency synthesis ppf bpf adc agc rx bbp tx power trx buffer configuration registers spi (slave) tx bbp irq clkm dig1 /rst slp_tr /sel miso mosi sclk rfn dig2 ftn, batmon xosc analog domain digital domain mixer mixer lpf dac pa rfp aes control logic dig3/4 the number of external components is minimized so that only the antenna, a filter (at high output power levels), the crystal, and four bypass capacitors are required. the bidirectional differential antenna pins (rfp, rfn) are used for transmission and rece ption, thus no ex ternal antenna switch is needed. control of an external power amplifier is supported by two digital control signals (differential operation). the at86rf212b supports the ieee 802.15.4 - 2006 [2] standard mandatory bpsk modulation and optional o - qpsk modulation in the 868.3 mhz and 915 mhz bands. in addition, it supports the o - qpsk modulation defined in i eee 80 2.15.4- 2011 [4] for the chinese 780 mhz band. for applications not necessarily targeting ieee compliant networks, the radio transceiver supports proprietary high data r ate modes based on o - qpsk.
10 42002c ? mcu wireless ? 08/13 a t86rf212b the atmel at86rf212b features hardware supported 128 - bit security operation. the standalone aes encryption/decryption engine can be accessed in parallel to all phy operational modes. con figuration of the at86rf212b , reading and writing of data memory, as well as the aes hardware engine are controlled by the spi interface and additional control signals. on - chip low - dropout voltage regulators pro vi de regulated analog and digital 1.8 v power supply outputs . control registers retain their settings in sleep mode when the regulators are turned off. the rx and tx signal processing paths are highly integrated and optimized for low power consumption. additional features of the extended feature set, see chapter 11 , are provided to simplify the interaction between radio transceiver and microcontroller.
11 42002c ? mcu wireless ? 08/13 at86rf212b 5 application schematic 5.1 basic application schematic a basic application schematic of the atmel at86rf212b with a single - ended rf connector is shown in figure 5 - 1 . the 50 single - ended rf input is transformed to the 100 differential rf port impedance using balun b1. the capacitors c1 and c2 provide ac coupling of the rf input to the rf port. if the balun pins at the differential side provide no dc path to ground and to the single - ended pin, the capacitors are not necessary. regulatory rules like fcc 47 cfr section 15.247 [5] , etsi en 300 220 - 1 [6] , and erc/rec 70 - 03 [7] may require an external filter f1, depending on used transmit power levels. figure 5 - 1 . basic application schematic . 8 7 6 5 4 3 2 1 9 10 11 12 13 14 15 16 25 26 27 28 29 30 31 32 at86rf212b dig3 avss dig4 avss avss rfp rfn avss dvss dig1 dig2 slp_tr dvss dvdd dvdd xtal2 devdd dvss avss avdd evdd avss xtal1 17 18 19 20 21 22 23 24 dvss clkm irq miso dvss mosi sclk cb3 cb1 rf digital interface /rst /sel c1 c2 b1 f1 c3 r1 cb4 v dd v dd cb2 xtal cx1 cx2 the power supply decoupling capacitors (cb2, cb4) are connected to the external analog supply pin 28 (evdd) and external digital supply pin 15 (devdd ). capacitors cb1 and cb3 are bypass capacitors for the integrated analog and digital voltage regulators to ensure stable operation. all bypass capacitors should be placed as close as possible to the pins and should have a low - resistance and low - inductance connection to ground to achieve the best performance. the crystal (xtal), the two load capacitors (cx1, cx2), and the internal circuitry connected to pins xtal1 and xtal2 form the crystal oscillator. to achieve the best accuracy and stability of the refer ence frequency, large parasitic capacitances should be avoided. crystal lines should be routed as short as possible and not in proximity of
12 42002c ? mcu wireless ? 08/13 a t86rf212b digital i/o signals. this is especially required for the high data rate modes; refer to section 9.1.4 . crosstalk from digital signals on the crystal pins or the rf pins can degrade the system performance. therefore, a low - pass filter (c3, r1) is placed close to the atmel at86rf212b clkm output pin to reduce the emission of clkm signal ha rmonics. this is not needed if pin 17 (clkm) is not used as a microcontroller clock source. in this case, pin 17 (clkm) output should be disabled during device initialization . the ground plane of the application board should be separated into four independent fragments: the analog, the digital, the antenna, and the xtal ground plane. the exposed paddle shall act as the ref erence point of the individual grounds. note: 1. the pins dig1, dig2, dig3, and dig4 are connected to ground in the basic application schematic; refer to figure 5 - 1 . special programming of these pins requires a different schematic; refer to section 5.2 . table 5 - 1 . exemplary bill of materials (bom) for basic application schematic . symbol description value manufacturer part number comment b1 smd balun 800 ? 1000mhz wuerth jti 748431090 0900bl18b100 f1 smd low pass filter 902 ? 928mhz wuerth jti 748131009 0915lp15a026 b1 + f1 (alternatively) balun/filter combination 863 ? 928mhz jti 0896fb15a0100 779 ? 787mhz jti 0783fb15a0100 cb1 cb3 ldo vreg bypass capacitor 1 f avx murata 0603yd105kat2a grm188r61e105ka12 x5r (0603) 10% 16v cb2 cb4 power supply bypass capacitor x5r (0603) 15% 25v cx1, cx2 crystal load capacitor 12pf avx murata 06035a120ja grm1555c1h120ja01 c0g 5% 50v (0402 or 0603) c1, c2 rf coupling capacitor 100pf epcos epcos avx b37930 b37920 06035a680jat2a c0g 5% 50v (0402 or 0603) c3 clkm low -pas filter capacitor 2.2pf avx murata 06035a229da grp1886c1h2r0da01 cog (0603) 0.5pf 50v designed for f clkm = 1mhz r1 clkm low - pass filter resistor 680 ? designed for f clkm = 1mhz xtal crystal cx - 4025 16mhz sx - 4025 16mhz acal taitjen siward xwbbpl - f -1 a207 - 011
13 42002c ? mcu wireless ? 08/13 at86rf212b 5.2 extended feature set application schematic the atmel at86rf212b supports additional features like: ? security module (aes) section 11.1 ? random number generator section 11.2 ? antenna diversity uses pins dig1(/2) section 11.3 ? rx/tx indicator uses pins dig3/4 section 11.4 ? rx frame time stamping uses pin dig2 section 11.5 ? frame buffer empty indicator uses pin irq section 11.6 ? dynamic frame buffer protection section 11.7 ? alternate start - of - frame delimiter section 11.8 an extended feature set application schematic illustrating the use of the at86rf212b extended feature set, see chapter 11 , is shown in figure 5 - 2 . although this example shows all additional hardware features combined, it is possible to use all features separately or in v arious combinations. figure 5 - 2 . extended feature application schematic . 8 7 6 5 4 3 2 1 9 10 11 12 13 14 15 16 25 26 27 28 29 30 31 32 at86rf212b dig3 avss dig4 avss avss rfp rfn avss dvss dig1 dig2 slp_tr dvss dvdd dvdd xtal2 devdd dvss avss avdd evdd avss xtal1 17 18 19 20 21 22 23 24 dvss clkm irq miso dvss mosi sclk cb3 cb1 digital interface /rst /sel c1 c2 b1 f1 c3 r1 rf- switch ant0 ant1 rf- switch sw1 sw2 pa lna n1 n2 cb4 xtal cx1 cx2 v dd v dd cb2
14 42002c ? mcu wireless ? 08/13 a t86rf212b in this example, a balun (b1) transforms the differential rf signal at the atmel at86rf212b radio transceiver rf pins (rfp/rfn) to a single ended rf signal, similar to the basic application schematic; refer to figure 5 - 1 . the rf switches (sw1, sw2) separate between receive and transmit path in an external rf front - end. these switches are controlled by the rx/tx indicator, represented by the differential pin pair dig3/dig4; refer to section 11.4 . during receive, the corresponding microcontroller may search for the most reliable rf signal path using an antenna diversity algorithm or stored statistic data of link signal quality. one antenna is selected by a n rf swi tch (sw2) controlled by pin 9 (dig1) (1) . the rf signal is amplified by an optional low - noise amplifier (n2) and fed to the radio transceiver using a n rx/tx switch (sw1). during tra nsmit, the at86rf212b tx signal is amplified using an external pa (n1), low pass filtered to suppress spurious harm o nics emission, and fed to the antennas via a n rf switch (sw2). in this example, rf switch sw2 fur ther supports antenna d iversity controlled by pin 9 (dig1) (1) . note: 1. dig1/dig2 can be used as a differential pin pair to control a n rf switch if rx frame time stamping is not used; refer to section 11.3 and section 11.5 . the security module (aes) , random number generator , frame buffer empty indicator , dynamic frame buffer protection or alternate start - of - frame delimiter do not require specific circuitry to operate, for details refer to section 11.1 , section 11.2 , section 11.6 , section 11.7 and section 11.8 .
15 42002c ? mcu wireless ? 08/13 at86rf212b 6 microcontroller interface 6.1 overview this section describes the atmel at86rf212b to microcontroller interface. the interface comprises a slave spi and additional control signals; see figure 6 - 1 . the spi timing and protocol are described below. figure 6 - 1 . microcontroller to at86rf212b int erface . microcontroller at86rf212b /sel mosi miso sclk clkm irq slp_tr mosi miso sclk gpio1/clk gpio2/irq gpio3 mosi miso sclk clkm irq slp_tr /rst gpio4 spi /sel /sel /rst dig 2 gpio5 dig2 spi - master spi - slave microcontrollers wi th a master spi such as atmel avr family interface directly to the at86rf212b . the spi is used for register, frame buffer, sram, and aes access. the additional control signals are connected to the gpio/irq interface of the microcontroller. table 6 - 1 introduces the radio transceiver i/o signals and their functionality . table 6 - 1 . signal description of microcontroller interface . signal description /sel spi select signal, active low mosi spi data (master output slave input) signal miso spi data (master input slave output) signal sclk spi clock signal clkm optional, clock output, refer to section 9.7.4 , usable as : - microcontroller clock source and/or mac timer reference - high precision timing reference irq interrupt request signal, further used as : - frame buffer empty indicator; refe r to section 11.6 slp_tr multi purpose control signal (functionality is state dependent, see section 6.6 ): - sleep/wakeup enable/disable sleep state - tx start busy_tx_(aret) state - disable/enable clkm /rst at86rf212b reset signal; active low dig2 optional, - irq_2 (rx_start) for rx frame time stamping, see section 11.5
16 42002c ? mcu wireless ? 08/13 a t86rf212b 6.2 spi timing description pin 17 (c lkm) can be used as a microcontroller master clock source. if the microcontroller derives the spi master clock (sclk) directly from clkm, the spi operates in synchronous mode, otherwise in asynchronous mode. in asynchronous mode, the maximum sclk frequency f async is limited to 7.5 mhz . the signal at pin 17 (clkm) is not required to derive sclk and may be disabled to reduced power consumption and spurious emissions. figure 6 - 2 and figure 6 - 3 illustrate the spi timing and introduces its parameters. the correspond ing timing parameter definitions t 1 ? t 9 are defined in section 12.4 . figure 6 - 2 . spi timing, global map and definition of timing parameters t 5 , t 6 , t 8 , t 9 . sclk t 8 mosi 6 7 5 4 3 2 1 0 6 7 5 4 3 2 1 0 miso bit 6 bit 5 bit 3 bit 2 bit 1 bit 0 bit 4 bit 6 bit 5 bit 3 bit 2 bit 1 bit 0 bit 4 bit 7 t 6 bit 7 t 5 / sel t 9 figure 6 - 3 . spi timing, detailed drawing of timing parameters t 1 to t 4 . bit 7 bit 6 t 1 t 2 bit 5 t 4 t 3 bit 7 bit 6 bit 5 sclk mosi miso / sel the spi is based on a byte - oriented protocol and is always a bidirectional communication between the master and slave. the spi master starts the transfer by asserting /sel = l. then the master generates eight spi clock cycles to transfer one byte to the radio transceiver (via mosi). at the same time, the slave transmits one byte to the master (via miso). when the master wants to receive one byte of data from the slave , it must also transmit one byte to the slave. all bytes are transferred with the msb first. an spi transaction is finished by releasing /sel = h. an spi register access consists of two bytes, a frame buffer or sram access of at least two or more bytes as described in section 6.3 . /sel = l enables the miso output driver of the atmel at86rf212b . the msb of miso is valid after t 1 (see section 12.4 ) and is updated on each sclk falling edge . if the driver is disabled, there is no internal pull - up transistor connected to it. driving the appropriate signal level must be ensured by the mast er device or an external pull - up resistor.
17 42002c ? mcu wireless ? 08/13 at86rf212b note: 1. when both /sel and /rst are active , the miso output driver is also enabled. referring to figure 6 - 2 and figure 6 - 3 , atmel at86rf212b mosi is sampled at the rising edge of the sclk signal and the output is set at the falling edge of sclk. the signal must be stable before and after the rising edge of sclk as specified by t 3 and t 4 , refer to section 12.4 parameters. this spi operational mode is common ly known as ? spi mode 0 ?. 6.3 spi protocol each spi sequence starts with transferring a command byte from the spi master via mosi (see table 6 - 2 ) with the msb first. this command byte defines the spi access mode and additional mode - dependent information. table 6 - 2 . spi command byte definit ion . bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 access mode access type 1 0 register address [5:0] register access read access 1 1 register address [5:0] write access 0 0 1 r eserved frame buffer access read access 0 1 1 r eserved write access 0 0 0 r eserved sram access read access 0 1 0 r eserved write access each spi transfer returns bytes back to the spi master on miso output pin . the content of the first byte (see value ? phy_status ? in figure 6 - 4 to figure 6 - 14) is set to zero after reset. to transfer status information of the radi o transceiver to the microcontroller, the content of the first byte can be configured with register bits spi_cmd_mode (register 0x04, trx_ctrl_1). for details, refer to section 6.4.1 . note: 1. return values on miso stated as xx shall be ignored by the microcontroller. the different access modes are described within the following sections. 6.3.1 register access mode r egister a ccess m ode is used to read and write at86rf212b re g sisters (register address from 0x00 up to 0x3f). a register access mode is a two - byte read/write operation initiated by /sel = l. the first transferred byte on mo si is the command byte including an identifier bit (bit[7] = 1), a read/write select bit (bit[6]), and a 6 - bit register address. on read access, the content of the selected register address is returned in the second byte on miso (see figure 6 - 4 ). figure 6 - 4 . packet structure - register read access . 1 address [ 5 : 0 ] 0 xx mosi phy _ status ( 1 ) read data [ 7 : 0 ] miso byte 1 ( command byte ) byte 2 ( data byte ) note: 1. each spi access can be configured to return radio controller status information (phy_status) on miso, for details refer to section 6.4 .
18 42002c ? mcu wireless ? 08/13 a t86rf212b on write access, the second byte transferred on mosi contains the write data to the selected address (see figure 6 - 5 ). figure 6 - 5 . packet structure - register write access . 1 address [ 5 : 0 ] 1 write data [ 7 : 0 ] mosi phy _ status xx miso byte 1 ( command byte ) byte 2 ( data byte ) each register access must be terminated by setting /sel = h. figure 6 - 6 illustrates a typical spi sequence for a register access sequence for write and read respectively. figure 6 - 6 . exemplary spi sequence ? registe r access mode . phy _ status xx phy _ status read data write command write data read command xx register write access register read access sclk mosi miso / sel 6.3.2 frame buffer access mode frame buffer access mode is used to read and write atmel at86rf212b frame buffer. the frame buffer address is always reset to zero and incremented to access psdu, lqi, ed and rx_status data. the frame buffer can hold up to 128 - byte of one phy service data unit (psdu) ieee 802.15.4 data frame . a detailed description of the frame buffer can be found in section 9.4 . an introduction to the ieee 802.15.4 frame format can be found in section 8.1 . each access starts with /sel = l followed by a command byte on mosi. each frame read or write access command byte is followed by the phr data byte, indicating the frame len gth , followed by the psdu data, see figure 6 - 7 and figure 6 - 8 . in frame buffer access mode during buffer reads, the phy header (phr) and the psdu data are transferred via miso following phy_status byte. once the psdu data is uploaded, three more bytes are transferred containing the link quality indication (lqi) value, the energy detection (ed) value, and the status information (rx_statu s) of the received frame, for lqi details refer to section 8.8 . the figure 6 - 7 illustrates the packet structure of a frame buffer read access. note: 1. t he f rame b uffer read access can be terminated immediately at any time by setting pin 23 ( /sel ) = h, for example after reading the phr byte only.
19 42002c ? mcu wireless ? 08/13 at86rf212b figure 6 - 7 . packe t structure - frame read access. 0 reserved [ 4 : 0 ] 0 mosi phy _ status miso byte 1 ( command byte ) 1 xx phr [ 7 : 0 ] byte 2 ( data byte ) xx psdu [ 7 : 0 ] byte 3 ( data byte ) xx ed [ 7 : 0 ] byte n - 1 ( data byte ) xx rx _ status [ 7 : 0 ] byte n ( data byte ) the structure of rx_status is described in table 6 - 3 . table 6 - 3 . structure of rx_status . bit 7 6 5 4 rx_crc_valid trac_status rx_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 reserved rx_status read/write r r r r reset value 0 0 0 0 note: 2 . more information to rx_crc_valid , see section 8.3.5 , and to trac_status, see section 7.2.6 . on f rame b uffer write access, the second byte transferre d on mosi contains the frame length (phr field) followed by the payload data (psdu) as shown in figure 6 - 8 . figure 6 - 8 . packet structure - frame write access . 0 reserved [ 4 : 0 ] 1 mosi phy _ status miso byte 1 ( command byte ) 1 phr [ 7 : 0 ] xx byte 2 ( data byte ) psdu [ 7 : 0 ] xx byte 3 ( data byte ) psdu [ 7 : 0 ] xx byte n - 1 ( data byte ) psdu [ 7 : 0 ] xx byte n ( data byte ) the number of bytes n for one frame buffer access is calculate d as follows: read access : n = 5 + frame_length [phy_status, phr byte, psdu data, lqi, ed, and rx_status] write access : n = 2 + frame_length [command byte, phr byte, and psdu data] the maximum value of frame_length is 127 bytes. that means that n 132 for frame buffer read and n 129 for frame buffer write accesses. each read or write of a data byte automatically increments the address counter of the frame buffer until the access is terminated by setting /sel = h . a frame buffer read access can be terminated at any time without any consequences by setting /sel = h , for example after reading the frame length byte only. a successive frame buffer read operation starts again with the phr field. the content of the atmel at86rf212b frame buffer is overwritten by a new received frame or a frame buffer write access. figure 6 - 9 and figure 6 - 10 illustrate an exemplary spi sequence of a frame buffer access to read a frame with 2 - byte psdu and write a frame with 4 - byte psdu.
20 42002c ? mcu wireless ? 08/13 a t86rf212b fi gure 6 - 9 . exemplary spi sequence - frame buffer read of a frame with 2 - byte psdu . command xx xx xx xx xx phy _ status phr psdu 2 psdu 1 ed lqi xx rx _ status sclk mosi miso / sel figure 6 - 10 . exemplary spi sequence - frame buffe r write of a frame with 4 - byte psdu . command phr psdu 1 psdu 2 psdu 3 psdu 4 phy _ status xx xx xx xx xx sclk mosi miso / sel access violations during a frame buffer read or write access are indicated by interrupt irq_6 (trx_ur) . for further details, refer to section 9.4 . notes: 1. the frame buffer is shared be tween rx and tx operations, the frame data is overwritten by freshly received data frames. if an existing tx payload data frame is to be retransmitted, it must be ensured that no tx data is overwritten by newly received rx data. 2. to avoid overwriting during receive dynamic frame buffer protection can be enabled, refer to section 11.7 . 3. for exceptions, receiving acknowledgement frames in extended operating mode (tx_aret) refer to section 7.2.4 . 6.3.3 sram access mode the sram access mod e is used to read and write atmel at86rf212b frame buffer beginning with a specified byte address. it enables to access dedicated buffer data directly from a desired address without a need of incrementing the fram e buffer from the top. the sram access mode allows accessing dedicated bytes within the frame buffer or aes address space, refer to section 11.1 . this may reduce the spi traffic. during frame receive, after occurrence of irq_2 (rx_start) , a n sram access can be used to upload the phr field while preserving dynamic frame buffer protection, see section 11.7 . each sram access starts with /sel = l. the first transferred byte on mosi shall be the command byte and must indicate an sram access mode according to the definition in tabl e 6 - 2 . the following byte indicates the start address of the write or read access. sram address space: ? frame buffer: 0x00 to 0x7f ? aes: 0x82 to 0x94
21 42002c ? mcu wireless ? 08/13 at86rf212b on sram read access, one or more bytes of read data are transferred on miso starting with the third byte of the access sequence; refer to figure 6 - 11 . figure 6 - 11 . packet structure ? sram read access . 0 reserved [ 4 : 0 ] 0 mosi phy _ status miso byte 1 ( command byte ) 0 address [ 7 : 0 ] xx byte 2 ( address ) xx data [ 7 : 0 ] byte 3 ( data byte ) xx data [ 7 : 0 ] byte n - 1 ( data byte ) xx data [ 7 : 0 ] byte n ( data byte ) on sram write access, one or more bytes of write data are transferred on mosi starting with the third byte of the access sequence; refer to figure 6 - 12 . do not attempt to read or write bytes beyond the sram buffer size. figure 6 - 12 . packet structure ? sram wr ite access . 0 reserved [ 4 : 0 ] 1 mosi phy _ status miso byte 1 ( command byte ) 0 address [ 7 : 0 ] xx byte 2 ( address ) data [ 7 : 0 ] xx byte 3 ( data byte ) data [ 7 : 0 ] xx byte n - 1 ( data byte ) data [ 7 : 0 ] xx byte n ( data byte ) as long as /sel = l, every subsequent byte read or byte write increments the address counter of the frame buffer until the sram ac cess is terminated by /sel = h. figure 6 - 13 and figure 6 - 14 illustrate an exemplary spi sequence of a n atmel at86rf212b sram access to read and write a data package of five byte length, respectively. figure 6 - 13 . exemplary spi sequence ? sram read access of a 5 - byte data package . command address xx xx xx xx phy _ status xx data 2 data 1 data 4 data 3 xx data 5 sclk mosi miso / sel figure 6 - 14 . exemplary spi sequence ? sram write access of a 5 - byte data package . command address data 1 data 2 data 3 data 4 phy _ status xx xx xx xx xx data 5 xx sclk mosi miso / sel
22 42002c ? mcu wireless ? 08/13 a t86rf212b notes: 1. the sram access mode is not intended to be used as an alternative to the frame buffer access modes (see section 6.3.2 ). 2. frame buffer access violations are not indicated by a trx_ur interrupt when using the sram access mode, for further details refer to section 9.4.3 . 6.4 radio transceiver status information each atmel at86rf212b spi access can return radio transceiver status information which is a first byte transmitted out of miso output as the serial data is being shifted into mosi input. r adio transceiver status information (phy_status) can be configured using register bits spi_cmd_mode (register 0x04, trx_ctrl_1) to return trx_status , phy_rssi or irq_status register as shown in below . 6.4.1 regist er description register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 6 - 15 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 3:2 - spi_cmd_mode each spi transfer returns bytes back to the spi master. the content of the first byte (phy_status) can be configured using register bits spi_cmd_mode. table 6 - 4 . spi_cmd_mode. register bits value description spi_cmd_mode 0 default (empty, all bits zero) 1 monitor trx_status register 2 monitor phy_rssi register 3 monitor irq_status register
23 42002c ? mcu wireless ? 08/13 at86rf212b 6.5 radio transceiver identification atmel at86rf212b can be identified by four registers. one 8 - bit register contains a unique part number (part_num) and one register contains the corresponding 8 - bit version number (version_num) . t wo a dditional 8 - bit registers contain the jedec manufacture id. 6.5.1 register description register 0x1c (part_num): the register part_num can be used for the radio transceiver identification and includes the part number of the device. figure 6 - 16 . register part_num. bit 7 6 5 4 0x1c part_num part_num read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x1c part_num part_num read/write r r r r reset value 0 1 1 1 ? bit 7:0 - part_num table 6 - 5 . part_num. register bits value description part_num 0x07 at86rf212b part number register 0x1d (version_num): the register version_num can be used for the radio transceiver identification and includes the version number of the device. figure 6 - 17 . register version_num. bit 7 6 5 4 0x1d version_num version_num read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x1d version_num version_num read/write r r r r reset value 0 0 1 1 ? bit 7:0 - version_num table 6 - 6 . version_num. register bits value description version_num 0x03 revision c
24 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x1e (man_id_0): part one of the jedec manufacturer id. figure 6 - 18 . register man_id_0. bit 7 6 5 4 0x1e man_id_0 man_id_0 read/write r r r r reset value 0 0 0 1 bit 3 2 1 0 0x1e man_id_0 man_id_0 read/write r r r r reset value 1 1 1 1 ? bit 7:0 - man_id_0 table 6 - 7 . man_id_0. register bits value description man_id_0 0x1f atmel jedec manufacturer id, bits[7:0] of the 32 - bit jedec manufacturer id are stored in register bits man_id_0. bits [15:8] are stored in register 0x1f (man_id_1). the higher 16 bits of the id are not stored in registers. register 0x1f (man_id_1): part two of the jedec manufacturer id. figure 6 - 19 . register man_id_1. bit 7 6 5 4 0x1f man_id_1 man_id_1 read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x1f man_id_1 man_id_1 read/write r r r r reset value 0 0 0 0 ? bit 7:0 - man_id_1 table 6 - 8 . man_id_1. register bits value description man_id_1 0x00 atmel jedec manufacturer id, bits[15:8] of the 32 - bit jedec manufacturer id are stored in register bits man_id_1. bits [7:0] are stored in register 0x1e (man_id_0). the higher 16 bits of the id are not stored in registers.
25 42002c ? mcu wireless ? 08/13 at86rf212b 6.6 sleep/wake - up and transmit signal (slp_tr) pin 11 (slp_tr) is a multi - functional pin. its function relates to the current state of the atmel at86rf212b and is summarized in table 6 - 9 . the radio transceiver states are explained in de tail in chapter 7 . table 6 - 9 . slp_tr multi - functional pin . transceiver status function transition description pll_on tx start l ? h starts frame transmission tx_aret_on tx start l ? h starts tx_aret transaction busy_rx_aack tx start l ? h starts ack transmission during rx_aack slotted operation, see section 7.2.3.5 trx_off sleep l ? h takes the radio transceiver into sleep state; clkm disabled sleep wakeup h ? l takes the radio transceiver back into trx_off state, level sensitive rx_on disable clkm l ? h takes the radio transceiver into rx_on_noclk state and disables clkm rx_on_noclk enable clkm h ? l takes the radio transceiver into rx_on state and enables clkm rx_aack_on disable clkm l ? h takes the radio transceiver into rx_aack_on_noclk state and disables clkm rx_aack_on_noclk enable clkm h ? l takes the radio transceiver into rx_aack_on state and enables clkm in states pll_on and tx_aret_on, pin 11 (slp_tr) is used as trigger input to initiate a tx transaction. here slp_tr is sensitive on rising edge only. after initiating a state change by a rising edge at pin 11 (slp_tr) in radio transceiver states trx_off, rx_on or rx_aack_on, the radio transceiver remains in the new state as long as the pin is logical high and returns to the preceding state with the falling edge. sleep state the sleep state is used when radio transceiver functionality is not required, and thus the at86rf212b can be powered down to reduce the overall power consumption. a power - down scenario is shown in figure 6 - 20 . when the radio transceiver is in trx_off state, the microcontroller forces the at86rf212b to sleep by setting slp_tr = h. if pin 17 (clkm) provides a clock to the microcontroller, this clock is switched off afte r 35 clkm cycles . this enables a microcontroller in a synchronous system to complete its power - down routine and prevent deadlock situations. the at86rf212b awakes when the microcontroller releases pin 11 (slp_tr) . this concept provides the lowest possible power consumption. the clkm c lock frequency settings for clkm_ctrl values six and seven are not intended to directly clock the microcontroller. when using these clock rates, clkm is turned off immediately when entering sleep state. figure 6 - 20 . sleep and wake - up initiated by asynchronous microcontroller timer . clkm slp_tr t tr3 (35 clkm clock cycles) clkm off t tr1a async timer elapses (microcontroller) note: 1. timing figures t tr3 and t tr1a refer to table 7 -1 .
26 42002c ? mcu wireless ? 08/13 a t86rf212b rx_on and rx_aack_on states for synchronous systems where clkm is used as a microcontroller clock source and the spi master clock (sclk) is directly derived from clkm, the atmel at86rf212b supports an additional power - down mode for receive operating states (rx_on and rx_aack_on) . if an incoming frame is expected and no other applications are running on the microcontroller, it can be powered down without missing incoming frames. this can be a chieved by a rising edge on pin 11 (slp_tr) that turns clkm off. then the radio transceiver state changes from rx_on or rx_aack_on (extended operating mode) to rx_on_noclk or rx_aack_on_noclk, respectively. in case that a frame is received (for example ind icated by an irq_2 (rx_start) interrupt), the clock output clkm is automatically switched on again. this scenario is shown in figure 6 - 21 . in rx_on state, the clock at pin 17 (clkm) is switched off after 35 clkm cycles w hen setting slp_tr = h. the clkm clock frequency settings for clkm_ctrl values six and seven are not intended to directly clock the microcontroller. when using these clock rates, clkm is t urned off immediately when entering rx_on_noclk or rx_aack_on_noclk. in states rx_(aack)_on_noclk and rx_(aack)_on, the radio transceiver current consumptions are equivalent. however, the rx_(aack)_on_noclk current consumption is reduced by the current req uired for driving pin 17 (clkm). figure 6 - 21 . wake - up initiated by radio transceiver interrupt . clkm slp_tr 35 clkm clock cycles clkm off irq typ. 5 s radio transceiver irq issued
27 42002c ? mcu wireless ? 08/13 at86rf212b 6.7 interrupt logic 6.7.1 overview atmel at86rf212b differentiates between ni ne interrupt events (eight physical interrupt registers, one shared by two functions). each interrupt is enabled by setting the corresponding bit in the interrupt mask register 0x0e ( irq_mask ). internally, each pending interrupt is flagged in the interrupt status register. all interrupt events are or - combined to a single external interrupt signal (irq pin) . if an interrupt is issue d pin 24 (irq) = h , the microcontroller shall read the interrupt status register 0x0f ( irq_status ) to determine the source of the interrupt. a read access to this register clears the interrupt status register and thus the irq pin, too. interrupts are not cleared automatically when the event trigger for respective interrupt flag bit in the register 0x0f ( irq_st atus ) is no longer active . only a read access to register 0x0f ( irq_status ) clear s the flag bits . exceptions are irq_0 (pll_lock) and irq_1 (pll_unlock) where each is cleared in addition by the appearance of the o ther . the supported interrupts for the basic operating mode are summarized in table 6 - 10. table 6 - 10. interrupt description in basic operating mode . irq name description section irq_7 (bat_low) indicates a supply voltage below the programmed threshold . 9.6.4 irq_6 (trx_ur) indicates a frame buffer access violation . 9.4.3 irq_5 (ami) indicates address matching . 8.2 irq_4 (cca_ed_done) multi - functional interrupt: 1. awake_end: ? indicates radio transceiver reached trx_off state at the end of p_on ? trx_off and sleep ? trx_off state transition . 2. cca_ed_done: ? indicates the end of a cca or ed measurement . 7.1.2.3 8.6.4 irq_3 (trx_end) rx: indicates the completion of a frame reception . tx: indicates the completion of a frame transmission . 7.1.3 7.1.3 irq_2 (rx_start) indicates the start of a psdu reception; the at86rf212b state changed to busy_rx; the phr can be read from frame buffer. 7.1.3 irq_1 (pll_unlock) indicates pll unlock. if the radio transceiver is in busy_tx / busy_tx_aret state, the pa is turned off immediately. 9.8.5 irq_0 (pll_lock) indicates pll lock . 9.8.5 note: 1. the irq_4 (awake_end) interrupt can usually not be seen when the transceiver enters trx_off state after p_on or r eset , because register 0x0e (irq_mask) is reset to mask all interrupts. it is recommended to enable irq_4 (awake_end) to be notified once the trx_off state is entered. the interrupt handling in extended operating mode is described in section 7.2.5 .
28 42002c ? mcu wireless ? 08/13 a t86rf212b 6.7.2 interrupt mask modes and pin polarity if register bit irq_mask_mode (register 0x04, trx_ctrl_1) is set, an interrupt event can be read from irq_status register even if the interrupt itself is masked. however, in that case no timing information for this interrupt is provided. the table 6 - 11, figure 6 - 22 , and figure 6 - 23 describes the function. table 6 - 11. irq mask configuration . irq_mask value irq_mask_mode description 0 0 irq is suppressed entirely and none of interrupt sources are shown in register irq_status. 0 1 irq is suppressed entirely but all interrupt causes are shown in register irq_status. 0 0 all enabled interrupts are signaled on irq pin and are also shown in register irq_status. 0 1 all enabled interrupts are signaled on irq pin and all interrupt causes are shown in register irq_status. figure 6 - 22 . irq_mask_mode = 0 . irq _ mask ( register 0 x 0 e ) irq _ status ( register 0 x 0 f ) or irq i n t e r r u p t s o u r c e s . . . figure 6 - 23 . irq_mask_mode = 1 . or irq i nt er r upt s our ces irq _ mask ( register 0 x 0 e ) . . . irq _ status ( register 0 x 0 f ) the atmel at86rf212b irq pin polarity can be configured with register bit irq_polarity (register 0x04, trx_ctrl_1). the default behavior is active high, which means that pin 24 (irq) = h issues an interrupt request . if the ?frame buffer empty indicator? is enabled during fr ame buffer read access , the irq pin has an alternative functionality, refer to section 11.6 for details. a solution to monitor the irq_status register (withou t clearing it) is described in section 6.4.1 .
29 42002c ? mcu wireless ? 08/13 at86rf212b 6.7.3 register description register 0x0e (irq_mask): the irq_mask register controls the interrupt signaling via pin 24 (irq). figure 6 - 24 . register irq_mask. bit 7 6 5 4 0x0e irq_mask irq_mask read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x0e irq_mask irq_mask read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7:0 - irq_mask mask register for interrupts. irq_mask[ 7] correspondents to irq_7 (bat_low). irq_mask[0] correspondents to irq_0 (pll_lock). table 6 - 12. irq_mask. register bits value description irq_mask 0x00 the irq_mask register is used to enable or disable individual interrupts. an interrupt is enabled if the corresponding bit is set to one. all interrupts are disabled after power - on sequence (p_on state) or reset (reset state). valid values are [0xff, 0xfe, ?, 0x00]. note: 1. if an interrupt is enabled it is recommended to read the interrupt status register 0x0f (irq_status) first to clear the history. register 0x0f (irq_status): the irq_status register contains the status of the pending interrupt requests. figure 6 - 25 . register irq_status. bit 7 6 5 4 0x0f irq_7_bat_low irq_6_trx_ur irq_5_ami irq_4_cca_ed_ done irq_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x0f irq_3_trx_end irq_2_rx_ start irq_1_pll_ unlock irq_0_pll_ lock irq_status read/write r r r r reset value 0 0 0 0 for more information to meanings of interrupts, see table 6 - 10 interrupt description in basic operating mode .
30 42002c ? mcu wireless ? 08/13 a t86rf212b by reading the register after an interrupt is signaled at pin 24 (irq), the source of the iss ued interrupt can be identified. a read access to this register resets all interrupt bits, and so clears the irq_status register. notes: 1. if register bit irq_mask_mode (register 0x04, trx_ctrl_1) is set, an interrupt event can be read from irq_status register even if the interrupt itself is masked ; refer to figure 6 -23 . however in that case no timing information for this interrupt is provided. 2. if register bit irq_mask_mode (register 0x04, trx_ctrl_1) is set, it is recommended to read the interrupt status re gister 0x0f (irq_status) first to clear the history. register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 6 - 26 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 6 - irq_2_ext_en the register bit irq_2_ext_en controls external signaling for time stamping via pin 10 (dig2). table 6 - 13. irq_2_ext_en. register bits value description irq_2_ext_en 0 time stamping over pin 10 (dig2) is disabled 1 (1) time stamping over pin 10 (dig2) is enabled note: 1. the pin 10 (dig2) is also active if the corresponding interrupt event irq_2 (rx_start) mask bit in register 0x0e (irq_mask) is set to zero. the timing of a received frame can be determined by a separate pin 10 (dig2). if register bit irq_2_ext_en is set to one , the reception of a phr field is directly issued on pin 10 (dig2), similar to interrupt irq_2 (rx_start) . for fur ther details refer to section 11.5 .
31 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 1 - irq_mask_mode the radio transceiver supports polling of interrupt events. interrupt polling is enabled by setting register bit irq_mask_mode. table 6 - 14. irq_mask_mode. register bits value description irq_mask_mode 0 interrupt polling is disabled. masked off irq bits will not appear in irq_status register. 1 interrupt polling is enabled. masked off irq bits will appear in irq_status register. with the interrupt polling enabled (irq_mask_mode = 1) the interrupt events are flagged in the register 0x0f (irq_status) when their respective mask bits are disabled in the register 0x0e (irq_mask) . ? bit 0 - irq_polarity the register bit irq_polarity controls the polarity for pin 24 (irq). the default polarity of the pin 24 (irq) is active high. the polarity can be configure d to active low via register bit irq_polarity. table 6 - 15. irq_polarity. register bits value description irq_polarity 0 pin irq is high active 1 pin irq is low active note: 1. a modification of register bit irq_polarity has no influence to rx_bl_ctrl behavior. this setting does not affect the polarity of the ?frame buffer empty indicator?, refer to section 11.6 . the frame buffer empty indicator is always active high.
32 42002c ? mcu wireless ? 08/13 a t86rf212b 7 operating modes 7.1 basic operating mode this section summarizes all states to provide the basic functionality of atmel at86rf212b , such as receiving and transmitting frames, the power - on sequence , and sleep. the basic operating mode is designed for ieee 802.15.4 and general ism band applications; the corresponding radio transceiver states are shown in figure 7 - 1 . figure 7 - 1 . basic operating mode state diagram (for timing refer to table 7 - 1 ) . 2 trx_off slp _tr = h slp_tr = l pll _on rx _ on pll_on trx _ off ( clock state ) xosc =on pull=off rx _on p_on (power-on after v dd ) xosc=on pull=on sleep (sleep state) xosc=off pull=off (all states except p_on) force_trx_off (all states except sleep) shr detected frame end frame end busy_tx (transmit state) pll_on (pll state) tx_start or trx_off trx_off 1 3 4 5 7 6 8 9 11 10 rx_on_noclk (rx listen state) clkm=off slp_tr = h slp_tr = l shr detected 12 13 /rst = h force_pll_on (all states except sleep, p_on, reset, trx_off, *_noclk) 14 slp_tr = h legend: blue: spi write to register trx_state (0x02) red: control signals via ic pin green: event basic operating mode states state transition number, see table 5-1 rx_on (rx listen state) busy_rx (receive state) reset (from all states) /rst = l x
33 42002c ? mcu wireless ? 08/13 at86rf212b 7.1.1 state control the radio transceiver ?s states are controlled by shifting serial digital data using the spi to wri t e individual commands to the command register bits trx_cmd (register 0x02, trx_state ). change of the transceiver state can also be triggered by driving directly two signal pins : pin 11 (slp_tr) and pin 8 (/rst) . a successful state change can be verifi ed by reading the radio transceiver status from register bits trx_status (register 0x01, trx_status). if trx_status = 0x1f (state_transition_in_progress), the atm el at86rf212b is in a state transition. do not try to initiate a further state change while the radio transceiver is in state_transition_in_progress. pin 11 (slp_tr) is a multifunctional pin, refer to section 6.6 . depending on the radio transceiver state, a rising edge of pin 11 (slp_tr) causes the following state transitions: ? trx_off ? sleep (level sensitive) ? rx_on ? rx_on_noclk (level sensitive) ? pll_on ? busy_tx whereas the falling edge of pin slp_tr causes the following state transitions: ? sleep ? trx_off (level sensitive) ? rx_on_noclk ? rx_on a low level on p in 8 (/rst) causes a re set of all registers (register bits clkm_ctrl are shadowed; for details, refer to section 9.7.4 ) and forces the radio transceiver into trx_off stat e. however, if the device was in p_on state it remains in the p_on state. for all states except sleep, the state change commands force_trx_off or trx_off lead to a transition into trx_off state. if the radio transceiver is in active receive or transmit sta tes (busy_*), the command force_trx_off interrupts these active processes , and forces an immediate transition to trx_off. in contrast a trx_off command is stored until an active state (receiving or transmitting) has been finished. after that the transition to trx_off is performed. for a fast transition from any non sleep states to pll_on state the command force_pll_on is provided. active processes are interrupted. in contrast to force_trx_off, this command does not disable the pll and the analog voltage reg ulator (avreg) . it is not available in states p_on, sleep, reset, and all *_noclk states. the completion of each requested state change shall always be confirmed by reading the register bits trx_status (register 0x01, trx_status). note: 1. if force_trx_off and force_pll_on commands are used, it is recommended to set pin 11 (slp_tr) = l before. 7.1.2 basic operating mode description 7.1.2.1 p_on ? power - o n after v dd when the external supply voltage (v dd ) is applied first to the at86rf212b , the radio transceiver goes into p_on state performing an on - chip reset. the crystal oscillator is activated and the default 1 mhz master clock is provided at pin 17 (clkm) after the
34 42002c ? mcu wireless ? 08/13 a t86rf212b crystal oscillator has stabilized. clkm can be used as a clock source to the microcontroller. the spi interface and digital voltage regulator (dvreg) are enabled. the on - chip power - on- reset sets all registers to their default values. a dedicated reset signal from the microcontroller at pin 8 (/rst) is not necessary, but recommended for hardware / software synchronization reasons . all digital inputs are pulled - up or pulled - down during p_on state , refer to section 1.3.2 . this is necessary to support microcontrollers where gpio signals are floating after power - on or reset. the input pull - up and pull - down transistors are disabled when the radio transceiver leaves p_on state towards trx_off state. a re set during p_on state does not change the pull - up and pull - down configuration. leaving p_on state, o utput pins dig1/dig2 are pulled - down to digital ground, whereas pins dig3/dig4 are pulled - down to analog ground, unless their configuration is changed. prior to leaving p_on, the microcontroller must set the atmel at86rf212b pins to the default operating values: pin 11 (slp_tr) = l, pin 8 (/rst) = h and pin 23 (/sel) = h. all interrupts are disabled by default. t hus, interrupts for state transition control are to be enabled first, for example enable irq_4 (awake_end) to indicate a state transition to trx_off state or interrupt irq_0 (pll_lock) to signal a locked pll in pll_on state. in p_on state a first access to the radio transceiver registers is possible after a de fault 1 mhz master clock is provided at pin 17 (clkm), refer to t tr1 to table 7 - 1 . once the supply voltage has stabilized and the crystal oscillator has settled (see parameter t xtal refer to table 7 - 2 ), the interrupt mask for the awake_end should be set. a valid spi write access to register bits trx_cmd (register 0x02, trx_state) with the command trx_off or force_trx_off initiate a state change from p_on towards trx_off state, which is then indicated by an interrupt irq_4 (awake _end) if enabled. 7.1.2.2 sleep ? sleep state in sleep state, the radio transceiver is disabled. the radio transceiver current consumption is reduced to leakage current plus the current of a low power voltage regulator (typ. 100na). this regulator provides the supply voltage to the registers to preserve the ir contents. sleep state can only be entered from state trx_off , by setting slp_tr = h. if clkm is enabled with a clock rates higher than 250 khz , the sleep state is entered 35 clkm cycles after the rising edge at pin 11 (slp_tr). at that time clkm is turned off. if the clkm output is already turned off (register bits clkm_ctrl = 0), the sleep state is entered immediately. at clock rates of 250 khz and symbol cloc k rate (clk m_ctrl values six and seven ; register 0x03, trx_ctrl_0), the main clock at pin 17 (c lkm) is turned off immediately. setting slp_tr = l returns the radio transceiver back to the trx_off state. during sleep state the radio transceiver register con tents and the aes register contents remain valid while the contents of the frame buffer are lost . /rst = l in sleep state returns the radio transceiver to trx_off state and thereby sets all registers to their default values. exceptions are register bits cl km_ctrl (register 0x03, trx_ctrl_0). these register bits require a specific treatment; for details see section 9.7.4 .
35 42002c ? mcu wireless ? 08/13 at86rf212b 7.1.2.3 trx_off ? clock state in trx_off the crystal oscillator is running and the master clock is available if enabled. the spi interface and digital voltage regulator are enabled, thus the radio transceiver registers, the frame buffer and security engine (aes) are accessible (see sec tion 9.4 and section 11.1 ). in contrast to p_on state the pull - up and pull - down configuration is disabled. note s : 1. pin 11 (slp_tr) and pin 8 (/rst) are available for state control. 2. t he analog front - end is disabled during trx_off state . if trx_off_avdd_en (register 0x0c, trx_ctrl_2) is set, the a nalog voltage regulator is turned on, enabling faster switch to any transmit/receive state. entering the trx_off state from p_on, sleep, or reset state, the state change is indicated by interrupt irq_4 (awake_end) if enabled. 7.1.2.4 pll_on ? pll state entering the pll_on state from trx_off state enables the analog voltage regulator (avreg) first, unless the avreg is already switched on (register 0x0c, t rx_off_avdd_en). after the voltage regulator has been settled (see table 7 - 2 ), the pll frequency synthesizer is enabled. when the pll has been settled at the receive frequency to a channel defined by register bits channel (register 0x08, phy_cc_cca) or register bits cc_number (register 0x13, cc_ctrl_0 ) and cc_band (register 0x14, cc_ctrl_1 ), refer to section 9.8.2 , a successful pll lock is indicated by issuing an interrupt irq_0 (pll_lock) . if an rx_on command is issued in pll_on state, the receiver is enabled immediately. if the pll has not been settled before the state change nevertheless takes place. even if the register bits trx_status (register 0x01, trx_status) indicates rx_on, actual frame reception can only start once the pll has locked. the pll_on state corresponds to the tx_on state in ieee 802.15.4. 7.1.2.5 rx_on and busy_rx ? rx listen and receive state in rx_on state the receiver is in the rx data polling mode and the pll frequency synthesizer is locked to its preprogrammed frequency. the atmel at86rf212b receive mode is internally separated into rx_on state and busy_rx state. there is no difference between these states with respect to the analog radio transceiver circuitry, which are always turned on. in both states, the receiver and the pll frequency synthesizer are enabled. during rx_on state, the receiver listens for incoming frames. after detecting a valid synchronization header (shr), the at86rf212b automatically enters the busy_rx state. the reception of a valid phy header (phr) generates an irq_2 (rx_start) if enabled. during psdu reception, the frame data are stored continuously in the frame buffer until the last byte was received. the completion of the frame reception is indicated by an interrupt irq_3 (trx_end) and the radio transceiver reenters the state rx_on. at the same time the register bit rx_crc_valid (register 0x06, phy_rssi) is updated with the result of the fcs check (see section 8.3 ). received frames are passed to the frame filtering unit, refer to section 8.2 . if the content of the mac addressing fields (refer to [2] ieee 802.15.4 - 2006, section 7.2.1) genera tes a match, irq_5 (ami) interrupt is issued , refer to section 6.7 . the ex pected address values are to be stored in registers 0x20 ? 0x2b (short address, pan - id and
36 42002c ? mcu wireless ? 08/13 a t86rf212b ieee address) . frame filtering is available in basic operating mode and extended operating mode, refer to section 8.2 . leaving state rx_on is possible by writing a state change command to register bits trx_cmd in register 0x02 (trx_state). 7.1.2.6 rx_on_noclk ? rx listen state without clkm in rx_on _noclk state the r eceiver is in the rx data polling mode with clkm output disabled. if the radio transceiver is listening for an incoming frame and the microcontroller is not running an application, the microcontroller may be powered down to decrease the total system power consumption. this specific power - down scenario ? for systems running in clock synchronous mode (see chapter 6 ) ? is supported by the atmel at86rf212b using the state rx_on_noclk. this state can only be entered by asserting pin 11 (slp_tr) = h while the radio transceiver is in rx_on state. pin 17 (clkm) is disabled 35 clkm cycles after the rising edge at pin 11 (slp_tr) , see figure 6 - 21 . this allows the microcon troller to co mplete its power - down sequence. note: 1. f or clkm clock rates 250 khz and symbol clock rates (clkm_ctrl values six and seven ; register 0x03, trx_ctrl_0), the master clock signal clkm is switched off immedi ately after the rising edge of pin 11 (slp _tr ). once in rx_on_noclk state a valid shr header triggers a state transition to busy_rx state. the reception of a frame shall be indicated to the microcontroller by an interrupt indicating the receive status. clkm is turned on again, and the radio transceiver enters the busy_rx state (see section 6.6 and figure 6 - 21 ). when using rx_on_noclk, it is essential to enable at least one interrupt request indicating the reception status. after the receive transaction has been completed, the radio transceiver enters the rx_on state. the radio transceiver only reenters the rx_on_noclk state when the next rising edge of pin 11 (slp_tr) occurs. if the at86rf212b is in the rx_on_noclk state and pin 11 (slp_tr) is reset to logic low, it enters the rx_on state and it starts to supply clock on p in 17 (clkm) again. note: 2. a reset in state rx_on_noclk further requires to reset pin 11 (slp_tr) to logic low, otherwise the radio transceiver enters directly the sleep state. 7.1.2.7 busy_tx ? transmit state in the busy_tx state at86rf212b is in the data transmission state. a transmission can only be initiated from the pll_on state. the transmission can be started either by driving event such as: ? a r ising edge o n pin 11 (slp_tr) , or ? a serial tx_start command via the spi to register bits trx_cmd (register 0x02, trx_state ). eit her of these forces the radio transceiver into the busy_tx state. refer to section 10.2 for more details. during the transition to the busy_tx stat e, the pll frequency shifts to the transmit frequency , refer to section 9.8.3 . the actual transmission of the first data chip of the
37 42002c ? mcu wireless ? 08/13 at86rf212b shr starts aft er one symbol period (see note) in order to allow pll settling and pa ramp - up, see figure 7 - 6 . after transmission of the shr, the frame buffer content is transmitted. in case the phr indicates a frame length of zero, the transmission is aborted immediately after the phr field. after the frame transmission has been completed, the at86rf212b automatically turns off the power amplifier, generates an irq_3 (trx_end) interrupt, and returns into pll_on state. note: 1. t hroughout this datasheet, a ?symbol period? refers to the definition described in section 9.1.3 . 7.1.2.8 reset state the reset state is used to set back the state machine an d to reset all registers of atmel at86rf212b to their default values; exceptions are register bits clkm_ctrl (register 0x03, trx_ctrl_0). these register bits require a speci fic treatment, for details see section 9.7.4 . once in reset state a device enters trx_off stat e by setting pulling a reset pin high pin 8 (/rst) = h . if the device is still in the p_on state it remains in the p_on state though. a reset is triggered by pulling /rst pin low pin 8 (/rst) = l and the state returns after setting /rst = h. the reset puls e should have a minimum length as specified in section 7.1.4.5 and section 12.4 (parameter t 10 ). during reset, the microcontroller has to set the radio transceiver control pins slp_tr and /sel to their default values. an overview of the register reset values is provided in table 14- 2 .
38 42002c ? mcu wireless ? 08/13 a t86rf212b 7.1.3 interrupt handling all interrupts provided by the atmel at86rf212b (see table 6 - 10 ) are supported in basic operating mode. for example, interrupts are provided to observe the status of radio tr ansceiver rx and tx operations. when being in receive mode, irq_2 (rx_start) indicates the detection of a valid phr first, irq_5 (ami) an address match, and irq_3 (trx_end) the completion of the frame reception. during transmission, irq_3 (trx_end) indicates the completion of the fram e transmission. figure 7 - 2 shows an example for a transmit/receive transaction between two devices a nd the related interrupt events in basic operating mode. device 1 transmits a frame containing a mac header (in this example of length seven) , mac payload, and a valid fcs. the end of the frame transmission is indicated by irq_3 ( trx_end) . the frame is received by device 2. interrupt irq_2 (rx_start) indicates the detection of a valid phr field and irq_3 (trx_end) the completion of the f rame reception. if the frame passes the frame filter (refer to section 8.2 ), an address match interrupt irq_5 (ami) is issued after the reception of the mac header (mhr). the received frame is stored in the frame buffer. in basic operating mode the third interrupt irq_3 (trx_end) is issued at the end of the received frame. in extended operating mode, refer to section 7.2 ; the interrupt is only issued if the received frame passes the address filter and the fcs is valid. further exceptions are explained in section 7.2 . processing delay t irq is a typical value, refer to section 12.4 . figure 7 - 2 . timing of rx_start, ami and trx_end interrupts in basic operating mode for o - qpsk 250kb/s mode . 128 160 192 0 192 +( 9+ m )* 32 - 16 time [ s ] r x ( d e v i c e 2 ) irq _ 2 ( rx _ start ) t irq rx _ on rx _ on irq trx _ state interrupt latency trx _ end irq _ 5 ( ami ) t irq t irq busy _ rx irq _ 3 ( trx _ end ) t x ( d e v i c e 1 ) pll _ on busy _ tx pll _ on irq slp _ tr trx _ state typ . processing delay f r a m e o n a i r preamble sfd phr msdu 4 1 1 m number of octets frame content mhr 7 fcs 2 t tr 10
39 42002c ? mcu wireless ? 08/13 at86rf212b 7.1.4 basic operating mode timing this section depict s atmel at86rf212b state transitions and their timing properties. timing figures are explained in table 7 - 1 , table 7 - 2 , and section 12.4 . 7.1.4.1 power - on procedure the power - on procedure to p_on state is shown in figure 7 - 3 . figure 7 - 3 . power - on procedure to p_on sta te . 0 event state v dd on p _ on block xosc , dvreg 100 clkm on 400 time [ s ] time t tr 1 when the external supply voltage (v dd ) is initially supplied to the at86rf212b , the radio transceiver enables the crystal oscillator (xosc) and the internal 1.8v voltage regulator for the digital domain (dvreg). after t tr1 = 420 s (typ.), the master clock signal is available at pin 17 (clkm) at de fault rate of 1 mhz . as soon as clkm is available the spi is enabled and can be used to control the transceiver . as long as no state change towards state trx_off is performed, the radio transceiver remains in p_on state. 7.1.4.2 wake - up procedure from sleep the wak e - up procedure from sleep state is shown in figure 7 - 4 . figure 7 - 4 . wake - up procedure from sleep state . 0 event state block 100 clkm 400 time [s] time t tr2 trx_off irq_4 (awake_end) slp_tr = l sleep 200 ftn xosc, dvreg xosc, dvreg 300 the radio transceiver?s sleep state is left by releasing pin 1 1 ( slp_tr ) to logic low. this restarts the xosc and dvreg. after t tr2 = 420 s (typ.) the radio transceiver enters trx_off state. the internal clock signal is available and provi ded to pin 17 (clkm), if enabled. this procedure is similar to the power - on procedure. however the radio transceiver automatically proceeds to the trx_off state. during this, transition the filter - tuning network (ftn) calibration is performed. entering trx _off state is signaled by irq_4 (awake_end) , if this interrupt was enabled by the appropriate mask register bit.
40 42002c ? mcu wireless ? 08/13 a t86rf212b 7.1.4.3 pll_on and rx_on states the transition fro m trx_off to pll_on or rx_on state and further to rx_on or pll_on is shown in figure 7 - 5 . figure 7 - 5 . transition from trx_off to pll_on/rx_on state and further to rx_on/pll_on . 0 event state block 200 time [ s ] time t tr 4 / t tr 6 irq _ 0 ( pll _ lock ) trx _ off command pll _ on / rx _ on pll pll _ on / rx _ on rx _ on / pll _ on t tr 8 / t tr 9 rx _ on / pll _ on avreg note s : 1. if trx_cmd = rx_on in trx_off state, rx_on state is entered immediately, even if the pll has not settled. 2. timing figures t tr4 , t tr6 , t tr8 , and t tr9 refers to table 7 - 1 . in trx_off state, entering the commands pll_on or rx_on initiates a ramp - up sequence of the internal 1.8v voltage regulator for the analog domain (avreg). rx_on state can be entered any time from pll_on state, regardless whether the pll has already locked, which is indicated by irq_0 (pll_lock) . likewise, pll_on state can be entered any time from rx_on state. when trx_off_avdd_en (register 0x0c, trx_ctrl_2) i s already set in trx_off state, the analog voltage regulator is turned on immediately and the ramp - up sequence to pll_on or rx_on can be accelerated. 7.1.4.4 busy_tx to rx_on states the transition from pll_on to busy_tx state and subsequently to rx_on state is sho wn in figure 7 - 6 . figure 7 - 6 . pll_on to busy_tx to rx_on timing for o - qpsk 250 kb/s mode. time [s] 0 x 16 x + 32 time t tr11 t tr10 state block pll_on rx_on busy_tx event slp_tr=h or trx_cmd =tx_start pll tx rx trx_cmd=rx_on irq_3 (trx_end) starting from pll_on state , it is further assumed that the pll has already been locked. a transmission is initiated either by a rising edge of pin 11 (slp_tr) or by command tx_start. the pll settles to the transmit frequency and the pa is enabled. after th e duration of t tr10 (one symbol period), the atmel at86rf212b
41 42002c ? mcu wireless ? 08/13 at86rf212b changes into busy_tx state, transmitting the internally generated sh r and the psdu data of the frame buffer. after completing the frame transmission, indicated by irq_3 (trx_end) , the pll settles back to the receive frequency within t tr11 = 32s and returns to state pll_on. if during busy_tx the radio transmitter is requested to change to a receive state, it automatically proceeds to state rx_on upon completion of the transmission. 7.1.4.5 reset procedure the radio transceiver reset procedure is shown in figure 7 - 7 . figure 7 - 7 . reset procedure . x event state block time [s] pin /rst trx_off x + 30 [irq_4 (awake_ end)] 0 any, except p_on and sleep time t 10 t tr13 ftn undefined note: 1. timing figure t tr13 refers to table 7 - 1 , t 10 refers to section 12.4 . /rst = l sets all registers to their default values. exceptions are register bits clkm_ctrl (regist er 0x03, trx_ctrl_0), refer to section 9.7.4 . after releasing the reset pin 8 (/rst) = h , the wake - up sequence including an ftn calibratio n cycle is p erformed, refer to section 9.9 . after that, the trx_off state is entered. figure 7 - 7 illustrates the reset procedure once p _on state was left and the radio transceiver was not in sleep state. the reset procedure is identical for all originating radio transceiver states except of states p_on and sl eep. instead, the procedures described in section 7.1.2.1 and section 7.1.2.2 must be follo wed to enter the trx_off state. if the radio transceiver was in sleep state, the xosc and dvreg are enabled before entering trx_off state. if register bits trx_status indicates s tate_transition_in_progress during system initialization until the atmel at86rf212b reaches trx_off state, do not try to initiate a further state change while the radio transceiver is in this state. note s : 2. the res et impulse should have a minimum length t 10 = 625 ns as specified in section 12.4 . 3. an access to the device should not occur earlier than t 11 625 ns after releasing the /rst pin; refer to section 12.4 . 4. a reset overrides an spi command request that might have been queued.
42 42002c ? mcu wireless ? 08/13 a t86rf212b 7.1.4.6 state transition timing summary the atmel at86rf212b transition numbers correspond to figure 7 - 1 and do not include spi access time if not otherwise stated. see measurement setup in figure 5 - 1 . table 7 - 1 . state transition timing . symbol parameter condition min. typ. max. unit t tr1 p_on ? clkm is available depends on crystal oscillator setup (siward a207 - 011, c l = 10pf) and external capacitor at dvdd (cb3 = 1f nom.). 420 1000 s t tr1a sleep ? clkm is available depends on crystal oscillator setup (siward a207 - 011, c l = 10pf) and external capacitor at dvdd (cb3 = 1f nom.). 390 1000 s t tr2 sleep ? trx_off depends on crystal oscillator setup (siward a207 - 011, c l = 10pf) and external capacitor at dvdd (cb3 = 1f nom.); trx_off state indicated by irq_4 (awake_end). 420 1000 s t tr3 trx_off ? sleep for f clkm > 250khz. 35 clkm cycles otherwise. 0 clkm cycles t tr4 trx_off ? pll_on depends on external capacitor at avdd (cb1 = 1f nom.); register bit trx_off_avdd_en (register 0x0c, trx_ctrl_2) is not set. 170 s t tr5 pll_on ? trx_off 1 s t tr6 trx_off ? rx_on depends on external capacitor at avdd (cb1 = 1f nom.); register bit trx_off_avdd_en (register 0x0c, trx_ctrl_2) is not set. 170 s t tr7 rx_on ? trx_off 1 s t tr8 pll_on ? rx_on 1 s t tr9 rx_on ? pll_on transition time is also valid for tx_aret_on, rx_aack_on ? pll_on. 1 s t tr10 pll_on ? busy_tx when asserting pin 11 (slp_tr) or trx_cmd = tx_start first symbol transmission is delayed by one symbol period (pll settling and pa ramp - up). 1 symbol period t tr11 busy_tx ? pll_on pll settling time. 32 s t tr12 various states ? trx_off using trx_cmd = force_trx_off (see register 0x02, trx_state); not valid for sleep ? trx_off (see t tr2 ). 1 s t tr13 reset ? trx_off not valid for p_on or sleep. 26 s t tr14 various states ? pll_on using trx_cmd = force_pll_on (see register 0x02, trx_state); not valid for 1 s
43 42002c ? mcu wireless ? 08/13 at86rf212b symbol parameter condition min. typ. max. unit states sleep, p_on, reset, trx_off, and *_noclk. the state transition timing is calculated based on the timing of the individual blocks shown in figure 7 - 3 to figure 7 - 7 . the worst case values include maximum operating temperature, minimum supply voltage, and device parameter variations. table 7 - 2 . block initialization and settling time . symbol parameter condition min. typ. max. unit t xtal reference oscillator settling time start xtal ? clock available at pin 17 (clkm). depends on crystal oscillator setup (siward a207 - 011, c l = 10pf). 420 1000 s t ftn ftn calibration time 25 s t dvreg dvreg settling time depends on external bypass capacitor at dvdd (cb3 = 1f nom., 10f worst case). 150 1500 s t avreg avreg settling time depends on external bypass capacitor at avdd (cb1 = 1f nom., 10f worst case). 150 1500 s t pll_init initial pll settling time pll settling time trx_off ? pll_on, including 150s avreg settling time. 170 370 s t pll_sw pll settling time on channel switch duration of channel switch within frequency band. 11 42 s t pll_cf pll cf calibration pll center frequency calibration. 8 8 270 s t pll_dcu pll dcu calibration pll dcu calibration. 10 10 s t rx_tx rx ? tx maximum settling time rx ? tx. 16 s t tx_rx tx ? rx maximum settling time tx ? rx. 32 s t rssi rssi, update rssi update period in receive states. bpsk-20: 32 s bpsk-40: 24 s o - qpsk: 8 s t ed ed measurement ed measurement period is eight symbols. different timing within high data rate modes. 8 symbol t cca cca measurement cca measurement period is eight symbols. 8 symbol t rnd random value, update random value update period. 1 s t aes aes core cycle time 23.4 24 s
44 42002c ? mcu wireless ? 08/13 a t86rf212b 7.1.5 register description register 0x01 (trx_status): the read - only register trx_status signals the present state of the radio transceiver as well as the status of a cca operation. figure 7 - 8 . register trx_status. bit 7 6 5 4 0x01 cca_done cca_status reserved trx_status trx_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x01 trx_status trx_status read/write r r r r reset value 0 0 0 0 ? bit 4:0 - trx_status the register bits trx_status signal the current radio transceiver status. table 7 - 3 . trx_status. register bits value description trx_status 0x00 p_on 0x01 busy_rx 0x02 busy_tx 0x06 rx_on 0x08 trx_off (clk mode) 0x09 pll_on (tx_on) 0x0f (1) sleep 0x11 (2) busy_rx_aack 0x12 (2) busy_tx_aret 0x16 (2) rx_aack_on 0x19 (2) tx_aret_on 0x1c rx_on_noclk 0x1d (2) rx_aack_on_noclk 0x1e (2) busy_rx_aack_noclk 0x1f (3) state_transition_in_progress all other values are reserved notes: 1. in sleep state register not accessible. 2. extended operating mode only. 3. do not try to initiate a further state change while the radio transceiver is in state_transition_in_progress state. a read access to register bits trx_status reflects the current radio transceiver state. a state change is initiated by writing a state transition command to register bits trx_cmd (register 0x02, trx_state). alternatively, some state transitions can be init iated by the rising edge of pin 11 (slp_tr) in the appropriate state. these register bits are used for basic and extended operating mode, see section 7.2 .
45 42002c ? mcu wireless ? 08/13 at86rf212b if the requested state transition has not been completed, the trx_status returns state_transition_in_progress value . do not try to initiate a further state change while the radio transceiver is in state_transition_in_progress state . state transition timings are defined in table 7 - 1 . register 0x02 (trx_state): the radio transceiver states are advanced via register trx_state by writing a command word into register bits trx_cmd. the read - only register bits trac_status indicate the status or result of an extended operating mode transaction. figure 7 - 9 . register trx_state. bit 7 6 5 4 0x02 trac_status trx_cmd trx_state read/write r r r r/w reset value 0 0 0 0 bit 3 2 1 0 0x02 trx_cmd trx_state read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 4:0 - trx_cmd a write access to register bits trx_cmd initiate a radio transceiver state transition to the new state. table 7 - 4 . trx_cmd. register bits value description trx_cmd 0x00 (1) nop 0x02 (2) tx_start 0x03 force_trx_off 0x04 (3) force_pll_on 0x06 rx_on 0x08 trx_off (clk mode) 0x09 pll_on (tx_on) 0x16 (4) rx_aack_on 0x19 (4) tx_aret_on all other values are reserved notes: 1. trx_cmd = ?0? after power on reset (por). 2. the frame transmission starts one symbol after tx_start command. 3. force_pll_on command is not valid in states p_on, sleep, reset, and all *_noclk states, as well as state_transition_in_progres towards these states. 4. extended operating mode only. a write access to register bits trx_cmd initiates a radio transceiver state transition towards the new state. these register bits are used for basic and extended operating mode, see section 7.2 .
46 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2 extended operating mode e xtended operating mode makes up for a large set of automated functionality add - ons which can be referred to a s a hardware mac accelerator . these add - ons go beyond t he basic radio transceiver functionality provided by the basic operating mode . extended operating mode functions handle time critical mac tasks, requested by the ieee 802.15.4 standard , in hardware , such as automatic acknowledgement, automatic csma - ca, and retransmission. this results in a more efficient ieee 802.15.4 software mac implementation, including reduced code size, and may allow use of a smaller microcontroller or operation at low clock rates. the extended operating mode is designed to support iee e 802.15.4 - 2006 and ieee 802.15.4 - 2011 compliant frames; the mode is backward compatible to ieee 802.15.4 - 2003 and supports non ieee 802.15.4 compliant frames. this mode comprises the following procedures: automatic acknowledgement (rx_aack) divides into the tasks: ? frame reception and automatic fcs check ? configurable addressing fields check ? interrupt indicating address match ? interrupt indicating frame reception, if it passes address filtering and fcs check ? automatic ack frame transmission (if the received frame passed the address filter and fcs check and if an ack is required by the frame type and ack request) ? support of slotted acknowledgment using slp_tr pin (used for beacon - enabled operation) automatic c sma - ca and retransmission (tx_aret) divides into the tasks: ? csma - ca , including automatic cca retry and random backoff ? frame transmission and automatic fcs field generation ? reception of ack frame (if an ack was requested) ? automatic retry of transmissions if ack was expected but not received or accepted ? interrupt signaling with transaction status automatic fcs check and generation, refer to section 8.3 , is used by the rx_aack and tx_aret modes. in rx_aack mode, an automatic fcs check is always performed for incoming frames. in tx_aret mode, an ack which is received within the time required by ieee 802.15.4 is automatically accepted if the fcs is valid and the ack seque nce number must match the sequence number of the previously transmitted frame. dependent on the value of the frame pending subfield in the received acknowledgement frame received, the transaction status is set, see register bits trac_status (register 0x02, trx_state) , section 7.2.7 . an atmel at86rf212b state diagram, including the extended operating mode states, is shown in figure 7 - 10 . orange marked states represent the basic operating mode; blue marked states represent the extended operating mode.
47 42002c ? mcu wireless ? 08/13 at86rf212b figure 7 - 10 . extended operati ng mode state diagram . 2 trx _ off slp_tr=h legend : blue : spi write to register trx _state (0x02) red: control signals via ic pin green: event basic operating mode states extended operating mode states slp_tr=l pll_on rx_on pll_on trx_off (clock state) xosc=on pull=off rx_on p _on (power-on after v dd ) xosc=on pull=on sleep (sleep state) xosc=off pull=off (all modes except p_on) force_trx_off (all modes except sleep) frame end frame end busy_tx (transmit state) rx_on (rx listen state) busy_rx (receive state) trx_off trx _off 1 3 4 5 7 6 8 9 11 10 rx_on_noclk (rx listen state) clkm=off slp_tr=h slp_tr=l busy_rx_aack busy_tx_aret shr detected trans- action finished tx_aret_on pll_on slp_tr=h or tx_start frame end pll_on rx _ aack_on rx_aack_ on_noclk busy_rx_ aack_noclk frame rejected frame accepted slp_tr=h slp_tr=l /rst = h 12 13 force_pll_on 14 shr detected slp_tr=h or tx_start shr detected shr detected tx_aret_on rx_aack_on clkm=off clkm=off pll_on (pll state) see notes reset (from all states) /rst = l tx_aret_on trx_off from / to trx_off rx_aack_on trx_off from / to trx_off
48 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.1 state control the extended operating mode include rx_aack and tx_aret modes and are controlled by writing respective command to register bits trx_cmd (register 0x02, trx_state ) . receive with auto matic acknowledgement state rx_aack_on and transmit with automatic frame retransmission and csma - ca retry state tx_aret_on can be entered either from trx_off or pll_on state as illustrated in figure 7 - 10. the completion of each change state command shall always be confirmed by reading the register bits trx_status (register 0x01, trx_status). rx_aack - receive with automatic acknowledgement a state transition to rx_aack_on from pll_on or trx_off is initiated by writing the rx_aack_on command to register bits trx_cmd (register 0x02, trx_state). on succe ss, reading register bits trx_status (register 0x01, trx_status) returns rx_aack_on or busy_rx_aack. the latter one is returned when a frame is being received. th e rx_aack extended operating mode is terminated by writing command pll_on to the register bits trx_cmd . if the atmel at86rf212b is within a frame receive or acknowledgment procedure (busy_rx_aack), the state change is executed after finishing. alternatively, the commands force_trx_off or force_pll_on can be used to cancel the rx_aack transaction and switch to trx_off or pll_on sta te respectively. tx_aret - transmit with automatic frame retransmission and csma - ca retry a state transition to tx_aret_on from pll_on or trx_off is initiated by writing tx_aret_on command to register bits trx_cmd (register 0x02, trx_state). the radio transceiver is in the tx_aret_on state when register bits trx_status (register 0x01, trx_status) return tx_aret_on. the tx_aret transaction (frame transmission) is actually started by a rising edge o n pin 11 (slp_tr) or by writing the command tx_start to register bits trx_cmd. the tx_aret extended operating mode is terminated by writing the command pll_on to the trx_cmd register bits . if the at86rf212b is in the mids of a csma - ca transaction , a frame transmi ssion or an acknowledgment pr ocedure (busy_tx_aret), the state change is executed after completing of the operation . alternatively, the command force_pll_on can be used to instantly terminate the tx_aret transaction and change into transceiver state pll_on , respectively . note: 1. a stat e change request from trx_off to rx_aack_on or tx_aret_on internally passes through pll_on state to initiate the radio transceiver front end. inserting pll_on state and associated delay s while performing this transition are indicated in table 7 -1 . state transitioning can be tracked when interrupt irq_0 (pll_lock) is used as an indicator .
49 42002c ? mcu wireless ? 08/13 at86rf212b 7.2.2 configuration as the usage of the extended operating mode is based on basic operating mode functionality, only features beyond the basic radio transceiver func tionality are described in the following sections. for details of the basic operating mode, refer to section 7.1 . when using the rx_aack or tx_aret modes, the following registers need to be configured. rx_aack configuration steps: ? set the s hort ad dress, pan id, and ieee address registers 0x20 ? 0x2b ? configure rx_aack properties registers 0x2c, 0x2e o handling of frame version subfield o handling of pending data indicator o characteriz ation as pan coordinator o handling of slotted acknowledgement ? additional frame filtering properties registers 0x17, 0x2e o use of promiscuous mode o use of automatic ack generation o handling of reserved frame types the configuration of the frame filter is described in section 8.2.1 . the addresses for the address match algorithm are to be stored in the appropriate address registers. additional control of the rx_aack mode is done with register 0x17 (xah_ctrl_1) and register 0x2e (csma_seed_1). as long as a short address is not set, only broadcast frames and frames matching the full 64- bit ieee address can be received. configuration examples for different device operating modes and handling of vario us frame types can be found in section 7.2.3.1 . tx_aret configuration steps: ? set register bit tx_auto_crc_on = 1 register 0x04 , trx_ctrl_1 ? configure csma - ca o max_frame_retries register 0x2c, xah_ctrl_0 o max_csma_retries register 0x2c, xah_ctrl_0 o csma_seed registers 0x2d, 0x2e o max_be, min_be register 0x2f, csma_be ? configure cca (see section 8.6 ) max_frame_retries (register 0x2c, xah_ctrl_0) defines the maximu m number of frame retransmissions. the register bits max_csma_retries (register 0x2c, xah_ctrl_0) configure the number of csma - ca retries af ter a busy channel is detected. the register bits csma_seed (registers 0x2d, 0x2e) define a random seed for the back off - time random - number generator in the atmel at86rf212b . the register bits max_be and min_be (register 0x2f, csma_be) set the maximum and minimum csma backoff exponent (see [2] ), respectively.
50 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.3 rx_aack_on ? receive with automatic ack the rx_aack extended operating mode handles reception and automatic acknowledgement of ieee 802.15.4 compliant frames. the general functionality of the rx_aack procedure is shown in figure 7 - 11. t he gray shaded area is the standard flow of an rx_aack transaction for ie ee 802.15.4 compliant frames, refer to section 7.2.3.2 . all other procedures are exceptions for specific operating modes or frame formats, refer to section 7.2.3.3 . in rx_aack_on state, the atmel at86rf212b listens for incoming frames. after detecting a valid phr, the radio transceiver changes into busy_rx_aack state and parses the frame content of the mac header (mhr) , refer to section 8.1.2 . if the content of the mac addressing fields of the received frame (refer to ieee 802.15.4 section 7.2.1 ) matches one of the configured addresses, dependent on the addressing mode, an address match interrupt irq_5 (ami) is issued, refer to section 8.2 . the reference address values are to be stored in registers 0x20 ? 0x2b (short address, pan - id and ieee address). frame filtering as described in section 8.2 is also applied in basic operating mode. however, in basic operating mode , the result of frame filtering or fcs check do not affect the generation of an interrupt irq_3 (trx_end) . generally, at nodes configured as a normal device or a pan coordinator, a frame is indicated by interrupt irq_3 (trx_end) if the frame passes the frame filter and the fcs is valid. the interrupt is issued after the completion of the frame reception. the microcontroller can then read the frame data. an exception applies if promiscuous mode is enabled, see section 7.2.3.2 . in this case, an interrupt irq_3 (trx_end) is issued for all frames. during reception at86rf212b parses bit[5] (ack request) of the frame control field of the received data or mac command frame to check if an acknowledgement (ack) reply is expected. if the bit is set and if the frame passes the third lev el of filtering, see ieee 802.15.4 - 2006, section 7.5.6.2 , the radio transceiver automatically generates and transmits an ack frame. the sequence number is copied from the received frame. the content of the frame pending subfield of the ack response is set by register bit aack_set_pd (register 0x2e, csma_seed_1) when the ack frame is sent in response to a data request mac command frame, otherwise this subfield is set to zero . by default, the acknowledgment frame is transmitted aturnaroundtime ( 12 symbol peri ods ; see ieee 802.15.4 - 2006 , section 6.4.1 ) after the reception of the last symbol of a data or mac command frame. optionally, for non - compliant networks, this delay can be reduced to two symbols by register bit aack_ack_time (register 0x2e, xah_ctrl_1). if the register bit aack_dis_ack (register 0x2e, csma_seed_1) is set, no acknowledgement frame is sent even if an acknowledgment frame is requested. this is useful for operating the mac hardware accelerator in promiscuous mode, see section 7.2.3.2 . for slotted operation, the start of the transmission of acknowledgement frames is controlled by pin 11 (slp_tr), refer to section 7.2.3.5 . the status of the rx_aack transaction is indicated by register bits trac_status (register 0x02, trx_state ), see section 7.2.7 . during the operations described above, the at86rf212b remains in busy_rx_aack state.
51 42002c ? mcu wireless ? 08/13 at86rf212b figure 7 - 11 . f low diagram of rx_aack . reserved frames trx _ state = rx _ aack _ on transmit ack trx _ state = rx _ aack _ on , trac _ status = success n y note 2 : additional conditions : - ack requested & - ack _ dis _ ack == 0 & - frame _ version < = aack _ fvn _ mode y y n y n n n y promiscuous mode note 1 ( address match , promiscuous mode and reserved frames ) : - a radio transceiver in promiscuous mode or configured to receive reserved frames handles received frames passing the third level of filtering . - for details , refer to the descritption of promiscuous mode and reserved frame types . wait ( aack _ ack _ time ) wait ( aack _ ack _ time ) wait ( pin 11 / slp _ tr rising edge ) address match ? fcs valid || aack _ prom _ mode ? ack requested ? ( see note 2 ) trac _ status = success _ wait _ for _ ack no slotted operation ? receive psdu aack _ prom _ mode == 1 ? receive psdu fcf [ 2 : 0 ] > 3 ? aack _ upld _ res _ ft == 1 ? fcs valid ? issue irq _ 3 ( trx _ end ) issue irq _ 3 ( trx _ end ) y y y issue irq _ 3 ( trx _ end ) receive psdu n n detect shr issue irq _ 2 ( rx _ start ) scan mhr issue irq _ 5 ( ami ) trx _ state = busy _ rx _ aack
52 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.3.1 description of rx_aack configuration bits overview rx_aack configuration as described below shall be done prior to switching the at86rf212b into state rx_aack_on, refer to section 7.2.1 . table 7 - 5 summarizes all register bit s which affect the behavior of an rx_aack transaction. for frame filtering it is further required to setup address registers to match the expected address. table 7 - 5 . overview of rx_aack configuration bits . register address register bits register name description 0x20,0x21 0x22,0x23 0x24 ? 0x2b short_addr_0/1 pan_addr_0/1 ieee_addr_0 ? ieee_addr_7 setup frame filter, see section 8.2.1 . 0x0c 7 rx_safe_mode dynamic frame buffer protection, see section 11.7 . 0x17 1 aack_prom_mode support promiscuous mode . 0x17 2 aack_ack_time change auto acknowledge start time . 0x17 4 aack_upld_res_ft enable reserved frame type reception, needed to receive non - standard compliant frames, see section 7.2.3.3 . 0x17 5 aack_fltr_res_ft filter reserved frame types like data frame type, needed for filtering of non - standard compliant frames, see section 7.2.3.3 . 0x2c 0 slotted_operation if set, ackn owledgment transmis sion has to be triggered by pin 11 (slp_tr), see section 7.2.3.5 . 0x2e 3 aack_i_am_coord if set, the device is a pan coordinator, that is responds to a null address , see section 7.2.3.2 . 0x2e 4 aack_dis_ack disable generation of acknowledgment . 0x2e 5 aack_set_pd set frame pending subfield in frame control field (fcf), refer to section 8.1.2.2 . 0x2e 7:6 aack_fvn_mode controls the ack behavior, depending on fcf frame versio n number . the usage of the rx_aack configuration bits for various operating modes of a node is explained in the following sections. configuration bits not mentioned in the following two sections should be set to their reset values according to table 14 - 2 . all registers mentioned in table 7 - 5 are described in section 7.2.6 . the general behavior of the ? atmel at86rf212b extended feature set?, chapter 11, settings: o sfd_value (alternative sfd value) o ant_div (antenna diversity) o rx_pdt_level (blocking frame reception of lower power signals) are completely independent from rx_aack mode and can be arbitrarily combined.
53 42002c ? mcu wireless ? 08/13 at86rf212b 7.2.3.2 configuration of ieee compliant scenarios device not operat ing as a pan coordinator table 7 - 6 shows a typical atmel at86rf212b rx_aack configuration of an ieee 802.15 .4 device operating as a normal device, rather than a pan coordinator or router. table 7 - 6 . configuration of ieee 802.15.4 devices . register address register bits register name description 0x20,0x21 0x22,0x23 0x24 ? 0x2b short_addr_0/1 pan_addr_0/1 ieee_addr_0 ? ieee_addr_7 setup frame filter, see section 8.2.1 . 0x0c 7 rx_safe_mode 0 : d isable frame protection . 1 : e nable frame protection. 0x2c 0 slotted_operation 0 : s lotted acknowledgment transmissions are not to be used . 1 : s lotted acknowledgment transmissions are to be used , see section 7.2.3.5 . 0x2e 7:6 aack_fvn_mode controls the ack behavior, depending on fcf frame version number . b 00: a cknowledges only frames with version number 0, that is according to ieee 802.15.4 - 2003 frames . b 01 : a cknowledges only frames with version number 0 or 1, that is frames according to ieee 802.15.4 - 2006. b 10: a cknowledges only frames with version number 0 or 1 or 2 . b 11: a cknowledges all frames, independent of the fcf frame version number . notes: 1. the default value of the short address is 0xffff. thus, if no short address has been configured, only frames with either the broadcast address or the ieee address are accepted by the frame filter. 2. in the ieee 802.15.4 - 2003 standard the frame version subfield does not yet exist but is marked as reserved. according to this standard, reserved fields have to be set to zero. at the same time, the ieee 802.15.4 - 2003 standard requires ignoring reserved bits upon reception. thu s, there is a contradiction in the standard which can be interpreted in two ways: a. if a network should only allow access to nodes compliant to ieee 802.15.4 - 2003 , then aack_fvn_mode should be set to zero . b. if a device should acknowledge all frames independent of its frame version, aack_fvn_mode should be set to three . however, this may result in conflicts with co - existing ieee 802.15.4 - 2006 standard compliant networks. the same holds for pan coordinators, se e below.
54 42002c ? mcu wireless ? 08/13 a t86rf212b pan coordinator table 7 - 7 shows the atmel at86rf212b rx_aack configuration for a pan coordinator . table 7 - 7 . configuration of a pan coordinator . register address register bits register name description 0x20,0x21 0x22,0x23 0x24 ? 0x2b short_addr_0/1 pan_addr_0/1 ieee_addr_0 ? ieee_addr_7 setup frame filter, see section 8.2.1 . 0x0c 7 rx_safe_mode 0 : d isable frame protection . 1 : e nable frame protection. 0x2c 0 slotted_operation 0 : s lotted acknowledgment transmissions are not to be used . 1 : s lotted acknowledgment transmissions are to be used , see section 7.2.3.5 . 0x2e 3 aack_i _am_coord 1 : d evice is pan coordinator . 0x2e 5 aack_set_pd 0 : f rame pending subfield is not set in fcf . 1 : f rame pending subfield is set in fcf . 0x2e 7:6 aack_fvn_mode controls the ack behavior, depends on fcf frame version number . b 00: a cknowledges only frames with version number 0, that is accordi ng to ieee 802.15.4 - 2003 frames. b 01 : a cknowledges only frames with version number 0 or 1, that is frames according to ieee 802.15.4 - 2006. b 10: a cknowledges only frames with version number 0 or 1 or 2 . b 11: a cknowledges all frames, independent of the fcf frame version number. promiscuous mode or sniffer the promiscuous mode is de scribed in ieee 802.15.4 - 2006, section 7.5.6 .5. this mode is furthe r illustrated in figure 7 - 11 . according to ieee 802.15.4 - 2006 when in promiscuous mode, the mac sub layer shall pass received frames with correct fcs to the next higher layer and shal l not process them further. this implies that received frames should never be automatically acknowledged. in order to support sniffer application and promiscuous mode, only second level filter rules as defined by ieee 802.1 5.4 - 2006, section 7.5. 6.2, are applied to the received frame.
55 42002c ? mcu wireless ? 08/13 at86rf212b table 7 - 8 shows a typical configuration of a device operating in promiscuous mode . table 7 - 8 . configuration of promiscuous mode . register address register bits register name description 0x20,0x21 0x22,0x23 0x24 ? 0x2b short_addr_0/1 pan_addr_0/1 ieee_addr_0 ? ieee_addr_7 each address shall be set: 0x00 . 0x17 1 aack_prom_mode 1 : enable promiscuous mode . 0x2e 4 aack_dis_ack 1 : disable generation of acknowledgment . 0x2e 7:6 aack_fvn_mode controls the ack behavior, depends on fcf frame version number . b 00: a cknowledges only frames with version number 0, that is according to ieee 802.15.4 - 2003 frames . b 01 : a cknowledges only frames with version number 0 or 1, that is frames according to ieee 802.15.4 - 2006. b 10: a cknowledges only frames with version number 0 or 1 or 2 . b 11: a cknowledges all frames, independent of the fcf frame version number . if the atmel at86rf212b radio transceiver is in promiscuous mode, second level of filtering according to ieee 802.15.4 - 2006, section 7.5.6.2, is applied to a received frame. however, an irq_3 (trx_end) is issued even if the fcs is invalid . thus, it is necessary to read register bit rx_crc_valid (register 0x06, phy_rssi) after irq_3 (trx_end) in order to verify the reception of a frame with a valid fcs. alternatively, bit[ 7 ] of byte rx_sta tus can be evaluated, refer to section 6.3.2 . if a device, operating in promiscuous mode, receives a frame with a valid fcs which further passed the third level of filtering according to ieee 802.15.4 - 2006, section 7.5.6.2, and an acknowledgement (ac k) frame would be transmitted . but, according to the definition of the promiscuous mode, a received frame shall not be acknowledged, even if requested. thus, register bit aack_dis_ack (register 0x2e, csma_seed_1) must be set to one to disable ack generatio n. in all receive modes irq_5 (ami) interrupt is issued, when the received frame matches the node?s address according to the filter rules described in section 8.2 . alternatively, in state rx_on (b asic operating mode, refer to section 7.1 ), when a valid phr is detected, an irq_2 (rx_start) is generated and the frame is received. the end of the f rame reception is signalized with an irq_3 (trx_end) . at the same time the register bit rx_crc_valid (register 0x06, phy_rssi) is updated with the result of the fcs check (see section 8.3 ). according to the promiscuous mode definition the register bit rx_crc_valid needs to be check ed in order to dismiss corrupted frames. however, the rx_aack transaction additionally enables extended functionality like automatic acknowledgement and non - destructive frame filtering.
56 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.3.3 configuration of non ieee 802.15.4 compliant scenarios sniffer table 7 - 9 shows an atmel at86rf212b rx_aack configuration to setup a sniffer device. other rx_aack configuration bits, refer to table 7 - 5 , should be set to their reset values. all frame s received are indicated by an irq_2 (rx_start) and irq_3 (trx_end) . after frame reception register bit rx_crc_valid (register 0x06, phy_rssi) is updated with the result of the fcs check (see section 8.3 ). the rx_crc_valid bit needs to be checked in order to dismiss corrupted frames. table 7 - 9 . configuration of a sniffer device . register address register bits register name description 0x17 1 aack_prom_mode 1 : enable promiscuous mode . 0x2e 4 aack_dis_ack 1 : disable generation of acknowledgment . this operating mode is similar to the promiscuous mode. reception of reserved frames in rx_aack mode, frames with reserved frame types ( refer to table 8 - 3 ) can also be handled. this might be required when implementing proprietary, non - standard compliant, protocols . the reception of reserved frame types is an extension of t he at86rf212b frame filter, see section 8.2 . received frames are either handled like data frames, or may be allowed to completely bypass the frame filter. the flow chart in figure 7 - 11 shows the corresponding state machine. in addition to table 7 - 6 or table 7 - 7 , the fo llowing table 7 - 10 shows rx_aack configuration registers required to setup a node t o receive reserved frame types. table 7 - 10. rx_aack configuration to receive reserved frame types . register address register bits register name description 0x17 4 aack_upld_res_ft 1 : enable reserved frame type reception . 0x17 5 aack_fltr_res_ft filter reserved frame types like data frame type, see note below . 0 : d isable reserved frame types filtering. 1 : enable reserved frame types filtering. there are three different options for handling reserved frame types. 1. aack_upld_res_ft = 1, aack_flt_res_ft = 0: any non - corrupted frame with a reserved frame type is indicated by an irq_3 (trx_end) interrupt. no further address filtering is applied on those frames. an irq_5 (ami) interrupt is never generated and the acknowledgment subfield is ignored. 2. aack_upl d_res_ft = 1, aack_flt_res_ft = 1: if aack_flt_res_ft = 1 any frame with a reserved frame type is filtered by the address filter similar to a data frame as described in the standard. this implies the generation of the irq_5 (ami) interrupts upon address match. an
57 42002c ? mcu wireless ? 08/13 at86rf212b irq_3 (trx_end) interrupt is only generated if the address matched and the frame was not corrupted. an acknowledgment is only send, when the ack request subfield was set in the received frame and an irq_3 (trx_end) interrupt occurred. 3. aack_upld_res_ft = 0: any received frame with a reserved frame type is discarded. short acknowledgment frame (ack) start timing register bit aack_ack_time (register 0x17, xah_ctrl_1) , see table 7 - 11 defines the delay between the end of the frame reception and the start of the transmiss ion of an acknowledgment frame. table 7 - 11. ack start timing for unslotted operation . register address register bit register name description 0x17 2 aack_ack_time 0 : ieee 802.15.4 s tandard compliant acknowledgement timing of 12 symbol periods . 1 : non - s tandard ieee 802.15.4 r educed acknowledgment delay is set to two symbol periods (bpsk - 20, o - qpsk- {100,200,400}) or three symbol periods (bpsk - 40, o - qpsk- {250,500,1000}). this feature can be used in all scenarios, independent of other configurations. however, shorter acknowledgment timing is especially useful when using high data rate modes to increase battery lifetime and to improve the overall data throughput; refer to section 9.1.4.3 . in slotted operation mode, the acknowledgment transmission is actually started by pin 11 (slp_tr). table 7 - 12 shows that the atmel at86rf212b enables the trigger pin with an appropriate delay. thus, a transmission cannot be started earlier. table 7 - 12. ack start timing for slotted operation . register address register bit register name description 0x17 2 aack_ack_time 0 : acknowledgment frame transmission can be triggered after six symbol periods. 1 : acknowledgment frame transmission can be triggered after three symbol periods.
58 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.3.4 rx_aack_noclk ? rx_aack_on without clkm if the at86rf212b is listening for an incoming frame and the microcontroller is not running an application, the microcontroller can be powered down to decrease the total system power consumption. this special power - down scenario for systems running in clock synchronous mode (see section 6.2 ) is supported by the at86rf212b using the states rx_aack_on_noclk and busy_rx_aack_noc lk, see figure 7 - 10 . they achieve the same functionality as the states rx_aack_on and busy_rx_aack with pin 17 (clkm) disabled. the rx_aack_noclk state is entered from rx_aack_on by a rising edge at pin 11 (slp_tr). the return to rx_aack_on state automatically results either from the reception of a valid frame, indicated by interrupt irq_3 (trx_end) , o r a falling edge on pin 11 (slp_tr) . a received frame is considered valid if it passes frame filtering and has a correct fcs. if an ack was requested, the radio transceiver enters busy_ rx_aack state and foll ows the procedure described in section 7.2.3 . after the rx_aack transaction has been completed, the radio transceiver remains in rx_aack_on st ate. the at86rf212b re - enters the rx_aack_on_noclk state only by the next rising edge on pin 11 (slp_tr) . the timing and behavior, when clkm is disabled or enabled, are described in section 6.6 . note: 1. rx_aack_noclk is not available for slotted operation mode (see section 7.2.3.5 ). 7.2.3.5 rx_aack slotted operation ? slotted acknowledgement in networks using slotted operation the start of the acknowledgment frame, and thus the exact timing, must be provided by the microcontroller. exact timing requirements for the transmission of acknowledgments in beacon - enabled networks are ex plained in iee e 802.15.4 - 2006, section 7. 5.6.4.2. in conjunction with the microcontroller the atmel at86rf212b supports slotted acknowledgement operation. this mode is invoked by setting register bit slotted_operation (register 0x2c, xah_ctrl_0) to one . if an acknowledgment (ack) frame is to be transmitted in rx_aack mode, the radio transceiver expects a rising edge on pin 11 (slp_tr) to actually start the transmission. during this waiting period, the transceiver reports success _wait_for_ack through register bits trac_status (register 0x02, xah_ctrl_0), see figure 7 - 11 . the minimum delay between the occurrence of interrupt irq_3 (trx_end) and pin start of the ack frame in slotted operation is three symbol periods. figure 7 - 12 illustrates the timing of an rx_aack transaction in slotted operation. the acknowledgement frame is ready to transmit three symbol times after the reception of the last symbol of a data or mac command frame indicated by irq_3 (trx_end) . the transmission of the acknowledgement frame is initiated by the microcontroller with the rising edge of pin 11 (slp_tr) and starts t tr10 = 1 symbol period later. the interrupt latency t irq is specified in section 12.4 .
59 42002c ? mcu wireless ? 08/13 at86rf212b figure 7 - 12 . timing example of an rx_aack transaction for slotted operation . busy_rx_aack frame on air rx_aack_on busy_rx_aack state frame type rx_aack_on rx/tx rx tx trx_end irq rx t irq data frame (ack=1) ack frame (frame pending = 0) sfd slp_tr slp_tr accepted t tr10 3 symbols ... success_wait_for_ack success trac_status time 7.2.3.6 rx_aack mode timing a timing example of an rx_aack transaction is shown in figure 7 - 13 . in this ex ample, a data frame with an ack request is received. the atmel at86rf212b changes to state busy_rx_aack after sfd detection. the completion of the frame reception is indicated by a n irq_3 (trx_end) interrupt. the interrupts irq_2 (rx_start) and irq_5 (ami) are disabled in this example. the ack frame is automatically transmitted after aturnaroundtime (12 symbols), assuming default acknowledgment frame start timing. the interrupt la tency t irq is specified in section 12.4 . figure 7 - 13 . timing example of an rx_aack transaction . frame on air rx _ aack _ on busy _ rx _ aack state frame type rx _ aack _ on rx / tx rx tx trx _ end irq rx t irq data frame ( ack = 1 ) ack frame ( frame pending = 0 ) sfd ... success _ wait _ for _ ack success trac _ status aturnaroundtime ( aack _ ack _ time ) time note: 1. if register bit aack_ack_time (register 0x17, xah_ctrl_1) is set, an acknow ledgment frame is sent already two or three symbol times (refer to section 7.2.3.3 ) after the reception of the last symbol of a data or mac command frame.
60 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.4 tx_aret_on ? transmit with automatic frame retransmission and csma - ca retry figure 7 - 14 . flow diagram of tx_aret. trx_state = tx_aret_on csma_rctr = 0 trx_state = tx_aret_on n y failure success n y frame_rctr = 0 transmit frame frame_rctr = frame_rctr + 1 y n n y trac_status = no_ack trac_status = success trac_status = channel_access_failure issue irq_3 (trx_end) interrupt cca result ack requested ack valid trac_status = success_data_pending y n receive ack until timeout y n trx_state = busy_tx_aret trac_status = invalid max _ csma _ retries <7 y n csma_rctr > max _ csma _ retries y note 1: if max_csma_retries = 7 no retry is performed (see note 1) random back-off csma_rctr = csma_rctr + 1 cca start tx frame_rctr > max_frame_retries data pending n
61 42002c ? mcu wireless ? 08/13 at86rf212b overview the implementation of tx_aret algorithm is shown in figure 7 - 14 . the tx_aret extended operating mode supports the frame transmission process as defined by ieee 802.15.4 - 2006. it is invoked as described in section 7.2.1 by writing tx_aret_on to register subfield trx_cmd (register 0x02, trx_state). if a transmission is initiated in tx_aret mode, the atmel at86rf212b executes the csma - ca algorithm as defined by ieee 802.15.4 - 2006, section 7 .5.1.4. if the cca reports idle, the frame is tra nsmitted from the frame buffer. if an acknowledgement frame is requested, the radio transceiver checks for an ack reply automatically . the csma - ca based transmission process is repeated until a valid acknowledgement is received or the number of frame retra nsmissions max_frame_retries ( register 0x 2 c , xah_ctrl_0) is exceeded. the completion of the tx_aret transaction is indicated by the irq_3 (trx_end) interrupt, see section 7.2.5 . description prior to invoking at86rf212b tx_aret mode, the basic configuration steps as described in section 7.2.2 shall be executed. it is further recommended to write the psdu transmit data to the frame buffer in advance. the transmit start event may either come fro m a rising edge on pin 11 (slp_tr) , refer to section 6.6 , or by writing a tx_start command to register bits trx_ cmd (register 0x02, trx_state). if the csma - ca detects a busy channel, it is retried as specified by the register bits max_csma_retries (register 0x2c, xah_ctrl_0). in case that csma - ca does not detect a clear channel after max_csma_retries, it aborts the tx_aret transaction, issues interrupt irq_3 (trx_end) , and set s the value of the register bits trac_status to channel_access_failure. during transmission of a frame the radio transceiver parses bit [ 5 ] (ack request) of the mac header (mhr) frame control field of the psdu data (psdu octet #1) to be transmitted to check if an ack reply is expected. if no ack is expected, the radio transceiver issues irq_3 (trx_end) directly after the frame transmission has been completed. the register bits trac_status (register 0x02, trx_state) are set to success. if an ack is expected, after transmission the radio transceiver automatically switches to receive mode waiting for a valid ack reply ( that is matching sequence number and correct fcs). after receiving a valid ack frame, the ?frame pending? subfield of this frame is parsed and the status register bits trac_status are up dated to success or success_data_pending accordingly, refer to table 7 - 13 . at the same time, the entire tx_aret transaction is terminated and interrupt irq_3 (trx_end) is issued. if no valid ack is received within the timeout period ( refer to section 7.2.4.1 ), the radio transceiver retries the entire transaction (csma - ca based frame transmission) until the maximum number of frame retransmissions is exceeded, see register bits max_frame_retries (register 0x2c, xah_ctrl_0). in that case, the trac_status is set to no_ack, the tx_aret transaction is terminated, and in terrupt irq_3 (trx_end) is issued.
62 42002c ? mcu wireless ? 08/13 a t86rf212b note: 1. t he acknowledgment receive procedure does not overwrite the frame buffer content. transmit data in the frame buffer is not modified during the entire tx_aret transaction. received frames, other than the expected ack frame, are discarded automatically. after that, the microcontroller may read the value of the register bits trac_status (register 0x02, trx_state) to verify whether the transaction was successful or not. the register bits are set according to the following cases, additional exit codes are de scribed in section 7.2.6 . table 7 - 13 summarizes the extend ed operating mode result codes in register subfield trac_status (register 0x02, trx_state) with respect to the tx_aret transaction . values are meaningful after an interrupt until the next frame transmit. table 7 - 13. interpretation of trac_status r egister bi ts . value name description 0 success the transaction was responded to by a valid ack, or, if no ack is requested, after a successful frame transmission. 1 success_data_pending equivalent to success and indicating that the ?frame pending? bit (see section 8.1.2.2 ) of the received acknowledgment frame was set. 3 channel_access_failure channel is still busy after attempting max_csma_retries of csma - ca. 5 no_ack no acknowledgement frame was received during all retry attempts. 7 invalid a value of max_csma_retries = 7 initiates an immediate tx_aret transaction without performing csma - ca. this can be used for example to transmit indirect data to a device. further the value max_frame_retries is ignored and the tx_aret transaction is perform ed only once. 7.2.4.1 acknowledgment timeout if an acknowledgment (ack) frame is expected following the frame transmission, the atmel at86rf212b sets a timeout for the ack frame to arrive. this timeout macackwaitduration is defined according to [2] as follows: macackwaitduration [symbol periods] = aunitbackoffperiod + aturnaro undtime + physhrduration + 6 x p hysymbolsperoctet where six represents th e number of phy header octets plus the number of psdu octets in an acknowledgment frame. specifically for the implemented phy modes (see section 9.1 ), this formula results in the following values: ? bpsk: macackwaitduration = 120 symbol periods ? o - qpsk: macackwaitduration = 54 symbol periods note: 1. f or any phy mode the unit ?symbol period? refers to the symbol duration of the appropriate synchronization header; see section 9.1.3 for further information regarding symbol period.
63 42002c ? mcu wireless ? 08/13 at86rf212b 7.2.4.2 timing a timing example of a tx_aret transaction is shown in figure 7 - 15 . in the example shown, a data frame with an acknowledgment request is to be transmitted. the frame transmission is started by sending a pulse on pin 11 (slp_tr). by setting register bits min_be (register 0x 2f , csma_be ) to zero, the initial csma - ca backoff period is configured to zero length . thus, the csma - ca duration time t csma-ca consists only of eight symbols of cca measurement period. if cca returns idle (assumed here), the frame is transmitted. upon frame transmission atmel at86rf212b switches to the receive mode and expe cts an acknowledgement response. this is indicated by register subfield trac_status (register 0x02, trx_state) set to success_wait_for_ ack. after a period of aturnaroundtime + aunitbackoff , the transmission of the ack frame must be started. during the entire transaction, including frame transmit, wait for ack, and ack receive, the radio transceiver status register bits trx_status (registe r 0x01, trx_status) are set to busy_tx_aret state . a successful reception of the acknowledgment frame is indicated by triggering of irq_3 (trx_end) . the status register bits trx_status (register 0x01, trx_status) changes back to tx_aret_on state . when the frame pending subfield of the received ack frame is set to one (more data is to follow) register bits trac_status (register 0x02, trx_state) are se t either to success_data_pending status instead of success status . figure 7 - 15 . timing example of a tx_aret transaction (without pending data bit set in ack frame) . frame on air tx _ aret _ on busy _ tx _ aret state frame type tx _ aret _ on rx / tx rx trx _ end irq typ . delays 16 s slp _ tr tx t irq data frame ( ack = 1 ) ack frame register se t tings : 0 x 2 c : max _ frame _ retries = 0 0 x 2 c : max _ csma _ r e tries = 0 0 x 2 e : min _ be = 0 32 s t csma - ca ( 8 symbols ) tx csma - ca rx time succ . / invalid success trac _ status invalid aturnaroundtime ( 12 symbols ) ack start timeout 20 symbols
64 42002c ? mcu wireless ? 08/13 a t86rf212b 7.2.5 interrupt handling the atmel at86rf212b interrupt handling in the extended operating mode is similar to the basic operating mode , refer to section 7.1.3 . interrupts can be enabled by setting the appropriate bit in register 0x0e (irq_mask). for rx_aack and tx_aret modes the following interrupts inform about the status of a frame reception and transmission: table 7 - 14. interrupt handling in extended operating mode . mode interrupt description rx_aack irq_2 (rx_start) indicates a phr reception irq_5 (ami) issued at address match irq_3 (trx_end) signals completion of rx_aack transaction if successful - a received frame must pass the address filter - the fcs is valid tx_aret irq_3 (trx_end) signals completion of tx_aret transaction rx_aack / tx_aret irq_0 (pll_lock) entering rx_aack_on or tx_aret_on state from trx_off state, the pll_lock interrupt signals that the transaction can be started rx_aack for support of the rx_aack functionality , it is recommended to enable irq_3 (trx_end) . this interrupt is issued only if frames pass the frame filtering, refer to section 8.2 , and have a valid fcs to reflect data validity . this functionality differs in basic operating mode, refer to section 7.1 .3 . the usage o f other interrupts is optional. on reception of a valid phr an irq_2 (rx_start) is issued. irq_5 (ami) indicates address match, refer to filter rules in section 8.2 , and the completion o f a frame reception with a valid fcs is indicated by interrupt irq_3 (trx_end) . thus, it can happen that an irq_2 (rx_start) and/or irq_5 (ami) are issued, but the irq_3 (trx_end) interrupt is never triggered when a frame does not pass the fcs computation check. tx_aret the irq_3 (trx_end) interrupt is always generated after completing a tx_aret transaction. subsequently the transaction status can be read from register bits trac_status (register 0x02, trx_state). several in terrupts are automatically suppressed by the radio transceiver during tx_aret transaction. in contrast to section 8.6 , the cca algorithm (part of c sma - ca) does not generate interrupt irq_4 (cca_ed_done) . furthermore, the interrupts irq_2 (rx_start) and/or irq_5 (ami) are not generated during the tx_aret acknowledgment receive process. all other interrupts as described in section 6.7 , are also availa ble in extended operating mode.
65 42002c ? mcu wireless ? 08/13 at86rf212b 7.2.6 register summary the following atmel at86rf212b registers are to be configured to control the extended operating mode: table 7 - 15. register summary . reg. - addr. register name description 0x01 trx_status radio transceiver status, cca result 0x02 trx_state radio transceiver state control, tx_aret status 0x04 trx_ctrl_1 tx_auto_crc_on 0x08 phy_cc_cca cca mode control, see section 8.6.6 0x09 cca_thres cca ed threshold settings, see section 8.6.6 0x17 xah_ctrl_1 tx_a ret and rx_aack control 0x20 ? 0x2b frame filter configuration - short address, pan id, and ieee address - see section 8.2.3 and section 8.2.4 0x2c xah_ctrl_0 tx_aret control, retries value control 0x2d csma_seed_0 csma - ca seed value 0x2e csma_seed_1 csma - ca seed value, rx_aack control 0x2f csma_be csma - ca backoff exponent control 7.2.7 register description register 0x01 (trx_status): the read - only register trx_status signals the present state of the radio transceiver as well as the status of a cca operation. figure 7 - 16 . register trx_status. bit 7 6 5 4 0x01 cca_done cca_status reserved trx_status trx_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x01 trx_status trx_status read/write r r r r reset value 0 0 0 0 ? bit 4:0 - trx_status the register bits trx_status signal the current radio transceiver status. table 7 - 16. trx_status. register bits value description trx_status 0x00 p_on 0x01 busy_rx 0x02 busy_tx 0x06 rx_on 0x08 trx_off (clk mode)
66 42002c ? mcu wireless ? 08/13 a t86rf212b register bits value description 0x09 pll_on (tx_on) 0x0f (1) sleep 0x11 (2) busy_rx_aack 0x12 (2) busy_tx_aret 0x16 (2) rx_aack_on 0x19 (2) tx_aret_on 0x1c rx_on_noclk 0x1d (2) rx_aack_on_noclk 0x1e (2) busy_rx_aack_noclk 0x1f (3) state_transition_in_progress all other values are reserved notes: 1. in sleep state register not accessible. 2. extended operating mode only. 3. do not try to initiate a further state change while the radio transceiver is in state_transition_in_progress state. a read access to trx_status register signals the current radio transceiver state status . a state change is initiated by writing a state transition command to register bits trx_cmd (register 0x02, trx_state). alternatively, some state transitions can be initiated by the rising edge of pin 11 (slp_tr) in the appropriate state. register 0x02 (trx_state): the radio transceiver states are advanced via register trx_state by writing a command word into register bits trx_cmd. the read - only register bits trac_status indicate the status or result of an extended operating mode transaction. figure 7 - 17 . register trx_state. bit 7 6 5 4 0x02 trac_status trx_cmd trx_state read/write r r r r/w reset value 0 0 0 0 bit 3 2 1 0 0x02 trx_cmd trx_state read/write r/w r/w r/w r/w reset value 0 0 0 0
67 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 7:5 ? trac_status table 7 - 17. trac_status. register bits value description rx_aack tx_aret trac_status 0 (1) success x x 1 success_data_pending x 2 success_wait_for_ack x 3 channel_access_failure x 5 no_ack x 7 (1) invalid x x all other values are reserved note : 1. even though the reset value for register bits trac_status is zero, the rx_aack and tx_aret procedures set the register bits to trac_status = 7 (invalid) when they are started. the status of the rx_aack and tx_aret procedures is indicated by register bits trac_status. values are meaningful after an interrupt until the next frame transmit. details of the algorithms and a description of the status information are given in section 7.2.3 and section 7.2.4 . rx_aack success_wait_for_ack: indicates an ack frame is about to be sent in rx_aack slotted acknowledgement. slotted acknowledgement operation must be enabled with register bit slotted_oper ation (register 0x2c, xah_xtrl_0). the microcontroller must pulse pin 11 (slp_tr) at the next backoff slot boundary in order to initiate a transmission of the ack frame. for details refer to ieee 802.15.4 - 2006, section 7.5.6.4.2. tx_aret success_data_pendi ng: indicates a successful reception of an ack frame with frame pending bit set to one . ? bit 4:0 - trx_cmd a write access to register bits trx_cmd initiate a radio transceiver state transition to the new state. table 7 - 18. trx_cmd. register bits value description trx_cmd 0x00 (1) nop 0x02 (2) tx_start 0x03 force_trx_off 0x04 (3) force_pll_on 0x06 rx_on 0x08 trx_off (clk mode)
68 42002c ? mcu wireless ? 08/13 a t86rf212b register bits value description 0x09 pll_on (tx_on) 0x16 (4) rx_aack_on 0x19 (4) tx_aret_on all other values are reserved notes: 1. trx_cmd = ?0? after power on reset (por). 2. the frame transmission starts one symbol after tx_start command. 3. force_pll_on command is not valid in states p_on, sleep, reset, and all *_noclk states, as well as state_transition_in_progres towards these states. 4. extended operating mode only. a successful state transition shall be confirmed by reading register bits trx_status (register 0x01, trx_status). the register bits trx_cmd are used for basic and extended operating modes, refer to section 7.1 . register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 7 - 18 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 5 - tx_auto_crc_on the register bit tx_auto_crc_on controls the automatic fcs generation for transmit operations. table 7 - 19. tx_auto_crc_on. register bits value description tx_auto_crc_on 0 automatic fcs generation is disabled 1 automatic fcs generation is enabled note: 1. the tx_auto_crc_on function can be used within basic and extended operating modes. for further details refer to section 8.3 .
69 42002c ? mcu wireless ? 08/13 at86rf212b register 0x17 (xah_ctrl_1): the xah_ctrl_1 register is a multi - purpose control register for extended operating mode. figure 7 - 19 . register xah_ctrl_1. bit 7 6 5 4 0x17 reserved csma_lbt_mode aack_fltr_res_ ft aack_upld_res_ ft xah_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x17 reserved aack_ack_time aack_prom_ mode reserved xah_ctrl_1 read/write r r/w r/w r reset value 0 0 0 0 ? bit 5 - aack_fltr_res_ft filter reserved frame types like data frame type. the register bit aack_fltr_res_ft shall only be set if register bit aack_upld_res_ft = 1. table 7 - 20. aack_fltr_res_ft. register bits value description aack_fltr_res_ft 0 (1) filtering reserved frame types is disabled 1 (2) filtering reserved frame types is enabled notes: 1. if aack_fltr_res_ft = 0 the received reserved frame is only checked for a valid fcs. 2. if aack_fltr_res_ft = 1 reserved frame types are filtered similar to data frames as specified in ieee 802.15.4 ? 2006. reserved frame types are explained in ieee 802.15.4 section 7.2.1.1.1. ? bit 4 - aack_upld_res_ft upload reserved frame types within rx_aack mode. table 7 - 21. aack_upld_res_ft. register bits value description aack_upld_res_ft 0 upload of reserved frame types is disabled 1 (1) upload of reserved frame types is enabled note: 1. if aack_upld_res_ft = 1 received frames indicated as a reserved frame are further processed. for those frames, an irq_3 (trx_end) interrupt is generated if the fcs is valid. in conjunction with the configuration bit aack_fltr_res_ft, these frames are handled like ieee 802.15.4 compliant data frames during rx_aack transaction. an irq_5 (ami) interrupt is issued, if the addresses in the received frame match the node?s addresses. that means, if a reserved frame passes the third level filter rules, an acknowledgement frame is generated and transmitted if it was requested by the received frame. if this is not wanted register bit aack_dis_ack (register 0x2e, csma_seed_1) has to be set.
70 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 2 - aack_ack_time the register bit aack_ack_time controls the acknowledgment frame response time within rx_aack mode. table 7 - 22. aack_ack_time. register bits value description aack_ack_time 0 acknowledgment time is 12 symbol periods (aturnaroundtime) 1 two symbol periods: bpsk - 20, oqpsk - {100,200,400}; three symbol periods: bpsk - 40, oqpsk - {250,500,1000} according to ieee 802.15.4 - 2006 , section 7.5.6.4.2 the transmission of an acknowledgment frame shall commence 12 symbol periods (aturnaroundtime) after the reception of the last symbol of a data or mac command frame. this is achieved with the reset value of the register bit aack_ack_tim e. alternatively, if aack_ack_time = 1, the acknowledgment response time is reduced according to table 7 - 23 . table 7 - 23. short ack response time (aack_ack_time = 1) . phy mode ack response time [symbol periods] bpsk- 20, oqpsk - {100,200,400} 2 bpsk- 40, oqpsk - {250,500,1000} 3 the reduced ack response time is particularly useful for the high data rate modes, refer to section 9.1.4 . ? bit 1 - aack_prom_mode the register bit aack_prom_mode enables the promiscuous mode, within the rx_aack mode. table 7 - 24. aack_prom_mode. register bits value description aack_prom_mode 0 promiscuous mode is disabled 1 promiscuous mode is enabled refer to ieee 802.15.4 - 2006 section 7.5.6.5. if this register bit is set, every incoming frame with a valid phr finishes with irq_3 (trx_end) interrupt even if the third level filter rules do not match o r the fcs is not valid. however, register bit rx_crc_valid (register 0x06, phy_rssi) is set accordingly. in contrast to ieee 802.15.4 - 2006, if a frame passes the third level filter rules, an acknowledgement frame is generated and transmitted unless disable d by register bit aack_dis_ack (register 0x2e, csma_seed_1), or use basic operating mode instead.
71 42002c ? mcu wireless ? 08/13 at86rf212b register 0x2c (xah_ctrl_0): the xah_ctrl_0 register is a control register for extended operating mode. figure 7 - 20 . register xah_ctrl_0. bit 7 6 5 4 0x2c max_frame_retries xah_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 1 1 bit 3 2 1 0 0x2c max_csma_retries slotted_ operation xah_ctrl_0 read/write r/w r/w r/w r/w reset value 1 0 0 0 ? bit 7:4 - max_frame_retries number of retransmission attempts in tx_aret mode before the transaction gets cancelled. table 7 - 25. max_frame_retries. register bits value description max_frame_retries 0x3 the setting of max_frame_retries in tx_aret mode specifies the number of attempts to retransmit a frame, when it was not acknowledged by the recipient, before the transaction gets cancelled. valid values are [0x7, 0x6, ?, 0x0]. ? bit 3:1 - max_csma_retries number of retries in tx_aret mode to repeat the csma - ca procedure before the transaction gets cancelled. table 7 - 26. max_csma_retries. register bits value description max_csma_retries 0 (1) no retries 1 (1) one retry 2 (1) two retries 3 (1) three retries 4 (1) four retries 5 (1) five retries 7 (3) immediate frame transmission without performing csma - ca notes: 1. max_csma_retries specifies the number of retries in tx_aret mode to repeat the csma - ca procedure before the transaction gets cancelled. according to ieee 802.15.4 the valid range of max_csm a_retries is [5, 4, ?, 0]. 2. max_csma_retries = 6 is reserved. 3. a value of max_csma_retries = 7 initiates an immediate frame transmission without performing csma - ca. no retry is performed. this may especially be required for slotted acknowledgement operation.
72 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 0 - slotted_operation for rx_aack mode, the register bit slotted_operation determines, if the transceiver will require a time base for slotted operation. table 7 - 27. slotted_operation. register bits value description slotted_opera tion 0 the radio transceiver operates in unslotted mode. an acknowledgment frame is automatically sent if requested. 1 the transmission of an acknowledgement frame has to be controlled by the microcontroller. using rx_aack mode in networks operating in beacon or slotted mode, refer to ieee 802.15.4 - 2006, section 5.5.1, register bit slotted_operation indicates that acknowledgement frames are to be sent on backoff slot boundaries (slotted acknowledgement), refer to section 7.2.3.5 . if this register bit is set the acknowledgement frame transmission has to be initiated by the microcontroller using the rising edge of pin 11 (slp_tr). this waiting state is signaled in register bits trac_status (register 0x02, trx_state) with value succes s_wait_for_ack.
73 42002c ? mcu wireless ? 08/13 at86rf212b register 0x2d (csma_seed_0): the register csma_seed_0 contains the lower 8 - bit of csma_seed. figure 7 - 21 . register csma_seed_0. bit 7 6 5 4 0x2d csma_seed_0 csma_seed_0 read/write r/w r/w r/w r/w reset value 1 1 1 0 bit 3 2 1 0 0x2d csma_seed_0 csma_seed_0 read/write r/w r/w r/w r/w reset value 1 0 1 0 ? bit 7:0 - csma_seed_0 lower 8 - bit of csma_seed, bits[ 7:0]. used as seed for random number generation in the csma - ca algorithm. table 7 - 28. csma_seed_0. register bits value description csma_seed_0 0xea this register contains the lower 8 - bit of the csma_seed, bits[7:0]. the higher 3 - bit are part of register bits csma_seed_1 (register 0x2e, csma_seed_1). csma_seed is the seed for the random number generation that determines the length of the backoff period in the csma - ca algorithm. notes : 1. it is rec ommended to initialize register bits csma_seed_0 and csma_seed_1 with random values. this can be done using register bits rnd_value (regi ster 0x06, phy_rssi), refer to section 11.2 . 2. the content of register bits csma_seed_0 and csma_seed_1 initializes the tx_aret random backoff generator after wakeup from sleep state. it is recommended to reinitialize both registers before every sleep state with a random value.
74 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x2e (csma_seed_1): the csma_seed_1 register is a control register for rx_aack and contains a part of the csma_seed for the csma - ca algorithm. figure 7 - 22 . register csma_seed_1. bit 7 6 5 4 0x2e aack_fvn_mode aack_set_pd aack_dis_ack csma_seed_1 read/write r/w r/w r/w r/w reset value 0 1 0 0 bit 3 2 1 0 0x2e aack_i_am_ coord csma_seed_1 csma_seed_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 ? bit 7:6 - aack_fvn_mode the register bits aack_fvn_mode control the ack behavior dependent on fcf frame version number within rx_aack mode. table 7 - 29. aack_fvn_mode. register bits value description aack_fvn_mode 0 accept frames with version number 0 1 accept frames with version number 0 or 1 2 accept frames with version number 0 or 1 or 2 3 accept frames independent of frame version number note: 1. aack_fvn_mode value one indicates frames according to ieee 802.15.4 ? 2006, a value of three indicates frames according to ieee 802.15.4 ? 2003 standard. the frame control field of the mac header (mhr) contains a frame version subfield. the setting of regis ter bits aack_fvn_mode specifies the frame filtering behavior of the atmel at86rf212b . according to the content of these register bits the radio transceiver passes frames with a specific frame version number, number group, or independent of the frame version number. thus the register bits aack_fvn_mode defines the maximum acceptable frame version. received frames with a higher frame version number than configured do not pass the frame filter and are not acknowledged. the frame version field of the acknowledgment frame is set to zero according to ieee 802.15.4 - 2006, section 7.2.2.3.1 acknowl edgment frame mhr fields. ? bit 5 - aack_set_pd the content of aack_set_pd bit is copied into the frame pending subfield of the acknowledgment frame if the ack is the response to a data request mac command frame. table 7 - 30. aack_set_pd. register bits value description aack_set_pd 0 pending data bit set to zero 1 pending data bit set to one
75 42002c ? mcu wireless ? 08/13 at86rf212b in addition, if register bits aack_fvn_mode (register 0x2e, csma_seed_1) are configured to accept frames with a frame version other than zero or one , the content of register bit aack_set_pd is also copied into the frame pending subfield of the acknowledgme nt frame for any mac command frame with a frame version of two or three that have the security enabled subfield set to one . this is done with the assumption that a future version of the ieee 802.15.4 - 2006 [2] standard might change the length or structure of the auxiliary security header. ? bit 4 - aack_dis_ack if this bit is set no acknowledgment frames are transmitted in rx_aack extended operating mode, even if requested. table 7 - 31. aack_dis_ack. register bits value description aack_dis_ack 0 acknowledgment frames are transmitted 1 acknowledgment frames are not transmitted ? bit 3 - aack_i_am_coord this register bit has to be set if the node is a pan coordinator. it is used for frame filtering in rx_aack. table 7 - 32. aack_i_am_coord. register bits value description aack_i_am_coord 0 pan coordinator addressing is disabled 1 pan coordinator addressing is enabled if aack_i_am_coord = 1 and if only source addressing fields are included in a data or mac command frame, the frame shall be accepted only if the device is the pan coordinator and the source pan identifier matches macpanid , for details refer to ieee 802.15. 4 - 2006, section 7.5.6.2 (third - level filter rule six ). ? bit 2:0 - csma_seed_1 higher 3 - bit of csma_seed, bits[10:8]. seed for random number generation in the csma - ca algorithm. table 7 - 33. csma_seed_1. register bits value description csma_seed_1 2 these register bits are the higher 3 - bit of the csma_seed, bits [10:8]. the lower part is in register 0x2d (csma_seed_0), see register csma_seed_0 for details.
76 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x2f (csma_be): the register csma_be contains the backoff exponents for the csma - ca algorithm. figure 7 - 23 . register csma_be. bit 7 6 5 4 0x2f max_be csma_be read/write r/w r/w r/w r/w reset value 0 1 0 1 bit 3 2 1 0 0x2f min_be csma_be read/write r/w r/w r/w r/w reset value 0 0 1 1 note: 1. if min_be = 0 and max_be = 0 the cca backoff period is always set to zero. ? bit 7:4 - max_be maximum backoff exponent in the csma - ca algorithm. table 7 - 34. max_be. register bits value description max_be 0x5 register bits max_be defines the maximum backoff exponent used in the csma - ca algorithm to generate a pseudo random number for cca backoff. valid values are [0x8, 0x7, ?, 0x0]. for details refer to ieee 802.15.4 - 2006, section 7.5.1.4. ? bit 3:0 - min_be minimum backoff exponent in the csma - ca algorithm. table 7 - 35. min_be. register bits value description min_be 0x3 register bits min_be defines the minimum backoff exponent used in the csma - ca algorithm to generate a pseudo random number for cca backoff. valid values are [max_be, (max_be ? 1), ?, 0x0]. for details refer to ieee 802.15.4 - 2006, section 7.5.1.4.
77 42002c ? mcu wireless ? 08/13 at86rf212b 8 functional description 8.1 introduction ? ieee 802. 15.4 - 2006 frame format figure 8 - 1 provides an overview of the physical layer (phy) frame structure as defined by the ieee 802.15.4 - 2006 standard. figure 8 - 2 shows the medium access con trol layer (mac) frame structure. figure 8 - 1 . ieee 802.15.4 frame format - phy - layer frame structure (ppdu). maximum 127 octets phy service data unit ( psdu ) 1 octet ( phr ) 5 octets synchronization header ( shr ) phy protocol data unit ( ppdu ) preamble sequence sfd frame length phy payload mac protocol data unit ( mpdu ) 8.1.1 phy protocol data unit (ppdu) 8.1.1.1 synchronization header (shr) the shr con sists of a four - octet preamble field (all zero), followed by a single byte start - of - frame delimiter (sfd) which has the predefined value 0xa7 . during transmission , the shr is automatically generated by the atmel at86rf212b , thus the frame buffer shall contain phr and psdu only, see section 6.3.2 . the transmission of the shr requires 40 symbols for a transmission with bpsk m odulation and 10 symbols for a transmission with o - qpsk modulation. table 8 - 2 illustrates the shr duration depending on th e selected data rate, see als o section 12.5 . the fact that the spi data rate is normally higher than over - the - air data rate, allows the microcontroller to first initiate a frame transmission and then as the shr is transmitted write the frame data. this is to minimize frame buffer data fill overhead transmission delay . during a frame reception, the shr is used for synchronization purposes. the matching sfd determines the beginning of the phr and the following psdu payload data. 8.1.1.2 phy header (phr) the phy header is a single octet following the shr. the least significant seven bits d enote the frame length of the following psdu, while the most significant bit of that octet is reserved, and shall be set to zero for ieee 802.15.4 compliant frames. on reception, the phr is returned as the first octet during frame buffer read access. while the ieee 802.15.4 - 2006 standard declares bit seven of the phr octet as being reserved, the at86rf212b preserves this bit upon transmission and reception so it can be used to carry additional information within pr oprietary networks. nevertheless, this bit is not considered to be a part of the frame length, so only frames between one and 127 octets are possible. for ieee 802.15.4 compliant operation bit[7] has to be masked by software . in transmit mode, the phr need s to be supplied as the first octet during frame buffer write access, see section 6.3.2 .
78 42002c ? mcu wireless ? 08/13 a t86rf212b in receive mode, the phr ( that is frame length greater than zero ) is returned as the first octet during frame buffer read access ( see section 6.3.2 ) and is signaled by an interrupt irq_2 (rx_start) . 8.1.1.3 phy payload (phy service data unit, psd u) the psdu has a variable length between zero and amaxphypacketsize (127, maximum psdu size in octets). the length of the psdu is signaled by the frame length field (phr), refer to table 8 - 1 . the psdu contains the mac protocol data unit (mpdu), where the last two octets are used for the f rame check sequence (fcs), see section 8.3 . received frames with a frame length field set to zero (invalid phr) are not signaled to the microcontroller. table 8 - 1 summarizes the type of payload versus the frame length value. table 8 - 1 . frame length field ? phr . frame length value payload 0 - 4 reserved 5 mpdu (acknowledgement) 6 ? 8 reserved 9 - amaxphypacketsize mpdu 8.1.1.4 timing summary table 8 - 2 shows timing information for the above mentioned frame structure depending on the selec ted data rate. table 8 - 2 . ppdu timing . phy mode psdu bit rate [kb /s] header bit rate [kb /s] duration shr [s] phr [s] max. psdu [ms] bpsk (1) 20 20 2000 400 50.8 40 40 1000 200 25.4 o - qpsk (1) 100 100 300 80 10.16 250 250 160 32 4.064 o - qpsk (2) 200 100 300 80 5.08 400 100 300 80 2.54 500 250 160 32 2.032 1000 250 160 32 1.016 notes: 1. compliant to ieee 802.15.4 - 2006 [2] . 2. high data rate modes, see section 9.1.4 .
79 42002c ? mcu wireless ? 08/13 at86rf212b 8.1.2 mac protocol data unit (mpdu) figure 8 - 2 shows the frame structure of the mac layer. figure 8 - 2 . ieee 802.15.4 - 2006 frame format ? mac layer frame structure (mpdu ) . frame control field 2 octets frame pending reserved frame version ack request pan id comp . destination addressing mode source addressing mode sec . enabled ( mfr ) mac service data unit ( msdu ) mac protocol data unit ( mpdu ) mac payload fcs frame type 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 mac header ( mhr ) fcf addressing fields sequence number 2 octets crc - 16 0 / 5 / 6 / 10 / 14 octets auxiliary security header 0 / 4 / 6 / 8 / 10 / 12 / 14 / 16 / 18 / 20 octets destination pan id destination address source pan id source address 8.1.2.1 mac header (mhr) fields the mac header consists of the frame control field (fcf), a sequence number, and the addressing fields (which are of variable length, and can even be empty in certain situations). 8.1.2.2 frame control field (fcf) the fcf consists of 16 bits, and occupies the firs t two octets of the mpdu or psdu, respectively. figure 8 - 3 . ieee 802.15.4 - 2006 frame control field (fcf) . frame control field 2 octets frame pending reserved frame version ack request pan id comp . destination addressing mode source addressing mode sec . enabled frame type 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 bit s [2:0] : describes the ? f rame t ype ? . table 8 - 3 summarizes frame types defined by ieee 802.15.4 - 2006 [2] , section 7. 2.1.1.1. table 8 - 3 . frame control field ? frame type subfield . frame control field bit assignments description frame type value b 2 b 1 b 0 value 000 0 beacon 001 1 data 010 2 acknowledge 011 3 mac command 100 ? 111 4 ? 7 reserved
80 42002c ? mcu wireless ? 08/13 a t86rf212b this subfield is used for frame filtering by the third level filter rules. by default, only frame types 0 ? 3 pass the third level filter rules, refer to section 8.2 . automatic frame filtering by the atmel at86rf212b is enabled when using the rx_aack mode, refer to section 7.2.3 . however, a reserved frame (frame type value > 3) can be received if register bit aack_upld_res_ft (register 0x17, xah_ctrl_1) is set, for details refer to section 7.2.3.3 . f rame filtering is also provided in basic operating mode, refer to section 7.1 . bit 3 : indicates whether security processing applies to this frame. this field is evaluated by the frame filter. bit 4 : is the ?frame pending? subfield. this field can be set in an acknowled gment frame (ack) in response to a data request mac command frame. this bit indicates that the node, which transmitted the ack, might have more data to send to the node receiving the ack. note : 1. for acknowledgment frames automatically generated by the at86rf212b , this bit is set according to the content of register bit aack_set_pd in register 0x2e (csma_seed_1) if the received frame was a data request mac command frame. bit 5 : forms the ?acknowledgment request? subfield. if this bit is set within a data or mac command frame that is not broadcast, the recipient shall acknowledge the reception of the frame within the time specified by ieee 802.15.4, that is within 12 symbol periods for nonbeacon - enabled networks. the radio transceiver parses this bit during rx_aack mode and transmits an acknowledgment frame if necessary. in tx_aret mode this bit indicates if an acknowledgement frame is expected after transmitting a fra me. if this is the case, the receiver waits for the acknowledgment frame, otherwise the tx_aret transaction is finished. bit 6 : the ?pan id compression? subfield, indicates that in a frame where both the destination and source addresses are present, the pa n id is omitted from the source addressing field. this bit is evaluated by the frame filter of the atmel at86rf212b . this subfield was previously named ?intra - pan?. bits [11:10] : t he ?destination addressing mode? subfield describes the format of the destination address of the frame. the values of the address modes are summarized in table 8 - 4 , according to ieee 802.15.4. table 8 - 4 . frame control field ? d estination and source addressing mode . frame control field bit assignments description addressing mode b 11 b 10 b 15 b 14 value 00 0 pan identifier and address fields are not present 01 1 reserved 10 2 address field contains a 16 - bit short address 11 3 address field contains a 64 - bit extended address
81 42002c ? mcu wireless ? 08/13 at86rf212b if the destination address mode is either two or three ( that is if the destination address is present ) , it always consists of a 16 - bit pan - id first, followed by either the 16 - bit or 64- bit address as described by the mode. bits [13:12] : t he ?frame version? subfield specifies the version number corresponding to the fra me, see table 8 - 5 . these bits are reserved in ieee 802.15.4 - 2003. this subfield shall be set to zero to indicate a frame compatible with ieee 802.15.4 - 2003 and one to indicate an ieee 802.15.4 - 2006 frame all other subfield values shall be reserved for future use. rx_aack register bits aack_fvn_mode (register 0x2e, csma_seed_1) controls the behavior of frame acknowledgements. this register determines if, depending on the frame version number, a frame is acknowledged or not. this is necessary for backward compatibility to ieee 802.15.4 - 2003 and for future use. even if frame version numbers two and three are reserved, it can be handled by the radio transceiv er, for details refer to section 7.2.7 . see ieee 802.15.4 - 2006 [2] , section 7.2.3, for det ails on frame compatibility. table 8 - 5 . frame control field ? frame version subfield . frame control field bit assignments description frame v ersion b 13 b 12 value 00 0 frames are compatible with ieee 802.15.4 - 2003 01 1 frames are compatible with ieee 802.15.4 - 2006 10 2 reserved 11 3 reserved bits [15:14] : the ?source addressing mode? subfield, with similar meaning as ?destination addressing mode? , see table 8 - 4 . the addressing field description bits of the fcf (bits 0 ? 2, 3, 6, 10 ? 15) affect the atmel at86rf212b frame filter, see section 8.2 . 8.1.2.3 frame compatibility between ieee 802.15.4 - 2003 and ieee 802.15.4 - 200 6 all unsecured frames according to ieee 802.15.4 - 2006 are compatible with unsecured frames compliant with ieee 802.15.4 - 2003 with two exceptions: a coordinator realignment command frame with the ?channel page? field present (see ieee 802.15.4 - 2006 [2] , sect ion 7.3.8 ) and any frame with a mac payload field larger than amaxmacsafepayloadsize octets . compatibility for secured frames is shown in table 8 - 6 , which identifies the security operating modes for ieee 802.15.4 - 2003 and ieee 802.15.4 - 2006 .
82 42002c ? mcu wireless ? 08/13 a t86rf212b table 8 - 6 . frame control field ? security and frame version . frame control field bit assignments description security enabled b 3 frame versio n b 13 b 12 0 00 no security. frames are compatible between ieee 802.15.4 - 2003 and ieee 802.15.4 - 2006. 0 01 no security. frames are not compatible between ieee 802.15.4 - 2003 and ieee 802.15.4 - 2006. 1 00 secured frame formatted according to ieee 802.15.4 - 2003. this frame type is not supported in ieee 802.15.4 - 2006. 1 01 secured frame formatted according to ieee 802.15.4 - 2006 . 8.1.2.4 sequence number the one - octet sequence number following the fcf identifies a particular frame, so that duplicated frame transmissions can be detected. while operating in rx_aack mode, the content of this field is copied from the frame to be acknowledged into the acknowled gment frame. 8.1.2.5 addressing fields the addressing fields of the mpdu are used by the atmel at86rf212b for address matching indication. the destination address (if present) is always first, followed by the source addre ss (if present). each address field consists of the pan - id and a device address. if both addresses are present, and the ?pan id compression? subfield in the fcf is set to one, the source pan - id is omitted. note that in addition to these general rules, ieee 802.15.4 further restricts the valid address combinations for the individual possible mac frame types. for example, the situation where both addresses are omitted (source addressing mode = 0 and destination addressing mode = 0) is only allowed for acknowl edgment frames. the address filter in the at86rf212b has been designed to apply to ieee 802.15.4 compliant frames. it can be configured to handle other frame formats and exceptions. 8.1.2.6 auxiliary security header field the auxiliary security header specifies information required for security processing and has a variable length. this field determines how the frame is actually protected (security level) and which keying material from the mac security pib is used (see iee e 802.15.4 - 2006 [2] , section 7.6.1). this field shall be present only if the security enabled subfield b3, see section 8.1.2.3 , is set to one. for details of its structure, see ieee 802.15.4 - 2006, section 7.6.2 auxiliary security header . 8.1.2.7 mac service data unit (msdu) this is the actual mac payload. it is usually structured according to the individual frame type. a description can be found in ieee 802.15.4 - 2006, section 5.5.3.2. 8.1.2.8 mac footer (mfr) fields t he mac footer consists of a two octet frame checksum (fcs), for det ails refer to section 8.3 .
83 42002c ? mcu wireless ? 08/13 at86rf212b 8.2 frame filter frame filtering is a procedure that evaluates whether or not a received frame matches predefined criteria, like source or destination address or frame types. a filtering procedure as described in ieee 802.15.4 - 2006 section 7.5.6.2 (t hird level of filtering ) is applied to the frame to accept a received frame and to generate the address match interrupt irq_5 (ami) . the atmel at8 6rf212b frame filter passes only frames that satisfy all of the following requirements/rules (quote from ieee 802.15.4 - 2006, section 7.5.6 .2): 1. the frame type subfield shall not contain a reserved frame type . 2. the frame version subfield shall not contain a reserved value. 3. if a destination pan identifier is included in the frame, it shall match macpanid or shall be the broadcast pan identifier (0xffff). 4. if a short destination address is included in the frame, it shall match either macshortaddress or the broadcast address (0xffff). otherwise, if an extended destination address is included in the frame, it shall match aextendedaddress . 5. if the frame type indicates that the frame is a beacon frame, the source pan iden tifier shall match macpanid unless macpanid is equal to 0xffff, in which case the beacon frame shall be accepted regardless of the source pan identifier. 6. if only source addressing fields are included in a data or mac command frame, the frame shall be accep ted only if the device is the pan coordinator and the source pan identifier matches macpanid . moreover the at86rf212b h as two additional requirements: 7. the frame type shall indicate that the frame is not an acknow ledgment (ack) frame. 8. at least one address field must be present . address match, indicated by interrupt irq_5 (ami) , is further controlled by the content of subfield s of the frame control field of a received frame according to the following rule: if destination addressing mode is 0/1 and source addressing mode is zero ( see section 8.1.2.2 ), no interrupt irq_5 (ami) is generated. this effectively causes all acknowledgement frames not to be announced, which would otherwise always pass the filter, regardless of whether they are intended for this device or not. for backward compatibility to ieee 802.15.4 - 2003 third level filter rule two (frame version) can be disabled by register bits aack_fvn_ mode (register 0x2e, csma_seed_1). frame filtering is available in extended and basic operating mode . a frame that passes the frame filter generates the interrupt irq_5 (ami) if not masked. notes: 1. filter rule one is affected by register bits aack_fltr_res_ft and aack_upld_res_ft, section 8.2.3 . 2. filter rule two is affected by register bits aack_fvn_mode, section 8.2.3 .
84 42002c ? mcu wireless ? 08/13 a t86rf212b 8.2.1 configuration the frame filter is configured by setting the appropriate address variables and several additional properties as described in table 8 - 7 . table 8 - 7 . frame filter configuration . register address register bits register name description 0x20,0x21 0x22,0x23 0x24 ? 0x2b short_addr_0/1 pan_addr_0/1 ieee_addr_0 ? ieee_addr_7 set macshortaddress , macpanid , and aextendedaddress as described in [2] . 0x17 1 aack_prom_mode 0 : disable promiscuous mode . 1 : enable promiscuous mode . 0x17 4 aack_upld_res_ft enable reserved frame type reception, needed to receive non - standard compliant frames , see section 8.2.2 . 0 : disable reserved frame type reception . 1 : enable reserved frame type reception . 0x17 5 aack_fltr_res_ft filter reserved frame types like data frame type, needed for filtering of non - standard compliant frames . 0 : d isable reserved frame types filtering. 1 : enable reserved frame types filtering. 0x2e 3 aack_i_am_coord 0 : device is not pan coordinator. 1 : d evice is pan coordinator . 0x2e 7:6 aack_fvn_mode controls the ack behavior, depending on fcf frame version number . b 00: a cknowledges only frames with version number 0, that is according to ieee 802.15.4 - 2003 frames . b 01 : a cknowledges only frames with version number 0 or 1, that is frames according to ieee 802.15.4 - 2006. b 10: a cknowledges only frames with version number 0 or 1 or 2 . b 11: a cknowledges all frames, independent of t he fcf frame version number . 8.2.2 handling of reserved frame types reserved frame types (as described in section 7.2.3.3 ) are treated according to bits aack_upld_res_ft and aack_fltr_res_ft of register 0x17 (xah_ctrl_1) with three options: 1. aack_upld_res_ft = 1, aack_flt_res_ft = 0: any non - corrupted frame with a reserved frame type is indicated by an irq_3 (trx_end) interrupt. no further address filtering is applied on those frames. an irq_5 (ami) interrupt is never generated and the acknowledgment subfield is ignored.
85 42002c ? mcu wireless ? 08/13 at86rf212b 2. aack_upld_res_ft = 1, aack_flt_res_ft = 1: if aack_flt_res_ft = 1 any frame with a reserved frame type is filtered by the address filter similar to a data frame as described in the standard. this implies the generation of the irq_5 (ami) interrupts upon address match. an irq_3 (trx_end) interrupt is only generated if the address matched and the frame was not corrupted. a n acknowledgment is only send, when the ack request subfield was set in the received frame and an irq_3 (trx_end) interrupt occurred. 3. aack_upld_res_ft = 0: any received frame with a reserved frame type is discarded. 8.2.3 register description register 0x17 (xah_ctrl_1): the xah_ctrl_1 register is a multi - purpose control register for extended operating mode. figure 8 - 4 . register xah_ctrl_1. bit 7 6 5 4 0x17 reserved csma_lbt_mode aack_fltr_res_ ft aack_upld_res_ ft xah_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x17 reserved aack_ack_time aack_prom_ mode reserved xah_ctrl_1 read/write r r/w r/w r reset value 0 0 0 0 ? bit 5 - aack_fltr_res_ft filter reserved frame types like data frame type. the register bit aack_fltr_res_ft shall only be set if register bit aack_upld_res_ft = 1. table 8 - 8 . aack_fltr_res_ft. register bits value description aack_fltr_res_ft 0 (1) filtering reserved frame types is disabled 1 (2) filtering reserved frame types is enabled notes: 1. if aack_fltr_res_ft = 0 the received reserved frame is only checked for a valid fcs. 2. if aack_fltr_res_ft = 1 reserved frame types are filtered similar to data frames as specified in ieee 802.15.4 ? 2006. reserved frame types are explained in ieee 802.15.4 section 7.2.1.1.1.
86 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 4 - aack_upld_res_ft upload reserved frame types within rx_aack mode. table 8 - 9 . aack_upld_res_ft. register bits value description aack_upld_res_ft 0 upload of reserved frame types is disabled 1 (1) upload of reserved frame types is enabled note: 1. if aack_upld_res_ft = 1 received frames indicated as a reserved frame are further processed. for those frames, an irq_3 (trx_end) interrupt is generated if the fcs is valid. in conjunction with the configuration bit aack_fltr_res_ft, these frames are handled like ieee 802.15.4 compliant data frames during rx_aack transaction. an irq_5 (ami) interrupt is issued, if the addresses in the received frame match the node?s addresses. that means, if a reserved frame passes the third level filter rules, an acknowledgement frame is genera ted and transmitted if it was requested by the received frame. if this is not wanted register bit aack_dis_ack (register 0x2e, csma_seed_1) has to be set. ? bit 1 - aack_prom_mode the register bit aack_prom_mode enables the promiscuous mode, within the rx_a ack mode. table 8 - 10. aack_prom_mode. register bits value description aack_prom_mode 0 promiscuous mode is disabled 1 promiscuous mode is enabled refer to ieee 802.15.4 - 2006 section 7.5.6.5. if this register bit is set, every incoming frame with a valid phr finishes with irq_3 (trx_end) interrupt even if the third level filter rules do not match or the fcs is not valid. however, register bit rx_crc_valid (register 0x06, phy_rssi) is set accordingly. in contrast to ieee 8 02.15.4 - 2006, if a frame passes the third level filter rules, an acknowledgement frame is generated and transmitted unless disabled by register bit aack_dis_ack (register 0x2e, csma_seed_1), or use basic operating mode instead.
87 42002c ? mcu wireless ? 08/13 at86rf212b register 0x2e (csma_seed_1 ): the csma_seed_1 register is a control register for rx_aack and contains a part of the csma_seed for the csma - ca algorithm. figure 8 - 5 . register csma_seed_1. bit 7 6 5 4 0x2e aack_fvn_mode aack_set_pd aack_dis_ack csma_seed_1 read/write r/w r/w r/w r/w reset value 0 1 0 0 bit 3 2 1 0 0x2e aack_i_am_ coord csma_seed_1 csma_seed_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 ? bit 7:6 - aack_fvn_mode the register bits aack_fvn_mode control the ack behavior dependent on fcf frame version number within rx_aack mode. table 8 - 11. aack_fvn_mode. register bits value description aack_fvn_mode 0 accept frames with version number 0 1 accept frames with version number 0 or 1 2 accept frames with version number 0 or 1 or 2 3 accept frames independent of frame version number note: 1. aack_fvn_mode value one indicates frames according to ieee 802.15.4 ? 2006, a value of three indicates frames according to ieee 802.15.4 ? 2003 standard. the frame control field of the mac header (mhr) contains a frame version subfield. the setting of regis ter bits aack_fvn_mode specifies the frame filtering behavior of the atmel at86rf212b . according to the content of these register bits the radio transceiver passes frames with a specific frame version number, numb er group, or independent of the frame version number. thus the register bits aack_fvn_mode defines the maximum acceptable frame version. received frames with a higher frame version number than configured do not pass the frame filter and are not acknowledge d. the frame version field of the acknowledgment frame is set to zero according to ieee 802.15.4 - 2006, section 7.2.2.3.1 acknowledgment frame mhr fields.
88 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 3 - aack_i_am_coord this register bit has to be set if the node is a pan coordinator. it is used for frame filtering in rx_aack. table 8 - 12. aack_i_am_coord. register bits value description aack_i_am_coord 0 pan coordinator addressing is disabled 1 pan coordinator addressing is enabled if aack_i_am_coord = 1 and if only source addressing fields are included in a data or mac command frame, the frame shall be accepted only if the device is the pan coordinator and the source pan identifier matches macpanid , for details refer to ieee 802.1 5.4 - 2006, section 7.5.6.2 (third - level filter rule six ). 8.2.4 register description ? address registers register 0x20 (short_addr_0): this register contains the lower 8 - bit of the mac short address for frame filter address recognition, bits[7:0]. figure 8 - 6 . register short_addr_0. bit 7 6 5 4 0x20 short_addr_0 short_addr_0 read/write r/w r/w r/w r/w reset value 1 1 1 1 bit 3 2 1 0 0x20 short_addr_0 short_addr_0 read/write r/w r/w r/w r/w reset value 1 1 1 1 register 0x21 (short_addr_1): this register contains the higher 8 - bit of the mac short address for frame filter address recognition, bits[15:8]. figure 8 - 7 . register short_addr_1. bit 7 6 5 4 0x21 short_addr_1 short_addr_1 read/write r/w r/w r/w r/w reset value 1 1 1 1 bit 3 2 1 0 0x21 short_addr_1 short_addr_1 read/write r/w r/w r/w r/w reset value 1 1 1 1
89 42002c ? mcu wireless ? 08/13 at86rf212b register 0x22 (pan_id_0): this register contains the lower 8 - bit of the mac pan id for frame filter address recognition, bits[7:0]. figure 8 - 8 . register pan_id_0. bit 7 6 5 4 0x22 pan_id_0 pan_id_0 read/write r/w r/w r/w r/w reset value 1 1 1 1 bit 3 2 1 0 0x22 pan_id_0 pan_id_0 read/write r/w r/w r/w r/w reset value 1 1 1 1 register 0x23 (pan_id_1): this register contains the higher 8 - bit of the mac pan id for frame filter address recognition, bits[15:8]. figure 8 - 9 . register pan_id_1. bit 7 6 5 4 0x23 pan_id_1 pan_id_1 read/write r/w r/w r/w r/w reset value 1 1 1 1 bit 3 2 1 0 0x23 pan_id_1 pan_id_1 read/write r/w r/w r/w r/w reset value 1 1 1 1 register 0x24 (ieee_addr_0): this register contains the lower 8 - bit of the mac ieee address for frame filter address recognition, bits[7:0]. figure 8 - 10 . register ieee_addr_0. bit 7 6 5 4 0x24 ieee_addr_0 ieee_addr_0 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x24 ieee_addr_0 ieee_addr_0 read/write r/w r/w r/w r/w reset value 0 0 0 0
90 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x25 (ieee_addr_1): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[15:8]. figure 8 - 11 . register ieee_addr_1. bit 7 6 5 4 0x25 ieee_addr_1 ieee_addr_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x25 ieee_addr_1 ieee_addr_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 register 0x26 (ieee_addr_2): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[23:16]. figure 8 - 12 . register ieee_addr_2. bit 7 6 5 4 0x26 ieee_addr_2 ieee_addr_2 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x26 ieee_addr_2 ieee_addr_2 read/write r/w r/w r/w r/w reset value 0 0 0 0 register 0x27 (ieee_addr_3): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[31:24]. figure 8 - 13 . register ieee_addr_3. bit 7 6 5 4 0x27 ieee_addr_3 ieee_addr_3 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x27 ieee_addr_3 ieee_addr_3 read/write r/w r/w r/w r/w reset value 0 0 0 0
91 42002c ? mcu wireless ? 08/13 at86rf212b register 0x28 (ieee_addr_4): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[39:32]. figure 8 - 14 . register ieee_addr_4. bit 7 6 5 4 0x28 ieee_addr_4 ieee_addr_4 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x28 ieee_addr_4 ieee_addr_4 read/write r/w r/w r/w r/w reset value 0 0 0 0 register 0x29 (ieee_addr_5): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[ 47:40]. figure 8 - 15 . register ieee_addr_5. bit 7 6 5 4 0x29 ieee_addr_5 ieee_addr_5 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x29 ieee_addr_5 ieee_addr_5 read/write r/w r/w r/w r/w reset value 0 0 0 0 register 0x2a (ieee_addr_6): this register contains 8 - bit of the mac ieee address for frame filter address recognition, bits[55:48]. figure 8 - 16 . register ieee_addr_6. bit 7 6 5 4 0x2a ieee_addr_6 ieee_addr_6 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x2a ieee_addr_6 ieee_addr_6 read/write r/w r/w r/w r/w reset value 0 0 0 0
92 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x2b (ieee_addr_7): this register contains the higher 8 - bit of the mac ieee frame filter address for address recognition, bits[63:56]. figure 8 - 17 . register ieee_addr_7. bit 7 6 5 4 0x2b ieee_addr_7 ieee_addr_7 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x2b ieee_addr_7 ieee_addr_7 read/write r/w r/w r/w r/w reset value 0 0 0 0
93 42002c ? mcu wireless ? 08/13 at86rf212b 8.3 frame check sequence (fcs) the frame check sequence (fcs) is characterized by: ? indicat ion of bit errors, based on a cyclic redundancy check (crc) of length 16 bit ? a use of international telecommunication union (itu) crc polynomial ? automatical evaluation during reception ? automatical generation during transmission 8.3.1 overview the fcs is intended for u se at the mac layer to detect corrupted frames at a first level of filtering. it is computed by applying an itu crc polynomial to all transferred bytes following the length field (mhr and msdu fields). the frame check sequence has a length of 16 bit and is located in the last two bytes of a frame (mac footer, see figure 8 - 2 ). the atmel at86rf212b applies an fcs check on each received frame. the fcs check result is stored in register bit rx_crc_valid (register 0x06, phy_rssi). on transmission the radio transceiver generates and appends the fcs bytes during the frame transmission. this behavior can be disabled by setting register bit tx_auto_crc_on = 0 (register 0x04, trx_ctrl_1). 8.3.2 crc calculation the crc polynomial used in ieee 802.15.4 networks is defined by 1 ) ( 5 12 16 16 + + + = x x x x g . the fcs shall be calculated for transmission using the following alg orithm: let 1 2 2 1 1 0 ) ( ? ? ? ? + + + + = k k k k b x b x b x b x m ? be the polynomial representing the sequence of bits for which the checksum is to be computed. multiply m(x) by 16 x , giving the polynomial 16 ) ( ) ( x x m x n ? = . divide ) ( x n modulo two by the generator polynomial, ) ( 16 x g , to obtain the remainder polynomial, 15 14 14 1 15 0 ... ) ( r x r x r x r x r + + + + = . the fcs field is given by the coefficients of the remainder polynomial, r(x) . example: considering a five octet ack frame. the mhr field consi sts of 0100 0000 0000 0000 0101 0110. the leftmost bit (b 0 ) is transmitted first in time. the fcs is in this case 0010 0111 1001 1110. the leftmost bit (r 0 ) is transmitted first in time.
94 42002c ? mcu wireless ? 08/13 a t86rf212b 8.3.3 automatic fcs generation the automatic fcs generation is enabled with register bit tx_auto_crc_on = 1. this allows the atmel at86rf212b to compute the fcs autonomously. for a frame with a frame length specified as n (3 n 127), the fcs is calculated on the first n - 2 octets in the frame buffer, and the resulting fcs field is transmitted in place of the last two octets from the frame buffer. in rx_aack mode, when a received frame needs to be acknowledged, the fcs of the ac k frame is always automatically generated by the at86rf212b , independent of the tx_auto_crc_on setting. example: a frame transmission of length five with tx_auto_crc_on set, is started with a frame buffer write ac cess of five bytes (the last two bytes can be omitted). the first three bytes are used for fcs generation; the last two bytes are replaced by the internally calculated fcs. 8.3.4 automatic fcs check an automatic fcs check is applied on each received frame with a frame length n 2. register bit rx_crc_valid (register 0x06, phy_rssi) is set if the fcs of a received frame is valid. the register bit is updated when issuing interrupt irq_3 (trx_end) and remains valid until the next trx_end interrupt caused by a new frame reception. in addition, bit[7] of byte rx_statu s is set accordingly, refer to section 6.3.2 . in extended operating mode, the rx_aack procedure does not accept a frame if the corresponding fcs is not valid, that is no irq_3 (trx_end) interrupt is issued. when operating in tx_aret mode, the fcs of a received ack is automatically checked. if it is not correct, the ack is not accepted; refer to section 7.2.4 for automated retries. 8.3.5 register description register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the r adio transceiver. figure 8 - 18 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0
95 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 5 - tx_auto_crc_on the register bit tx_auto_crc_on controls the automatic fcs generation for transmit operations. table 8 - 13. tx_auto_crc_on. register bits value description tx_auto_crc_on 0 automatic fcs generation is disabled 1 automatic fcs generation is enabled note: 1. the tx_auto_crc_on function can be used within basic and extended operating modes. register 0x06 (phy_rssi): the phy_rssi register is a multi - purpose register that indicates fcs validity, to provide random numbers, and a rssi value. figure 8 - 19 . register phy_rssi. bit 7 6 5 4 0x06 rx_crc_valid rnd_value rssi phy_rssi read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x06 rssi phy_rssi read/write r r r r reset value 0 0 0 0 ? bit 7 - rx_crc_valid the register bit rx_crc_valid signals the fcs check status for a received frame. table 8 - 14. rx_crc_valid. register bits value description rx_crc_valid 0 fcs is not valid 1 fcs is valid reading this register bit indicates whether the last received frame has a valid fcs or not. the register bit is updated at the same time the irq_3 (trx_end) is issued and remains valid until the next shr detection .
96 42002c ? mcu wireless ? 08/13 a t86rf212b 8.4 received signal strength indicator (rssi) the received signal strength indicator is characterized by: ? minimum rssi level is rssi base_val ? dynamic range is 87 db ? minimum rssi value is 0 ? maximum rssi value is 28 8.4.1 overview the rssi is a 5 - bit value indicating the receive power in the selected channel, in steps of 3.1 db . no attempt is made to distinguish ieee 802.15.4 signals from others, only the received signal strength is evaluated. the rssi provides the basis for an ed measurement, see section 8.5 . 8.4.2 reading rssi in basic operating modes, the rssi value is valid in any receive state and is updated at time i ntervals according to table 8 - 15 (see parameter t rssi on table 7 - 2 ). the current rssi value can be accessed b y reading register bits rssi (register 0x06 , phy_rssi). table 8 - 15. rssi update interval. phy mode update interval [ s ] bpsk-2 0 32 bpsk-40 24 o - qpsk 8 it is not recommended reading the rssi value when using the extended operating modes. instead, the automatically generate d ed value should be used, see section 8.5 . 8.4.3 data interpretation the rssi value is a 5 - bit value in a range of zero to 28 , indicating the receiver input power in steps of about 3.1 db . a rssi value of zero indicates a receiver rf input power less than or equal to p rf rssi base_val . for a rssi value in the range of one to 2 8 , the rf input power can be calculated as follows: p rf [ dbm ] = rssi base_val [d bm] + 3.1 [ db ] x rssi the value rssi base_val itself depends on the phy mode , refer to section 9.1 . for typical conditions, it is shown in table 8 - 16. table 8 - 1 6 . rssi_base_val . phy mode rssi base_val [ dbm ] bpsk with 300 kchip/s -100 bpsk with 600 kchip/s -99 o - qpsk with 400 kchip/s , sin and rc - 0.2 shaping -98 o - qpsk with 400 kchip/s , rc - 0.2 shaping -98 o - qpsk with 1000 kchip/s , sin shaping -98 o - qpsk with 1000 kchip/s , rc - 0.8 shaping -97
97 42002c ? mcu wireless ? 08/13 at86rf212b figure 8 - 20 . mapping between rssi value and receiver input po wer . 0 5 10 15 20 25 30 - 100 - 80 - 60 - 40 - 20 0 rssi receiver input power [ dbm ] bpsk with 300 kchip / s bpsk with 600 kchip / s o - qpsk with 400 kchip / s o - qpsk with 1000 kchip / s ( sin ) 8.4.4 register description register 0x06 (phy_rssi): the phy_rssi register is a multi - purpose register that indicates fcs validity, to provide random numbers, and a rssi value. figure 8 - 21 . register phy_rssi. bit 7 6 5 4 0x06 rx_crc_valid rnd_value rssi phy_rssi read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x06 rssi phy_rssi read/write r r r r reset value 0 0 0 0 ? bit 4:0 - rssi received signal strength as a linear curve on a logarithmic input power scale with a resolution of 3.1db. table 8 - 17. rssi. register bits value description rssi 0x00 minimum rssi value 0x1c maximum rssi value the result of the automated rssi measure ment is stored in register bits rssi (register 0x06 , phy_rssi). the value is updated at time intervals according to table 8 - 15 in any receive state. rssi is a number between zero and 28 , representing the rec eived signal strength.
98 42002c ? mcu wireless ? 08/13 a t86rf212b 8.5 energy detection (ed) the atmel at86rf212b energy detection (ed) module is characterized by ? 8 5 unique energy levels defined ? 1 db resolution ? a measurement time of eight symbol periods for ieee 802.15.4 compliant data rates 8.5.1 overview the receiver ed measurement (ed scan procedure) can be used as a part of a channel selection algorithm. it is an estimation of the received signal power within the bandwidth of an ieee 802.15.4 channel. no attemp t is made to identify or decode signals on the channel. the ed value is calculated by averaging rssi values over eight symbol periods, with the exception of the high data rate modes (refer to section 9.1.4 ). 8.5.2 measurement description there are two ways to initiate an ed measurement, ? m anually by writing an arbitrary value to register 0x07 (phy_ed_level), or ? a utomatically after detection of a valid shr o f an incoming frame. manually: for manually initiated ed measurements, the radio transceiver needs to be either in the state rx_on or busy_rx. the end of the ed measurement time ( eight symbol periods plus a processing time ) is indicated by the interrupt irq_4 (cca_ed_done) and the measurement result is stored in register 0x07 (phy_ed_level ), refer to t ed in table 7 - 2 . in order to avoid interference with an automatically initiated ed measurement, the shr detection can be disabled by setting register bit rx_pdt_dis (re gister 0x15, rx_syn), refer to section 9.2 . note: 1. i t is not recommended to manually initiate an ed measurement when using the extended operating mode. automatically: an automated ed measurement is started upon shr detection. the end of the automated measurement is not signaled by an interrupt. when using the basic operating mode and standard compliant data rates, a valid ed value (register 0x07, phy_ed_level) of the currently received frame is accessible not later than eight symbol periods after irq_2 (rx_star t) plus a processing time of 12 s . for high data rate modes (refer to section 9.1.4 ), the measurement duration is reduced to two symbol periods plus a processing time of 12 s . the ed value remains valid until a new rx_start interrupt is generated by the next incoming frame or until another ed measurement is initiated. when using the extended operating mode, it is useful to mask irq_2 (rx_start) , thus the interrupt cannot be used as timing reference. a successful frame rec eption is signalized by interrupt irq_3 (trx_end) . in this case, the ed value needs to be read within the time span of a next shr
99 42002c ? mcu wireless ? 08/13 at86rf212b detection plus the ed measurement time in order to avoid overwrite of the current ed value. note: 2. the ed re sult is not updated during the rest of the frame reception, even by requesting an ed measurement manually. 8.5.3 data interpretation the phy_ed_level is an 8 - bit register. the ed_level value of the atmel at86rf212b has a valid range from 0x00 to 0x5 4 with a resolution of 1 .03 db . values 0x55 to 0xfe do not occur and a value of 0xff indicates the reset value. due to environmental conditions (temperature, voltage, semiconductor parameters, etc.) the calculated ed_level value has a maximum tolerance of 6 db , this is to be considered as constant offset over the measurement range. an ed_level value of zero indicates a receiver rf input power less than or equal to rssi base_val (refer to table 8 - 16 ); a value of 84 indicates an input power equal to or larger than rssi base_val + 8 7 db . the receiver input power can be calculated as follows: p rf [ dbm ] = rssi base_val [d bm] + 1.03 [db] x ed_level figure 8 - 22 . mapping between ed value and receiver input power . 0 10 20 30 40 50 60 70 80 90 - 100 - 80 - 60 - 40 - 20 0 ed _ level receiver input power [ dbm ] bpsk with 300 kchip / s bpsk with 600 kchip / s o - qpsk with 400 kchip / s o - qpsk with 1000 kchip / s ( sin ) 8.5.4 interrupt handling interrupt irq_4 (cca_ed_done) is issued at the end of a manually initiated ed measurement. note: 1. an ed measurement should only be initiated in rx states but not in rx_aack states. otherwise, the radio transceiver generates an irq_4 (cca_ed_done) without actually performing an ed measurement.
100 42002c ? mcu wireless ? 08/13 a t86rf212b 8.5.5 register description register 0x07 (phy_ed_level): the phy_ed_level register contains the result of an ed measurement. figure 8 - 23 . register phy_ed_level. bit 7 6 5 4 0x07 ed_level phy_ed_level read/write r r r r reset value 1 1 1 1 bit 3 2 1 0 0x07 ed_level phy_ed_level read/write r r r r reset value 1 1 1 1 ? bit 7:0 - ed_level the register bits ed_level signals the ed level for the current channel. table 8 - 18. ed_level. register bits value description ed_level 0x00 minimum ed level value 0x54 maximum ed level value 0xff reset value the measured ed value has a valid range from 0x00 to 0x54 ( zero to 84). the value 0xff signals that no measurement has been started yet (reset value). a manual ed measurement can be initiated by a write access to the register.
101 42002c ? mcu wireless ? 08/13 at86rf212b 8.6 clear channel assessment (cca) the main features of the clear channel assessment (cca) module are: ? all four modes are available as defined by ieee 802.15.4 - 2006 in section 6. 9.9 ? adjustable threshold for energy detection algorithm 8.6.1 overview a cca measurement is used to detect a clear channel. four cca modes are specified by ieee 802.15.4 - 2006: table 8 - 19. cca mode overview . cca mode description 1 energy above threshold . cca shall report a busy medium upon detecting any energy above the ed threshold. 2 carrier sense only . cca shall report a busy medium only upon the detection of a signal with the modulation and spreading characteristics of an ieee 802.15.4 compliant signal. the signal strength may be above or below the ed threshold. 0, 3 carrier sense with energy above threshold . cca shall report a busy medium using a logical combination of - detection of a signal with the modulation and spreading characteristics of this standard and - energy above the ed threshold. where the logical operator may be configured as either or (mode 0) or and (mode 3). 8.6.2 configuration and request the cca modes are configurable via register 0x08 (phy_cc_cca). when in basic operating mode, a cca request can be initiated manually by setting cca_request = 1 (register 0x08, phy_cc_cca) , if the atmel at86rf212b is in any rx state. the current channel status (cca_status) and the cca completion status (cca_done) are accessible thro ugh register 0x01 (trx_status). the end of a manua lly initiated cca ( eight symbol periods plus 12 s processing delay) is indicated by the interrupt irq_4 (cca_ed_done) . the register bits cca_ed_thres ( register 0x09 , cca_thr es) defines the receive power threshold of the ?energy above threshold? algorithm. the threshold is calculated by : p cca_ed_thres [d bm] = rssi base_val [d bm] + 2.07 [ db ] x cca_ed_thres. any received power above this level is interpreted as a busy channel. note: 1. it is not recommended to manually initiate a cca measurement when using the extended operating mode.
102 42002c ? mcu wireless ? 08/13 a t86rf212b 8.6.3 data interpretation the atmel at86rf212b current channel status (cca_status) and the cca completion status (cca_done) are accessible through register 0x01 (trx_status). note : 1. the register bits cca_done and cca_status are cleared in response to a cca_request. the completion of a measurement cycle is indicated by cca_done = 1. if the radio transceiver detects no signal (idle channel) during the cca evaluation period, the cca_status bit is set to one ; otherwise, it is set to zero. when using the ?energy above threshold? algorithm, a received power above p cca_ed_thres is interpreted as a busy channel . when using the ?carrier sense? algorithm ( that is cca_mode = 0, 2, and 3), the at86rf212b reports a busy channel upon detection of a phy mode specific ieee 802.15.4 signal above rssi base_val (see table 8 - 16 ). the at86rf212b is also capable of detecting signals below this value, but the detection probability decreases with decreasing signal power . it is almost zero at the radio transceivers sensitivity level (see parameter p sens on section 12.7 ). 8.6.4 interrupt handling interrupt irq_4 (cca_ed_done) is issued at the end of a manually initiated cca measurement. note : 1. a cca request should only be initiated in basic operating mode receive states. otherwise the radio transceiver gen erates an irq_4 (cca_ed_done) and sets the register bit cca_done = 1, even though no cca measurement was performed. 8.6.5 measurement time the response time of a manually initiated cca measurement depends on the receiver state. in rx_on state, the cca measurement is done over eight symbol periods and the result is accessible upon the event irq_4 (cca_ed_done) or upon cca_done = 1 (register 0x01, trx_status). in busy_rx state, the cca measurement duration depends on the cca mode and the cca request relative to the detection of the shr. the end of the cca measurement is indicated by irq_4 (cca_ed_done) . the variation of a cca measurement period in busy_rx state is described in table 8 - 20. it is recommended to perform cca measurements in rx_on state only. to avoid switching accidentally to busy_rx state, the shr detection can b e disabled by setting register bit rx_pdt_dis (re gister 0x15, rx_syn), refer to section 9.2 . the receiver remains in rx_on state to perform a cca measurement until the register bit rx_pdt_dis is set back to continue the frame reception. in this case, the cca measurement duration is eight symbol periods.
103 42002c ? mcu wireless ? 08/13 at86rf212b table 8 - 20. cca measurement period and access in busy_rx state . cca mode request within ed measurement (1) request after ed measurement 1 energy above threshold . cca result is available after finishing automated ed measurement period. cca result is immediately available after request. 2 carrier sense only . cca result is immediately available after request. 3 carrier sense with energy above threshold (and) . cca result is available after finishing automated ed measurement period. cca result is immediately available after request. 0 carrier sense with energy above threshold (or) . cca result is available after finishing automated ed measurement period. cca result is immediately available after request. note: 1. after detecting the shr, an automated ed measurement is started with a length of eight symbol periods ( two symbol periods for high rate phy modes , refer to section 9.1.4 ). this automated ed measurement must be finished to provide a result for the cca measurement. only one automated ed measurement per frame is performed. 8.6.6 register description register 0x01 (trx_status): the read - only register trx_status signals the present state of the radio transceiver as well as the status of a cca operation. figure 8 - 24 . register trx_status. bit 7 6 5 4 0x01 cca_done cca_status reserved trx_status trx_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x01 trx_status trx_status read/write r r r r reset value 0 0 0 0 ? bit 7 - cca_done table 8 - 21. cca_done. register bits value description cca_done 0 cca calculation not finished 1 cca calculation finished the register bit cca_done indicates if a cca request is completed. this is also indicated by an interrupt irq_4 (cca_ed_done) . the register bit cca_done is cleared in response to a cca_request.
104 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 6 - cca_status table 8 - 22. cca_status. register bits value description cca_status 0 channel indicated as busy 1 channel indicated as idle after a cca request is completed , the result of the cca measurement is available in register bit cca_status. the register bit cca_status is cleared in response to a cca_request. register 0x08 (phy_cc_cca): the phy_cc_cca register is a multi - purpose register that controls cca configurati on, cca measurement, and the ieee 802.15.4 channel setting. figure 8 - 25 . register phy_cc_cca. bit 7 6 5 4 0x08 cca_request cca_mode channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x08 channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 1 0 1 ? bit 7 - cca_request the register bit cca_request initiates a manual started cca measurement. table 8 - 23. cca_request. register bits value description cca_request 0 reset value 1 starts a cca measurement notes: 1. the read value returns always with zero. 2. if a cca request is initiated in states others than rx_on or rx_busy the phy generates an irq_4 (cca_ed_done) and sets the register bit cca_done, however no cca was carried out. a manual cca measurement is initiated with setting cca_request = 1. the end of the cca measurement is indicated by interrupt irq_4 (cca_ed_done) . register bits cca_done and cca_status (register 0x01, trx_sta tus) are updated after a cca_request. the register bit is automatically cleared after requesting a cca measurement with cca_request = 1.
105 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 6:5 - cca_mode the cca mode can be selected using register bits cca_mode. table 8 - 24. cca_mode. register bits value description cca_mode 0 mode 3a, carrier sense or energy above threshold 1 mode 1, energy above threshold 2 mode 2, carrier sense only 3 mode 3b, carrier sense and energy above threshold notes: 1. ieee 802.15.4 ? 2006 cca mode 3 defines the logical combination of cca mode 1 and 2 with the logical operators and or or. 2. if register bit csma_lbt_mode is set, cca_mode configures the lbt measurement. register 0x09 (cca_thres): the cca_thres register sets the cs and ed threshold level for cca. figure 8 - 26 . register cca_thres. bit 7 6 5 4 0x09 cca_cs_thres cca_thres read/write r/w r/w r/w r/w reset value 0 1 1 1 bit 3 2 1 0 0x09 cca_ed_thres cca_thres read/write r/w r/w r/w r/w reset value 0 1 1 1 ? bit 7:4 - cca_cs_thres the register bits cca_cs_thres are used for cca carrier sense algorithm. table 8 - 25. cca_cs_thres. register bits value description cca_cs_thres 0x7 default value 0xf a threshold of 15 always signals an empty channel all other values are reserved note: 1. a value of seven (reset value) corresponds to normal cca_cs operation. a value of 15 results in always sensing an empty channel if cca_mode = 2 (carrier sense only). this can be useful in combination with tx_aret, t hat is allowing retries with actually per forming csma - ca.
106 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 3:0 - cca_ed_thres an ed value above the threshold signals the channel as busy during a cca_ed measurement. table 8 - 26. cca_ed_thres. register bits value description cca_ed_thres 0x7 for cca_mode = 1, a busy channel is indicated if the measured received power is above p_thres [dbm] = rssi_base_val [dbm] + 2.07[db] x cca_ed_thres. cca modes 0 and 3 are logically related to this result. note: 1. if csma_lbt_mode is enabled, cca_ed_thres is used for the lbt measurement.
107 42002c ? mcu wireless ? 08/13 at86rf212b 8.7 listen before talk (lbt) 8.7.1 overview equipment using the atmel at86rf212b shall conform t o the established regulations. with respect to the regulations in europe, csma - ca based transmission according to ieee 802.15.4 is not appropriate. in principle, transmission is subje ct to low duty cycles (0.1 % to 1 %). however, according to [6] , equipment employing listen before talk (lbt) and adaptive frequency agility (afa) does not have to comply with duty cycle conditions. hence, lbt can be attractive in o rder to reduce network latency. minimum listening time a device with lbt needs to comply with a minimum li stening time, refer to section 9.1.1. 2 of [6] . prior transmission, the device must listen for a receive sig nal at or above the lbt threshold level to determine whether the intended channel is available for use, unless transmission is pursuing acknowledgement. a device using lbt needs to listen for a fixed period of at least 5ms. if the channel is free after thi s period, transmission may immediately commence ( that is no csma is required). otherwise, a new minimum listening period of a randomly selected time span between 5ms and 10ms is required. the time resolution shall be approximately 0.5ms. the last step need s to be repeated until a free channel is available. lbt threshold according to [6] , the maximum lbt threshold for an ieee 802.15.4 signal is presumably - 82 db m, assuming a channel spacing of 1 mhz . 8.7.2 lbt mode the at86rf212b supports the previously described lbt specific listening mode when operating in the extended operating mode. in p articular, during tx_aret (see sectio n 7.2.4 ), the csma - ca algorithm can be replaced by the lbt listening mode when setting register bit csma_lbt_mode (register 0x17, xah_ctrl_1). in t his case, however, the register bits max_csma_retries (register 0x2c, xah_ctrl_0) as well as register bits min_be and max_be (register 0x2f, csma_be) are ignored, implying that the listening mode will sustain unless a clear channel has been found or the tx _aret transaction will be canceled. the latter can be achieved by setting register bits trx_cmd (register 0x02, trx_state) to either force_pll_on or force_trx_off , the value of register bits trac_status is not meaningful in this case. all other aspects of tx_aret remain unchanged, refer to section 7.2.4 . the lbt threshold can be configured in the same way as for cca, that is via register bits cca_mode (register 0x08, phy_cc_cca) and register bits cca_ed_thres (register 0x09, cca_ thres), refer to section 8.6 .
108 42002c ? mcu wireless ? 08/13 a t86rf212b 8.7.3 register descrip tion register 0x08 (phy_cc_cca): the phy_cc_cca register is a multi - purpose register that controls cca configuration, cca measurement, and the ieee 802.15.4 channel setting. figure 8 - 27 . register phy_cc_cca. bit 7 6 5 4 0x08 cca_request cca_mode channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x08 channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 1 0 1 ? bit 6:5 - cca_mode the cca mode can be selected using register bits cca_mode. table 8 - 27. cca_mode. register bits value description cca_mode 0 mode 3a, carrier sense or energy above threshold 1 mode 1, energy above threshold 2 mode 2, carrier sense only 3 mode 3b, carrier sense and energy above threshold notes: 1. ieee 802.15.4 ? 2006 cca mode 3 defines the logical combination of cca mode 1 and 2 with the logical operators and or or. 2. if register bit csma_lbt_mode is set, cca_mode configures the lbt measurement. register 0x09 (cca_thres): the cca_thres register sets the cs and ed threshold level for cca. figure 8 - 28 . register cca_thres. bit 7 6 5 4 0x09 cca_cs_thres cca_thres read/write r/w r/w r/w r/w reset value 0 1 1 1 bit 3 2 1 0 0x09 cca_ed_thres cca_thres read/write r/w r/w r/w r/w reset value 0 1 1 1
109 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 3:0 - cca_ed_thres an ed value above the threshold signals the channel as busy during a cca_ed measurement. table 8 - 28. cca_ed_thres. register bits value description cca_ed_thres 0x7 for cca_mode = 1, a busy channel is indicated if the measured received power is above p_thres [dbm] = rssi_base_val [dbm] + 2.07[db] x cca_ed_thres. cca modes 0 and 3 are logically related to this result. note: 1. if csma_lbt_mode is enabled, cca_ed_thres is used for the lbt measurement. register 0x17 (xah_ctrl_1): the xah_ctrl_1 register is a multi - purpose control register for extended operating mode. figure 8 - 29 . register xah_ctrl_1. bit 7 6 5 4 0x17 reserved csma_lbt_mode aack_fltr_res_ ft aack_upld_res_ ft xah_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x17 reserved aack_ack_time aack_prom_ mode reserved xah_ctrl_1 read/write r r/w r/w r reset value 0 0 0 0 ? bit 6 - csma_lbt_mode the register bit csma_lbt_mode switched between csma - ca or listen before talk (lbt) algorithm within tx_aret mode. table 8 - 29. csma_lbt_mode. register bits value description csma_lbt_mode 0 csma - ca algorithm is used 1 lbt algorithm is used if set to zero (default), csma - ca algorithm is used during tx_aret for clear channel assessment. otherwise, the lbt specific listening mode is applied.
110 42002c ? mcu wireless ? 08/13 a t86rf212b 8.8 link quality indication (lqi) the ieee 802.15.4 standard defines the lqi as a characterization of the strength and/or quality of a received frame. the use of the lqi result by the network or application layer is not specified in this standard. the lqi value shall be an integer rangin g from zero to 255, with at least eight unique values. the minimum and maximum lqi values ( 0x00 and 0xff ) should be associated with the lowest and highest quality compliant signals, respectively, and lqi values in between should be uniformly distributed between these two limits. 8.8.1 overview during symbol detection within frame reception, the atmel at86rf212b uses correlation results of multiple symbols in order to compute an estimate of the lqi value. this is motivated by the fact that the mean value of the correlation result is inversely related to the pr obability of a detection error. lqi computation is auto matically performed for each received frame, once the shr has been detected. lqi values are integers ranging from zero to 255 as required by the ieee 802.15.4 standard. 8.8.2 obtaining the lqi value the lqi value is available, once the corresponding frame has be en completely received. this is indicated by the interrupt irq_3 (trx_end) . the value can be obtained by means of a frame buffer read access, see section 6.3.2 . 8.8.3 data interpretation the reason for a low lqi value can be twofold: a low signal strength and/or high signal distortions, for example by interference and/or mult ipath propagation. high lqi values, however, indicate a sufficient signal strength and low signal distortions. note s : 1. t he lqi value is almost always 255 for scenarios with very low signal distortions and a signal strength much greater than the sensitivity level. in this case, the packet error rate tends towards zero and increase of the signal strength, that is by increasing the transmission power, cannot decrease the error rate any further. received signal strengt h indication (rssi) or energy detection (ed) can be used to evaluate the signal strength and the link margin. 2. the received signal power as indicated by received signal strength indication (rssi) value or energy detection (ed) value of the atmel at86rf212b do not characterize the signal quality and the ability to decode a signal. zigbee networks often require identification of the ?best? routing between two nodes. lqi and rssi/ed can be applied, depending on the optimization criteria. if a low frame error rate (corresponding to a high throughput) is the optimization criteria, then the lqi value should be taken into consideration. if, however, the target is a low transmission power, then the rssi/ed value i s also helpful. various combinations of lqi and rssi/ed are possible for routing decisions. as a rule of thumb, information on rssi/ed is useful in order to differentiate between links with high lqi values. however, transmission links with low lqi values s hould be discarded for routing decisions, even if the rssi/ed values are high, since it is merely an information about the received signal strength, whereas the source can be an interferer.
111 42002c ? mcu wireless ? 08/13 at86rf212b 9 module description 9.1 physical layer modes 9.1.1 spreading, modulation, and pulse shaping the atmel at86rf212b supports various physical layer (phy) modes independent of the rf channel selection. symbol mapping along with chip spreading, modulation, and pulse shaping is part of the digit al base band processor, see figure 9 - 1 . figure 9 - 1 . bas e band transmitter architecture. symbol mapping & chip spreading modulation bpsk/o-qpsk pulse shaping ppdu dac the combination of spreading, modulation, and pulse shaping are restricted to several combinations as shown in table 9 - 1 . the at86rf212b is fully compliant to the ieee 802.15.4 low data rate modes of 20 kb/s or 40 kb/s , employing binary phase - shift keying (bpsk) and spreadin g with a fixed chip rate of 300 kchip/s or 600 kchip/s , respectively. the symbol rate is 20 k symbol/s or 40 ksymbol/s , respectively. in both cases, pulse shaping is approximating a raised cosine filter wit h roll - off factor 1.0 (rc - 1.0). for optional data rates according to ieee 802.15.4 - 2006, offset quadrature phase - shift keying (o - qpsk) is support ed by the at86rf212b with a fixed chip rate of eith er 400 kchip/s or 1000 kchip/s . at a chip rate of 400 kchip/s , there is a choice betw een two different pulse shaping modes . one pulse shaping uses a combination of both, half - sine shaping (sin) and raised cosine filtering with roll - off factor 0.2 (rc - 0.2) according to ieee 802.15.4 - 2006 [2] for the 868.3mhz band. the other, uses raised cosine filtering with roll - off factor 0.2 (rc - 0.2). at a chip rate of 1000 kchip/s , pulse shaping is either half - sine filtering (sin) as specified in ieee 802.15.4 - 2006 [2] , or, alternatively, raised cosine filtering with roll - off factor 0.8 (rc - 0.8) as specified in ieee 802.15.4c - 2009 [3] and ieee 802.15.4 - 2011 [4] . for o - qpsk, the at86rf212b supports spreading according to ieee 802.15.4 - 2006 with data rates of either 100 kb/s or 250 kb/s depending on the chip rate, leading to a symbol rate of either 25 ksymbol/s o r 62.5 ksymbol/s , respectively. additionally, the at86rf212b supports two more spreading codes for o - qpsk with shortened code lengths. this leads to higher but non ieee 802.15.4 compliant data rates for psdu transmission at 200, 400, 500, and 1000 kb/s . the propriet ary high data rate modes are outlined in more detail in section 9.1.4 .
112 42002c ? mcu wireless ? 08/13 a t86rf212b table 9 - 1 . modulation and pulse shaping . modulation chip rate [kchip/s] supported data rate for ppdu header [kb /s] sup ported data rates for psdu [kb /s] pulse shaping bpsk 300 20 20 rc- 1.0 600 40 4 0 (1) rc- 1.0 o - qpsk 400 100 100, 200, 400 sin and rc - 0.2 400 100 100, 200, 400 rc- 0.2 1000 250 250, 500 ( 1 ) , 1000 sin 1000 250 250, 500 ( 1 ) , 1000 rc- 0.8 note : 1. support of two different spreading codes . 9.1.2 configuration the phy mode can be selected by setting appropriate register bits bpsk_oqpsk, sub_mode, oqpsk_data_rate, and alt_spectrum ( register 0x0c trx_ctrl_2), refer to section 9.1.5 . during configuration, the transceive r needs to be in trx_off state . 9.1.3 symbol period within ieee 802.15.4 and, accordingly, within this document, time references are often specified in units of symbol periods, leading to a phy mode independent description. table 9 - 2 shows the duration of the symbol period. table 9 - 2 . duration of the symbol period . modulation psdu data rate [kb /s] duration of symbol period [s] bpsk 20 50 40 25 o - qpsk 100, 200, 400 40 250, 500, 1000 16 note: 1. f or the proprietary high data rate modes, the symbol period is (by definition) the same as the symbol period of the corresponding base mode. 9.1.4 proprietary high data rate modes the main features are: ? high data rates up to 1000 kb/s ? support of basic and extended operating mode ? reduced ack timing (optional) 9.1.4.1 overview the atmel at86rf212b supp orts alternative data rates of 200, 400 , 500, and 1000 kb/s for applications not necessarily targeting ie ee 802.15.4 compliant networks. the high data rate modes utilize the same rf channel bandwidth as the ieee 802.15.4 - 2006 sub - 1 ghz o - qpsk modes. higher data rates are achieved by using the modified o - qpsk spreading codes having reduced code lengths. the len gths are reduced by t he factor of two or by the factor of four .
113 42002c ? mcu wireless ? 08/13 at86rf212b for o - qpsk with 400 kchip/s , this leads to a data rate of 200 kb/s (2 - fold) and 400 kb/s (4 - fold), respectively. for o - qpsk with 1000 kchip/s , the resulting data rate is 500 kb/s (2 - fold) and 1000 kb/s (4 - fold), respectively. due to the decreased spreading factor, the sensitivity of the receiver is reduced. section 12.7 , parameter p sens , shows typical values of the sensitivity for different data rates. 9.1.4.2 high data rate frame structure in order to allow robust frame synchronization, the atmel at86rf212b high data rate modulation is restricted to the psdu part only. the ppdu header (the preamble, the sfd, and the phr field) are transmitted with a rate of either 100kb/s or 250kb/s (basic rates), see figu re 9 - 2 . figure 9 - 2 . high date rate frame structure. preamble sfd phr psdu basic rate transmission : 100 k b / s 250 k b / s high rate transmission : { 200 , 400 } kb / s { 500 , 1000 } k b / s due to the overhead caused by the ppdu header and the fcs, the effective data rate is less than the selected data rate, depending on the length of the psdu. a graphical representation of the effective data rate is shown in figure 9 - 3 . figure 9 - 3 . effective data rate ?b? for o - qpsk high data rate modes . consequently, high data rate transmission is useful for large psdu lengths due to the higher effective data rate, or in order to reduce the power consumption of the system. 0 20 40 60 80 100 120 0 100 200 300 400 500 600 700 800 900 b [kb/s] psdu length in octets 1000kb/s 500kb/s 250kb/s 400kb/s 200kb/s 100kb/s
114 42002c ? mcu wireless ? 08/13 a t86rf212b 9.1.4.3 high date rate mode options reduced acknowledgment time if register bit aack_ack_time (register 0x17, xah_ctrl_1) is set, the acknowledgment time is reduced to the duration of two symbol periods for 200 and 400 kb/s data rates , and to three symbol periods for 500 and 1000 kb/s data rates , refer to table 7 - 23. the reduced acknowledgment time is untouched in ieee 802.15.4 . otherwise, it defaults to 12 symbol periods according to ieee 802.15.4. receiver sensitivity control the different data rates between ppdu header (shr and phr) and phy payload (psdu) cause a different sensitivity between header and payload. this can be adjusted by defining sensitivity threshold levels of the receiver. with a sensitivity threshold level se t, the atmel at86rf212b does not synchronize to frames with an rssi level below that threshold. refer to section 9.2.4 for a configuration of the sensitivity threshold with register bits rx_pdt_level (register 0x15, rx_syn). scrambler for data rates 400 kb/s and 1000 kb/s , additional chip scrambling is applied per default in order to mitigate data dependent spectral properties. scrambling can be disabled if register bit oqpsk_scram_en (register 0x0c, trx_ctrl_2) is set to zero . energy detection the ed measurement time span is eight symbol periods according to ieee 802.15.4. for frames operated at a higher data rate, the automated measurement duration (see section 8.5.2 ) is reduced to two symbol periods t aking reduced frame durations into account. this means, the ed measurement time is 80 s for modes 200 kb/s and 400 kb/s , and 32 s for modes 500 kb/s and 1000 kb/s . for manually initiated ed measurements in these modes, the measurement time is still eight symbol periods. carrier sense for clear channel assessment, ieee 802.15.4 - 2006 specifies several modes which may either apply ?energy above threshold? or ?carrier sense? (cs) or a combination of both. since signals of the high data rate modes are not com pliant to ieee 802.15.4 - 2006, cs is not supported when the at86rf212b is operating in these modes. however, ?energy above threshold? is supported. link quality indicator (lqi) for the high data rate modes, the li nk quality value does not contain useful information and should be discarded.
115 42002c ? mcu wireless ? 08/13 at86rf212b 9.1.5 register description register 0x0c (trx_ctrl_2): the trx_ctrl_2 register is a multi - purpose control register to control various settings of the radio transceiver. figure 9 - 4 . register trx_ctrl_2. bit 7 6 5 4 0x0c rx_safe_mode trx_off_avdd_ en oqpsk_scram_ en alt_spectrum trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x0c bpsk_oqpsk sub_mode oqpsk_data_rate trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 1 0 0 ? bit 5 - oqpsk_scram_en if register bit oqpsk_scram_en is enabled, an additional chip scrambling for o - qpsk is applied for data rate 400kb/s and 1000kb/s. table 9 - 3 . oqpsk_scram_en. register bits value description oqpsk_scram_en 0 scrambler is disabled 1 scrambler is enabled ? bit 4 - alt_spectrum the register bit alt_spectrum controls an alternative spectrum for different modes. table 9 - 4 . alt_spectrum. register bits value description alt_spectrum 0 the alternative spectrum mode is disabled 1 the alternative spectrum mode is enabled bpsk with 40kb/s: if set to zero, a chip sequence according to ieee 802.15.4 is used. if set to one, a modified chip sequence interoperable with ieee 802.15.4 is used for tx and rx showing different spectrum properties (to ensure fcc 600khz bandwidth requi rement). this might be beneficial when using an external power amplifier and targeting high output power according to fcc 15.247 [5] . o - qpsk with 400 kchip/s : if set to zero , pulse shaping is a combination of half - sine shaping and rc - 0.2 shaping according to ieee 802.15.4 . if set to one, pulse shaping is rc- 0.2 shaping. this avoids inter - chip interference which results in a significantly lower evm, refer to se ction 12.6 . the peak to average ratio increases by about 1db. o - qpsk with 1000 kchip/s : if set to zero , pulse shaping is half - sine shaping. if set to one , pulse shaping is rc - 0.8 shaping. compared with half - sine shaping, side - lobes are reduced at the expense of an inc reased peak to average ratio (~ 1db); refer to figure 9 - 11 and figure 9 - 12 , respectively. this mode is particularly suitable for the chinese 780mhz band, refer to ieee 802.15.4c - 2009 [3] or ieee 802.15.4 - 2011 [4] .
116 42002c ? mcu wireless ? 08/13 a t86rf212b note s : 1. the modulation bpsk- 40 and modulation bpsk-40- alt are interoperable together, with some performance degenerations. 2. during reception, this bit is not evaluated within the atmel at86rf212b , so it is not explicitly required to align different transceivers with alt_spectrum in order to assure interoperability. it is very likely that this also holds for any ieee 802.15.4 - 2006 compliant o - qpsk transceiver in the 915mhz band, since the ieee 802. 15.4 - 2006 requirements are fulfilled for both types of shaping. ? bit 3 - bpsk_oqpsk the register bit bpsk_oqpsk controls the modulation scheme. table 9 - 5 . bpsk_oqpsk. register bits value description bpsk_oqpsk 0 bpsk modulation is active 1 o - qpsk modulation is active ? bit 2 - sub_mode mode selection for european/north american/(chinese) band. table 9 - 6 . sub_mode. register bits value description sub_mode 0 bpsk- 20, oqpsk - {100,200,400} 1 bpsk- 40, oqpsk - {250,500,1000} if set to one (reset value), the chip rate is 1000 kchip/s for bpsk_oqpsk = 1 and 600 kchip/s for bpsk_oqpsk = 0. it permits data rates out of {250, 500, 1000} kb/s or 40 kb/s , respectively. this mode is particularly suitable for the 915 mhz band. for o - qpsk transmission, pulse shaping is either half - sine shaping or rc - 0.8 shaping, depending on alt_spectrum . if set to zer o , the chip rate is 400 kchip/s for bpsk_oqps k = 1 and 300 kchip/s for bpsk_oqpsk = 0. it permits data rates out of {100, 200, 400} kb/s or 20 kb/s , respectively. this mode is particularly suitable for the 868.3 mhz band. for o - qpsk transmission, pulse shaping is always the combination of half - sine shaping and rc - 0.2 shaping. ? bit 1:0 - oqpsk_data_rate a write access to these register bits set the o - qpsk psdu data rate used by the radio transceiver. the reset value oqpsk_data_rat e = 0 is the psdu data rate according to ieee 802.15.4. table 9 - 7 . oqpsk_data_rate. register bits value description oqpsk_data_rate 0 sub_mode = 0: 100kb/s or sub_mode = 1: 250kb/s 1 sub_mode = 0: 200kb/s or sub_mode = 1: 500kb/s 2 sub_mode = 0: 400kb/s or sub_mode = 1: 1000kb/s 3 sub_mode = 0: reserved or sub_mode = 1: 500kb/s
117 42002c ? mcu wireless ? 08/13 at86rf212b the atmel at86rf212b supports two different modes with an psdu data rate of 500kb/s. using oqpsk_data_rate = 3 might be beneficial when using an external power amplifier and targeting high output power according to fcc 15.247 [5] . in table 9 - 8 all phy modes supported by the at86rf212b are summ arized with the relevant setting for each bit of register trx_ctrl_2. the ? - ? (minus) character means that the bit entry is not relevant for the particular phy mo de. table 9 - 8 . register 0x0c (trx_ctrl_2) bit alignment . phy mode bits of register 0x0c compliance 7 6 5 4 3 2 1 0 bpsk - 20 - - - 0 0 0 0 0 ieee 802.15.4 - 2003/2006/2011: channel page 0, channel 0 bpsk - 40 - - - 0 0 1 0 0 ieee 802.15.4 - 2003/2006/2011: channel page 0, channel 1 to 10 bpsk - 40- alt - - - 1 0 1 0 0 proprietary, alternative spreading code oqpsk - sin - rc- 100 - - - 0 1 0 0 0 ieee 802.15.4 - 2006/2011: channel page 2, channel 0 oqpsk - sin - rc- 200 - - - 0 1 0 0 1 proprietary oqpsk - sin - rc- 400- scr - on - - 1 0 1 0 1 0 proprietary, scrambler on oqpsk - sin - rc- 400- scr - off - - 0 0 1 0 1 0 proprietary, scrambler off oqpsk - rc- 100 - - - 1 1 0 0 0 proprietary oqpsk - rc- 200 - - - 1 1 0 0 1 proprietary oqpsk - rc- 400- scr - on - - 1 1 1 0 1 0 proprietary, scrambler on oqpsk - rc- 400- scr - off - - 0 1 1 0 1 0 proprietary, scrambler off oqpsk - sin - 250 - - - 0 1 1 0 0 ieee 802.15.4 - 2006/2011: channel page 2, channel 1 to 10 oqpsk - sin - 500 - - - 0 1 1 0 1 proprietary oqpsk - sin - 500- alt - - - 0 1 1 1 1 proprietary, alternative spreading code oqpsk - sin - 1000- scr - on - - 1 0 1 1 1 0 proprietary, scrambler on oqpsk - sin - 1000- scr - off - - 0 0 1 1 1 0 proprietary, scrambler off oqpsk - rc- 250 - - - 1 1 1 0 0 ieee 802.15.4 - 2011 : channel page 5, channel 0 to 3 oqpsk - rc- 500 - - - 1 1 1 0 1 proprietary oqpsk - rc- 500- alt - - - 1 1 1 1 1 proprietary, alternative spreading code oqpsk - rc- 1000- scr - on - - 1 1 1 1 1 0 proprietary, scrambler on oqpsk - rc- 1000- scr - off - - 0 1 1 1 1 0 proprietary, scrambler off
118 42002c ? mcu wireless ? 08/13 a t86rf212b 9.2 receiver (rx) 9.2.1 overview the atmel at86rf212b transceiver is split into an analog radio front - end and a digital domain, see figure 4 - 1 . referring to the receiver part of the analog domain, the differential rf signal is amplified by a low noise amplifier (lna) and split into quadrature signals by a poly - phase filter (ppf). tw o mixer circuits convert the quadrature signal down to an intermediate frequency. channel selectivity is achieved by an integrated band - pass filter (bpf). the subsequent analog - to - digital converter (adc) samples the receive signal and additionally generate s a digital rssi signal, see section 6.4 . the adc output is then further processed by the digital baseband receiver (rx bbp), which is part of the digital domain. the bbp performs further filtering and signal processing. in rx_on state, the receiver searches for the synchronization header. once the synchronization is established and the sfd is found, the received signal is demodulated and provided to the frame buffe r. upon sychronization t he receiver performs a state change from rx_on to busy_rx which is indicated by register bits trx_status (register 0x01, trx_status) . once the frame is received, the receiver switches back to rx_on in the listen mode on the selected channel. a similar scheme applies to the extended operating mode. the receiver is designed to handle reference oscillator accuracies up to 60 ppm ; re fer to section 12.5 , parameter f srd . this results in the estimation and correction of frequency and sym bol rate errors up to 120ppm. several status information are generated during the rece ive process: lqi, ed, and rx_status. they are automatically appended duri ng frame read access, refer to section 6.3.2 . some information is also available through r egister access, for example ed _level (register 0x07, phy_ed_level) and fcs correctness rx_crc_valid (register 0x06, phy_rssi). the extended operating mode of the at86rf212b supports frame filtering and pending data indication. 9.2.2 frame receive procedure the frame receive procedure, including the radio transceiver setup for reception and reading psdu data from the frame buffer, is described in section 10.1 frame receive procedure . 9.2.3 configuration in basic operating mode, the receiver is e nabled by writing command rx_on to register bits trx_cmd (register 0x02, trx_state) in states trx_off or pll_on. i n extended operating mode, the receiver is enabled for rx_aack operation from state pll_on by writing the command rx_aack_on. there is no addi tional configuration required to receive ieee 802.15.4 compliant frames in basic operating mode. however, the frame reception in the atmel at86rf212b extended operating mode requires further register configurations, for details refer to section 7.2.2 . for specific applications, the receiver can additionaly be configured to handle critical environment to simplify the interaction with the microcontroller, or to operate in different data rates.
119 42002c ? mcu wireless ? 08/13 at86rf212b there are scenarios where csma - ca is not used before a transmission or where csma - ca is not really reliabl e, for example in hidden node scenarios. as two transceivers compete for the use of one channel they may interfere with each other which may produce unreliable transmission . receiver override can be used to cope with such scenarios. the level of interferen ce (which can be caused by a new incoming frame) is continuously measured while decoding a frame . the synchronization to the potential new frame starts if the interference level does not allow for a reliable detection. the atmel at86rf212b receiver has an outstanding sensitivity performance. at certain environmental conditions or for high data rate modes, refer to section 9.1.4 , it may be useful to manually decrease this sensitivity. this is achieved by adjusting the synchronization header detector threshold using regis ter bits rx_pdt_level (register 0x15, rx_syn). received signals with a rssi value below the threshold do not activate the demodulation process. furthermore, at times it may be useful to protect a received frame against overwriting by a new subsequent data frame , when the receive data buffer has not bee n read on time . a dynamic frame buffer protection is enabled with register bit rx_safe_mode (regis ter 0x0c, trx_ctrl_2) set, see section 11.7 . the receiver remains in rx_on or rx_aack_on state until the whole frame is uploaded by the microcontroller, indicated by pin 23 (/sel) = h during the spi frame receive mode. the frame buffer content is only protected if the fcs is valid. a static frame buffer protection is enabled with register bit rx_pdt_dis (register 0x15, rx_syn) set. the receiver remains in rx_on or rx_aack_on state and no further shr is detected until the register bit rx_pdt_dis is set back. 9.2.4 register description register 0x15 (rx_syn): the register rx_syn controls parameters related to the synchronization unit of the receiver. figure 9 - 5 . register rx_syn. bit 7 6 5 4 0x15 rx_pdt_dis rx_override rx_syn read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x15 rx_pdt_level rx_syn read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7 - rx_pdt_dis the register bit rx_pdt_dis prevents the reception of a frame during rx phase. table 9 - 9 . rx_pdt_dis. register bits value description rx_pdt_dis 0 rx path is enabled 1 rx path is disabled rx_pdt_dis = 1 prevents the reception of a frame even if the radio transceiver is in receive modes. an ongoing frame reception is not affected. this operation mode is independent of the setting of register bits rx_pdt_level.
120 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 6:4 - rx_override the regi ster bits rx_override control the rxo functions during rx phase. during the receive process the validity of the current frame and the occurrence of a strong interferer is checked continuously. in either of those cases the reception is automatically restart ed to increase the overall system availability and throughput with respect to correct received packets. table 9 - 10. rx_override. register bits value description rx_override 0 (1) all rx override functions are disabled (default) 6 (2) ipan scanning is enabled, 9db energy detection (ed) check is enabled, link quality (lq) check is enabled all other values are reserved notes: 1. frames are decoded up to the length specified in the phr field, independent of any interference while receiving this frame. 2. detection of strong interference while receiving a frame (where the frame is destroyed anyway) and fast re - sync h ronization to a potential new frame. 3. there is no trx_end interrupt for an ongoing frame reception when re - synchronization is forced by strong interference. the receiver override can be used without performance degradation in combination with any modulation scheme and data rate. ? bit 3:0 - rx_pdt_level the register bits rx_pdt_level desensitize the receiver in steps of 3.1db. table 9 - 11. rx_pdt_level. register bits value description rx_pdt_level 0x00 maximum rx sensitivity 0x0f rx input level > rssi_base_val + 3.1[db] x 14 these register bits desensitize the receiver such that frames with an rssi level below the rx_pdt_level threshold level (if rx_pdt_level > 0) are not received. for a rx_pdt_level > 0 value the threshold level can be calculated according to the following formula: p rf [dbm] > rssi base_val [dbm] + 3 .1 [db] x ( rx_pdt_level - 1) . the rssi base_val is described in section 8.4.3 . if register bits rx_pdt_level = 0 (reset value) all frames with a valid shr and phr are received, independently of their signal strength. if register bits rx_pdt_level > 0, the current consumption of the receiver in a ll rx listening states is reduced by 500 a , refer to parameter i rx_on in section 12.8 .
121 42002c ? mcu wireless ? 08/13 at86rf212b 9.3 transmitter (tx) 9.3.1 overview the atmel at86rf212b transmitter utilizes a direct up - conversion topology. the digital transmitter (tx bbp) generates the in - phase (i) and quadrature (q) component of the modulation signal. a digital - to - analog converter (dac) forms the analog modulation signal. a quadrature mi xer pair converts the analog modulation signal to the rf domain. the power amplifier (pa) provides signal power delivered to the differential antenna pins (rfp, rfn). both, the lna of the receiver input and the pa of the transmitter output are internally c onnected to the bidirectional differential antenna pins so that no external antenna switch is needed. using the default settings, the pa incorporates an equalizer to improve its linearity. the enhanced linearity keeps the spectral side lobes of the transmi t spectrum low in order to meet the requirements of the european 868.3 mhz band. if the pa boost mode is turned on, the equalizer is disabled. this allows to deliver a higher transmit power of up to +10 dbm at the cost of higher spectral side lobes and higher harmonic power. in basic operating mode, a transmission is started from pll_on state by either writing tx_start to register bits trx_cmd (register 0x02, trx_state) or by a rising edge of pin 11 (slp_tr) . in extended operating modes, a transmission might be started automatically depending on the transaction pha se of eithe r rx_aack or tx_aret, refer to section 7.2 . 9.3.2 frame transmit procedure the frame transmit procedure, including writing psdu data into the frame buffer and initiating a transmission, is described in section 10.2 . 9.3.3 spectrum masks the at86rf212b can be operated in different frequency bands, using different power levels, modulation schemes, chip rates, and pulse shaping filters. the occupied bandwidth of the transmit signal depends on the chosen mode of operation. values listed in table 9 - 12 are ba sed on a de fault power setting of +5 dbm and usage of the continuous transmission test mode with frame buffer content {0x01, 0x00}, refer to appendix a ? continuous transmission test mode on page 203 . knowledge of modulation bandwidth, power spectrum, and side lobes is essential for proper system setup that produces non - overlapping channel spacing.
122 42002c ? mcu wireless ? 08/13 a t86rf212b table 9 - 12. physical layer mode and occupied bandwidth . phy mode 99% occupied bandwidth [khz] 6 db bandwidth [khz] 20 db bandwidth [khz] reference detector span rbw vbw sweep etsi en 300 220 [6] rms 2 mhz 100 khz 1 mhz 500 ms fcc 15.247 [5] peak/maxhold 2 mhz 5 % of bandwidth 3 x rbw auto fcc 15.247 [5] peak/maxhold 2 mhz 1% of bandwidth 3 x rbw au to bpsk-20 445 295 430 bpsk-40 775 570 850 bpsk-40- alt 805 620 815 oqpsk - sin -rc-100 450 260 340 oqpsk -rc-100 490 355 365 oqpsk - sin -250 1190 645 1210 oqpsk -rc-250 1245 850 1220 figure 9 - 6 to figure 9 - 12 show power spectra for different modes listed in table 9 - 12 . the spectra were capture d using default settings of atmel at86rf212b . the resolution bandwidth of the spectrum analyzer was set to 30 khz ; the video bandwidth was set to 10 khz . for the oqpsk - sin - 250 modulation and oqpsk - rc - 250 modulation the resolution bandwidth of the spectrum analyzer was set to 100 khz ; the video bandwidth was set to 3 0 khz . figure 9 - 6 . spectrum of bpsk - 20. -70 -60 -50 -40 -30 -20 -10 0 912 913 913 914 914 915 915 916 916 frequency [mhz] power [dbm]
123 42002c ? mcu wireless ? 08/13 at86rf212b figure 9 - 7 . spectrum of bpsk - 40. -70 -60 -50 -40 -30 -20 -10 0 912 913 913 914 914 915 915 916 916 frequency [mhz] power [dbm] figure 9 - 8 . spectrum of bpsk - 40- alt. -70 -60 -50 -40 -30 -20 -10 0 912 913 913 914 914 915 915 916 916 frequency [mhz] power [dbm]
124 42002c ? mcu wireless ? 08/13 a t86rf212b figure 9 - 9 . spectrum of oqpsk - sin - rc- 100 . -70 -60 -50 -40 -30 -20 -10 0 912 913 913 914 914 915 915 916 916 frequency [mhz] power [dbm] figure 9 - 10 . spectrum of oqpsk - rc - 100. -70 -60 -50 -40 -30 -20 -10 0 912 913 913 914 914 915 915 916 916 frequency [mhz] power [dbm]
125 42002c ? mcu wireless ? 08/13 at86rf212b figure 9 - 11 . spectrum of oqpsk - sin - 250 . -70 -60 -50 -40 -30 -20 -10 0 910 912 914 916 918 frequency [mhz] power [dbm] figure 9 - 12 . spectrum of oqpsk - rc - 250. -70 -60 -50 -40 -30 -20 -10 0 910 912 914 916 918 frequency [mhz] power [dbm]
126 42002c ? mcu wireless ? 08/13 a t86rf212b figure 9 - 6 to figure 9 - 12 illustrate typical spectra of the transmitted signals of the atmel at86rf212b and do not claim any limits. refer to the local authority bodies (fcc, etsi, etc.) for further details about definition of power spectral density masks, definition of spurious emission, allowed modulation bandwidth, transmit power, and its limits. 9.3.4 tx output power the maximum output po wer of the transmitter is typically +5 dbm in normal mode and +10 dbm in boost mode. the tx output pow er can be set via register bits tx_pwr (register 0x05, phy_tx_pwr). the output power of the transmitter can be controlled down to - 25 db m with 1 db resolution. to meet the spectral requirements of the european and chinese bands, it is necessary to limit the tx power by appropriate setting of register bits tx_pwr, gc_pa (register 0x05, phy_tx_pwr), and gc_tx_offs (register 0x16, rf _ctrl_0). see table 9 - 15 and table 9 - 18. for recommended values. 9.3.5 tx power ramping to optimize the output power spectral density (psd), individual transmitter blocks are enabled sequentially. a transmit action is started by either the rising edge of pin 11 (slp_tr) or by writing tx_start command to register bits trx_cmd (register 0x 02, trx_state) . one symbol period later the data transmission begins. during this time period, the pll settles to the frequency used for transmission. the pa is enabled prior to the data transmission start. this pa lead time can be adjuste d with the register bits pa_lt ( register 0x16 , rf_c trl_0). the pa is always enabled at the lowest gain value corresponding to gc_pa = 0. then the pa gain is increased automatically to the value set by gc_pa (register 0x05, phy_tx_pwr) . after transmission is completed, tx power ramping down is performed in an inverse order. the control signals associated with tx power ramping are shown in figure 9 - 13 . in this example, the transmission is initiated with the rising edge of pin 11 (slp_tr). the radio transceiver state changes from pll_on to busy_tx. figure 9 - 13 . tx power ramping example (o - qpsk 250kb/s mode) . 0 6 8 10 slp _ tr state pll _ on 2 12 14 16 18 length [ s ] 4 pa pa _ lt modulation busy _ tx tx data using an external rf front - end (refer to section 11.4 ), it may be required to a djust the startup time of the external pa relative to the internal building blocks to optimize the overall psd. this can be achieved using register bits pa_lt (register 0x16, rf_ctrl_0).
127 42002c ? mcu wireless ? 08/13 at86rf212b 9.3.6 register description register 0x05 (phy_tx_pwr): the phy_tx_pwr register controls the output power of the transmitter. figure 9 - 14 . register phy_tx_pwr. bit 7 6 5 4 0x05 pa_boost gc_pa tx_pwr phy_tx_pwr read/write r/w r/w r/w r/w reset value 0 1 1 0 bit 3 2 1 0 0x05 tx_pwr phy_tx_pwr read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7 - pa_boost the register bit pa_boost increases transmit gain by 5db. table 9 - 13. pa_boost. register bits value description pa_boost 0 pa boost mode is disabled 1 pa boost mode is enabled this register bit enables the pa boost mode where the tx output power is increased by approximately 5 db when pa_boost = 1. in pa boost mode, the pa linearity is decreased compared to the normal mode when pa_boost = 0. this leads to higher spectral side lobes of the tx power spectrum and higher power of the harmonics. consequently, the higher tx power settings do not fulfill the regulatory requirements of the european 868.3 mhz band regarding spurious emissions in adjacent frequency bands (see etsi en 300 220 - 1, erc/rec 70 - 03, and erc/dec/(01)04). ? bit 6:5 - gc_pa the register bits gc_pa control the pa gain. table 9 - 14. gc_pa. register bits value description gc_pa 0 - 2.9db 1 - 1.3db 2 - 0.9db 3 0db these register bits control the gain of the pa by changing its bias current. gc_pa needs to be set in trx_off mode only. it can be used to reduce the supply current in tx mode when a reduced tx power is selected with the tx_pwr control word. a reduced pa b ias current causes lower rf gain and lowers the 1 db compression point of the pa. hence, it is advisable to use a reduced bias current of the pa only in combination with lower values of tx_pwr. a reasonable combination of register bits tx_pwr and gc_pa is shown in table 9 - 15 .
128 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 4 :0 ? tx_pwr the register bits tx_pwr determine the tx output power of the radio transceiver. these register bits control the transmitter output power measured at pins rfp/rfn. the value of tx_pwr describes the power reduction relative to the maximum output power. the resolution is 1db per step. since tx_pwr adjusts the gain in the tx path prior to the pa, the pa bias setting is not optimal for increased values of tx_pwr regarding pa efficiency. the pa power efficiency can be improved when pa bias is reduced (decreased gc_pa value) along with the tx power setting (increased tx_pwr value). a recomme nded combination of tx power control (tx_pwr), pa bias control (gc_pa), and pa boost mode (pa_boost) is listed in table 9 - 15 . it is a recommended mapp ing of intended tx power to the 8 - bit word in register 0x05 (phy_tx_pwr) . table 9 - 15. recommended mapping of tx power, frequency band, and phy_tx_pwr (register 0x05) . tx power [dbm] phy_tx_pwr (register 0x0 5) 915 mhz north american band phy modes: bpsk -40 (gc_tx_offs=3) , bpsk -40- alt (gc_tx_offs=3), oqpsk - sin - {250,500,1000} (gc_tx_offs=2) 868.3 mhz european band phy modes: bpsk -20 (gc_tx_offs=3) , oqpsk - sin -rc- {100,200,400} (gc_tx_offs=2) oqpsk -rc- {100,200,400} (gc_tx_offs=3) 780 mhz chinese band phy modes: oqpsk -rc- {250,500,1000} (gc_tx_offs=2) 11 0xc0 0xa0 0xc1 note 1 10 0x c1 0x80 0xe3 9 0x80 0xe4 0xe4 8 0x82 0x e6 0xc5 7 0x83 0xe7 0xe7 6 0x84 0xe8 0xe8 5 0x40 0xe9 0xe9 4 0x86 0xea 0xea note 2 3 0x00 0xcb 0xcb 2 0x01 0xcc 0xcc 1 0x02 0xcd 0xcd 0 0x03 0xad 0xce -1 0x04 0x47 0xcf -2 0x27 0x48 0xaf -3 0x05 0x49 0x26 -4 0x07 0x29 0x27
1 29 42002c ? mcu wireless ? 08/13 at86rf212b phy_tx_pwr (register 0x0 5) -5 0x08 0x90 0x28 -6 0x91 0x91 0x29 -7 0x09 0x93 0x07 -8 0x0b 0x94 0x08 -9 0x0c 0x2f 0x09 -10 0x0d 0x30 0x0a -11 0x0e 0x31 0x0b -12 0x0f 0x0f 0x0c -13 0x10 0x10 0x0d -14 0x11 0x11 0x0e -15 0x12 0x12 0x0f -16 0x13 0x13 0x10 -17 0x14 0x14 0x11 -18 0x15 0x15 0x13 -19 0x16 0x17 0x14 -20 0x17 0x18 0x15 -21 0x19 0x19 0x16 -22 0x1a 0x1a 0x17 -23 0x1b 0x1b 0x18 -24 0x1c 0x1c 0x19 -25 0x1d 0x1d 0x1a note s : 1. spectral side lobes remain < - 54db m / 100 khz measured with a n rms detector outside f c 3mhz . power settings may be used at channel 1 and 2 according to ieee802.15.4c. 2. spectral side lobes remain < - 54db m / 100 khz measured with a n rms detector outside f c 1 mhz . power settings may be used at channel 0 and 3 according to ieee802.15.4c. values of table 9 - 15 are based on a mode dependent setting of register bit s gc_tx_offs (register 0x16, rf_ctrl_0) which is shown in table 9 - 18 .
130 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x16 (rf_ctrl_0): the register rf_ctrl_0 contains control settings to configure the transmit path. figure 9 - 15 . register rf_ctrl_0. bit 7 6 5 4 0x16 pa_lt reserved rf_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 1 1 bit 3 2 1 0 0x16 if_shift_mode gc_tx_offs rf_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 0 1 ? bit 7:6 - pa_lt the register bits pa_lt control lead time of the pa (relative to first chip of tx data). table 9 - 16. pa_lt. register bits value description pa_lt 0 2s 1 4s 2 6s 3 8s these register bits control the lead time of the pa enable signal relative to the tx data start, see figure 9 - 13 . this allows to enable the pa 2, 4, 6, or 8 s before the transmit signal starts. the pa enable signal can also be output at differential pin pair dig3/dig4 to provide a control signal for an external rf front - end; for details, refer to section 11.4 . ? bit 1:0 - gc_tx_offs the register bits gc_tx_offs control the tx power offset. table 9 - 17. gc_tx_offs. register bits value description gc_tx_offs 1 0db 2 +1db 3 +2db all other values are reserved these register bits provide an offset between the tx power control word tx_pwr (register 0x05, phy_tx_pwr) and the actual tx power. this 2 - bit word is added to the tx power control word before it is applied to the circuit block which adjusts the tx power. it can be used to compensate differences of the average tx power depending of the modulat ion format, see table 9 - 18 . table 9 - 18. mode - dependent setting of gc_tx_offs . mode bpsk o - qpsk gc_tx_offs 3 2 exception for oqpsk - rc- {100,200,400} , see table 9 - 15.
131 42002c ? mcu wireless ? 08/13 at86rf212b figure 9 - 16 shows supply currents for o - qpsk modulation based on table 9 - 15 . figure 9 - 16 . supply currents for o - qpsk modulation depending on tx power setting (according to table 9 - 15) . 10.0 12.0 14.0 16.0 18.0 20.0 22.0 24.0 26.0 -11 -9 -7 -5 -3 -1 1 3 5 7 9 11 tx power [dbm] supply current [ma] north america eu china the north american mapping table is optimized for lowest supply current. the more relaxed spectral side lobe requirements of the ieee 802.15.4 standard are fulfilled. the european mapping tables take into account that linearity is needed to keep the out - of - band spurious emissions below the etsi requirements, refer to [6] . regulatory requirements with respect to power density (depending on the frequency band used) are not considered, refer to [7] . the european mapping takes more supply current than the north american map and uses the normal (linearized) pa mode to provide medium output power up to 3 dbm for oqpsk - sin - rc- {100/200/400} modes and 6 dbm for bpsk - 20 m ode. the chinese mapping uses the boost mode to provide higher tx power levels at the expense of higher supply current. as a result, the maximum tx power is 10 dbm for oqpsk - rc - {250/5 00 ) modes . due to great regional distinctions of regulatory requirements, it is not possible to cover all restrictions in this datasheet. manufactures must take the responsibility to check measurement results against the latest regulations of nations into which they market.
132 42002c ? mcu wireless ? 08/13 a t86rf212b 9.4 frame buffer the atmel at86rf212b contains a 128 byte dual port sram . one port is connected to the spi interface, the other one to the internal transmitter and receiver modules. for data communication, both ports are independent and simultaneously accessible. the frame buffer utilizes the sram address space 0x00 to 0x7f fo r rx and tx operation of the radio transceiver and can keep a single ieee 802.15.4 rx or a single tx frame of maximum length at a time. frame buffer access modes are described in section 6.3.2 . frame buffer access conflicts are indicated by an underrun interrupt irq_6 (trx_ur) . note: 1. the irq_6 (tr x_ur) interrupt also occurs on the attempt to write frames longer than 127 octets to the frame buffer (overflow) . in that case the content of the frame buffer cannot be guaranteed. fram e buffer access is only possible if the digital voltage regulator (dvreg) is turned on. this is valid in all device states except in sleep state. an access in p_on state is possible if pin 17 (clkm) provides the 1 mhz master clock. 9.4.1 data management data in f rame buffer (received data or data to be transmitted) remains valid as long as: ? no new frame or other data are written into the buffer over spi ? no new frame is received (in any busy_rx state) ? no state change into sleep state is made ? no reset took place by default, there is no protection of the frame buffer against overwriting. therefore, if a frame is received during frame buffer read access of a previously received frame, interrupt irq_6 (trx_ur) is issued and the stored data might be overwritten. even so, the old frame data can be read , if the spi data rate is higher than the effective over air data rate. for a data rate of 250 kb/s , a minimum spi clock rate of 1 mhz is recommended. finally, the microcontroller should check the transferred frame data integrity by an fcs check. to protect the frame buffer content against being overwritten by newly incoming frames, the radio transceiver state should be changed to p ll_on state after reception. this can be achieved by writing immediately the command pll_on to register bits trx_cmd (register 0x02, trx_state) after receiving the frame , indicated by irq_3 (trx_end) . alternatively, dynamic frame buffer protection can be used to protect received frames against overwriting; for details, refer to section 11.7 . both procedures do not protect the frame buffer from overwriting by the microcontroller. in extended operating mode during tx_aret operation (see section 7.2.4 ), the radio transceiver switches to receive state if an acknowledgement of a previously transmitted frame was requested. during this period, received frames are evaluated but not stored in the frame buffer. this allows the radio transceiver to wait for an acknowledgement frame and retry the frame transmission without writing the frame again. a radio transceiver state change, except a transition to sleep state or a reset, does not affect the frame buffer content. if the radio transceiver is taken into sleep , the frame buffer is powered off and the stored data get lost.
133 42002c ? mcu wireless ? 08/13 at86rf212b 9.4.2 user accessible frame content the atmel at86rf212b supports an ieee 802.15.4 compliant frame format as shown in figure 9 - 17. figure 9 - 17 . at86rf212b frame structure . preamble sequence sfd phr payload lqi fcs 0 4 5 6 n + 3 n + 5 n + 6 frame access length [ octets ] duration 4 octets 1 n octets ( n < = 128 ) 3 octets frame buffer content tx : frame buffer or sram write access rx : sram read access ed rx _ status n + 7 n + 8 rx : frame buffer read access shr not accessible , phy generated a frame comprises two sections, the radio transceiver internally generated shr field and the user accessible part stored in the frame buffer. the shr contains the preamble and the sfd field. the variable frame section contains the phr and the ps du includin g the fcs, see section 8.3 . to access the data, foll ow the procedures described in section 6.3.2 . the frame length information (phr field) and the psdu are stored in the frame buffer. during frame reception, the link quality indicator (lqi) value, the energy detection (ed) value, and the status information (rx_ status) of a received frame are additionally stored , see section 8.8 , section 8.5 , and section 6.3.2 , respectively. the radio transceiver appends these values to the frame data during frame buffer read access. if the sram read access is used to read an rx frame, the frame length field (p hr) can be accessed at address zero . the shr (except the sfd value used to generate the shr) cannot be read by the microcontroller. for frame transmission, the phr and the psdu need s to be stored in the frame buffer. the maximum frame buffer size supported by the radio transceiver is 128 bytes. if the register bit tx_auto_crc_on is set in register 0x0 4 (trx_ctrl_1 ) , the fcs field of the psdu is replaced by the automatically calculated fcs during frame transmission. to manipulate individual bytes of the frame bu ffer a sram write access can be used instead. for non ieee 802.15.4 compliant frames, the minimum frame length supported by the radio transceiver is one byte (frame length field + one byte of data). 9.4.3 interrupt handling access conflicts may occur when readin g and writing data simultaneously at the two independent ports of the frame buffer, tx/rx bbp and spi. these ports have their own address counter that points to the frame buffer?s current address. access violations may cause data corruption and are indicat ed by irq_6 (trx_ur) interrupt when using the frame buffer access mode. note that access violations are not indicated when using the sram access mode.
134 42002c ? mcu wireless ? 08/13 a t86rf212b while rece iving a frame, first the data need to be stored in the frame buffer before reading it. this can be ensured by accessing the frame buffer at least eight symbols (bpsk) or two symbols (o - qpsk) after interrupt irq_2 (rx_start) . when reading the frame data continuously, the spi data rate shall be lower than the current trx bit rate to ensure no underrun interrupt occurs. to avoid access conflicts and to simplify the frame buffer read access, frame buffer empty indication may be used; for details, refer to section 11.6 . when writing data to the frame buffer during frame transmission, the spi data rate shall be higher than th e phy data rate avoiding underrun. the first byte of the psdu data must be available in the frame buffer before sfd transmission is complete, which takes 41 symbol periods for bpsk ( one symbol pa ramp up + 40 symbols shr) and 11 symbol periods for o - qpsk ( one symbol pa ramp up + 10 symbols shr) from the rising edge of pin 11 (slp_tr) (see figure 7 - 2 ). notes: 1. interrupt irq_6 (trx_ur) is valid two octets after irq_2 (rx_start) . 2. if a frame buffer read access is not finished until a new frame is received, an irq_6 (trx_ur) interrupt occurs. nevertheless the old frame data can be read, if the spi data rate is higher than the effective phy data rate. a minimum spi clock rate of 1 mhz is recommended in this case. finally, the microcontroller should check th e integrity of the transferred frame data by calculating the fcs. 3. when writing data to the frame buffer during frame transmission, the spi data rate shall be higher than the phy data rate to ensure no under run interrupt. the first byte of the psdu data mu st be available in the frame buffer before sfd transmission is complete .
135 42002c ? mcu wireless ? 08/13 at86rf212b 9.5 voltage regulators (avreg, dvreg) the main features of the voltage regulator blocks are: ? bandgap stabilized 1.8v supply for analog and digital domain ? low dropout (ldo) voltage regul ator ? avreg/dvreg can be disabled when an external regulated voltage is supplied to avdd/dvdd pin 9.5.1 overview the internal voltage regulators supply a stabilized voltage to the atmel at86rf212b . the avreg provides the regulated 1.8v supply voltage for the analog domain and the dvreg supplies the 1.8v supply voltage for the digital domain. a simplified schematic of the internal analog voltage regulator is shown in figure 9 - 18. figure 9 - 18 . simplified schematic of avreg . bandgap voltage reference 1 . 25 v avdd evdd a simplified schematic of the internal digital voltage regulator is shown in figure 9 - 19. figure 9 - 19 . simplified schematic of dvreg . bandgap voltage reference 1 . 25 v dvdd devdd bias voltage regulator low power voltage regulator digital voltage regulator
136 42002c ? mcu wireless ? 08/13 a t86rf212b the block ?low power voltage regulator? within the ?digital voltage regulator? maintains the dvdd supply voltage at 1.5v (typical) when the atmel at86rf212b voltage regulator is disabled in sleep mode. a ll configuration register values are stored. the low power voltage regulator is always enabled. therefore, its bias current contributes to the leakage current in sleep mode with about 100 na (typical). the voltage regulators (avreg, dvreg) require bypass capacitors for stable operation. the value of the bypass capacitors determine the settling time of the voltage regulators. the bypass capacitors shall be placed as close as possible to the pins and shall be connected to ground with the shortest possible traces (see table 5 - 1 ). 9.5.2 configuration the voltage regulators can be configured by the register 0x10 (vreg_ctrl). it is recommended to use the internal regulators, but it is also possible to supply th e low voltage domains by an external voltage supply. for this configuration, the internal regulators need to be switched off by setting the register bits to the values avreg_ext = 1 and dvreg_ext = 1. a regulated external supply voltage of 1.8v needs to be connected to the pins 13, 14 (dvdd) and pin 29 (avdd) . even if dvdd and avdd are connected to an external supply, it is required to connect v dd to an external su pply. when providing the external supply, ensure a sufficiently long stabilization time before interacting with the at86rf212b . disabling the internal regulators increases total sleep current for dvdd/devdd to 800 na/150na. note that the combined nominal current for devdd is only 2 00na with internal regulators enabled . 9.5.3 data interpretation the status bits avdd_ok = 1 and dvdd_ok = 1 in register 0x10 (vreg_ctrl) indicate an enabled and stable internal supply voltage. reading value zero indicates a disabled or internal supply voltage not settled to the final value. setting avreg_ext = 1 and dvreg_ext = 1 forces the signals avdd_ok and dvd d_ok to one . 9.5.4 register description register 0x10 (vreg_ctrl): the vreg_ctrl register controls the use of the voltage regulators and indicates the status of these. figure 9 - 20 . register vreg_ctrl. bit 7 6 5 4 0x10 avreg_ext avdd_ok reserved vreg_ctrl read/write r/w r r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x10 dvreg_ext dvdd_ok reserved vreg_ctrl read/write r/w r r/w r/w reset value 0 0 0 0
137 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 7 - avreg_ext if set this register bit disables the internal analog voltage regulator to apply an external regulated 1.8v supply for the analog building blocks. table 9 - 19. avreg_ext. register bits value description avreg_ext 0 internal voltage regulator enabled, analog section 1 internal voltage regulator disabled, use external regulated 1.8v supply voltage for the analog section ? bit 6 - avdd_ok this register bit indicates if the internal 1.8v regulated voltage supply avdd has settled. the bit is set to logic high, if avreg_ext = 1. table 9 - 20. avdd_ok. register bits value description avdd_ok 0 analog voltage regulator is disabled or supply voltage not stable 1 analog supply voltage is stable ? bit 3 - dvreg_ext if set this register bit disables the internal digital voltage regulator to apply an external regulated 1.8v supply for the digital building blocks. table 9 - 21. dvreg_ext. register bits value description dvreg_ext 0 internal voltage regulator enabled, digital section 1 internal voltage regulator disabled, use external regulated 1.8v supply voltage for the digital section ? bit 2 - dvdd_ok this register bit indicates if the internal 1.8v regulated voltage supply dvdd has settled. the bit is set to logic high, if dvreg_ext = 1. table 9 - 22. dvdd_ok. register bits value description dvdd_ok 0 digital voltage regulator is disabled or supply voltage not stable 1 digital supply voltage is stable note: 1. while the reset value of this bit is zero, any practical access to the register is only possible when dvreg is active. so this bit is normally always read out as one.
138 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x0c (trx_ctrl_2): the trx_ctrl_2 register is a multi - purpose control register to control various settings of the radio transceiver. figure 9 - 21 . register trx_ctrl_2. bit 7 6 5 4 0x0c rx_safe_mode trx_off_avdd_ en oqpsk_scram_ en alt_spectrum trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x0c bpsk_oqpsk sub_mode oqpsk_data_rate trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 1 0 0 ? bit 6 - trx_off_avdd_en the register bit trx_off_avdd_en enables analog voltage regulator in trx_off state. table 9 - 23. trx_off_avdd_en. register bits value description trx_off_avdd_en 0 during trx_off state analog voltage regulator is disabled 1 during trx_off state analog voltage regulator is enabled if this register bit is set, the analog voltage regulator remains enabled in trx_off state. this provides for a faster rx or tx turn - on time. it is especially useful when a short stopover is made in trx_off state. the recharge time for capacitances is avoided in this case . the current consumption increases by 100 a ( typical ) .
139 42002c ? mcu wireless ? 08/13 at86rf212b 9.6 battery monitor (batmon) the main feat ures of the battery monitor are: ? configurable voltage reference threshold from 1.7 0 v to 3.675v ? i nterrupt on low - supply voltage condition ? continuous batmon status monitor as a register flag 9.6.1 overview the atmel at86rf212b battery monitor (batmon) detects and flags a low external supply voltage level. provided on pin 28 (evdd). t he external voltage supply pin 28 (evdd) is continuosly compared with the internal threshold voltage to detect a low voltage supply level . in this case batmon_irq is triggered and batmon_ok flag is cleared to indicate undervoltage condition, see figure 9 - 22. figure 9 - 22 . simplified schematic of batmon . batmon _ hr batmon _ vth 4 evdd threshold voltage batmon _ ok ? 1 ? batmon _ irq for input - to - output mapping see control register 0 x 11 ( batmon ) dac + - d q clear 9.6.2 configuration the batmon can be configured using the register 0x11 (batmon). register bits batmon_vth sets the threshold voltage. it is configurable with a resolution of 75 mv in the upper voltage range (batmon_hr = 1) and with a resolution of 50 mv in the lower voltage range (batmon_hr = 0), for details refer to register 0x11 (batmon). 9.6.3 data interpretation the signal register bit batmon_ok of register 0x11 (batmon) monitors the current value of the battery voltage: ? if batmon_ok = 0, the battery voltage is lower than the threshold voltage ? if batmon_ok = 1, the battery voltage is higher than the threshold voltage after setting a new threshold, the value batmon_ok should be read ou t to verify the current supply voltage value. note: 1. the battery monitor is inactive during p_on, and sleep states, see register bits trx_status (register 0x01, trx_status).
140 42002c ? mcu wireless ? 08/13 a t86rf212b 9.6.4 interrupt handling a supply voltage drop below the configured threshold value is indicated by an interrupt irq_7 (bat_low) , see section 6.7 . note: 1. the atmel at86rf212b irq_7 (bat_low) interrupt is issued only if batmon_ok changes from one to zero . irq_7 (bat_low) interru pt is not generated under following conditions : ? the battery voltage remained below 1.8v threshold value on power - on (batmon_ok was never one ), or ? a new threshold is set, which is still above the current supply voltage (batmon_ok remains zero ). when the bat tery voltage is close to the programmed threshold voltage, noise or temporary voltage drops may generate unwanted interrupts. to avoid this: ? disable the irq_7 (bat_low) in register 0x0e (irq_mask) and treat the battery as empty, or ? set a lower threshold value. 9.6.5 register description register 0x11 (batmon): the batmon register configures the battery monitor to compare the supply voltage at pin 28 (evdd) to the threshold. additionally, the supply voltage status at pin 28 (evdd) can be read from register bit batmon_ok according to the actual batmon settings. fi gure 9 - 23 . register batmon. bit 7 6 5 4 0x11 pll_lock_cp reserved batmon_ok batmon_hr batmon read/write r r/w r r/w reset value 0 0 0 0 bit 3 2 1 0 0x11 batmon_vth batmon read/write r/w r/w r/w r/w reset value 0 0 1 0 ? bit 5 - batmon_ok the register bit batmon_ok indicates the level of the external supply voltage with respect to the programmed threshold batmon_vth. table 9 - 24. batmon_ok. register bits value description batmon_ok 0 the battery voltage is below the threshold 1 the battery voltage is above the threshold
141 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 4 - batmon_hr the register bit batmon_hr sets the range and resolution of the battery monitor. table 9 - 25. batmon_hr. register bits value description batmon_hr 0 enables the low range, see batmon_vth 1 enables the high range, see batmon_vth ? bit 3:0 ? batmon_vth the threshold values for the battery monitor are set by register bits batmon_vth. table 9 - 26. battery monitor threshold voltages . value batmon_vth voltage [v] batmon_hr = 1 voltage [v] batmon_hr = 0 0x0 2.550 1.70 0x1 2.625 1.75 0x2 2.700 1.80 0x3 2.775 1.85 0x4 2.850 1.90 0x5 2.925 1.95 0x6 3.000 2.00 0x7 3.075 2.05 0x8 3.150 2.10 0x9 3.225 2.15 0xa 3.300 2.20 0xb 3.375 2.25 0xc 3.450 2.30 0xd 3.525 2.35 0xe 3.600 2.40 0xf 3.675 2.45
142 42002c ? mcu wireless ? 08/13 a t86rf212b 9.7 crystal oscillator (xosc) and clock output (clkm) the main crystal oscillator features are: ? 16 mhz amplitude - controlled crystal oscillator ? fast settling time after leaving sleep state ? configurable trimming capacitance array ? c onfigurable clock output (clkm) 9.7.1 overvie w the crystal oscillator generates the reference frequency for the atmel at86rf212b . all other internally generated frequencies of the radio transceiver are derived from this frequency. therefore, the overall syst em performance is mainly determined by the accuracy of crystal reference frequency. the external components of the crystal oscillator should be selected carefully and the related board layout sh ould be done with caution (see chapter 5 ). the register 0x12 (xosc_ctrl) provides access to the control signals of the oscillator. two operating modes are supported. it is recommended to u se the integrated oscillator setup as described in figure 9 - 24 . alternatively, a reference frequency can be fed to the internal circuitry by using an external clock reference as shown in figure 9 - 25. 9.7.2 integrated oscillator setup using the internal oscillator, the oscillation frequency depends on the load capacitance between the crystal pin 26 (xtal1) and pin 25 (xtal2). the total load capacitance c l must b e equal to the specified load capacitance of the crystal itself. it consists of the external capacitors cx and parasitic capacitances connected to the xtal nodes. figure 9 - 24 shows all parasitic capacitances, such as pcb stray capacitances and the pin input capacitance, summarized to c par . figure 9 - 24 . simplified xosc schematic with external components . cx cx 16mhz xtal2 xtal1 evdd c trim c trim c par c par at86rf212b pcb xtal_trim[3:0] evdd v dd xtal_trim[3:0]
143 42002c ? mcu wireless ? 08/13 at86rf212b additional internal trimming capacitors c trim are available. any value in the range from 0 pf to 4.5 pf with a 0.3 pf resolution is selectable using xtal_trim of register 0x12 (xosc_ctrl). to calculate the total load capacitance, t he following formula can be used c l [pf] = 0.5 x (cx [pf] + c trim [pf] + c par [pf] ). the atmel at86rf212b trimming capacitors provide the possibility of reducing frequency deviations caused by production process variations or by external components tolerances. note that the oscillation frequency can only be reduced by increasing the trimming capacitance. the f requency deviation caused by one step of c trim decreases with increasing crystal load capacitor values. an amplitude control circuit is included to ensure stable operation under different operating conditions and for different crystal types. enabling the c rystal oscillator in p_on state and after leaving sleep state causes a slightly higher current during the amplitude build - up phase to guarantee a short start - up time. at stable operation, the current is reduced to the amount necessary for a robust operatio n. this also keeps the drive level of the crystal low. generally, crystals with a higher load capacitance are less sensitive to parasitic pulling effects caused by external component variations or by variations of board and circuit parasitic. on the other hand, a larger crystal load capacitance results in a longer start - up time and a higher steady state current consumption. 9.7.3 external reference frequency setup when using an external reference frequency, the signal must be connected to pin 26 (xtal1) as indica ted in figure 9 - 25 and the register bits xtal_mode (register 0x12, xosc_ctrl) need to be set to the external oscillator mode for power saving reasons. the oscillation peak - to - peak amplitude shall be between 100 mv and 500mv , the optimum range is between 400 mv and 500 mv . pin 25 (xtal2) should not be wired. it is possible, among other waveforms, to use sine and square wave signals. note: 1. the quality of the external reference (that is phase noise) determines the system performance. figure 9 - 25 . setup for using an external frequency reference . xtal2 xtal1 at86rf212b pcb 16mhz 9.7.4 master clock signal output (clkm) the generated reference clock signal can be fed into a microcontroller using pin 17 (clkm). the internal 16 mhz raw clock can be divided by an internal prescaler. thus, clock frequencies of 16 mhz , 8 mhz , 4 mhz , 2 mhz , 1 mhz , 250 khz , or the current shr symbol ra te frequency can be supplied by pin 17 (clkm) . the clkm frequency, update scheme, and pin driver strength is configurable using register 0x03 (trx_ctrl_0). there are two possibilities how a n clkm frequency change gets effective. if clkm_sha_sel = 0 and/or clkm_ctrl = 0, changing the
144 42002c ? mcu wireless ? 08/13 a t86rf212b register bits clkm_ctrl (register 0x03, trx_ctrl_0 immediately affects a glitch free the clkm clock rate change . otherwise (clkm_sha_sel = 1 and clkm_ctrl > 0 before changing the register bits clkm_ctrl), the new clock rate is supplied when leaving the sleep state the next time. to reduce power consumption and spurious emissions, it is recommended to turn off the clkm clock when not in use or to reduce its dri ver s trength to a minimum, refer to section 1.3 . note: 1. during reset procedure, see section 7.1.4.5 , register bits clkm_ctrl are shadowed. although the clock setting of clkm remains after reset, a read access to register bits clkm_ctrl delivers the reset value one . for that reason, it is recomm ended to write the previous configuration (before reset) to register bits clkm_ctrl (after reset) to align the radio transceiver behavior and register configuration. otherwise, the clkm clock rate is set back to the reset value (1 mhz ) after the next sleep cycle. for example, if the clkm clock rate is configured to 16 mhz , the clkm clock rate remains at 16 mhz after a reset, however, the register bits clkm_ctrl are set back to one . since clkm_sha_sel reset value is one , the clkm clock rate changes to 1 mhz afte r the next sleep cycle if the clkm_ctrl setting is not updated . 9.7.5 clock jitter the atmel at86rf212b provides receiver sensitivities up to - 110 dbm . detection of such small rf signals requires very clean scenarios with respect to noise an d interference. harmonics of digital signals may degrade the performance if they interfere with the wanted rf signal. a small clock jitter of digital signals can spread harmonics over a wider frequency range, thus reducing the power of certain spectral lin es. at86rf212b provides such a clock jitter as an optional feature. the jitter module is working for the receiver part and all i/o signals, for example clkm if enabled. the transmitter part and rf frequency genera tion are not influenced. 9.7.6 register description register 0x03 (trx_ctrl_0): the trx_ctrl_0 register controls the driver current of the digital output pads and the clkm clock rate. figure 9 - 26 . register trx_ctrl _0. bit 7 6 5 4 0x03 pad_io pad_io_clkm trx_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 0 1 bit 3 2 1 0 0x03 clkm_sha_sel clkm_ctrl trx_ctrl_0 read/write r/w r/w r/w r/w reset value 1 0 0 1
145 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 5:4 - pad_io_clkm these register bits set the output driver current of pin clkm. it is recommended to reduce the driver strength to 2ma (pad_io_clkm = 0) if possible. this reduces power consumption and spurious emissions. table 9 - 27. pad_io_clkm. register bits value description pad_io_clkm 0 2ma 1 4ma 2 6ma 3 8ma ? bit 3 - clkm_sha_sel the register bit clkm_sha_sel defines whether a new clock rate (defined by clkm_ctrl) is set immediately or gets effective after the next sleep cycle. table 9 - 28. clkm_sha_sel. register bits value description clkm_sha_sel 0 clkm clock rate change appears immediately 1 clkm clock rate change appears after sleep cycle ? bit 2:0 - clkm_ctrl the register bits clkm_ctrl set the clock rate of pin 17 (clkm). table 9 - 29. clkm_ctrl. register bits value description clkm_ctrl 0 no clock at pin 17 (clkm), pin set to logic low 1 1mhz 2 2mhz 3 4mhz 4 8 mhz 5 16mhz 6 250khz 7 ieee 802.15.4 symbol rate frequency note: 1. if a clock rate is selected between 1mhz and 16mhz and pin slp_tr is set to logic high in state trx_off, the trx delivers additional 35 clock cycles before entering state sleep. the clkm_ctrl setting seven has special behavior , for details refer to table 9 - 30.
146 42002c ? mcu wireless ? 08/13 a t86rf212b table 9 - 30. ieee 802.15.4 symbol rate frequencies. bpsk_oqpsk (1) sub_mode (1) frequency 0 0 20 khz 0 1 4 0 khz 1 0 25 khz 1 1 62.5 khz note: 1. refer to section 9.1.5 . register 0x0a (rx_ctrl): the register rx_ctrl configures the clock jitter module. figure 9 - 27 . register rx_ctrl. bit 7 6 5 4 0x0a reserved jcm_en reserved rx_ctrl read/write r/w r/w r/w r/w reset value 0 0 0 1 bit 3 2 1 0 0x0a reserved rx_ctrl read/write r/w r/w r/w r/w reset value 0 1 1 1 ? bit 5 - jcm_en the register bit jcm_en controls digital clock jitter module. table 9 - 31. jcm_en. register bits value description jcm_en 0 digital clock jitter module is disabled 1 digital clock jitter module is enabled note: 1. jcm_en will be always disabled within transmitting and filter tuning.
147 42002c ? mcu wireless ? 08/13 at86rf212b register 0x12 (xosc_ctrl): the xosc_ctrl register controls the operation of the crystal oscillator. figure 9 - 28 . register xosc_ctrl. bit 7 6 5 4 0x12 xtal_mode xosc_ctrl read/write r/w r/w r/w r/w reset value 1 1 1 1 bit 3 2 1 0 0x12 xtal_trim xosc_ctrl read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7:4 - xtal_mode the register bits xtal_mode set the operating mode of the crystal oscillator. table 9 - 32. xtal_mode. register bits value description xtal_mode 0x4 internal crystal oscillator disabled, use external reference frequency 0xf internal crystal oscillator enabled and xosc voltage regulator enabled all other values are reserved for normal operation the default value is set to xtal_mode = 0xf after reset. using an external clock source it is recommended to set xtal_mode = 0x 4 . ? bit 3:0 - xtal_trim the register bits xtal_trim control internal capacitance arrays connected to pin 26 (xtal1) and pin 25 (xtal2). table 9 - 33. xtal_trim. register bits value description xtal_trim 0x0 a capacitance value in the range from 0pf to 4.5pf is selectable with a resolution of 0.3pf. valid values are [0xf, 0xe, ?, 0x0].
148 42002c ? mcu wireless ? 08/13 a t86rf212b 9.8 frequency synthesizer (pll) the main pll features are: ? generate rx/tx frequencies for all supported channels ? autonomous calibration loops for stable operation within the operating range ? two pll interrupts for status indication ? fast pll settling to support frequency hopping 9.8.1 overview the pll generates the rf frequencies for the atmel at86rf212b . during receive and transmit operations, the frequency synthesizer operates as a local oscillator. the frequency synthesizer is implemented as a fractional - n pll with analog compensation of the fractional phase error. the voltage - controlled oscillator (vc o) is running at double of the rf frequency. two calibration loops ensure correct pll functionality within the specified operating limits. 9.8.2 rf channel selection the pll is designed to support : ? o ne channel in the european srd band from 863 mhz to 870 mhz at 868.3 mhz according to ieee 802.15.4 (channel k = 0) ? 10 channels in the north american ism band from 902 mhz to 928 mhz with a channel spacing of 2 mhz according to ieee 802.15.4. the center frequency of these channels is defined as : fc[mhz] = 906 [mhz] + 2 [mhz] x (k ? 1), for k = 1, 2, ..., 10 w here k i s the chann el number. ? f our channels in the chinese wpan band from 779 mhz to 787 mhz with a channel spacing of 2 mhz according to ieee 802.15.4c - 2009 and ieee 802.15.4 - 2011. center frequencies are 780 mhz , 782 mhz , 784 mhz , and 786 mhz . additionally, the pll supports all frequencies from 769 mhz to 935mhz with 1mhz frequency spacing and four bands with 100khz spacing from 769.0 mhz to 794.5mhz, 857.0 mhz to 882.5mhz , and 902 .0 mhz to 928.5mhz. the frequency is select ed by register bits cc_band ( register 0x14, cc_ctrl_1) and register bits cc_number of ( register 0x13, cc_ctrl_0).
149 42002c ? mcu wireless ? 08/13 at86rf212b table 9 - 34 shows the settings of cc_band and cc_number. table 9 - 34. frequency bands and numbers . cc_band cc_number description 0 not used european and north american channels according to ieee 802.15.4; frequency selected by register bits channel (register 0x08, phy_cc_cca) , refer to section 9.8.6 1 0x00 ? 0xff 769.0 mhz ? 794.5mhz f c [mhz] = 769.0 [mhz] + 0.1 [mhz] x cc_number 2 0x00 ? 0xff 857.0 mhz ? 882.5mhz f c [mhz] = 857. 0 [mhz] + 0.1 [mhz] x cc_number 3 0x00 ? 0xff 903.0 mhz ? 928.5mhz f c [mhz] = 903. 0 [mhz] + 0.1 [mhz] x cc_number 4 0x00 ? 0x 5e 769 mhz ? 863mhz f c [mhz] = 769 [mhz] + 1 [mhz] x cc_number 5 0x00 ? 0x 66 833 mhz ? 935mhz f c [mhz] = 833 [mhz] + 1 [mhz] x cc_number 6 0x00 ? 0xff 902.0 mhz ? 927.5mhz f c [mhz] = 902 . 0 [mhz] + 0.1 [mhz] x cc_number 7 0x00 ? 0xff r eserved 9.8.3 pll settling time and frequency agility when the pll is enabled during state transition from trx_off to pll_on or rx_on, the settling time is typically t tr4 = 170s , includin g pll self calibration. for more information, refer to table 7 - 2 and section 9.8.4 . a lock of the pll is indicated with an interrupt irq_0 (pll_lock) . switching between channels within a frequency band in pll_on or rx_on states is typically done within t pll_sw = 11 s . this makes the radio transceiver highly suitable for frequency hopping applications. the pll frequency in pll_on and receive states is 1 mhz below the pll frequency in transmit states. when starting the transmit procedure, the pll frequency is changed to the transmit frequency within a period of t rx_tx = 16s before really starting the transmission. after the transmission, the pll settles back to the receive frequency within a period of t tx_rx = 32s . this frequency step does not generate an interrupt irq_0 (pll_lock) or irq_1 (pll_unlock) within these periods. 9.8.4 calibration loops due to variation of temperature, supply voltage and part - to - part variations of the radio transceiver the vco characteristics may vary. to ensure a stable operation, two automated control loops are implemented, center frequency (cf) tuning and delay cell (dcu) calibration. both calibration loops are initiated automatically when the pll is enabled during state transition from trx_off to pll_on or rx_on state. additionally, both calibration loops are initiated when the pll changes to a different frequency setting. if the pll o perates for a long time on the same channel, for example more than five minutes , or the operating temperature changes significantly, it is recommended to initiate the calibration loops manually. both atmel at86rf2 12b calibration loops can be initiated manually by spi command. to start the calibration, the device should be in state pll_on. the center frequency
150 42002c ? mcu wireless ? 08/13 a t86rf212b calibration can be initiated by setting pll_cf_start = 1 (register 0x1a, pll_cf). the calibration loop is c ompleted when the irq_0 (pll_lock) occurs , if enabled . the duration of the center frequency calibration loop depends on the difference betwee n the current cf value and the final cf value. during the calibration, the cf value is incremented or decremented. each step takes t pll_cf = 8 s . the minimum time is 8 s ; the maximum time is 270s . the recommended procedure to start the center frequency cali bration is to read the register 0x1a (pll_cf), to set th e pll_cf_start register bit to one , and to write th e value back to the register. the delay cell calibration can be initiated by setting th e bit pll_dcu_start of register 0x1b (pll_dcu) to one . the delay time of the programmable delay unit is adjusted to the correct value. the calibration works as successiv e approximation and is independen t of the values in the register 0x1b (pll_dcu). the duration of the calibration is t pll_dcu = 10s . during both calibration processes, no correct receive or transmit operation is possibl e. the recommended state for the calibration is therefore pll_on, but calibration is not blocked at receive or transmit states. both calibrations can be executed concurrently. 9.8.5 interrupt handling two different interrupts indicate the pll status (refer to re gister 0x0f). irq_0 (pll_lock) indicates that the pll has locked. irq_1 (pll_unlock) interrupt indicates an unexpected u nlock condition. a pll_lock interrupt clears any preceding pll_unlock interrupt automatically and vice versa. an irq_0 (pll_lock) interrupt is supposed to occur in the following situations: ? state change from trx_off to pll_on / rx_on ? frequency setting change in states pll_on / rx_on ? a manually sta rted center frequency calibration has been completed all other pll_lock interrupt events indicate that the pll locked again after a prior unlock happened. an irq_1 (pll_unlock) interrupt occurs in the following situations: ? a manually initiated center frequency calibration in states pll_on / (rx_on) ? frequency setting change in states pll_on / rx_on any other occurrences of irq_1 (pll_unlock) indicate erroneous behavior and require checking of the actual device status. pll_lock and pll_unlock affect the beha vior of the transceiver: in states busy_tx and busy_tx_aret the transmission is stopped and the transceiver returns into state pll_on. during busy_rx and busy_rx_aack, the transceiver returns to state rx_on and rx_aack_on, respectively, once the pll has lo cked. note s : 1. an atmel at86rf212b interrupt irq_0 (pll_lock) clears any preceding irq_1 (pll_unlock) interrupt automatically and vice versa. 2. the state transition from busy_tx / busy_tx_aret to pll_on / tx_aret_on after successful transmission does not generate an irq_0 (pll_lock) within the settling period.
151 42002c ? mcu wireless ? 08/13 at86rf212b 9.8.6 register description register 0x08 (phy_cc_ cca): the phy_cc_cca register is a multi - purpose register that controls cca configuration, cca measurement, and the ieee 802.15.4 channel setting. figure 9 - 29 . register phy_cc_cca. bit 7 6 5 4 0x08 cca_request cca_mode channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x08 channel phy_cc_cca read/write r/w r/w r/w r/w reset value 0 1 0 1 the register phy_cc_cca contains register bits to set the channel center frequency according to channel page 0 of ieee 802.15.4 for the european and north american band. a write access to the register bits channel sets the channel number; a read access sho ws the current channel number. it is necessary to set register bits cc_band (register 0x14, cc_ctrl_1) to zero in order to enable the above described channel selection, see table 9 - 34. ? bit 4:0 - channel the register bits channel define the rx/tx channel. the channel assignment is according to ieee 802.15.4. channel center frequency according to channel page 0 of ieee 802.15.4 ? 2003/2006/2011 for the european and north american band. table 9 - 35. channel. register bits value description channel 0x00 868.3mhz 0x01 906mhz 0x02 908mhz 0x03 910mhz 0x04 912 mhz 0x05 914mhz 0x06 916mhz 0x07 918mhz 0x08 920mhz 0x09 922mhz 0x0a 924mhz all other values are reserved
152 42002c ? mcu wireless ? 08/13 a t86rf212b register 0x13 (cc_ctrl_0): the cc_ctrl_0 register controls the frequency selection, if the selection by channel (register 0x08, phy_cc_cca) is not used. figure 9 - 30 . register cc_ctrl_0. bit 7 6 5 4 0x13 cc_number cc_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x13 cc_number cc_ctrl_0 read/write r/w r/w r/w r/w reset value 0 0 0 0 register 0x13 (cc_ctrl_0) : this register controls the center frequency if the selection by channel number according to ieee 802.15.4 is not used. table 9 - 36. register 0x13 (cc_ctrl_0) . bit 7 6 5 4 3 2 1 0 name cc_number[7:0] read/write r/w reset value 0 0 0 0 0 0 0 0 ? bit 7:0 - cc_number table 9 - 37. cc_number. register bits value description cc_number 0x00 alternative frequency selection with 100khz or 1mhz frequency spacing. cc_band = 0x0: not used cc_band = 0x1: valid values are [0xff, 0xfe, ?,0x00] cc_band = 0x2: valid values are [0xff, 0xfe, ?,0x00] cc_band = 0x3: valid values are [0xff, 0xfe, ?,0x00] cc _band = 0x4: valid values are [0x5e, 0x5d, ?,0x00] cc_band = 0x5: valid values are [0x66, 0x65, ?,0x00] cc_band = 0x6: valid values are [0xff, 0xfe, ?,0x00] all other values are reserved
153 42002c ? mcu wireless ? 08/13 at86rf212b register 0x14 (cc_ctrl_1): the cc_ctrl_1 register controls the selection of the frequency bands. figure 9 - 31 . register cc_ctrl_1. bit 7 6 5 4 0x14 reserved cc_ctrl_1 read/write r/w r/w r/w r reset value 0 0 0 0 bit 3 2 1 0 0x14 reserved cc_band cc_ctrl_1 read/write r r/w r/w r/w reset value 0 0 0 0 ? bit 2:0 - cc_band the register bits cc_band control the selection for ieee 802.15.4 channel band and additional frequencies bands. table 9 - 38. cc_band. register bits value description cc_band 0 the ieee 802.15.4 channel within register bits channel is selected 1 the frequency band one is selected 2 the frequency band two is selected 3 the frequency band three is selected 4 the frequency band four is selected 5 the frequency band five is selected 6 the frequency band six is selected all other values are reserved if the register bits cc_band and cc_number are used, the frequency mapping is described in table 9 - 34. register 0x1a (pll_cf): the pll_cf register controls the operation of the center frequency calibration loop. figure 9 - 32 . register pll_cf. bit 7 6 5 4 0x1a pll_cf_start reserved pll_cf read/write r/w r/w r/w r/w reset value 0 1 0 0 bit 3 2 1 0 0x1a reserved pll_cf read/write r/w r/w r/w r/w reset value 1 0 0 0
154 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 7 - pll_cf_start manual start of center frequency calibration cycle. table 9 - 39. pll_cf_start. register bits value description pll_cf_start 0 center frequency calibration cycle is finished 1 initiates center frequency calibration cycle pll_cf_start = 1 initiates the center frequency calibration. the calibration cycle has finished after t pll_cf = 8 s (typ.). the register bit is cleared immediately after finishing the calibr ation. register 0x1b (pll_dcu): the pll_dcu register controls the operation of the delay cell calibration loop. figure 9 - 33 . register pll_dcu. bit 7 6 5 4 0x1b pll_dcu_start reserved pll_dcu read/write r/w r/w r/w r/w reset value 0 1 0 0 bit 3 2 1 0 0x1b reserved pll_dcu read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7 - pll_dcu_start manual start of delay cell calibration cycle. table 9 - 40. pll_dcu_start. register bits value description pll_dcu_start 0 delay cell calibration cycle is finished 1 initiates delay cell calibration cycle pll_dcu_start = 1 initiates the delay cell calibration. the calibration cycle has finished after t pll_dcu = 10s . the register bit is cleared immediately after finishing the calibration.
155 42002c ? mcu wireless ? 08/13 at86rf212b registe r 0x11 (batmon): the batmon register configures the battery monitor to compare the supply voltage at pin 28 (evdd) to the threshold. additionally, the supply voltage status at pin 28 (evdd) can be read from register bit batmon_ok according to the actual ba tmon settings. figure 9 - 34 . register batmon. bit 7 6 5 4 0x11 pll_lock_cp reserved batmon_ok batmon_hr batmon read/write r r/w r r/w reset value 0 0 0 0 bit 3 2 1 0 0x11 batmon_vth batmon read/write r/w r/w r/w r/w reset value 0 0 1 0 ? bit 7 - pll_lock_cp the register bit pll_lock_cp signals the current status of pll lock comparator output. table 9 - 41. pll_lock_cp. register bits value description pll_lock_cp 0 pll is currently unlocked 1 pll is currently locked
156 42002c ? mcu wireless ? 08/13 a t86rf212b 9.9 automatic filter tuning (ftn) 9.9.1 overview the atmel at86rf212b ftn is incorporated to compensate device tolerances for temperature, supply voltage variations as well as part - to - part variations of the radio transceiver. the filter - tuning result is used to correct the analog baseband filter transfer function and the pll loop - filter time co nstant, refer to chapter 4 . an ftn calibration cycle is initiated automatically when entering the trx_off state from the p_on, sleep, or reset state. although recei ver and transmitter are very robust against these variations, it is recommended to initiate the ftn manually if the radio transceiver does not use the sleep state. if necessary, a calibration cycle is to be initiated in states trx_off, pll_on or rx_on . thi s applies in particular for the high data rate modes with a much higher sensitivity against bpf transfer function variations. the recommended calibration interval is five minutes or less , if the at86rf212b operate s always in an active state (pll_on, tx_aret_on, rx_on, and rx_aack_on) . 9.9.2 register description register 0x18 (ftn_ctrl): the ftn_ctrl register controls the operation of the filter tuning network calibration loop. figure 9 - 35 . register ftn_ctrl. bit 7 6 5 4 0x18 ftn_start reserved ftn_ctrl read/write r/w r/w r/w r/w reset value 0 1 0 1 bit 3 2 1 0 0x18 reserved ftn_ctrl read/write r/w r/w r/w r/w reset value 1 0 0 0 ? bit 7 - ftn_start manual start of a filter calibration cycle. table 9 - 42. ftn_start. register bits value description ftn_start 0 filter calibration is finished 1 initiates filter calibration cycle ftn_start = 1 initiates the filter tuning network calibration. when the calibration cycle has finished after t ftn = 25 s (typ.). the register bit is cleared immediately after finishing the calibration.
157 42002c ? mcu wireless ? 08/13 at86rf212b 10 radio transceiver usage this section describes basic procedures to receive and transmit frames using the atmel at86rf212b . for a detailed programming description refer to reference [ 11 ] . 10.1 frame receive procedure a frame reception comprises of two actions: the transceiver listens for, rece ives, and demodulates the frame to the frame buffer and signals the reception to the microcontroller. after or during that process, the microcontroller can read the available frame data from the frame buffer via the spi interface. while being in state rx_o n or rx_aack_on, the radio transceiver searches for incoming frames with the selected modulation scheme and data rate on the selected channel . assuming the appropriate interrupts are enabled, the detection of a frame is indicated by interrupt irq_2 (rx_start) . when the frame reception is completed, interrupt irq_3 (trx_end) is issued. different frame buffer read access scenarios are recommended for: ? non - time critical applications read access starts after irq_3 (trx_end) ? time - critical applications read access starts after irq_2 (rx_start) for non - time - critical operations, it is recommended to wait for interrupt irq_3 (trx_end) before starting a frame buffer read access. figure 10- 1 illustrates the frame receive procedure using irq_3 (trx_end) . figure 10 - 1 . transactions between at86rf212b and microcontroller during receive . at 86 rf 2 12 b microcontroller irq issued (irq_2) read irq status, pin 24 (irq) deasserted irq issued (irq_3) read frame data (frame buffer access) read irq status, pin 24 (irq) deasserted critical protocol timing could require starting the frame buffer read access after interrupt irq_2 (rx_start) . the first byte of the frame data can be read 32 s after the irq_2 (rx_start) interrupt. the microcontroller must ensure to read slower than the frame is re ceived. otherwise a frame buffer under run occurs, irq_6 (trx_ur) is issued, and the frame data may be not valid. to avoid this, the frame buffer read access ca n be controlled by using a frame buffer empty indicator, refer to section 11.6 .
158 42002c ? mcu wireless ? 08/13 a t86rf212b 10.2 frame transmit procedure a frame transmission comprises of two acti ons, a write to frame buffer and the transmission of its content s . both actions can be run in parallel if required by critical protocol timing. figure 10- 2 illustrates the atmel at86rf212b frame transmit procedure, when writing and transmitting the frame consecutively. after a frame buffer write access, the frame transmission is initiated by asserting pin 11 (slp_tr) or writing command tx_start to register bits trx_cmd (register 0x02, trx_s tate) . the transceiver must be either in pll_on state for basic operating mode or tx_aret_on state for extended operating mode . the completion of the transaction is indicated by interrupt irq_3 (trx_end) . figure 10 - 2 . transaction between at86rf212b and microcontroller during transmit . at 86 rf 2 12 b microcontroller write frame data ( frame buffer access ) write trx _ cmd = tx _ start , or assert pin 11 ( slp _ tr ) irq _ 3 ( trx _ end ) issued read irq _ status register , pin 24 ( irq ) deasserted alternatively for time critical applications when the frame start transmission time needs to be minimized , a frame transmission task can be started first . then it can be followed by the frame buffer write access event ( populating psdu data) . this way the d ata to be transmitted is needs to be written in the transmit frame buffer as the transceiver initializes and begins shr transmission ; refer to figure 10- 3 . by i nitiating a transmission, either by asserting pin 11 (slp_tr) or writing a tx_start command to register bits trx_cmd (register 0x02, trx_state), the radio transceiver starts transmitting the shr, which is internally generated. front end initializ ation takes one symbol period to settle pll and ramp up the pa. shr transmission takes another 40 symbol periods for bpsk or 10 symbol periods delay for o - qpsk. by this time t he phr must be available in the frame buffer. furthermore, the spi data rate must be higher than the phy data rate to avoid a frame buffer underrun , which is indicated by irq_6 (trx_ur) , refer to section 9.1 . figure 10 - 3 . time optimized frame transmit procedure . irq _ 3 ( trx _ end ) issued write frame data ( frame buffer access ) write trx _ cmd = tx _ start , or assert pin 11 ( slp _ tr ) at 86 rf 2 12 b microcontroller read irq _ status register , pin 24 ( irq ) deasserted
159 42002c ? mcu wireless ? 08/13 at86rf212b 11 at86rf212b extended feature set 11.1 security module (aes) the security module (aes ) features include : ? hardware accelerated encryption and decryption ? compatible with aes - 128 standard (128 - bit key and data block size) ? e cb (encryption/decryption) mode and cbc (encryption) mode support ? stand - alone operation, independent of other blocks 11.1.1 overview the security module is based on an aes - 128 core according to fips197 standard, refer to [10] . the security module works independent ly of other building blocks of the atmel at86rf212b . e ncryption and decryption can be performed in parallel with a frame transmission or reception. the control of the security block is implemented as an sram access to address space 0x82 to 0x94. a fast sram access mode allows for simultaneous new data writ es and read s of processed data within the same spi transfer. this access procedure is used to reduce the turnaround time for ecb and cbc modes , see section 11.1.5 . in addition, the security module contains another 128 - bit re gister to store the initial key used for security operations. this initial key is not modified by the security module. 11.1.2 security module preparation the use of the security module requires a configuration of the security engine before starting a security op eration. the following steps are required: table 11- 1 . aes engine configuration steps . step description description section 1 key setup write encryption or decryption key to sram 11.1.3 2 aes mode select aes mode: ecb or cbc select encryption or decryption 11.1.4.1 11.1.4.2 3 write data write plaintext or cipher text to sram 11.1.5 4 start operation start aes operation 5 read data read cipher text or plaintext from sram 11.1.5 before starting any security operation , a key must be written to the security engine, refer to section 11.1.3 . the key set up requires the configuration of the aes engine key mode using register bits aes_mode (sram address 0x83, aes_ctrl). the following step selects the aes mode, either electronic co de book (ecb) or cipher block chaining (cbc). these modes are explained in more detail in section 11.1.4 . further, encryption or decryption must be selected with register bit aes_dir (sram address 0x83, aes_ctrl). after this, the 128 - bit plain text or cipher text data has to be provided to the a es hardware engine. the data uses the sram address range 0x84 ? 0x93.
160 42002c ? mcu wireless ? 08/13 a t86rf212b an encryption or decryption is initiated with register bit aes_request = 1 (sram address 0x83, that is aes_ctrl, or the mirrored version sram address 0x94, that is aes_ctrl_mirror). the aes module control registers are only accessible using sram read and write accesses on address space 0x82 to 0x94. configuring the aes mode, providing the data, and starting a decryption or encryption operation can be combined in a single sram access. note s: 1. no additional register access is required to operate the security block. 2. access to the security block is not possible while the radio transceiver is in sleep, or reset state. 3. all configurations of the security module, the sram content, and keys are rese t during reset state . 4. a read or write access to register 0x83 (aes_ctrl) during aes operation terminates the current processing. 11.1.3 security key setup the setup of the key is prepared by setting register bits aes_mode = 1 (sram address 0x83, aes_ctrl). afterwards the 128 - bit key must be written to sram addresses 0x84 through 0x93 (registers aes_key). it is recommended to combine the setting of control re gister 0x83 (aes_ctrl) and the 128 - bit key transfer using only one sram access starting from address 0x83. the address space for the 128 - bit key and 128 - bit data is identical from programming point of view. however, both use different pages which are selec ted by register bit aes_mode before storing the data. a read access to registers aes_key (0x84 ? 0x93) returns the last round key of the preceding security operation. after an ecb encryption operation, this is the key that is required for the corresponding ecb decryption operation. however, the initial aes key, written to the security module in advance of an aes run, see step one in table 11 - 1 , is not m odified during the aes operation. this initial key is used for the next aes run even it cannot be read from aes_key. note: 1. ecb decryption is not required for ieee 802.15.4 or zigbee security processing. the atmel at86rf212b provides this functionality as an additional feature. 11.1.4 security operation modes 11.1.4.1 electronic code book (ecb) ecb is the basic operating mode of the security module. after setting up the initial aes key, register bits aes_mode = 0 (sram address 0x8 3, aes_ctrl) sets up ecb mode. register bit aes_dir (sram address 0x83, aes_ctrl) selects the direction, either encryption or decryption. the data to be processed has to be written to sram addresses 0x84 through 0x93 (registers aes_state). an example for a programming sequence is shown in figure 11- 1 . this example assumes a suitable key has been loaded before. a security operation can be started within o ne sram access by appending the start command aes_request = 1 (register 0x94, aes_ctrl_mirror) to the spi sequence. register aes_ctrl_mirror is a mirrored version of register 0x83 (aes_ctrl).
161 42002c ? mcu wireless ? 08/13 at86rf212b figure 11 - 1 . ecb programming spi sequence ? encryptio n. 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 byte 1 ( address ) byte 0 ( cmd .) byte 18 ? . 1 0 0 0 0 0 0 0 data _ 15 [ 7 : 0 ] byte 19 ( aes cmd ) byte 2 ( aes cmd ) data _ 0 [ 7 : 0 ] byte 3 ecb , encryption 0 x 83 sram write aes start summarizing, the following steps are required to perform a security operation using only one atmel at86rf212b spi access: 1. configure spi access a) sram write, refer to section 6.3.3 b) start address 0x83 2. configure aes operation address 0x83: select ecb mode, direction 3. write 128- bit data block addresses 0x84 ? 0x93: either plain or ciphertext 4. start aes operation address 0x94: start aes operation, ecb mode this sequence is recommended because the security operation is configured and started within one spi transaction. the ecb encryption operati on is illustrated in figure 11 - 2 . figure 11- 3 shows the ecb decryption mode, which is supported in a similar way. figur e 11 - 2 . ecb mode ? encryption . block cipher encryption encryption key plaintext ciphertext block cipher encryption encryption key plaintext ciphertext figure 11 - 3 . ecb mode ? decryption . block cipher decryption decryption key plaintext ciphertext block cipher decryption decryption key plaintext ciphertext
162 42002c ? mcu wireless ? 08/13 a t86rf212b when decrypting, due to the nature of aes algorithm, the initial key to be used is not th e same as the one used for encryption, but rather the last round key instead. this last round key is the content of the key address space stored after running one full encryption cycle, and must be saved for decryption. if the decryption key has not been s aved, it has to be recomputed by first running a dummy encryption (of an arbitrary plaintext) using the original encryption key, then fetching the resulting round key from the key memory, and writing it back into the key memory as the decryption key. ecb decryption is not used by either ieee 802.15.4 or zigbee frame security. both of these standards do not directly encrypt the payload, but rather a nonce instead, and protect the payload by applying an xor operation between the resulting (aes - ) cipher t ext and the original payload. as the nonce is the same for encryption and decryption only ecb encryption is required. decryption is performed by xoring the received cipher text with its own encryption result respectively, which results in the original plai ntext payload upon success . 11.1.4.2 cipher block chaining (cbc) in cbc mode, the result of a previous aes operation is xored with the new incoming vector forming the new plaintext to encrypt, see figure 11- 4 . this mode is used for the computation of a cryptographic checksum (message integrity code, mic). figure 11 - 4 . cbc mode ? encryption . block cipher encryption encryption key ciphertext block cipher encryption plaintext ciphertext plaintext initialization vector ( iv ) encryption key ecb mode cbc mode after preparing the aes key and defining the aes operation direction using atmel at86rf212b sram register bit aes_dir, the data has to be provided to the aes engine and the cbc operation can be started. the first cbc run has to be confi gured as ecb to process the initial data (plaintext xored with an initialization vector provided by the microcontroller). all succeeding aes runs are to be configured as cbc by setting register bits aes_mode = 2 (register 0x83, aes_ctrl). register bit aes_ dir (register 0x83, aes_ctrl) must be set to aes_dir = 0 to enable aes encryption. the data to be processed has to be transferred to the sram starting with address 0x84 to 0x93 (register aes_state). setting register bit aes_request = 1 (register 0x94, aes_ ctrl_mirror) as described in section 11.1.4 starts the first encryption within one sram access. this causes the next 128 bits of plaintext data to be xored with the previous cipher text data, see figure 11 - 4 . according to ieee 802.15.4 the input for the very first cbc operation has to be prepared by a xoring a plaintext with an initialization vector (iv). the value of the
163 42002c ? mcu wireless ? 08/13 at86rf212b initializa tion vector is zero . however, for non - compliant usage any other initialization vector can be used. this operation has to be prepared by the microcontroller. note: 1. the ieee 802.15.4 - 2006 standard mic algorithm requires cbc mode encryption only, as it implements a one - way hash function. 11.1.5 data transfer ? fast sram access the ecb and cbc modules including the aes core are clocked with 16 mhz . one aes operation takes t aes = 23.4 s to execute, refer to table 7 - 2 . that means that the processing of the data is usually faster than the transfer of the data via the spi interface. to reduce the overall processing time, the at86rf212b provides a fast sram access for the address space 0x8 2 to 0x94. figure 11 - 5 . packet structure ? fast sram access mode . sram write mosi phy _ status miso byte 0 ( cmd ) address 0 x 83 xx < aes _ ctrl > xx byte 1 ( addr .) byte 2 ( cfg ) p 0 [ 7 : 0 ] xx byte 3 byte 4 byte 18 < aes _ ctrl > ( 1 ) byte 19 ( start ) 0 x 83 0 x 85 0 x 84 0 x 93 0 x 94 address mosi miso aes access # 0 address p 0 p 15 ... cmd add cfg start xx xx ... stat xx xx xx 0 x 83 0 x 94 ... aes access # 1 p 0 p 15 ... cmd add cfg start xx c 14 ... stat xx xx c 15 0 x 83 0 x 94 ... aes access # n + 1 xx xx ... cmd add cfg start xx c 14 ... stat xx xx c 15 0 x 83 0 x 94 ... p 1 p 14 xx xx p 1 p 14 c 0 c 13 xx xx c 0 c 13 ... ... c 0 [ 7 : 0 ] p 1 [ 7 : 0 ] c 14 [ 7 : 0 ] c 15 [ 7 : 0 ] p 15 [ 7 : 0 ] aes run # 0 aes run # n . . . note: 1. byte 19 is the mirrored version of register aes_ctrl on sram address 0x94, see register description aes_ctrl_mirror for details. in contrast to a standard sram access, refer to section 6.3.3 , the fast sram access allows writing and reading of data simultaneously during one spi access for consecutive aes operations ( aes run ). for each byte p0 transferred to pin 22 (mosi) for example in ? aes access #1 ?, see figure 11 - 5 (l ower part), the previous content of the respective aes register c0 is clocked out at pin 20 (miso) with an offset of one byte. in the example shown in figure 11 - 5 the initial plaintext p0 ? p15 is written to the sram within ? aes access #0 ?. the last command on address 0x94 (aes_ctrl_mirror) starts the aes operation (? aes run #0 ?). in the next ? aes acce ss #1 ? new plaintext data p0 ? p15 is written to the sram for the second aes run, in parallel the ciphertext c0 ? c15 from the first aes run is clocked out at pin miso. to read the ciphertext from the last ? aes run #(n) ? one dummy ? aes access #(n+1) ? is ne eded. note: 2. the sram write access always overwrites the previous processing result.
164 42002c ? mcu wireless ? 08/13 a t86rf212b the fast sram access automatically applies to all write operations to sram addresses 0x8 2 to 0x94. 11.1.6 start of security operation and status a security operation is started within one atmel at86rf212b sram access by appending the start command aes_request = 1 (register 0x94, aes_ctrl_mirror) to the spi sequence. register aes_ctrl_mirror is a mirrored v ersion of register 0x83 (aes_ctrl). the status of the security processing is indicated by register 0x82 (aes_status). after t aes = 24s (max.) aes processing time register bit aes_done changes to one (register 0x82, aes_status) indicat ing that the security operation has finished. 11.1.7 sram register summary the following registers are required to control the security module : table 11- 2 . sram security module address space overview . sram - addr. regis ter name description 0x80 ? 0x81 reserved 0x82 aes_status aes status 0x83 aes_ctrl security module control, aes mode 0x84 ? 0x93 aes_key aes_state depends on aes_mode setting: aes_mode = 1: - contains aes_key (key) aes_mode = 0 or 2: - contains aes_state (128 bit data block) 0x94 aes_ctrl_mirror mirror of register 0x83 (aes_ctrl) 0x95 ? 0xff reserved these registers are only accessible using sram write and read; for details, refer to section 6.3.3 . 11.1.8 register description register 0x82 (aes_status): the read - only register aes_status signals the status of the security module and operation. fi gure 11 - 6 . register aes_status. bit 7 6 5 4 0x82 aes_er reserved aes_status read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x82 reserved aes_done aes_status read/write r r r r reset value 0 0 0 0
165 42002c ? mcu wireless ? 08/13 at86rf212b ? bit 7 - aes_er this sram register bit indicates an error of the aes module. an error may occur for instance after an access to sram register 0x83 (aes_ctrl) while an aes operation is running or after reading less than 128 - bits from sram register s pace 0x84 ? 0x93 (aes_state). table 11- 3 . aes_er. register bits value description aes_er 0 no error of the aes module 1 aes module error ? bit 0 - aes_done the bit aes_done signals the status of aes operation. table 11- 4 . aes_done. register bits value description aes_done 0 aes operation has not been completed 1 aes operation has been completed register 0x83 (aes_ctrl): the aes_ctrl register controls the operation of the security module. figure 11 - 7 . register aes_ctrl. bit 7 6 5 4 0x83 aes_request aes_mode aes_ctrl read/write w r/w r/w r/w reset value 0 0 0 0 bit 3 2 1 0 0x83 aes_dir reserved aes_ctrl read/write r/w r r r reset value 0 0 0 0 notes: 1. do not access this register during aes operation to read the aes core status. a read or write access during aes operation stops the actual processing. 2. to read the aes status use register bit aes_done (register 0x82, aes_status). ? bit 7 - aes_request a write access with aes_request = 1 initiates the aes operation. table 11- 5 . aes_request. register bits value description aes_request 0 security module, aes core idle 1 a write access starts the aes operation
166 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 6:4 - aes_mode this register bit sets the aes operation mode. table 11- 6 . aes_mode. register bits value description aes_mode 0 ecb mode 1 key mode 2 cbc mode all other values are reserved ? bit 3 - aes_dir the register bit aes_dir sets the aes operation direction, either encryption or decryption. table 11- 7 . aes_dir. register bits value description aes_dir 0 aes encryption (ecb, cbc) 1 aes decryption (ecb) register 0x94 (aes_ctrl_mirror): register 0x94 is a mirrored version of register 0x83 (aes_ctrl), for details refer to register 0x83 (aes_ctrl). this register could be used to start a security operation within a single sram access by appending it to the data stream and setting register bit aes_request = 1.
167 42002c ? mcu wireless ? 08/13 at86rf212b 11.2 random number generator 11.2.1 overview the atmel at86rf2 12b incorporates a two bit truly random number generator by observation of noise. this random number can be used to: ? generate random seeds for csma - ca algorithm see section 7.2 ? generate random values for aes key generation see section 11.1 random numbers are stored in register bits rnd_value (register 0x06, phy_rssi). the random number is updated at every read access in basic operating mode receive states (rx_on, busy_rx). the random number generator does not work if the preamble detector is disabled (rx_pdt_dis = 1, refer to section 9.2.4 ). 11.2.2 register description register 0x06 (phy_rssi): the phy_rssi register is a multi - purpose register that indicates fcs validity, to provide random numbers, and a rssi value. figure 11 - 8 . register phy_rssi. bit 7 6 5 4 0x06 rx_crc_valid rnd_value rssi phy_rssi read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x06 rssi phy_rssi read/write r r r r reset value 0 0 0 0 ? bit 6:5 - rnd_value the 2 - bit random value can be retrieved by reading register bits rnd_value. table 11- 8 . rnd_value. register bits value description rnd_value 0 deliver two bit noise value within receive state. valid values are [3, 2, ?, 0]. note: 1. the radio transceiver shall be in basic operating mode receive state.
168 42002c ? mcu wireless ? 08/13 a t86rf212b 11.3 antenna diversity the antenna diversity implementation is characterized by: ? improves signal path robustness between nodes ? atmel at86rf212b self - contained tx antenna diversity algorithm ? direct register based antenna selection 11.3.1 overview due to multipath propagation effects between network no des, the receive signal strength may vary and affect the link quality, even for small variance of the antenna location. these fading effects can result in an increased error floor or loss of the connection between devices. to improve the reliability of an rf connection between network nodes antenna diversity can be applied to reduce effects of multipath propagation and fading. antenna diversity uses two antennas to select the most reliable rf signal path. to ensure highly independent receive signals on both antennas, the antennas should be carefully separated from each other. the at86rf212b supports phy controlled antenna diversity in tx_aret mode and software controlled antenna diversity ( that is the microcontrolle r controls which antenna is used for transmission and reception) in basic and extended operating modes. 11.3.2 antenna diversity application example a block diagram for an application using an antenna switch is shown in fi gure 11 - 9 . figure 11 - 9 . antenna diversity ? block diagram . 6 5 4 3 2 1 9 10 at 86 rf 2 12 b dig 3 dig 4 avss rfp rfn avss dig 1 dig 2 balun ant 0 ant 1 rf - switch b 1 sw 1 ... generally, when the external rf - switch (sw1) is to be controlled by antenna diversity algorithm, the antenna diversity enable must be activated by register bit ant_ext_sw_en (register 0x0d, ant_div). then the digital control pins pin 9 (dig1) and pin 10 (dig2) are en abled (refer to section 1.3 ) to drive the antenna switch control signals to the differential inputs of the rf switch (sw1) to switch between ant0 and ant1 .
169 42002c ? mcu wireless ? 08/13 at86rf212b 11.3.3 register description register 0x0d (ant_div): the ant_div register controls antenna diversity. figure 11 - 10 . register ant_div. bit 7 6 5 4 0x0d ant_sel reserved ant_div read/write r r r r reset value 0 0 0 0 bit 3 2 1 0 0x0d ant_div_en ant_ext_sw_en ant_ctrl ant_div read/write r/w r/w r/w r/w reset value 0 0 0 1 ? bit 7 - ant_sel signals status of antenna at the time of the last irq_2 (rx_start) interrupt, irq_3 (trx_end) interrupt, or tx_start event. table 11- 9 . ant_sel. register bits value description ant_sel 0 antenna 0 1 antenna 1 the register bit signals the status of the selected antenna at the time of the last irq_2 (rx_start) interrupt , irq_3 (trx_end) interrupt , or tx_start event. this informatio n can be used to build up a history of the antenna used for successful transmission (indicated by an acknowledgement frame) in tx_aret mode. ? bit 3 - ant_div_en the register bit ant_div_en controls tx antenna diversity. table 11- 10. ant_div_en. register bits value description ant_div_en 0 tx antenna diversity is disabled 1 tx antenna diversity is enabled if set to one , antenna diversity is enabled in tx_aret mode with expected ack reply, refer to section 7.2.4 . the transceiver automatically selects the antenna wi th the aim to minimize the number of retransmissions. ? bit 2 - ant_ext_sw_en the register bit ant_ext_sw_en controls the external antenna switch. table 11- 11. ant_ext_sw_en. register bits value description ant_ext_sw_en 0 antenna diversity rf switch control is disabled 1 antenna diversity rf switch control is enabled if enabled, pin 9 (dig1) and pin 10 (dig2) become output pins and provide a differential control signal for an antenna diversity switch. the selection of an antenna within
170 42002c ? mcu wireless ? 08/13 a t86rf212b tx_aret mode is done automatically if ant_div_en = 1, or, if ant_div_en = 0, accordi ng to register bits ant_ctrl. if rx frame time stamping (refer to section 11.5 ) is used in combination with antenna diversity, pin 9 (dig1) is used for antenna diversity and pin 10 (dig2) is used for rx frame time stamping. atmel at86rf212b does not provide a differential control signal in this case, see figure 5 - 2 . if the register bit is set, the control pins dig1/dig2 are activated in all radio transceiver states as long as register bit ant_ext_sw_en is set. if the at86rf212b is not in a receive or transmit state, it is recommended to disable register bit ant_ext_sw_en to reduce the power consumption or avoid leakage current of an external rf switch, especially during sleep state. if register bit ant_ext_sw_en = 0, output pins dig1 and dig2 are internally connected to digital ground. ? bit 1:0 - ant_ctrl these register bits provide a static control of an antenna diversity switch. table 11- 12. ant_ctrl. register bits value description ant_ctrl 1 antenna 0 dig1 = l dig2 = h 2 antenna 1 dig1 = h dig2 = l all other values are reserved these register bits provide a static control of an antenna diversity switch if ant_div_en = 0 and ant_ext_sw_en = 1. although it is possible to change register bits ant_ctrl in state trx_off, this change will be effective at pin 9 (dig1) and pin 10 (dig2) in states pll_on and rx_on.
171 42002c ? mcu wireless ? 08/13 at86rf212b 11.4 rx/tx indicator the main features are: ? rx/tx indicator to control an external rf f ron t - e nd ? microcontroller i ndependent rf front - end control ? providing tx timing information 11.4.1 overview while ieee 802.15.4 is targeting low cost and low power applications, solutions supporting higher transmit output power are occasionally desirable. to simplify the control of an optional external rf front - end, a differential control pin pair can indicate t hat the atmel at86rf212b is currently in transmit mode. the control of an external rf front - end is done via digital control pins dig3/dig4. the function of this pin pair is enabled with register bit pa_ext_en (reg ister 0x04, trx_ctrl_1). while the transmitter is turned off, pin 1 (dig3) is set to low level and pin 2 (dig4) to high level. if the radio transceiver starts to transmit, the two pins change the polarity. this differential pin pair can be used to control pa, lna, and rf switches. if the at86rf212b is not in a receive or transmit state, it is recommended to disable register bit pa_ext_en (register 0x04, trx_ctrl_1) to reduce the power consumption or avoid leakage c urrent of external rf switches and other building blocks, especially during sleep state. if register bits pa_ext_en = 0, output pins dig3/dig4 are pulled - down to analog ground . 11.4.2 external rf - front end control when using an external rf front - end including a p ower amplifier (pa), it may be required to adjust the setup time of the external pa relative to the internal building blocks to optimize the overall power spectral density (psd) mask. the start - up sequence of the individual building blocks of the internal transmitter is shown in figure 11 - 11 where transmission is actually initiated by the rising edge of pin 11 (slp_tr). the radio transceiver state changes from pll_on to busy_tx and the pll settles to the transmit frequency within one symbol period. the modulation starts one symbol period afte r the rising edge of slp_tr . during this time, the internal pa is initialized. the control of the external pa is done via the differential pin pair dig3/dig4. dig3 = h / dig4 = l indicates that the transmission starts and can be used to enable the external pa. the timing of pins dig3/dig4 can be adjusted relative to the start of the frame using register bits pa_lt (register 0x16, rf_ctrl_0). for details, refer to section 9.3.5 .
172 42002c ? mcu wireless ? 08/13 a t86rf212b figure 11 - 11. tx power up ramping control of rf front - end for 250kb/s o - qpsk mode . 0 6 8 10 state slp _ tr pll _ on 2 12 14 16 18 length [ s ] 4 pa pa _ lt dig 3 dig 4 modulation tx data busy _ tx 11.4.3 register description register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 11 - 12 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 7 ? pa_ext_en this register bit pa_ext_en enables pin 1 (dig3) and pin 2 (dig4) to indicate the transmit state of the radio transceiver. table 11- 13. rf front - end control pins . pa_ext_en state pin value description 0 n/a dig3 l external rf front - end control disabled dig4 l 1 (1) tx_ busy dig3 h external rf front - end control enabled dig4 l other dig3 l dig4 h note: 1. it is recommended to set pa_ext_en = 1 only in receive or transmit states to reduce the power consumption or avoid leakage current of external rf switches or other building blocks, especially during sleep state.
173 42002c ? mcu wireless ? 08/13 at86rf212b 11.5 rx frame time stamping 11.5.1 overview to determine the exact timing of an incoming frame, for example for beaconing networks, the reception of this frame can be signaled to the microcontroller via atmel at86rf212b pin 10 (dig2). the pin turns from l to h after detection of a valid phr. when enabled, dig2 is set to dig2 = h at the same time as irq_2 (rx_start) occurs, even if irq_2 (rx_start) is disabled. the pin remains high for the length of the frame receive procedure, see figure 11- 13 . this function is enabled with register bit irq_2_ext_en (register 0x04, trx_ctrl_1). pin 10 (dig2) can be connected to a timer capture unit of the microcontroller. if this pin is not u sed for rx frame time stamping, it can be configured f or antenna diversity, refer to section 11.3 . otherwise, this pin is internally connected to g round. figure 11 - 13. timing of rx_start and dig2 for rx frame time stamping within 250 kb/s o - qpsk mode . 128 160 192 0 192 + m ? 32 time [s] rx frame on air irq_2 (rx_start) t irq rx_on rx_on irq state interrupt latency preamble sfd phr psdu (250 kb/s) 4 1 1 m < 128 number of octets frame content trx_end t irq busy_rx dig2 (rx frame time stamp) note: 1. timing figures t irq refer to section 12.4 . 11.5.2 register description register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 11 - 14 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0
174 42002c ? mcu wireless ? 08/13 a t86rf212b ? bit 6 - irq_2_ext_en the register bit irq_2_ext_en controls external signaling for time stamping via pin 10 (dig2). table 11- 14. irq_2_ext_en. register bits value description irq_2_ext_en 0 time stamping over pin 10 (dig2) is disabled 1 (1) time stamping over pin 10 (dig2) is enabled note: 1. the pin 10 (dig2) is also active if the corresponding interrupt event irq_2 (rx_start) mask bit in register 0x0e (irq_mask) is set to zero. if this register bit is set, the rx frame time stamping mode is enabled. an incoming frame with a valid phr is si gnaled via pin 10 (dig2). the pin remains at high level until the end of the frame receive procedure, see figure 11 - 13.
175 42002c ? mcu wireless ? 08/13 at86rf212b 11.6 frame buffer empty indicator 11.6.1 overview for time critical applications that want to start reading the frame data as early as possible, the atmel at86rf212b frame buffer status can be indicated to the microcontroller through a dedicated pin. this pin indicates to the microcontroller if an access to the frame buffer is not possible since valid psdu data are missing. pin 24 (irq) can be configured as a frame buf fer empty indicator during a frame buffer read access. this mode is enabled by register bit rx_bl_ctrl (register 0x04, trx_ctrl_1). the irq pin turns into frame buffer empty indicator after the frame buffer read access command, see note (1) in figure 11 - 15 , has been transferred on the spi bus until the frame buffer read procedure has finished indicated by /sel = h, see note (4) . figure 11 - 15. timing diagram of frame buffer empty indicator . / sel mosi miso irq sclk command phy _ status xx irq _ status command trx _ status xx phr [ 7 : 0 ] xx psdu [ 7 : 0 ] irq _ 2 ( rx _ start ) xx psdu [ 7 : 0 ] xx psdu [ 7 : 0 ] t 12 xx rx _ status command trx _ status xx irq _ status irq _ 3 ( trx _ end ) frame buffer empty indicator ( 1 ) ( 4 ) ( 3 ) notes ( 2 ) xx lqi [ 7 : 0 ] xx ed [ 7 : 0 ] note s : 1. timing figure t 12 refer to section 12.4 . 2. a frame buffer read access can proceed as long as pin 24 (irq) = l . 3. pin irq = h in dicates that the frame buffer is currently not ready for another spi cycle . 4. t he frame buffer read procedure has finished indicated by /sel = h . the microcontroller has to observe the irq pin during the frame buffer read procedure. a frame buffer read acc ess can proceed as long as pin 24 (irq) = l, see note (2) . when the irq output pin is pulled high ( irq = h ) , the frame buffer is not ready for another spi cycle, see note (3) above. the read operation can be resumed as the irq output pin is pulled low again (irq = l) to indicate new data in the buffer. on frame buffer read access, three more byte are transferred via miso after phr and psdu data, namely lqi, ed, and rx_status; refer to section 6.3.2 . because these bytes are appended and physically not stored in the frame buffer, they are ignored for frame buffer empty indication. the frame buffer empty indicator pin 24 (irq) becomes valid after t 12 = 750 ns starting from the last sclk rising edge while reading a frame buffer command byte, see figure above. upon completing the spi frame data receive task, spi read access can be disabled by pulling /sel = h, note (4) . at this time the irq output pin 24 (irq) ) can be used as an output to flag pending interrupts to the processor . if during the fr ame buffer read access a receive error occurs ( for example a n pll unlock), the frame buffer empty indicator locks on 'empty' ( pin 24 (irq) = h ) too. to prevent possible deadlocks, the microcontroller should impose a timeout counter that checks whether the frame buffer empty indicator remains logic high for more than two
176 42002c ? mcu wireless ? 08/13 a t86rf212b octet periods. a new byte must have been arrived at the frame buffer during that period. if not, the frame buffer read access should be aborted. 11.6.2 register description register 0x04 (trx_ctrl_1): the trx_ctrl_1 register is a multi - purpose register to control various operating modes and settings of the radio transceiver. figure 11 - 16 . register trx_ctrl_1. bit 7 6 5 4 0x04 pa_ext_en irq_2_ext_en tx_auto_crc_ on rx_bl_ctrl trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x04 spi_cmd_mode irq_mask_mode irq_polarity trx_ctrl_1 read/write r/w r/w r/w r/w reset value 0 0 0 0 ? bit 4 - rx_bl_ctrl the register bit rx_bl_ctrl controls the frame buffer empty indicator. table 11- 15. rx_bl_ctrl. register bits value description rx_bl_ctrl 0 frame buffer empty indicator disabled 1 frame buffer empty indicator enabled note: 1. a modification of register bit irq_polarity has no influence to rx_bl_ctrl behavior. if this register bit is set, the frame buffer empty indicator is enabled. after sending a frame buffer read command ( refer to section 6.3 ), pin 24 (irq) indicates that an access to the frame buffer is not possible since p sdu data are not available yet. the pin 24 (irq) does not indicate any interrupts during this time.
177 42002c ? mcu wireless ? 08/13 at86rf212b 11.7 dynamic frame buffer protection 11.7.1 overview the atmel at86rf212b continues the reception of incoming frames as long as it is in any receive state. when a frame was successfully received and stored into the frame buffer, the following frame will overwrite the frame buffer content again. to relax the timing requirements for a frame buffer read access the dynamic frame buffer protection prevents that a new valid frame passes to the frame buffer until a frame buffer read access has ended (indicated by /sel = h, refer to section 6.3 ) . a received fram e is automatically protected against overwriting: ? in basic operating mode, if its fcs is valid ? in extended operating mode, if an irq_3 (trx_end) is generated. the dynamic frame buffer protection is enabled with rx_safe_mode (register 0x0c, trx_ctrl_2) set and applicable in transceiver states rx_on and rx_aack_on. note: 1. the dynamic frame buffer protection only prevents write accesses from the air interface ? not from the spi interface. a frame buffer or sram write access may still modify the frame buffer content. 11.7.2 register description register 0x0c (trx_ctrl_2): the trx_ctrl_2 register is a multi - purpose control register to control various settings of the radio transceiver. figure 11 - 17 . register trx_ctrl_2. bit 7 6 5 4 0x0c rx_safe_mode trx_off_avdd_ en oqpsk_scram_ en alt_spectrum trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 0 1 0 bit 3 2 1 0 0x0c bpsk_oqpsk sub_mode oqpsk_data_rate trx_ctrl_2 read/write r/w r/w r/w r/w reset value 0 1 0 0 ? bit 7 - rx_safe_mode protect frame buffer after frame reception with valid fcf check. table 11- 16. rx_safe_mode. register bits value description rx_safe_mode 0 disable dynamic frame buffer protection 1 (1) enable dynamic frame buffer protection note: 1. dynamic frame buffer protection is released on the rising edge of pin 23 (/sel) during a frame buffer read access, or on the radio transceiver?s state change from rx_on or rx_aack_on to another state. this operation mode is independent of the setting of register bits rx_pdt_level, (register 0x15, rx_syn), refer to section 9.2.4 .
178 42002c ? mcu wireless ? 08/13 a t86rf212b 11.8 alternate start - of - frame delimiter 11.8.1 overview the sfd (start of frame delimiter) is a field indicating the end of the shr and the start of the packet data. the length of the sfd is one octet ( eight symbols for bpsk and two symbols for o - qpsk). the octet is used for byte synchronization only and is not included in the atmel at86rf212b frame buffer. the value of the sfd can be changed if it is needed to operate in non- ieee 802.15.4 compliant networks. a node with a non - standard sfd value cannot synchronize with any of the ieee 802.15.4 network node s . due to the way the shr is formed, it is not recommended to set the low - order four bits to zero . the lsb of the sfd is transmitted first, that is right afte r the last bit of the preamble sequence. 11.8.2 register description register 0x0b (sfd_value): the sfd_value register contains the one octet start - of - frame delimiter (sfd). figure 11 - 18 . register sfd_value. bit 7 6 5 4 0x0b sfd_value sfd_value read/write r/w r/w r/w r/w reset value 1 0 1 0 bit 3 2 1 0 0x0b sfd_value sfd_value read/write r/w r/w r/w r/w reset value 0 1 1 1 ? bit 7:0 - sfd_value the register bits sfd_value are required for transmit and receive operation. table 11- 17. sfd_value. register bits value description sfd_value 0xa7 for transmission this value is copied into start -of - frame delimiter (sfd) field of frame header. for reception this value is checked for incoming frames. the default value is according to ieee 802.15.4 specification. for ieee 802.15.4 compliant networks, set sfd_value = 0xa7 as specified in [2] . this is the default value of the register. to establish non ieee 802.15.4 compliant networks, the sfd value can be changed to any other value. if enabled, irq_2 (rx_start) is issued only if the received sfd matches sfd_value and a valid phr is received.
179 42002c ? mcu wireless ? 08/13 at86rf212b 12 ele ctrical characteristics 12.1 absolute maximum ratings note: stresses beyond those listed under ?absolute maximum ratings? may cause permanent damage to the device. this is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational section s of this specification are not implied. exposure to absolute maximum rating conditions for extended periods may affect device reliability. symbol parameter condition min. typ. max. unit t stor storage temperature -50 150 c t lead lead temperature t = 10s (soldering profile compliant with ipc/jedec j std 020b) 260 c v esd esd robustness human body model (hbm) [8], 6 kv charged device model (cdm) [9] 1250 v p rf input rf level +10 dbm v dig voltage on all pins (except pins 4, 5, 13, 14, 29) - 0.3 v dd +0.3 v v ana voltage on pins 4, 5, 13, 14, 29 - 0.3 2.0 v 12.2 recommended operating range symbol parameter condition min. typ. max. unit t op operating temperature range -40 +25 +85 c v dd supply voltage voltage on pins 15, 28 (1) 1.8 3.0 3.6 v v dd1.8 supply voltage (on pins 13, 14, 29) external voltage supply (2) 1.7 1.8 1.9 v notes: 1. even if an implementation uses the external 1.8v voltage supply v dd1.8 it is required to connect v dd . 2. register 0x10 (vreg_ctrl) needs to be programmed to disable internal voltage regulators and supply blocks by an external 1.8v supply, refer to section 9.5. caution! esd sensitive device. precaution should be used when handling the device in order to prevent permanent damage.
180 42002c ? mcu wireless ? 08/13 a t86rf212b 12.3 digital pin characteristics test conditions: t op = +25 c (unless otherwis e stated) . symbol parameter condition min. typ. max. unit v ih high level input voltage (1) v dd - 0.4 v v il low level input voltage (1) 0.4 v v oh high level output voltage (1) v dd - 0.4 v v ol low level output voltage (1) 0.4 v c load capacitive load (1) 50 pf note: 1. the capacitive load c load should not be larger than 50pf for all i/os. generally, large load capacitances increase the overall current consumption. 12.4 digital interface timing characteristics test conditions: t op = +25 c , v dd = 3.0 v , c load = 50 pf (unless otherwise stated) . symbol parameter condition min. typ. max. unit f sync sclk frequency synchronous operation 8 mhz f async sclk frequency asynchronous operation 7.5 mhz t 1 /sel falling edge to miso active 180 ns t 2 sclk falling edge to miso out data hold time 25 ns t 3 mosi setup time 10 ns t 4 mosi hold time 10 ns t 5 lsb last byte to msb next byte 250 (1) ns t 6 /sel rising edge to miso tri state 10 ns t 7 slp_tr pulse width tx start trigger 62.5 note (2) ns t 8 spi idle time: sel rising to falling edge spi read/write, standard sram and frame access modes idle time between consecutive spi accesses 250 ns t 8a spi idle time: sel rising to falling edge fast sram read/write access mode idle time between consecutive spi accesses 500 ns t 9 sclk rising edge lsb to /sel rising edge 250 ns t 10 reset pulse width 10 clock cycles at 16mhz 625 ns t 11 spi access latency after reset 10 clock cycles at 16mhz 625 ns t 12 dynamic frame buffer protection: irq latency 750 ns t irq irq_2, irq_3, irq_4 latency relative to the event to be indicated 9 s f clkm output clock frequency at pin 17 (clkm) configurable in register 0x03 clkm_ctrl = 0 0 mhz clkm_ctrl = 1 1 mhz clkm_ctrl = 2 2 mhz
181 42002c ? mcu wireless ? 08/13 at86rf212b symbol parameter condition min. typ. max. unit clkm_ctrl = 3 4 mhz clkm_ctrl = 4 8 mhz clkm_ctrl = 5 16 mhz clkm_ctrl = 6 250 khz clkm_ctrl = 7 (3) 20.0 khz clkm_ctrl = 7 (4) 40.0 khz clkm_ctrl = 7 (5) 25.0 khz clkm_ctrl = 7 (6) 62.5 khz notes: 1. for fast sram read/write accesses on address space 0x82 ? 0x94 the time t 5 (min.) and t 8 (min.) increases to 500ns. 2. maximum pulse width less than (tx frame length + 16s). 3. 1/50mhz; only in bpsk mode with f psdu = 20kb/s. 4. 1/25mhz; only in bpsk mode with f psdu = 40kb/s. 5. 1/40mhz; only in o - qpsk mode with f psdu = 100/200/400kb/s. 6. 1/16mhz; only in o - qpsk mode with f psdu = 250/500/1000kb/s.
182 42002c ? mcu wireless ? 08/13 a t86rf212b 12.5 general rf specifications test conditions (unless otherwise stated): v dd = 3.0 v , f rf = 914 mhz , t op = +25 c , measurement setup see figure 5 - 1 . symbol parameter condition min. typ. max. unit f rf frequency range as specified in [1] 868.3 914 924 mhz 1mhz spacing 769 935 mhz 100khz spacing 769.0 794.5 mhz 100khz spacing 857.0 882.5 mhz 100khz spacing 902.0 928.5 mhz f ch channel spacing as specified in [1] except channel = 0 2 mhz 1mhz spacing 1000 khz 100khz spacing 100 khz f chip chip rate bpsk as specified in [1] (1) 300 kchip/s bpsk as specified in [1] (2) 600 kchip/s o - qpsk as specified in [2] (1) 400 kchip/s o - qpsk as specified in [2], [3] (2) 1000 kchip/s f hdr header bit rate (shr, phr) bpsk as specified in [1] (1) 20 kb/s bpsk as specified in [1] (2) 40 kb/s o - qpsk as specified in [2] (1) 100 kb/s o - qpsk as specified in [2], [3] (2) 250 kb/s f psdu psdu bit rate bpsk as specified in [1] (1) 20 kb/s bpsk as specified in [1] (2) 40 kb/s o - qpsk as specified in [2] (1) 100 kb/s o - qpsk as specified in [2], [3] (2) 250 kb/s oqpsk_data_rate = 1 (1) 200 kb/s oqpsk_data_rate = 2 (1) 400 kb/s oqpsk_data_rate = 1 (2) 500 kb/s oqpsk_data_rate = 2 (2) 1000 kb/s f clk crystal oscillator frequency reference oscillator 16 mhz f srd symbol rate deviation reference frequency accuracy for correct functionality psdu bit rate 20/40/100/250kb/s -60 (3) +60 ppm 200/400/500/1000kb/s -40 +40 ppm notes: 1. for register bit sub_mode = 0 (register 0x0c, trx_ctrl_2). 2. for register bit sub_mode = 1 (register 0x0c, trx_ctrl_2). 3. a reference frequency accuracy of 40ppm is required by [1], [2], [3], [4].
183 42002c ? mcu wireless ? 08/13 at86rf212b 12.6 transmitter characteristics test condit ions (unless otherwise stated): v dd = 3 .0 v , f rf = 914 mhz , t op = +25 c , measurement setup see figure 5 - 1 . symbol parameter condition min. typ. max. unit p tx_max tx output power maximum configurable tx output power value normal mode +5 dbm boost mode +10 dbm p range output power range 36 steps, configurable in register 0x05 (phy_tx_pwr) 35 db p acc output power tolerance 868.3mhz 3 db p 1db 1db compression point normal mode 5 dbm boost mode 10 dbm evm error vector magnitude (1) bpsk-20 5 %rms bpsk-40 8 %rms bpsk-40- alt 8 %rms oqpsk - sin -rc-100 (2)(3) 29 %rms oqpsk - sin -250 16 %rms oqpsk -rc-100 (3) 10 %rms oqpsk -rc-250 10 %rms p 2nd_harm 2 nd harmonics (4) tx power: +10dbm 914mhz ? 27 dbm 868.3mhz ? 26 dbm 782mhz ? 28 dbm tx power: - 2dbm 914mhz ? 53 dbm 868.3mhz ? 46 dbm 782mhz ? 42 dbm p 3rd_harm 3 rd harmonics (4) tx power: +10dbm 914mhz ? 22 dbm 868.3mhz ? 22 dbm 782mhz ? 23 dbm tx power: - 2dbm 914mhz ? 38 dbm 868.3mhz ? 38 dbm 782mhz ? 37 dbm p spur_tx spurious emissions (5) 30 ? 1000mhz -36 dbm >1 ? 12.75ghz -30 dbm notes: 1. power settings according to table 9 -15. 2. the evm of oqpsk - sin -rc- 100 is significantly higher than the evm of the other modulation schemes. this phenomenon can be explained by the fact that the combination of sin and rc shaping as specified in ieee 802.15.4 - 2006/2011 inherently show some inter - chi p interference.
184 42002c ? mcu wireless ? 08/13 a t86rf212b symbol parameter condition min. typ. max. unit 3. the evm is valid up to +5dbm. 4. measured single ended @ rfp/ rfn into 50; termination of the other pin with 50; constant wave signal. 5. complies with en 300 328/440, fcc - cfr- 47 part 15, arib std - 66, rss -210. 12.7 receiver characteristics test condit ions (unless otherwise stated): v dd = 3.0 v , f rf = 914 mhz , t op = +25 c , measurement setup see figure 5 - 1 . symbol parameter condition min. typ. max. unit p sens receiver sensitivity f rf = 868.3mhz bpsk-20 (1)(3) -110 dbm oqpsk - sin -rc-100 (1)(4) -101 dbm oqpsk - sin -rc-200 (2) -99 dbm oqpsk - sin -rc-400 (2) -91 dbm oqpsk -rc-100 (1) -102 dbm oqpsk -rc-200 (2) -100 dbm oqpsk -rc-400 (2) -97 dbm f rf = 914mhz bpsk-40 (1)(3) -108 dbm oqpsk - sin -250 (1)(4) -100 dbm oqpsk - sin -500 (2) -98 dbm oqpsk - sin -1000 (2) -93 dbm f rf = 782mhz oqpsk -rc-250 (1)(5) -101 dbm oqpsk -rc-500 (2) -99 dbm oqpsk -rc-1000 (2) -95 dbm rl rx rx return loss 100 differential impedance 12 db nf noise figure 7 db p rx_max maximum rx input level (1) 7 10 dbm p crsb20 channel rejection/selectivity: bpsk-20 (3) f rf = 868.3mhz p rf = - 89dbm (1) - 2mhz 39 db - 1mhz 33 db +1mhz 19 db +2mhz 39 db p crso100 channel rejection/selectivity: oqpsk - sin -rc-100 (4) f rf = 868.3mhz p rf = - 82dbm (1) - 2mhz 35 db - 1mhz 24 db +1mhz 17 db +2mhz 35 db
185 42002c ? mcu wireless ? 08/13 at86rf212b symbol parameter condition min. typ. max. unit p acrb40 adjacent channel rejection: bpsk-40 (3) p rf = - 89dbm (1) - 2mhz 38 db +2mhz 38 db p aacrb40 alternate channel rejection: bpsk-40 (3) p rf = - 89dbm (1) - 4mhz 56 db +4mhz 56 db p acros250 adjacent channel rejection: oqpsk - sin -250 (4) p rf = - 82dbm (1) - 2mhz 30 (6) db +2mhz 30 (6) db p aacros250 alternate channel rejection: oqpsk - sin -250 (4) p rf = - 82dbm (1) - 4mhz 47 (6) db +4mhz 47 (6) db p acror250 adjacent channel rejection: oqpsk -rc-250 (5) p rf = - 82dbm (1) - 2mhz 32 db +2mhz 32 db p aacror250 alternate channel rejection: oqpsk -rc-250 (5) p rf = - 82dbm (1) - 4mhz 50 db +4mhz 50 db rx bl blocking f rf = 868.3mhz refer to etsi en 300 220 -1 p rf = - 90dbm (1) bpsk- 20, 2mhz 38 db bpsk- 20, 10mhz 71 db oqpsk - sin -rc- 100, 2mhz 34 db oqpsk - sin -rc- 100, 10mhz 68 db p spur_rx spurious emissions lo leakage -71 dbm 30 ? 1000mhz -57 dbm >1 ? 12.75ghz -47 dbm iip3 3 rd ? order intercept point 868.3mhz, at maximum gain offset freq. interf. 1 = 2mhz offset freq. interf. 2 = 4mhz -12 dbm iip2 2 nd ? order intercept point 868.3mhz, at maximum gain offset freq. interf. 1 = 3 mhz offset freq. interf. 2 = 4 mhz 25 dbm rssi tol rssi tolerance tolerance within gain step 6 db rssi range rssi dynamic range 87 db rssi res rssi resolution 3.1 db rssi base_v al rssi sensitivity defined as rssi_base_val bpsk with 300kchips/s -100 dbm bpsk with 600kchips/s -99 dbm o - qpsk with 400kchips/s, sin and rc - 0.2 shaping -98 dbm o - qpsk with 400kchips/s, rc- 0.2 shaping -98 dbm
186 42002c ? mcu wireless ? 08/13 a t86rf212b symbol parameter condition min. typ. max. unit o - qpsk with 1000kchips/s, sin shaping -98 dbm o - qpsk with 1000kchips/s, rc- 0.8 shaping -97 dbm rssi min minimum rssi value p rf rssi_base_val 0 rssi max maximum rssi value p rf rssi_base_val + 87db 28 notes: 1. awgn channel, per 1%, psdu length 20 octets. 2. awgn channel, per 1%, psdu length 127 octets. 3. compliant to [1]. 4. compliant to [2]. 5. compliant to [4]. 6. channel rejection is limited by modulation side lobes of interfering signal.
187 42002c ? mcu wireless ? 08/13 at86rf212b 12.8 current consumption specifications test condit ions (unless otherwise stated): v dd = 3.0 v , f rf = 914 mhz , t op = +25 c , measurement set up see figure 5 - 1 . symbol parameter condition min. typ. max. unit i busy_tx supply current transmit state north american band, o - qpsk modulation p tx = +10dbm (boost mode) 26.5 ma p tx = +5dbm (normal mode) 18.0 ma p tx = +0dbm (normal mode) 13.5 ma p tx = - 25dbm (normal mode) 9.5 ma i rx_on supply current rx_on state north american band, o - qpsk modulation high sensitivity rx_pdt_level = [0x0] 9.2 ma receiver desensitize rx_pdt_level = [0x1, ..., 0xe, 0xf] (1) 8.7 ma i pll_on supply current pll_on state 5.0 ma i trx_off supply current trx_off state 450 a i sleep supply current sleep state 0.2 a notes: 1. refer to section 9.2.3. 2. all power consumption measurements are performed with clkm disabled. 12.9 crystal parameter requirements test conditions: t op = +25 c , v dd = 3.0 v (unless otherwise stated ). symbol parameter condition min. typ. max. unit f 0 crystal frequency 16 mhz c l load capacitance 8 14 pf c 0 crystal shunt capacitance 7 pf esr equivalent series resistance 100
188 42002c ? mcu wireless ? 08/13 a t86rf212b 13 typical characteristics 13.1 active supply current the following charts showing each a typical behavior of the atmel at86rf212b . these figures are not tested during manufacturing. all power consumption measurements are performed with pin 17 (clkm) disabled, unless otherwise stated. the measurement setup used for the measurements i s shown in figure 5 - 1 . the power consumption of the microcontroller, which is required to program the radio transceiver, is not included in the measurement results. the power consumption in sleep state is independent from clkm master clock rate selection. the current consumption depends on several factors such as: operating voltage, operating frequency, loading of i/o pins, switching rate of i/o pins, and ambient temperature. the dominating factors are operating voltage and ambient temperature. if possible the measurement results are not affected by current drawn from i/o pins. register, sram or frame buffer read or write accesses are not performed during current consumption measurements. 13.1.1 p_on and trx_off states figure 13 - 1 . current consumption in p_on state.
189 42002c ? mcu wireless ? 08/13 at86rf212b figure 13 - 2 . current consumption in trx_off state. 13.1.2 pll_on state figure 13 - 3 . current consumption in pll_on state.
190 42002c ? mcu wireless ? 08/13 a t86rf212b 13.1.3 rx_on state figure 13 - 4 . current consumption in rx_on state ? high sensitivity. figure 13 - 5 . current consumption in rx_on state ? high input level.
191 42002c ? mcu wireless ? 08/13 at86rf212b figure 13 - 6 . current consumption in rx_on state ? reduced sensitivity. 13.1.4 tx_busy state figure 13 - 7 . current consumption in tx_busy state ? minimum output power.
192 42002c ? mcu wireless ? 08/13 a t86rf212b figu re 13 - 8 . current consumption in tx_busy state ? output power 0dbm. figure 13 - 9 . current consumption in tx_busy state ? output power 5 dbm.
193 42002c ? mcu wireless ? 08/13 at86rf212b figure 13 - 10. current consumption in tx_busy state ? maximum output power. 13.1.5 sleep figure 13 - 11. current consumption in sleep.
194 42002c ? mcu wireless ? 08/13 a t86rf212b 13.2 state transition timing figure 13 - 12. transition time from evdd to p_on (clkm available). figure 13 - 13. transition time from sleep to trx_off ( irq_4 (awake_end) ).
195 42002c ? mcu wireless ? 08/13 at86rf212b figure 13 - 14. transition time from trx_off to pll_on.
196 42002c ? mcu wireless ? 08/13 a t86rf212b 14 register reference the atmel at86rf212b provides a regis ter space of 64 8 - bit registers used to configure, control and monitor the radio transceiver. note: all registers not mentioned within the following table are reserved for internal use an d must not be overwritten. when writing to a register, any reserved bits shall be overwritten only with their reset value. table 14- 1 . register summary . addr name bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 page 0x01 trx_status cca_done cca_status reserved trx_status 44 , 65 , 103 0x02 trx_state trac_status trx_cmd 45 , 66 0x03 trx_ctrl_0 pad_io pad_io_clkm clkm_sha_sel clkm_ctrl 7 , 144 0x04 trx_ctrl_1 pa_ext_en irq_2_ext_en tx_auto_crc_on rx_bl_ctrl spi_cmd_mode irq_mask_mode irq_polarity 22 , 30 , 68 , 94 , 172 , 173 , 176 0x05 phy_tx_pwr pa_boost gc_pa tx_pwr 127 0x06 phy_rssi rx_crc_valid rnd_value rssi 95 , 97 , 167 0x07 phy_ed_level ed_level 100 0x08 phy_cc_cca cca_request cca_mode channel 104 , 108 , 151 0x09 cca_thres cca_cs_thres cca_ed_thres 105 , 108 0x0a rx_ctrl reserved jcm_en reserved reserved 146 0x0b sfd_value sfd_value 178 0x0c trx_ctrl_2 rx_safe_mode trx_off_avdd_en oqpsk_scram_en alt_spectrum bpsk_oqpsk sub_mode oqpsk_data_rate 115 , 138 , 177 0x0d ant_div ant_sel reserved ant_div_en ant_ext_sw_en ant_ctrl 169 0x0e irq_mask irq_mask 29 0x0f irq_status irq_7_bat_low irq_6_trx_ur irq_5_ami irq_4_cca_ed_done irq_3_trx_end irq_2_rx_start irq_1_pll_unlock irq_0_pll_lock 29 0x10 vreg_ctrl avreg_ext avdd_ok reserved dvreg_ext dvdd_ok reserved 136 0x11 batmon pll_lock_cp reserved batmon_ok batmon_hr batmon_vth 140 , 155 0x12 xosc_ctrl xtal_mode xtal_trim 147 0x13 cc_ctrl_0 cc_number 152 0x14 cc_ctrl_1 reserved reserved cc_band 153 0x15 rx_syn rx_pdt_dis rx_override rx_pdt_level 119 0x16 rf_ctrl_0 pa_lt reserved if_shift_mode gc_tx_offs 130 0x17 xah_ctrl_1 reserved csma_lbt_mode aack_fltr_res_ft aack_upld_res_ft reserved aack_ack_time aack_prom_mode reserved 69 , 85 , 109 0x18 ftn_ctrl ftn_start reserved reserved 156 0x1a pll_cf pll_cf_start reserved reserved reserved 153 0x1b pll_dcu pll_dcu_start reserved 154 0x1c part_num part_num 23 0x1d version_num version_num 23 0x1e man_id_0 man_id_0 24 0x1f man_id_1 man_id_1 24 0x20 short_addr_0 short_addr_0 88 0x21 short_addr_1 short_addr_1 88 0x22 pan_id_0 pan_id_0 89 0x23 pan_id_1 pan_id_1 89 0x24 ieee_addr_0 ieee_addr_0 89 0x25 ieee_addr_1 ieee_addr_1 90 0x26 ieee_addr_2 ieee_addr_2 90 0x27 ieee_addr_3 ieee_addr_3 90 0x28 ieee_addr_4 ieee_addr_4 91 0x29 ieee_addr_5 ieee_addr_5 91
197 42002c ? mcu wireless ? 08/13 at86rf212b addr name bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 page 0x2a ieee_addr_6 ieee_addr_6 91 0x2b ieee_addr_7 ieee_addr_7 92 0x2c xah_ctrl_0 max_frame_retries max_csma_retries slotted_operation 71 0x2d csma_seed_0 csma_seed_0 73 0x2e csma_seed_1 aack_fvn_mode aack_set_pd aack_dis_ack aack_i_am_coord csma_seed_1 74 , 87 0x2f csma_be max_be min_be 76
198 42002c ? mcu wireless ? 08/13 a t86rf212b the reset values of the atmel at86rf212b registers in state p_on (1, 2, 3) are shown in table 14 - 2 . note: all reset values in table 14 - 2 are only valid after a power on reset . after a reset procedure (/rst = l ) as described in section 7.1.4.5 , the reset values of selected registers ( for example registers 0x01, 0x10, 0x11, 0x30) ca n differ from that in table 14- 2 . table 14- 2 . register summary ? reset values . address reset value 0x00 0x00 0x01 0x00 0x02 0x00 0x03 0x19 0x04 0x20 0x05 0x60 0x06 0x00 0x07 0xff 0x08 0x25 0x09 0x77 0x0a 0x17 0x0b 0xa7 0x0c 0x24 0x0d 0x01 0x0e 0x00 0x0f 0x00 address reset value 0x10 0x00 0x11 0x02 0x12 0xf0 0x13 0x00 0x14 0x00 0x15 0x00 0x16 0x31 0x17 0x00 0x18 0x58 0x19 0x00 0x1a 0x48 0x1b 0x40 0x1c 0x07 0x1d 0x03 0x1e 0x1f 0x1f 0x00 address reset value 0x20 0xff 0x21 0xff 0x22 0xff 0x23 0xff 0x24 0x00 0x25 0x00 0x26 0x00 0x27 0x00 0x28 0x00 0x29 0x00 0x2a 0x00 0x2b 0x00 0x2c 0x38 0x2d 0xea 0x2e 0x42 0x2f 0x53 address reset value 0x30 0x00 0x31 0x00 0x32 0x00 0x33 0x00 0x34 0x3f 0x35 0x00 0x36 0x00 0x37 0x00 0x38 0x00 0x39 0x40 0x3a 0x00 0x3b 0x00 0x3c 0x00 0x3d 0x00 0x3e 0x00 0x3f 0x00 notes: 1. while the reset value of register 0x10 is 0x00, any practical access to the register is only possible when dvreg is active. so this register is always read out as 0x04. for details, refer to section 9.5 . 2. while the reset value of register 0x11 is 0x02, any practical access to the register is only possible when batmon is activated. so this register is always read out as 0x22 in p_on state. for details, refer to section 9.6 . 3. while the reset value of register 0x30 is 0x00, any practical access to the register is only possible when the radio transceiver is accessible. so the register is usually read out as: a) 0x1 1 after a reset in p_on state b) 0x07 after a reset in any other state
199 42002c ? mcu wireless ? 08/13 at86rf212b 15 abbreviations a ack ? automatic acknowledgement ack ? acknowledgement adc ? analog - to - d igital c onverter ad ? antenna diversity aes ? advanced e ncryption s tandard agc ? automatic g ain c ontrol aret ? automatic retrans mission avreg ? analog voltage regulator awgn ? additive white gaussian noise batmon ? battery monitor bbp ? base - band processor bpf ? band - pass filter bpsk ? binary phase shift keying cbc ? cipher block chaining cca ? clear channel assessment cc ? current channel cf ? center frequency crc ? cyclic redundancy check cs ? carrier sense csma - ca ? carrier sense multiple access ? collision avoidance cw ? continuous wave dac ? digital - to - analog converter dvreg ? digital voltage regulator ecb ? electronic code book ed ? energy detect esd ? electros tatic d ischarge evm ? error v ector m agnitude f c ? channel center frequency fcf ? frame control field fcs ? frame check sequence fifo ? first in, first out ftn ? filter tuning network gpio ? general purpose input/output ic ? integrated circuit ieee ? institute of electrical and electronic engineers if ? intermediate frequency i/o ? input/output i/q ? in/quadrature - phase irq ? interrupt request ism ? indust rial scientific medical lbt ? listen before talk ldo ? low dropout lna ? low - noise amplifier lo ? local oscillator lpf ? low - pass filter lqi ? link quality indication lsb ? least significant bit mac ? medium access control mfr ? mac f ooter mhr ? mac header mic ? message integrity code miso ? master input, slave output
200 42002c ? mcu wireless ? 08/13 a t86rf212b mosi ? master output, slave input msb ? most significant bit msdu ? mac service data unit nop ? no operation o - qpsk ? offset quadrature phase shift keying pa ? power amplifier pan ? personal area network pcb ? printed c ircuit b oard per ? packet error rate phr ? phy header phy ? physical layer pll ? phase - looked loop ppdu ? phy protocol data unit ppf ? poly - phase filter prbs ? pseudo random binary sequence psd ? power spectrum density psdu ? phy service data unit qfn ? quad flat no - lead package rbw ? resolution bandwidth rc ? raised cosine rf ? radio frequency rms ? root mean square rssi ? received signal strength indicator rx ? receiver sfd ? start - of - frame delimiter shr ? synchronization header spi ? serial peripheral interface sram ? static random access memory srd ? short range device trx ? transceiver tx ? transmitter vbw ? video bandwidth vco ? voltage controlled oscillator wpan ? wireless personal area network xosc ? crystal oscillator xtal ? crystal
201 42002c ? mcu wireless ? 08/13 at86rf212b 16 ordering information ordering code packaging package voltage range temperature range at86rf212b -z u tray qn 1.8 v ? 3.6 v industrial (-40c to +85 c ) lead -fr ee/halogen - free at86rf212b -z ur tape & reel qn 1.8 v ? 3.6 v industrial (-40c to +85 c ) lead - free/halogen- free package type descr iption qn 32qn2, 32 - lead 5.0x5.0mm body, 0.50 mm pitch, quad flat no - lead package (qfn) sawn note: t&r quantity 5 ,000. please contact your local atmel sales office for more detailed ordering information and minimum quantities. 17 soldering information recommended soldering profile is specified in ipc/jedec j - std - .020c. 18 package thermal properties thermal resistance velocity [m/s] theta ja [k/w] 0 40.9 1 35.7 2.5 32.0
202 42002c ? mcu wireless ? 08/13 a t86rf212b 19 package drawing ? 32qn2 symbol min. nom. max. note
203 42002c ? mcu wireless ? 08/13 at86rf212b appendix a ? continuous transmission test mode a.1 ? overview the atmel at86rf212b offers a continuous transmission test mode to support application and production tests as well as certification tests. using this test mode, the radio transceiver transmits continuously a previously transferred frame (prbs mode) or a continuous wave signal (cw mode). the at86rf212b uses i/q modulation for both, prbs mode and cw mode. in cw mode, this results in a signal which is not placed at the selected channel center frequency f c (refer to section 9.8.2 ), but at 0.1 or 0.25mhz apart this frequency. one out of four different signal frequencies per channel can be transmitted: ? f 1 = f c + 0.25 mhz using o - qpsk 1000 kb/s mode ? f 2 = f c - 0.25 mhz using o - qpsk 1000 kb/s mode ? f 3 = f c + 0.1 mhz using o - qpsk 400 kb/s mode ? f 4 = f c - 0.1 mhz using o - qpsk 400 kb/s mode as a side effect of i/q modulation, cw mode shows some unwanted signal components based on fin ite image rejection and non - linearities. i n addition to the above mentioned modes ? a cw mode which directly uses the pll signal without i/q modulation. this is the recommended mode because the signal is placed at the selected channel center frequency f c a nd unwanted signal components are significantly lower. prbs mode requires data in the frame buffer, that is a valid phr (see section 8.1 ) followed by psdu data. after transmission of two non - psdu octets , psdu data is repeated continuously. a.2 ? configuration detailed programming sequences are shown in table a - 1 for prbs and cw mode and in table a - 2 for additional cw mode. the column r/w informs about writing (w) or reading (r) a reg ister or the frame buffer. table a - 1 . prbs and cw mode programming sequence . step action register r/w value description 1 reset reset at86rf212b 2 register access 0x0e w 0x01 set irq mask register, enable irq_0 (pll_lock) 3 register access 0x02 w 0x03 set radio transceiver state trx_off 4 register access w set channel , refer to section 9.8.2 5 register access w set tx output power , refer to section 9.3.4 . for cw mode, gc_tx_offs should be set to three . see note 1. 6 register access 0x01 r 0x08 verify trx_off state 7 register access 0x36 w 0x0f
204 42002c ? mcu wireless ? 08/13 a t86rf212b step action register r/w value description 8 register access 0x0c w 0x00 0x04 0x08 0x0c 0x1c 0x0a 0x0e select prbs mode with modulation scheme or cw mode with carrier position: prbs mode, bpsk -20 prbs mode, bpsk -40 prbs mode, oqpsk - sin -rc-100 prbs mode, oqpsk - sin -250 prbs mode, oqpsk -rc-250 cw mode, cw at f c - 0.1 mhz or cw at f c + 0.1 m hz , see step 9 cw mode, cw at f c - 0.25 mhz or cw at f c + 0.25 mhz , see step 9 9 frame buffer write access w {phr, psdu} {0x01, 0x00} {0x01, 0xff} {0x01, 0x00} {0x01, 0xff} prbs mode: write phr value (0x01 ? 0x7f) followed by psdu data. phr determines how many bytes of the psdu data are repeated continuously. cw mode, cw at f c - 0.1 mhz cw mode, cw at f c + 0.1 mhz cw mode, cw at f c - 0.25 mhz cw mode, cw at f c + 0.25 mhz 10 register access 0x1c w 0x54 11 register access 0x1c w 0x46 12 register access 0x02 w 0x09 enable pll_on state 13 interrupt event 0x0f r 0x01 wait for irq_0 (pll_lock) 14 register access 0x02 w 0x02 initiate transmission, enter busy_tx state 15 measurement perform measurement 16 register access 0x1c w 0x00 disable continuous transmission test mode 17 reset reset at86rf212b
205 42002c ? mcu wireless ? 08/13 at86rf212b table a - 2 . additional cw mode programming sequence. step action register r/w value description 1 reset reset at86rf212b rev. c 2 register access 0x0e w 0x01 set irq mask register, enable irq_0 (pll_lock) 3 register access 0x02 w 0x03 set radio transceiver state trx_off 4 register access w set channel, refer to section 9.8.2 . 5 register access w set tx output power, refer to section 9.3.4 . for cw mode, gc_tx_offs should be set to three . see note 1 6 register access 0x01 r 0x08 verify trx_off state 7 register access 0x36 w 0x0f 8 register access 0x1c w 0x54 9 register access 0x1c w 0x42 10 register access 0x34 w 0x00 11 register access 0x3f w 0x08 12 register access 0x02 w 0x09 enable pll_on state 13 interrupt event 0x0f r 0x01 wait for irq_0 (pll_lock) 14 register access 0x02 w 0x02 initiate transmission, enter busy_tx state 15 measurement perform measurement 16 register access 0x1c w 0x00 disable continuous transmission test mode 17 reset reset at86rf212b rev. c note: 1. changing the output power during continuous transmission is not allowed.
206 42002c ? mcu wireless ? 08/13 a t86rf212b appendix b ? errata at86rf212b rev. c no known errata.
207 42002c ? mcu wireless ? 08/13 at86rf212b references [1] ieee standard 802.15.4? - 2003: wireless medium access control (mac) and physical layer (phy) specifications for low - rate wireless personal area networks (wpans). [2] ieee standard 802.15.4? - 2006: wireless medium access control (mac) and physical layer (phy) specifications for low - rate wireless personal area networks (wpans). [3] ieee standard 802.15.4c? - 2009: wireless medium access control (mac) and physical layer (phy) specifications for low - rate wireless personal area networks (wpans): amendment 2: alternative physical layer extension to support one or more of the chinese 314 - 316mhz, 430 - 434mhz, and 779 - 787mhz bands. [4] ieee standard 802.15.4? - 2011: low - rate wi reless personal area networks (wpans). [5] fcc title 47 (telecommunication) of the code of federal regulations, part 15 (radio frequency devices), october 200 9 . [6] etsi en 300 220 - 1 v2.3.1 (2009 - 04): electromagnetic compatibility and radio spectrum matters (erm); short range devices (srd); radio equipment to be used in the 25mhz to 1000mhz frequency range with power levels ranging up to 500 mw; part 1: technical characteristics and test methods. [7] er c recommendation 70 - 03 relating to the use of short range devices (srd). version of 18 february 2009. [8] ansi/esd stm5.1 ? 2007, electrostatic discharge sensitivity testing ? human body model (hbm); jesd22 - a114e ? 2006; cei/iec 60749 - 26 ? 2006; aec - q100 - 002- ref - d. [9] esd - stm5.3.1 - 1999: esd association standard test method for electrostatic discharge sensitivity testing ? charged device model (cdm). [10] nist fips pub 197: advanced encryption standard (aes), federal information processing standards publ ication 197, us department of commerce/nist, november 26, 2001. [ 11 ] at86rf212b software programming model.
208 42002c ? mcu wireless ? 08/13 a t86rf212b data sheet revision history please note that r evisions in this section are referring to the document revisions. rev. 42002c ? mcu wireless ? 08/13 1. remove content preliminary 2. editorial update a. page 105: update note 1. on register 0x09 b. page 203: update overview sect ion rev. 4 2002b ? mcu wireless ? 04/13 1. editorial update rev. 4 2002a ? mcu wireless ? 02/13 1. initial release :
209 42002c ? mcu wireless ? 08/13 at86rf212b table of contents 1 pin - out diagram .................................................................................. 2 1.1 pin descriptions ...................................................................................................... 3 1.2 analog a nd rf pins ............................................................................................... 4 1.3 digital pins .............................................................................................................. 6 2 disclaimer ............................................................................................ 8 3 overview .............................................................................................. 8 4 general circuit description ................................................................ 9 5 application schematic ..................................................................... 11 5.1 basic application schematic ................................................................................ 11 5.2 extended feature set application schematic ...................................................... 13 6 microcontroller interface .................................................................. 15 6.1 overview ............................................................................................................... 15 6.2 spi timing description ......................................................................................... 16 6.3 spi protocol .......................................................................................................... 17 6.4 radio transceiver status information .................................................................. 22 6.5 radio transceiver identification ........................................................................... 23 6.6 sleep/wake - up and transmit signal (slp_tr) ................................................... 25 6.7 interrupt logic ....................................................................................................... 27 7 operating modes ............................................................................... 32 7.1 basic operating mode .......................................................................................... 32 7.2 extended operating mode ................................................................................... 46 8 functional description ..................................................................... 77 8.1 introduction ? ieee 802.15.4 - 2006 frame format .............................................. 77 8.2 frame filter .......................................................................................................... 83 8.3 frame check sequence (fcs) ............................................................................ 93 8. 4 received signal strength indicator (rssi) .......................................................... 96 8.5 energy detection (ed) ......................................................................................... 98 8.6 clear channel assessment (cca) ..................................................................... 101 8.7 listen before talk (lbt) .................................................................................... 107 8. 8 link quality indication (lqi) ............................................................................... 110 9 module description ......................................................................... 111 9.1 physical layer modes ........................................................................................ 111 9.2 receiver (rx) ..................................................................................................... 118 9.3 transmitte r (tx) ................................................................................................. 121 9.4 frame buffer ....................................................................................................... 132
210 42002c ? mcu wireless ? 08/13 a t86rf212b 9.5 voltage regulators (avreg, dvreg) .............................................................. 135 9.6 battery monitor (batmon) ................................................................................ 139 9.7 crystal oscillator (xosc) and clock output (clkm) ........................................ 142 9.8 frequency synthesizer (pll) ............................................................................. 148 9.9 automatic filter tuning (ftn) ............................................................................ 156 10 radio transceiver usage ............................................................. 157 10.1 frame receive procedure ............................................................................... 157 10 .2 frame transmit procedure .............................................................................. 158 11 at86rf212b extended feature set ............................................ 159 11.1 security module (aes) ..................................................................................... 159 11.2 random number generator ............................................................................. 167 11.3 antenna diversity ............................................................................................. 168 11.4 rx/tx indicator ................................................................................................ 171 11.5 rx frame time stamping ................................................................................ 173 11.6 frame buffer empty indicator .......................................................................... 175 11.7 dynamic frame buffer protection .................................................................... 177 11.8 alternate start - of - frame delimiter .................................................................. 178 12 electrical characteristics ............................................................. 179 12.1 absolute maximum ratings .............................................................................. 179 12 .2 recommended operating range ..................................................................... 179 12.3 digital pin characteristics ................................................................................ 180 12.4 digital interface timing characteristics ............................................................ 180 12.5 general rf specifications ................................................................................ 182 12.6 transmitter characteristics .............................................................................. 183 12.7 receiver characteristics .................................................................................. 184 12.8 current consumption specifications ................................................................ 187 12.9 crystal parameter requirements ..................................................................... 187 13 typical characteristics ................................................................. 188 13.1 active supply current ....................................................................................... 188 13.2 state transition timing .................................................................................... 194 14 register reference ....................................................................... 196 15 abbreviations ................................................................................ 199 16 ordering information .................................................................... 201 17 soldering information ................................................................... 201 18 pac kage thermal properties ........................................................ 201 19 package drawing ? 32qn2 ........................................................... 202
211 42002c ? mcu wireless ? 08/13 at86rf212b appendix a ? continuous transmission test mode ...................... 203 a.1 ? overview ......................................................................................................... 203 a.2 ? configurat ion ................................................................................................... 203 appendix b ? errata ........................................................................... 206 at86rf212b rev. c ................................................................................................ 206 references .......................................................................................... 207 data sheet revision history ............................................................. 208 rev. 42002c ? mcu wireless ? 08/13 ........................................................................ 208 rev. 4 2002b ? mcu wireless ? 04/13 ......................................................................... 208 rev. 4 2002a ? mcu wireless ? 02/13 ......................................................................... 208 table of contents ............................................................................... 209
212 42002c ? mcu wireless ? 08/13 a t86rf212b atmel corporation 1600 technology drive san jose, ca 95110 usa tel: (+1)(408) 441 - 0311 fax: (+1)(408) 487 - 2600 www.atmel.com atmel asia limited unit 01 - 5 & 16, 19f bea tower, millennium city 5 418 kwun tong road kwun tong, kowloon hong kong tel: (+852) 2245 - 6100 fax: (+852) 2722 - 1369 atmel munich gmbh business campus parkring 4 d - 85748 garching b. munich germany tel: (+49) 89 - 31970 -0 fax: (+49) 89 - 3194621 atmel japan g.k. 16f shin - osaki kangyo bldg. 1 -6- 4 osaki, shinagawa -ku tokyo 141 - 0032 japan tel: (+81)(3) 6417 - 0300 fax: (+81)(3) 6417 - 0370 ? 2013 atmel corporation. all rights reserved. / rev.: 42002b ? mcu wireless ? 04/13 atmel ? , atmel logo and combinations thereof, avr ? , enabling unlimited possibilities ? , and others are registered trademarks or trademarks of atmel corporation or its subsidiaries. other terms and product names may be trademarks of others. disclaimer: the information in this document is provided in connection with atmel products. no license, express or implied, b y estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of atmel pro ducts. except as set forth in the atmel terms and conditions of sales located on the atmel website, atmel assumes no liability whatsoever and disclaims any express, implied or statutory warranty relating to its products including, but not limited to, the i mplied warranty of merchantability, fitness for a particular purpose, or non - infringement. in no event shall atmel be liable for any direct, indirect, consequential, punitive, special or incidental damages (including, without limitation, damages for loss a nd profits, business interruption, or loss of information) arising out of the use or inability to use this document, even if atmel has been advised of the possibility of s uch damages. atmel makes no representations or warranties with respect to the accurac y or completeness of the contents of this document and reserves the right to make changes to specifications and products desc riptions at any tim without notice. atmel does not make any commitment to update the information contained herein. unless specific ally provided otherwise, atmel products are not suitable for, and shall not be used in, automotive applications. atmel products are not intended, authorized, or warranted for use as components in applications inte nded to support or sustain life.


▲Up To Search▲   

 
Price & Availability of AT86RF212B-14

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X