RX72M+KSZ8081MNX PHYのハードウェア構成でのコンポーネントr_ecat_rxの生成コードについて

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ではオン・オフを繰り返しているのですが、最後まで書き換えてくれます。おそらくですがリトライしているのだと思います。

Parents Reply Children
No Data