AnsweredAssumed Answered

Apply low pulse TTL on a gpio i order to reset an ETH chip

Question asked by ben_naceur.yassin on Jan 13, 2015
Latest reply on Jan 19, 2015 by ben_naceur.yassin
I have two sample based on STM32f107 and TLK105,

the TLK software reset does not work properly therefore I connected the TLK RESET pin with GPIOC PIN6 (PC6) in order to force a hardware reset,
The code portion I have made work on one sample and not the second, can any one notice an error ?

void
phy_hardware_reset()
{
    GPIO_InitTypeDef GPIO_InitStructure ;
    uint8_t count;
    count = 0;

    /*
     * Apply low voltage on PC6 connected to reset pin of the chip :
     * TLK105/106 Industrial Temp, Single Port 10/100Mbs Ethernet
     * Physical Layer Transceiver/page 32
     */
    GPIO_ResetBits(GPIOC,GPIO_Pin_6);

    //Initialize GPIO PIN and set it as alternate function PP
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    //Blocking the process, for more then 1MicroSecond
    while(count++<250);
    
    //Set the PC6
    GPIO_SetBits(GPIOC,GPIO_Pin_6);
}

The TLK datasheet says that:
Asserting this pin low for at least 1μs will force a reset process to occur.

I invested a lot of time at this bug and I do not know where I should debug any more.

Outcomes