W7500P & CISCO SF110d switch problem.

Hi! We was developed Ethernet to UART converter based on W7500P chip. It work fine, but we have problem, when connect his via CISCO SF110d(or similar) switch to LAN. We have very long ping, when connected our converter to LAN via CISCO switch( 300ms and more) and this do not download java scripts and pictures for configuration menu(via WEB interface). When we make connect converter to LAN via another switch or directly to PC(notebook), then we have not problem. Pleas, suggest resolution this issue.
PS. we have W7500P R3 revision(1824) code.

Sorry for the huge late. I hope, that worked out well…
anyway, for the future reader, I leave the following assistant.

or you can refer the code from the WIZnet GitHub site - GitHub - Wiznet/W7500x_StdPeriph_Lib: Standard peripherals library for the W7500x
the code in Libraries/W7500x_StdPeriph_Driver/src/w7500x_miim.c

FlagStatus PHY_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin_MDC, uint16_t GPIO_Pin_MDIO)
    FlagStatus bitstatus = RESET;
    GPIO_InitTypeDef GPIO_InitStructure;

    miim_PORT = GPIOx;
    miim_MDC = GPIO_Pin_MDC;
    miim_MDIO = GPIO_Pin_MDIO;

#ifdef W7500
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Direction = GPIO_Direction_OUT;
    GPIO_InitStructure.GPIO_Pad = GPIO_CMOS | GPIO_InputBufferEnable | GPIO_LowDrivingStrength;
    GPIO_InitStructure.GPIO_AF = PAD_AF0;

    GPIO_Init(GPIOB, &GPIO_InitStructure);
#elif defined (W7500P)
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource12, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, PAD_AF1);
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource5, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, PAD_AF1);
    GPIO_PinPadConfig(GPIOB, GPIO_PinSource6, GPIO_PuPd_UP|GPIO_InputBufferEnable|GPIO_CMOS);

    GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, PAD_AF1);
    GPIO_PinPadConfig(GPIOD, GPIO_PinSource6, GPIO_PuPd_UP);
    // for this GPIOD pin 6, keep the following sequence, set the value & set the output enable
    GPIO_SetBits(GPIOD, GPIO_Pin_6); // PHY reset pin
    GPIOD->OUTENSET = GPIO_Pin_6; // PHY reset pin

    /* Set GPIOs for MDIO and MDC */
    GPIO_InitStructure.GPIO_Pin = miim_MDC | miim_MDIO;
    GPIO_InitStructure.GPIO_Direction = GPIO_Direction_OUT;
    GPIO_InitStructure.GPIO_Pad = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_AF = PAD_AF1;

    GPIO_Init(miim_PORT, &GPIO_InitStructure);

    PHY_Reset(0); // phy reset
    bitstatus = PHY_GetId();

    return bitstatus;

I am having this issue on a critical project, sporadically W7500P-S2E will “pause” network communications for up to 3s. Is there a new official FW version with this fix? The thousands of chips I have seem to have version 1.3.3.
Thank you

Hi again,
Ok, I realized that this fix is already included in 1.3.3.
But I sporadically (like once a day), between a Windows machine and a board with 7500P connected through a single industrial switch (more often with an extra switch), see that the W7500P freezes for up to 3s, then resumes communication. TCP connection is not lost, but 7500P clearly did not see the TCP/IP packets sent to it while it was frozen. Any ideas?
Thank you

This is what I see, and it’s always the same packet pattern.
The 1st packet from IP .36 (wiznet) after blindness, in the black area, is a retransmission of the reply to the previous message (the 1st packet in the image). So 7500P spent at least 2.6s without seeing TCP/IP packets.
The last packet in the image is a modbus error message because all the IP .10 retries were sent to the 7500P’s serial port as a single message and rejected by the modbus server on the other end of the serial port as a wrong message.