RX72M+KSZ8081MNXをつないだ時の生成コードについてphy.cの中でecat_set_phyreg(void)関数を使ってPHYの1Fhレジスタを0010hに変更することでリンク検出をLED0で行えるようにするコードを生成します。このecat_set_phyreg(void)はr_ecat_setting_rx72m.cのesc_init(uint32_t)から呼び出されるのですが、SII EEPROM値が正常な時のみとなっています。
回路基板が実装直後ではEEPROMの値は全てFFhですので、EEPROMを正常にするためにはEEPROMをEtherCATマスタ経由で書き換える必要があります。KSZ8081MNXのLED0のリセット直後の動作仕様はパケット受信で点滅動作となります。なのでEtherCATスレーブIPはリンクがオフとオンを繰り返すような状態になります。TwinCAT2でなんとか書き換えることができれば普通に使えるようになるのですが、そもそもEEPROMの値に依存してecat_set_phyreg()を呼ばない場合を作るのは正しいのか?その理由は何か?分かる方はいらっしゃいますか?
なお、Slave Stack Code ToolのEEPROM書き換え機能ではオフラインになるせいで書き換えに失敗します。TwinCAT2ではオン・オフを繰り返しているのですが、最後まで書き換えてくれます。おそらくですがリトライしているのだと思います。
Shoji Yamamotoさん、フォーラム管理人です。本件、回答できる方がおられないようです。下記URLのルネサス技術問合せ窓口へ問合せてみてください。よろしくお願いします。URL: ja-support.renesas.com/dashboard