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 OffsetField NameField DescriptionLength
BaseAddr. + 0x00MIB_REVISIONData structure revision. 0x15012 bytes
+0x02MAC_IEEE_ADDRESSModule specific IEEE MAC Address8 bytes
+0x0ABOARD_SERIALModule specific serial number10 bytes
+0x14PART_NOProduct specific part number8 bytes
+0x1CPCBA_REVProduct PCB/assembly revision1 byte
+0x1DXTAL_TRIMReference crystal calibration value1 byte
+0x1ECRC16Checksum for this data structure2 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.