cancel
Showing results for 
Search instead for 
Did you mean: 

PHY on STR912F

m_j_butcher
Associate II
Posted on August 22, 2007 at 07:09

PHY on STR912F

3 REPLIES 3
m_j_butcher
Associate II
Posted on May 17, 2011 at 09:44

Hi All

This is probably more a question to do with the STE100P PHY which is used on the STR912X development boards than the ARM9 itself, but..

I don't seem to be able to get it to interrupt. The ID is read correctly and it is being configured with all interrupts enabled, but the interrupt output MDINT remains at logic '0' when the LINK LED output changes (connecting and disconnecting the LAN cable).

In the ST library code I couldn't find any interrupt use to check anything.

Reading the interrupt output description I see this note: ''Requires MDC edge to output''. Can it be stating that the interrupt output only changes when there are clocks on the MDC input? This would mean that the STR912F needs to generate these which it normally only does when reading status information or writing the configuration. Or is there a method of leaving output clocks running? Or am I way off and there is another explanation?

Any ideas ?

Regards

Mark Butcher

www.uTasker.com

mark9
Associate II
Posted on May 17, 2011 at 09:44

I hacked the uIP demo (which is not interrupt driven, but polled) to work with interrupts and I didn't have any problems.

ENET_IER_bit.RX_CURR_DONE_EN = 1;

VIC_Config(ENET_ITLine, (VIC_ITLineMode)VIC_IRQ, 14); // wire ENET interrupt to the IRQ handler

VIC_ITCmd(ENET_ITLine, ENABLE); //enable the ENET interrupt

was basically it.

m_j_butcher
Associate II
Posted on May 17, 2011 at 09:44

Hi lakata

I don't have problem with the ENET interrupt, this is fine, but with the PHY interrupt. This is connected from the external STE100P via a wakeup port. (eg. on the REva daughter board it is EXTINT15 P5.7) but there is no physical interrupt arriving there.

Can you identify link up / down in your project? It is necessary to configure the PHY to generate interrupts on link status changes (or other events such as fault conditions or autonegotiation state changes), configure the wake up port to respond to a positive edge and then read the PHY's status register to get the interrupt cause when the interrupt arrives.

I have configured all interrupts but can't get it to set its output high.

Any ideas?

Regards

Mark