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.
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.