I have a design that uses the TLK110's RMII receive clock mode and it is not working.
The MCU is an STM32F407 that is being clocked by an 8 MHz crystal in order to generate a system clock of 160 MHz.
The PHY is being clocked by a 50 MHz oscillator, connected to XI (pin 34) only with XO left floating. MII_MODE (pin 39) is being pulled high in order to activate RMII mode. SW_STRAP (pin 21) is being pulled low to activate software strapping mode. RX_CLK (pin 38) is connected to PA1 (the ETH_RMII_REF_CLK pin) on the MCU.
The firmware performs a hardware reset of the PHY and then polls PHYIDR1 (register address 0x2) until the proper response is received. Bit 0 of SWSCR2 (address 0xA) is then set to activate the RMII receive clock mode. Afterwards, bit 15 of SWSCR1 (address 0x9) is written to signal the end of the strap configuration.
The overall board does establish a link when an Ethernet cable is attached, but a connection to the on-board web server cannot be established. I have used this firmware with an evaluation board (pin configurations changed accordingly) and it works so I don't think the rest of the firmware is an issue, keeping in mind that the PHY on the evaluation board is different.
I can see 50 MHz signals on XI of the PHY and PA1 of the MCU using the oscilloscope so I am not sure what the problem is right now. Does anyone have any suggestions? Should I just not be using this RMII receive clock mode?