Date: Fri, 23 Apr 2021 11:32:18 +0900
ASAI,
SiTCP specializes in acquiring data at high speed.
Therefore, a network that does not cause congestion is a prerequisite.
There is also a method of avoiding congestion by using PAUSE (IEEE802.3X),
but the effect cannot be expected unless the entire network including the PC is controlled.
The PAUSE function of SiTCP is valid only for transmission.
SiTCP is enabled by setting bit3 of 0xFFFFFF10 to 1,
but the link partner will not output PAUSE frames unless PUSE is enabled in the negotiation with the link partner.
After enabling bits 10 and 11 of AUTO NEGOTIATION ADVERTISEMENT REGISTER of PHY,
execute the negotiation again.
(Set bit9 of BASIC CONTROL REGISTER to 1.)
If GMII_MDC, GMII_MDIO_IN, GMII_MDIO_OUT, GMII_MDIO_OE are connected correctly and PHY_ADDR is set correctly,
the PHY registers will be mapped to 0xFFFFFE00 to 0xFFFFFEFF in the RBCP register.
Note that the PHY register addressing is in 16-bit units and the RBCP is 8 bits, so the RBCP address is doubled.
Also, when PAUSE is enabled at the initial value of 0xFFFFFF10 (0xFFFFFC10),
the initial setting is “Both Symmetric PAUSE and Asymmetric PAUSE toward local device”
(Asymmetric Pause and Pause Operation are 1).
SiTCPは、高速にデータを取得する事に特化しています。
このため、輻輳の発生しないネットワークが前提です。
PAUSE(IEEE802.3X)を使用して輻輳を回避する方法もありますが、
PCも含めてネットワーク全体が制御されていないと効果を期待できません。
SiTCPのPAUSE機能は送信に関してのみ有効です。
SiTCPは0xFFFFFF10のbit3を1にすることで有効になりますが、
リンクパートナーとのネゴシエーション結果でPAUSEが
有効にならないとリンクパートナーがPAUSEフレームを出力しません。
PHYのAUTO NEGOTIATION ADVERTISEMENT REGISTERのbit10,11を
有効にした後、再度ネゴシエーションを実行してください。
(BASIC CONTROL REGISTERのbit9を1にします。)
なお、PHYのレジスタは、GMII_MDC,GMII_MDIO_IN,GMII_MDIO_OUT,
GMII_MDIO_OEが正しく接続され、PHY_ADDRが正しく設定されていれば
RBCPレジスタの0xFFFFFE00~0xFFFFFEFFにマップされます。
PHYのレジスタのアドレッシングは16bit単位、RBCPは8bitなので
RBCPのアドレスは2倍になることを注意してください。
また、0xFFFFFF10の初期値(0xFFFFFC10)でPAUSEが有効な場合
初期設定で"Both Symmetric PAUSE and Asymmetric PAUSE toward
local device"(Asymmetric PauseとPause Operationを1)に初期設定します。