WIZnet Developer Forum

We are not able to get most of the interfaces(UART0,UART1, UART2,ETHERNET) on the new W7500P (W7500P173x) chipsets

Hi to All,
Let me provide little bit more details of the problem we are facing . We are not able to get most of the interfaces(UART0,UART1, UART2,ETHERNET) on the new w7500P chipsets supplied . However all these interfaces work with the samples we procured from Mouser few weeks back. Please find attached images of the two boards W7500P173 (chipset supplied by Wiznet ) and W7500163X( chipset procured from mouser). In this W7500P163x board works fine as expected. However W7500P173x board none of the interfaces work . What I see from the forum and batch codes is the one which we procured from mouser is W7500P R2 release and the chipset supplied by wiznet is W7500P R3 release.

We have tried the following git repository code on our boards and all the codes work in w7500163X version where as none of them work on W7500P173 version


Just a quick update to all . With further debugging we could find out that the calibration data for internal oscillator is not present in the chipsets we have received or the location of the calibration data has changed . We have made the following change in the github code and get the uart interface working in one of the IC’s we have receieved . The change we made was just to take the default value for internal oscillator trim bit and that makes the uart to work on some of the IC’s. However the ethernet interface does not work on these IC’s . Please let us know if there is any change in the code base for calibration data.

void SystemInit (void)
{
    uint8_t M,N,OD;
    
    (*((volatile uint32_t *)(W7500x_TRIM_BGT))) = (*((volatile uint32_t *)(W7500x_INFO_BGT)));
  //  (*((volatile uint32_t *)(W7500x_TRIM_OSC))) = (*((volatile uint32_t *)(W7500x_INFO_OSC)));

    // Set PLL input frequency
#ifdef SYSCLK_EXTERN_OSC
    CRG->PLL_IFSR = CRG_PLL_IFSR_OCLK;
#else
    CRG->PLL_IFSR = CRG_PLL_IFSR_RCLK;
#endif    
    OD = (1 << (CRG->PLL_FCR & 0x01)) * (1 << ((CRG->PLL_FCR & 0x02) >> 1));
    N = (CRG->PLL_FCR >>  8 ) & 0x3F;
    M = (CRG->PLL_FCR >> 16) & 0x3F;

#ifdef SYSCLK_EXTERN_OSC
    SystemFrequency = EXTERN_XTAL * M / N * 1 / OD;
#else
    SystemFrequency = INTERN_XTAL * M / N * 1 / OD;
#endif
}

Attaching the images of W7500P163x & W7500P173x calibration data


Fig : W7500P163x calibration data

Fig : W7500P173x calibration data

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.