Grove対応 48bit MACアドレスモジュール

English page

I2C接続のMACアドレス書き込み済みEEPROM 24AA025E48 (Microchip社製)を実装したモジュールです。Grove互換コネクタを搭載しています。
Ethernet、Wi-Fi、Bluetooth等のネットワーク接続デバイスに一意の48bit MACアドレス(EUI-48)を割り当てることができます。
また、MACアドレスを記載したシールを同梱しています。

各部の名称

販売

販売ページ(スイッチサイエンス)
※販売ページに表示されている在庫数のほかにも、追加の在庫を保有している場合がございます。大量注文や在庫に関する問い合わせはこちらまでご連絡ください。

内容物

※MACアドレス記載シールは以下のように基板の裏面に貼付できるサイズです。

仕様

資料

回路図

外形寸法

DXFファイル:dimension_dxf.zip

3D CADデータ

STEPファイル:3d_step.zip

プログラム例

M5Stack Core2

配線図・サンプルコードを見る

#include <M5Core2.h>

#define MAC_24AA02Exx_DEV_ADDR        0x50
#define MAC_24AA02Exx_REG_ADDR_MAC    0xF8

void setup() {
  M5.begin(true, true, true, true);
  M5.Lcd.setTextSize(2);

  Wire.beginTransmission(MAC_24AA02Exx_DEV_ADDR);
  Wire.write(MAC_24AA02Exx_REG_ADDR_MAC);
  Wire.endTransmission(false);
  Wire.requestFrom(MAC_24AA02Exx_DEV_ADDR, 8);
  uint8_t MAC_addr_buf[8] = {'\0'};
  for(int i = 0; i < 8; i++)
    MAC_addr_buf[i] = Wire.read();

  // Determine whether the MAC address is EUI-48 or EUI-64
  int MAC_bytes;
  uint8_t MAC_addr[8] = {'\0'};
  if( (MAC_addr_buf[0] == 0xFF) && (MAC_addr_buf[1] == 0xFF) ) {
    MAC_bytes = 6;  // EUI-48 (24AA02xE48)
    memcpy(MAC_addr, MAC_addr_buf + 2, MAC_bytes);
  } else {
    MAC_bytes = 8;  // EUI-64 (24AA02xE64)
    memcpy(MAC_addr, MAC_addr_buf, MAC_bytes);
  }

  // print MAC address
  M5.Lcd.print(8 * MAC_bytes);
  M5.Lcd.println("bit MAC address");
  for(int i = 0; i < MAC_bytes; i++) {
    char strBuf[3];
    sprintf(strBuf, "%02X", MAC_addr[i]);
    M5.Lcd.print(strBuf);
    if(i < (MAC_bytes - 1))
      M5.Lcd.print(":");
  }
  M5.Lcd.println();
}

void loop() {
}

Arduino

ソースコード:24AA025Exx_sample.ino

Nucleo

NUCLEO-L476RGを利用したソースコードはこちら (IDE:SW4STM32)