スレーブ情報インターフェース
スレーブは不揮発性メモリを使ってEtherCAT Slave Information(ESI)を保存する.
不揮発性メモリにはI2C接続のEEPROMが一般的
EEPROMの中身はWordアドレスで表現されている図が多い.
1Word=2byte.ここの理解が甘くてこんがらがってしまった.
電源ON時,Reset時に読み込まれる.範囲は0x00~0x07
この中身の値は各メーカごとに異なる.
言い方を変えるとここの値が正しく設定されていないとアプリケーションとの通信ができない.
ESCとアプリケーションのスレーブとの接続方法を設定する.
デジタルIO, SPI, HBI等
どんな接続方法が使えるかはそのESCに依存する.
LAN9252の場合,GPIO(0x04),SPI(0x80)と設定して使うことがほどんどと思われる.
PDIコンフィグレーションレジスタ.
PDIをGPIOもしくはHBIどちらかにすることで設定する.
SYNC/LATCH PDIコンフィグレーションレジスタではSYNC0/SYNC1の入出力の設定を行う.
SYNC SIGNAL パルス長レジスタ.
LAN9252では単位:10nsと書いてあるがこれは1LSBで10nsということか?
ACKモートでは0を入れる.
拡張PDIコンフィグレーションレジスタ
LAN9252では,GPIOピンの入出力方向やバッファタイプを指定
構成済みステーションエイリアスアドレス.
ノードのアドレス指定に使うエイリアスアドレスを指定.
予約済み,0で埋める.
LAN9252は0x05がASICコンフィグレーションレジスタとなっている.
ここをいじることはないと思うけど
ESC Configuration Areaのチェックサム.0x00~0x06までの値を元に計算する.
下位バイトに符号なしの数値が入る.
多項式は$x^8+x^2+1$(初期値0xFF)
デバッグ目的で,0x88A4を入力すると,チェックサム機能が無効になる(製品には使ってはいけない)
0x08~0x09
0x0A~0x0B
0x0C~0x0D
0x0E~0x0F
0x10~0x13
以下の部分はPanasonicのサーボアンプの資料から引っ張ってきた.この部分はEtherCATで共通のはず.
0x14~0x17
0x18~0x1B
0x28~0x3F