EEPROMの読み書き

2002/09/26-


■概要
EPN-001にはEEPROM(93C46)が搭載されています.このEEPROMは,MACアドレスや自IPアドレス等のデータを,内蔵レジスタへと転送します.このEEPROMの値は,ユーザーが変更することが可能です.EEPROMの読み書きについてのサンプルプログラムと動作について報告します.プログラムの利用はVisual C++が必要です.→ダウンロードページ

このプログラムは完全に動作を保証するものではありません.

EEPROMの詳細はSEIKO EPSON社が提供するテクニカルマニュアルを参照して下さい.



■操作について

このサンプルプログラムは,「内蔵レジスタの読み書き」にて説明しましたプログラムとほとんど同じです.起動すると,同様のウィンドウとなり,「接続」にて仮想COMポートをオープンします.「読込開始」にて,順に00hから読込みます.

EEPROMへの書き込みは,SEIKO EPSON社が提供するテクニカルマニュアル等を参照し,慎重に行ってください.

エディットボックスに ffff と入力し,右横の無地のボタンを押します.下は00hから23hまで0xffffに変更し,読込んだ結果です.


次に,0x0000にします.すべての値を変更することができました.


■プログラムの説明
内蔵レジスタの書換えと異なる点について説明します.内蔵レジスタは送信データと受信データを使用しません.EEPROMは送信データと受信データを使用して値を得たり,変更したりします.次に示すのは,EEPROMの書換えの関数 ( Epn_EEPROM_WRITE ) です.ステータスポートの説明は省いています.データポートへ16バイトをセットし,続けて,2バイトを送信データとして,EEPROMに書き込むデータとなります.操作/オブジェクトが,リード,ライト,EEPROM,I2Cなどを指定します.

void Epn_EEPROM_WRITE( EPN_WORD addr, EPN_WORD data )
{
  一部省略
 ※big/little エンディアンには注意して下さい.
 EpnSetDataPort(0x0200); // 1  0  送信データ長
 EpnSetDataPort(0x0000); // 3  2  フラグ
 EpnSetDataPort(0x0001); // 5  4  操作&オブジェクト
 addr = addr << 8;
 EpnSetDataPort(addr);   // 7  6  オフセットアドレス
 EpnSetDataPort(0x0000); // 9  8
 EpnSetDataPort(0x0000); //11 10
 EpnSetDataPort(0x0000); //13 12
 EpnSetDataPort(0x0000); //15 14 ←内蔵レジスタの場合のデータ

 //ココから送信データとなります.
 //内蔵レジスタの場合は,上の14,15バイト目にセットします.EEPROMの場合には下のようになります.
 data = (data << 8) | (data >> 8);
 EpnSetDataPort( data );
}

受信の場合にも,同様に受信データにEEPROMの値が格納されます.実際のプログラムを見比べて,参考にして下さい.→ダウンロードページ

メールでのご質問はこちらへどうぞ

HDLのホームページへ