Инсталляция Ethernut

Инициализация PHY:

 /* PHY ID */
#define MII_DM9161_ID_H 0x0181
#define MII_DM9161_ID_L 0xb8a0
 
#define MII_AM79C875_ID_H 0x0022
#define MII_AM79C875_ID_L 0x5540
 
#define MII_MICREL_ID_H 0x0022
#define MII_MICREL_ID_L 0x1610
 

/* For some unknown reason it seems to be required to read the ID registers first. */
// Check for DM PHY (as used on the ATMEL EK)
if (phy_inw(NIC_PHY_ID1) != MII_DM9161_ID_H ||
   (phy_inw(NIC_PHY_ID2) & 0xFFF0) != MII_DM9161_ID_L) {
// Check for MICREL PHY (as used on the Olimex SAM7-EX256)
   if (phy_inw(NIC_PHY_ID1) != MII_MICREL_ID_H ||
      (phy_inw(NIC_PHY_ID2) & 0xFFF0) != MII_MICREL_ID_L) {
      outr(EMAC_NCR, inr(EMAC_NCR) & ~EMAC_MPE);
return -1;
}
}   


Если появляется сообщение об ошибке EMAC_PIO_SODR не  определен, то в файле at91_emac.c перед #ifdef PHY_PWRDN_BIT\n /* Disable PHY power down. */ ввести:

#ifndef EMAC_PIO_SODR
#define EMAC_PIO_SODR PIOB_SODR
#endif

Hosted by uCoz