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) ); }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.