реклама на сайте
подробности

 
 
> AT91SAM7X -> EMAC
f-0-x
сообщение Aug 21 2007, 15:37
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 24-07-07
Пользователь №: 29 331



Доброго времени суток, воюю с EMACом, никак не получается его запустиь, вроде инициализирую прваильно, по писать и читать PHY (DM9161) по MII упороно отказывается ... Подскажите пожалуйста, мож кто увидит в чем ошибка, код соответственно...
Код
//-------------------------------------------------------
void Init_Emac(void)
{
  AT91F_EMAC_CfgPMC();
  AT91F_EMAC_CfgPIO();
}

//-------------------------------------------------------

void EMAC_MII_WRITE_PHY(unsigned int REGA, unsigned int DATA)
{
AT91C_BASE_EMAC->EMAC_MAN=((DATA<<0 & 0xFFF)|   // 0x00 - 0x15 - DATA segment
                            (0x2<<16)|           // 0x16 - 0x17 CODE segment
                            (REGA << 18 & 0x1F)| // 0x18 - 0x22 REGA segment
                            (0x0<<23)|           // 0x23 - 0x27 PHYA segment
                            (0x1<<28)|           // 0x28 - 0x29 READ-WRITE
                            (0x0<<30));          // 0x30 - 0x31 Start of frame
}

//-------------------------------------------------------

void Config_Emac (void)
{
  AT91C_BASE_EMAC->EMAC_USRIO=(AT91C_EMAC_CLKEN);
    //  ** Config Network Control Register
  AT91C_BASE_EMAC->EMAC_NCR=(0x0<<0)|(0x0<<4)|(0x0<<8)|(0x0<<12)|
                            (0x0<<16)|(0x0<<20)|(0x0<<24)|(0x0<<28);
  Delay(0x2);
  AT91C_BASE_EMAC->EMAC_NCR=(0x1<<0);
  Delay(0x2);
  AT91C_BASE_EMAC->EMAC_NCR|=(0xc<<0);
  
  Delay(0x2);  

  
//  ** Configure Network Configuration Register
  
  
    AT91C_BASE_EMAC->EMAC_NCFGR=(AT91C_EMAC_SPD) // Set to 100 MBP's
                               |(AT91C_EMAC_FD)  // Set to full duplex
                               |(AT91C_EMAC_CAF)// Set to copy all frames
                               |(AT91C_EMAC_CLK_HCLK_8) // clock ratio MCK/8
                               |(AT91C_EMAC_RBOF_OFFSET_0) // Zero ofset  from bufer start
                               |(AT91C_EMAC_DRFCS); // Discard frame chk summ
                                  
    Delay(0x2);
    AT91C_BASE_EMAC->EMAC_NCFGR=(AT91C_EMAC_SPD) // Set to 100 MBP's
                               |(AT91C_EMAC_FD)  // Set to full duplex
                               |(AT91C_EMAC_CAF);// Set to copy all frames
    Delay(0x2);  
    EMAC_MII_WRITE_PHY(0x00, 0x1<<12 );//REGA,DATA
    Delay(0x2);
    EMAC_MII_WRITE_PHY(DM_ANAR, DM_ANAR_TX_FDX );//REGA,DATA
}


заранее спасибо тем - кто откликнулся.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- f-0-x   AT91SAM7X -> EMAC   Aug 21 2007, 15:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016