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: – Status 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) MAC 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