dwm_mac_addr_set_once

MACアドレスリストをOTPメモリに書き込みます。慎重に使用してください。書き込み後は値を変更できません。これは、UWB、BLE、Ethernet、またはWi-Fiインターフェースで使用するデバイスのMACアドレスプールを提供するために、製造段階で使用することを目的としています。現在、MAC アドレスのリストは次のようにさまざまなインターフェイスに割り当てられています:

  • MAC アドレス 0 が UWB インターフェイスに割り当てられます。最下位 2 バイトは 0x0000 または 0xFFFF と等しくであってはなりません。

  • MAC アドレス 1 が BLE インターフェイスに割り当てられます。このアドレスはパブリック BLE アドレスとして使用されます。

  • MAC アドレス 2 はイーサネット、MAC アドレス 3 は Wi-Fi インターフェースにそれぞれ割り当てられます。アドレスは、LAA/UAA および U/I ビットに関して EUI-48 形式である必要があります。

void dwm_mac_addr_set_once(dwm_mac_addr_t *addr, uint8_t count)
パラメータ
  • input -- mac_addr_0, [mac_addr_1], [mac_addr_2], [mac_addr_3]

  • mac_addr_0 -- 48 ビット値 (リトルエンディアンの UWB MAC アドレス)

  • mac_addr_1 -- 48 ビット値 (少しの BLE MAC アドレス)エンディアン)

  • mac_addr_2 -- 48 ビット値 (リトルエンディアンのイーサネット MAC アドレス)

  • mac_addr_3 -- 48 ビット値 (リトルエンディアンの WIFI MAC アドレス)

  • output: -- ステータスコード

Cコード例

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 例

TLV 要求

タイプ

長さ

価値

0x82

0x18

(バイト 0-5) リトルエンディアンの MAC アドレス 0
(バイト 6-11) リトルエンディアンの MAC アドレス 1
(バイト 12-17) リトルエンディアンの MAC アドレス 2
(バイト 18-23) リトルエンディアンの MAC アドレス 3

...

タイプ 0x82 (130 dec) はコマンド dwm_mac_addr_set_once を意味します

TLV 応答

タイプ

長さ

値(エラーコードを参照)

0x40

0x01

0x00

タイプ0x40は、直前のコマンドの ステータスコード を意味する