内蔵レジスタの読み書き

2002/09/24-


■概要
S1S60000(SEIKO EPSON社)搭載の内蔵レジスタは,リセット時にEEPROMのデータが転送され,MACアドレスや自IPアドレスなどを定義します.この値は,ユーザーが変更することが可能です.内蔵レジスタの読み書きについてのサンプルプログラムと動作について報告します.プログラムの利用はVisual C++が必要です.→ダウンロードページ

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

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



■プログラムの操作

ASB-004とEPN-001を接続し,FPGAをコンフィグレーションします.コンフィグレーション操作はソフトウェアに組み込むことも可能です.実行すると次のようなウィンドウが起動します.[接続]を押してください.[読込開始]にて,内蔵レジスタの内容を読込むことができます.途中で停止する場合には,[読込停止]を押してください.



自局IPである11hと12hが,0xc0a8,0x00feと確認できます.16進で c0.a8.00.fe なので192.168.0.254と設定されていることがわかります.このIPアドレスを 254 から 2 に変更してみます.エディットボックスの12hの項に2と入力して下さい.右横の無地のボタンを押し,再度読み込み開始を押します.次のように12hが2に変更されました.





■プログラム説明

Epn_Reg_READとEpn_Reg_Writeについて説明します.Epn_Reg_Readのデータポートにはコマンドオプション(16バイト)の送信となります.このコマンドオプションは操作の対象や,そのリード/ライトの指定,ビットマスク等を指定します.例えば,第5バイト目が「4」ならば内蔵レジスタとなり,「0」ならばEEPROMとなります.EEPROMの場合には受信データがありますが,内蔵レジスタの場合には,送受信データが存在しません.このデータはコマンドオプション(16バイト)に続くものです.

リード時に,16バイト目がレジスタの値となります.EEPROMの場合には,この後の受信データ2バイトとなります.ステータスポートはコマンドが認識されたか,読む必要があります.このサンプルプログラムのような逐次的な使い方では,「OK」以外のステータス値では,動作が停止します.実際の設計には,柔軟に対応してください.

Epn_Reg_READ 1. システムにSENDコマンド発行
2. データポートに書き込む
3. システムにRECEIVEコマンド発行
4. データポートから読む
Epn_Reg_Write 1. システムにSENDコマンド発行
2. データポートに書き込む

また,シーケンス番号は固定で与えていますが,コマンドを送信する際の識別信号となりますので,実際には考慮が必要です.ご了承ください.次のようなDOSプログラムで実験されると理解しやすいです.

例:
main()
{
  FPGAのコンフィグレーション
  仮想COMポートのオープン
  リセットやEPN-001の初期化

  wData = Epn_Reg_READ( アドレス );
  Epn_Reg_WRITE( アドレス, データ );  
}

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

HDLのホームページへ