Forum: Mikrocontroller und Digitale Elektronik enc28j60 nach Aufwachen funktioniert nicht mehr


von bbc (Gast)


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) );


}

von bbc (Gast)


Lesenswert?

Es hat sich erledigt, Fehler lag woanders.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.