目次

EtherCAT

SII(Slave Information Interface)

スレーブ情報インターフェース
スレーブは不揮発性メモリを使ってEtherCAT Slave Information(ESI)を保存する.
不揮発性メモリにはI2C接続のEEPROMが一般的

EEPROMの中身はWordアドレスで表現されている図が多い.
1Word=2byte.ここの理解が甘くてこんがらがってしまった.

EtherCAT Slave Controller Configuration Area

電源ON時,Reset時に読み込まれる.範囲は0x00~0x07
この中身の値は各メーカごとに異なる.
言い方を変えるとここの値が正しく設定されていないとアプリケーションとの通信ができない.

0x00 PDI Control(0x0140) / ESC Configuration(0x0141)

ESCとアプリケーションのスレーブとの接続方法を設定する.
デジタルIO, SPI, HBI等
どんな接続方法が使えるかはそのESCに依存する.
LAN9252の場合,GPIO(0x04),SPI(0x80)と設定して使うことがほどんどと思われる.

0x01 PDI Configuration(0x0150) / SYNC/LATCH PDI Configuration(0x0151)

PDIコンフィグレーションレジスタ.
PDIをGPIOもしくはHBIどちらかにすることで設定する.
SYNC/LATCH PDIコンフィグレーションレジスタではSYNC0/SYNC1の入出力の設定を行う.

0x02 Pulse Length of SYNC Signals(0x0982-0x0983)

SYNC SIGNAL パルス長レジスタ.
LAN9252では単位:10nsと書いてあるがこれは1LSBで10nsということか?
ACKモートでは0を入れる.

0x03 Extended PDI Configuration(0x0152-0x0153)

拡張PDIコンフィグレーションレジスタ
LAN9252では,GPIOピンの入出力方向やバッファタイプを指定

0x04 Configured Station Alias(0x0012-0x0013)

構成済みステーションエイリアスアドレス.
ノードのアドレス指定に使うエイリアスアドレスを指定.

0x05, 0x06 Reserved

予約済み,0で埋める.
LAN9252は0x05がASICコンフィグレーションレジスタとなっている.
ここをいじることはないと思うけど

0x07 Checksum

ESC Configuration Areaのチェックサム.0x00~0x06までの値を元に計算する.
下位バイトに符号なしの数値が入る.
多項式は$x^8+x^2+1$(初期値0xFF)
デバッグ目的で,0x88A4を入力すると,チェックサム機能が無効になる(製品には使ってはいけない)

VenderID

0x08~0x09

ProductCode

0x0A~0x0B

RivisionNo

0x0C~0x0D

SerialNo

0x0E~0x0F

Hardware Delays

0x10~0x13

以下の部分はPanasonicのサーボアンプの資料から引っ張ってきた.この部分はEtherCATで共通のはず.

Bootstrap Mailbox Config

0x14~0x17

0x14 Bootstrap Receive MailBox Offset

0x15 Bootstrap Receive MailBox Size

0x16 Bootstrap Send MailBox Offset

0x17 Bootstrap Send MailBox Size

Mailbox SM Config

0x18~0x1B

0x18 Standard Receive MailBox Offset

0x19 Standard Receive MailBox Size

0x1A Standard Send MailBox Offset

0x1B Standard Send MailBox Size

0x1C Mailbox Protocol

Reserved

0x28~0x3F

Additional Information (Subdivided in Categories)

Category Strings

Category Generals

Category FMMU

Category SyncManager

Category Tx- / RxPDO for each PDO