![GigaDevice Semiconductor GD32F20 Series User Manual Download Page 792](http://html.mh-extra.com/html/gigadevice-semiconductor/gd32f20-series/gd32f20-series_user-manual_2225801792.webp)
GD32F20x User Manual
792
notify conflict to all other sites. The first condition is triggered by application setting the
FLCB/BKPA bit in ENET_MAC_FCTL register. The second condition occurs during receiving
frame. When MAC receiver is receiving frame, the byte number of RxFIFO is more and more
great. When this number is greater than the high threshold (RFA bits in ENET_MAC_FCTH),
MAC will set the back pressure pending flag. If this flag is set and a new frame presents on
interface, MAC will send a jam pattern to delay receiving this new frame a back pressure time.
After this back pressure time is end, external PHY will send this new frame again. If the
number of the RxFIFO is not less than low threshold (RFD bits in ENET_MAC_FCTH) during
this back pressure time, a jam pattern is send again. If the number of the RxFIFO is less than
low threshold (RFD bits in ENET_MAC_FCTH) during this back pressure time, MAC resets
the back pressure pending flag and is enable to receive the new frame instead of sending jam
pattern.
Full-duplex mode flow control : Pause Frame
The MAC uses a mechanism named "pause frame" for flow control in Full-duplex mode.
Receiver can send a command to the sender for informing it to suspend transmission a period
of time. If the application sets transmit flow control bit TFCEN in ENET_MAC_FCTL register,
MAC will generate and transmit a pause frame when either of two conditions is satisfied in
Full-duplex mode. There are two conditions to start transmit pause frames:
1) Application sets FLCB/BKPA bit in ENET_MAC_FCTL register to immediately send a
pause frame. When doing this, MAC sends a pause frame right now with the pause time value
PTM configured in ENET_MAC_FCTL register. If application considers the pause time is no
need any more because the transmit frame can be transmitted without pause time, it can end
the pause time by setting the pause time value PTM bits in ENET_MAC_FCTL register to 0
and set FLCB/BKPA bit to send this zero pause time frame.
2) MAC automatically sends pause time when the RxFIFO is in some condition. When MAC
is receiving frame, RxFIFO will be fill in many receive data. At same time RxFIFO pops out
data to RxDMA for forwarding to memory. If the popping frequency is lower than MAC pushing
frequency, the number of bytes in RxFIFO is getting great. Once the data amount in RxFIFO
is greater than the active threshold value (RFA bits in ENET_MAC_FCTH) of flow control,
MAC will send a pause frame with PTM value in it. After sending pause frame, MAC will start
a counter with configured reload value PLTS in ENET_MAC_FCTL register, when configured
PLTS time has spent, the MAC will check RxFIFO again. If the byte number in RxFIFO is also
greater than active threshold value, the MAC sends a pause time again. When the byte
number of RxFIFO is lower than the de-active threshold value, MAC maybe send a pause
frame with zero time value in frame’s pause time field if DZQP bit in ENET_MAC_FCTL
register is reset. This zero-pause time frame can inform send station that RxFIFO is almost
empty and can receive new data again.
Transmit inter-frame gap management
MAC can manage the interval time between two frames. This interval time is called frame gap
time. For Full-duplex mode, after complete sending a frame or MAC entered idle state, the
gap time counter starts counting. If another transmit frame presents before this counter has
Summary of Contents for GD32F20 Series
Page 191: ...GD32F20x User Manual 191 Bits Fields Descriptions 31 0 TRNDATA 31 0 32 Bit Random data ...
Page 290: ...GD32F20x User Manual 290 conversion is ongoing ...
Page 325: ...GD32F20x User Manual 325 15 0 ALRM 15 0 RTC alarm value low ...
Page 385: ...GD32F20x User Manual 385 ...
Page 523: ...GD32F20x User Manual 523 clears AERR bit by writing 0 to it ...