5 Nonvolatile Memory Information

The ATSAMR30M18A provides the user a readable Nonvolatile Memory (NVM) space called user row, programmed in the factory. The base address for the application is 0x804008. The following table shows the implemented data structure.

Table 5-1. NVM (User Row) Data
Address Offset Field Name Field Description Length
BaseAddr. + 0x00 MIB_REVISION Data structure revision. 0x1501 2 bytes
+0x02 MAC_IEEE_ADDRESS Module specific IEEE MAC Address 8 bytes
+0x0A BOARD_SERIAL Module specific serial number 10 bytes
+0x14 PART_NO Product specific part number 8 bytes
+0x1C PCBA_REV Product PCB/assembly revision 1 byte
+0x1D XTAL_TRIM Reference crystal calibration value 1 byte
+0x1E CRC16 Checksum for this data structure 2 bytes

BOARD_SERIAL and PART_NO for this ATSAMR30M18A will be programmed with 0xFF. The end user application software must copy two data fields to radio transceiver registers. The data in MAC_IEEE_ADDRESS must be copied to the registers IEEE_ADDR_0 to IEEE_ADDR_7 of AT86RF212B. The MAC_IEEE_ADDRESS is stored little-endian with the first byte stored at the lowest address.

The XTAL_TRIM value is determined during the production test and must be copied to the transceiver XTAL_TRIM bits of XOSC_CTRL register (AT86RF212B). For more information on registers, see the SAM R30 Datasheet. Programming the XTAL_TRIM value reduces the absolute deviation for the 16 MHz reference crystal. CRC16 is calculated using CRC-CCITT with the polynomial x16 + x12 + x5 + 1 and initial value as 0xFFFF.