Our website is under construction. Please stay tuned!

dwm_mac_addr_set_once

Writes the MAC address list to OTP memory and must be used carefully! The values cannot be modified after they have been written! It is intended to be used in the production phase to provide a MAC address pool for the device to be used by UWB, BLE, Ethernet or Wi-Fi interface. Currently, the list of the MAC addresses is assigned to various interfaces as follows:

  • MAC address 0 is assigned to the UWB interface. The two least significant bytes must not be equal to 0x0000 or 0xFFFF.

  • MAC address 1 is assigned to the BLE interface. The address will be used as the Public BLE address.

  • MAC address 2 and MAC address 3 are assigned to the Ethernet and the Wi-Fi interface, respectively. The address should be in the EUI-48 format respecting the LAA/UAA and the U/I bit.

void dwm_mac_addr_set_once(dwm_mac_addr_list_t *mac_addr_list)
Parameters
  • input – mac_addr_0, [mac_addr_1], [mac_addr_2], [mac_addr_3]

  • mac_addr_0 – ? 48-bits value ? (UWB MAC address in little endian)

  • mac_addr_1 – ? 48-bits value ? (BLE MAC address in little endian)

  • mac_addr_2 – ? 48-bits value ? (Ethernet MAC address in little endian)

  • mac_addr_3 – ? 48-bits value ? (WIFI MAC address in little endian)

  • output: – err_code

C code example

dwm_mac_addr_list_t mac_addr_list;
dwm_mac_addr_get(&mac_addr_list);
memcpy(mac_addr_list.mac[0],**
(uint8_t[DWM_MAC_ADDR_LEN]){0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff},** **DWM_MAC_ADDR_LEN);
rv: dwm_mac_addr_set(&mac_addr_list);
if (rv != DWM_OK) {
printf("can't set MAC address list, error %d\n", rv);
}

SPI/UART example

TLV request

type

length

value

0x82

0x18

(byte 0-5) MAC address 0 in little endian (byte 6-1#. MAC address 1 in little endian (byte 12-17) AC address 2 in little endian (byte 18-23) MAC address 3 in little endian

Type 0x82 (130 dec) means command dwm_mac_addr_set_once

TLV response

type

length

value (see error codes)

0x40

0x01

0x00

Type 0x40 means err_code of the previous command