Macアドレス有りEEPROM
EEPROM内のMacアドレスをRead
秋月電子で販売されているMacアドレス書き込み済みEEPROMからMacアドレスを読んでみる。
環境
Arduino IDEおよびArduino Unoを利用。
ATMEL AT93C46A/AT93C46D
EEPROM自体はATMEL AT93C46A/AT93C46D。
AT93C46A/AT93C46Dデータシート
秋月電子の本製品のページからたどれる。SPI接続でEEPROM領域へアクセス可能。
参照ソースコード
このEEPROMへのアクセスするソースコードサンプルはここに見つかる。これをほぼそのまま使う。
ソースコード
下記10-13は、ArduinoでSPI接続する場合のピン番号である。
#include "93C46.h"
#define pCS 10
#define pSK 13
#define pDI 11
#define pDO 12
// Prints all words of the buffer
void debugPrint(word* buff, int len) {
char buf[4];
Serial.print("\n 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
for(int i = 0; i < len; i++) {
if(i % 8 == 0) {
Serial.println();
sprintf(buf, "%02x", i*2); Serial.print(buf); Serial.print(" ");
}
sprintf(buf, "%02x", buff[i] & 0xFF); Serial.print(buf);
Serial.print(" ");
sprintf(buf, "%02x", (buff[i] & 0xFF00) >> 8); Serial.print(buf);
Serial.print(" ");
}
Serial.println();
}
void setup() {
bool longMode = EEPROM_93C46_MODE_16BIT;
eeprom_93C46 e = eeprom_93C46(pCS, pSK, pDI, pDO);
e.set_mode(longMode);
Serial.begin(9600);
int len = longMode ? 64 : 128;
word readBuffer[len];
for(int i = 0; i < len; i++) {
// Read by address
word r = e.read(i);
readBuffer[i] = r;
}
debugPrint(readBuffer, len);
Serial.println();
}
void loop() {}
結果
上記コードの実行結果は下記のとおり。
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 40 00 10 00 00 02 cb XX XX XX 00 00 00 00 00 00
10 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
50 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
60 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
70 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
本EEPROMに関する秋月電子のQ&Aページによると、販売メーカーが取得したベンダーコード「00 02 cb」が見える。その次に続く「XX XX XX」が連番のデータ。
最後に
上述のリンク先のソースコードを利用すれば、EEPROMのMacアドレス領域に書き込めるはず。ただし、Macアドレスのユニーク性が保証されなくなるので注意されたし。
Author And Source
この問題について(Macアドレス有りEEPROM), 我々は、より多くの情報をここで見つけました https://qiita.com/infinite1oop/items/8b43acd6b576a7bd989d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .