1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include <Arduino.h>
typedef volatile uint32_t REG32;
#define pREG32 (REG32 *)
#define DEVICE_ID_HIGH (*(pREG32 (0x10000060)))
#define DEVICE_ID_LOW (*(pREG32 (0x10000064)))
#define MAC_ADDRESS_HIGH (*(pREG32 (0x100000a8)))
#define MAC_ADDRESS_LOW (*(pREG32 (0x100000a4)))
void setup() {
Serial.begin(115200);
while ( !Serial ) delay(10); // for nrf52840 with native usb
Serial.println("Bluefruit 52 HW Info");
Serial.println("");
// MAC Address
uint32_t addr_high = ((MAC_ADDRESS_HIGH) & 0x0000ffff) | 0x0000c000;
uint32_t addr_low = MAC_ADDRESS_LOW;
Serial.print("MAC Address: ");
Serial.print((addr_high >> 8) & 0xFF, HEX); Serial.print(":");
Serial.print((addr_high) & 0xFF, HEX); Serial.print(":");
Serial.print((addr_low >> 24) & 0xFF, HEX); Serial.print(":");
Serial.print((addr_low >> 16) & 0xFF, HEX); Serial.print(":");
Serial.print((addr_low >> 8) & 0xFF, HEX); Serial.print(":");
Serial.print((addr_low) & 0xFF, HEX); Serial.println("");
// Unique Device ID
Serial.print("Device ID : ");
Serial.print(DEVICE_ID_HIGH, HEX);
Serial.println(DEVICE_ID_LOW, HEX);
// MCU Variant;
Serial.printf("MCU Variant: nRF%X 0x%08X\n",NRF_FICR->INFO.PART, NRF_FICR->INFO.VARIANT);
Serial.printf("Memory : Flash = %d KB, RAM = %d KB\n", NRF_FICR->INFO.FLASH, NRF_FICR->INFO.RAM);
}
void loop() {
// put your main code here, to run repeatedly:
}
|