現在、実験でVC707を用いており、
SiTCPのプログラムにてPCとの間のデータの転送行っています。
しかし、これまで現在突然通信ができなくなるというトラブルに見舞われています。
具体的にはpingが通らなくなり、socketの送受信がtimeoutしてしまうといった問題です。
ケーブルの不備やFPGAの故障を疑いましたが、どれも故障していませんでした。
何か疑ったほうがよさそうな箇所等がありましたらご教授お願いいたします。
現在、実験でVC707を用いており、
SiTCPのプログラムにてPCとの間のデータの転送行っています。
しかし、これまで現在突然通信ができなくなるというトラブルに見舞われています。
具体的にはpingが通らなくなり、socketの送受信がtimeoutしてしまうといった問題です。
ケーブルの不備やFPGAの故障を疑いましたが、どれも故障していませんでした。
何か疑ったほうがよさそうな箇所等がありましたらご教授お願いいたします。
Pingが通らないならば、リンクを確認してください。
リンクダウンの場合はPHYが原因です。
リンクアップしている場合は、以下が考えられます。
コメントありがとうございます。
Windows10で”netsh interface show interface”と表示されたので、
リンクアップはしているようでした。
vc707 のSiTCPのソースコードを改変したものを用いています。
三つの考え得る理由についてですが、
一つ目はソースコードからデフォルトIPアドレスを削除して用いています。
これは書き換えた後も接続できたので問題ないかと考えています。
書き換える前のものを用いても通信ができていません。
二つ目はリセットを行う前後で確認しているので、多分問題ないかと思います。
三つ目はMACアドレスについては書き換えていませんが、
別のvc707で試すというのはそれほど効果がないということでしょうか。
「突然通信ができなくなるというトラブル」の意味ですが
「通信ができている状態からできない状態になる」事象が頻発する
との理解であっていますか?
途中で動かなくなるとすれば、先のコメントのような原因が想定されます。
その他にはFPGAの温度上昇によるタイミングバイオレーションも考えられます。
もちろんFPGAや基板の故障も否定はできません。
言葉足らずで申し訳ございませんが、
「突然通信ができなくなるというトラブル」の意味ですが、
「通信ができている状態からできなくなる」事象が頻発するでだいたいあっています。
これまで頻発する事象はSiTCPをリセットすることで解決していました。
しかしつい最近に起動するも通信が全くできなくなりました。
(I/Oに信号を入れるとLEDが点滅するなどのほかの機能については動いているように思われる。)
現在他のvc707に書き込みを行って確認をしていますが、
まったく同様の結果が得られています。
「vc707 のSiTCPのサンプルコードを改変したもの」をお使いになっているとのお話ですが、
通信不具合の起こっている基板に対して、サンプルコードから生成したbitファイル(またはmcsファイル)を
書き込んでも同様の通信不具合が起きるのでしょうか。
ご確認いただければ幸いです。
「SiTCPの障害情報」から「SiTCPに関する質問など」に移動しました
サンプルコードから生成したbitファイルを書き込んでも同様の不具合が生じています。
DIP[0]を0として、デフォルトIPの192.168.10.16にpingをしても反応はないままです。
またping元のIP は192.168.10.1、マスクは255.255.255.0、ゲートウェイは192.168.10.100としています。
LEDは 0,1,5,7 が点灯しているのと 5 のみ点灯してるのが一台ずつあります。
どうぞよろしくお願いします。
LEDの0,1,5,7が点灯している方は、SYS_RSTn=Lでリセット継続状態のようです。
GPIO_SW_Nの状態を確認してください。
LEDの5のみ点灯している方は、少なくてもSiTCPより前のgig_ethernet_pcs_pma_0で
リンクが上がっていないと認識しています。
STATUS_VECTOR[15:0]に情報があるかもしれません。
STATUS_VECTORは、以下の通りです。
[13] : Remote Fault
[12] : Duplex mode(1:Full, 0:Half)
[ 7] : PHY Link Status (SGMII mode only)
[ 6] : RXNOTINTABLE
[ 5] : RXDISPERR
[ 4] : RUDI(INVALID)
[ 3] : RUDI(/I/)
[ 2] : RUDI(/C/)
[ 1] : Link Synchronization
[ 0] : Link Status
問題はSiTCPではなくgig_ethernet_pcs_pma_0のようなので
これを作り直してみるのも手かもしれません。
ISEではCore GeneratorでVIVADOならIP Catalogで
「1G/2.5G Ethernet PCS/PMA or SGMII」を作れます。
コメントありがとうございます。
LEDが0.1,5,7が点滅している方はスイッチの接触が悪かったようで、
何回か押すことで5のみ点灯するようになりました。
STATUS_VECTORについてLEDを用いて値を確認したところ、
[11]しか点灯しませんでした。
またIP catalogで1G/2.5G Ethernet PCS/PMA or SGMIIで生成しても結果は変わりませんでした。
PHYにリンクできていないのが問題だと考えると、
怪しいのはConfiguration部分の設定部分ですが、
PHY_ADDRは5’d0のままでよいのでしょうか。
それとも別の値に設定したほうがよろしいのですか。
これまでは5’d0のままで機能していました。
どうぞよろしくおねがいいたします。
gig_ethernet_pcs_pmaの問題であり、SiTCPは関係ありません。
従ってPHY_ADDRは無関係です。
サンプルコードではMDIOは接続してありますが、使っていません。
参考までに、SiTCPのRBCPでPHYを制御するためには、
PHY_ADDRアドレスをPHYのアドレスに一致させる必要があります。
アドレスは00111ですが、その状態での動作確認はしていません。
はじめは動作していたことを考えるとボードの故障の可能性もあると思われます。
PHYのconfig設定周辺の汚れ、半田割れを確認してみてください
動作確認済みのbitファイルです。
LED1,LED6はPHY間のリンクです。
LED3がEthernetのリンクになります。
RJ45を接続しない状態ではLED1とLED6が点灯します。
通常リンクアップするとLED1,2,3,5,6が点灯します。
このファイルで動作しない場合、基板に何らかの問題があると思われます。
※このbitファイルでは、LEDの接続を以下のように変更しています
お忙しいところ、ありがとうございます。
二台に書き込みを行ったところ、どちらも点灯したのはLED5のみでした。
故障している可能性が濃厚です。
他の方に指摘されて気づいたのですが、
二台のボードで故障の前に行った共通のこととして、
IPアドレスを変更したものを書き込んだということです。
一回目の起動はそれで正常に動作したものの、
二回目から今の状態になるようになりました。
IPアドレスの書き換えは以下のように行いました。
(このときは書き込みツールの存在を知りませんでした。)
これが何か関係があったりするのでしょうか、
これはSiTCPの問題であり、gig_ethernet_pcs_pma には何も影響も及ぼさないということなのでしょうか。
お手数おかけして申し訳ございません。
SiTCPを変更することでgig_ethernet_pcs_pmaは影響を受けません。
LED6が点灯しないことから、基本的な同期さえ取れていないようです。