enc28j60 nach Aufwachen funktioniert nicht mehr

Gast #1499252
Lesenswert?

Hallo,
ich versuche zum Stromsparen den ENC in in den Power-Down zu versetzen.
Nach dem Aufwachen bleibt der ENC hängen, Link-LED leuchtet. Stimmt 
etwas mit der Power-Up Routine nicht?

void enc_powerdown( void)
{
  /* turn off packet reception */
  enc_clrbits_reg( ENC_REG_ECON1, (1<<ENC_BIT_RXEN) );

  /* wait for any in progress packets */
  while( (enc_read_reg( ENC_REG_ESTAT ) & (1<<ENC_BIT_RXBUSY)) );

  /* wait for any current transmissions */
  while( (enc_read_reg( ENC_REG_ECON1 ) & (1<<ENC_BIT_TXRTS)) );

   enc_setbits_reg( ENC_REG_ECON2, (1<<ENC_BIT_VRPS) );

  /* enter sleep mode */
   enc_setbits_reg( ENC_REG_ECON2, (1<<ENC_BIT_PWRSV) );

}


void enc_powerup( void )
{

  /* Wake up*/
  enc_clrbits_reg( ENC_REG_ECON2, (1<<ENC_BIT_PWRSV) );

  /* Wait for PHY to stabilise */
  while( !(enc_read_reg( ENC_REG_ESTAT ) & (1<<ENC_BIT_CLKRDY)) );

  /* Restore receive capability */
  enc_setbits_reg( ENC_REG_ECON1, (1<<ENC_BIT_RXEN) );


}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren