Здравствуйте. Включаю АРМ с сетевым контроллером Am79c874. Пытаюсь записать с АРМа данные в контроллер по выводам MDC, MDIO. После настройки ножек на периферию на MDC = 0, MDIO = 1. В чем может быть дело? Привожу текст подпрограммы, настраивающей ножки: #include "AT91SAM9260.h" #include "lan_init.h"
int LanInit(void) { AT91_REG RegValue = 0x0;
/* read initial output enable */ /* 0 - input only mode */ /* 1 - I/O mode */ RegValue = *AT91C_PIOA_OSR;
/* enable outputs */ *AT91C_PIOA_OER = 0xFFFFFFFF; RegValue = *AT91C_PIOA_OSR; *AT91C_PIOA_ODR = 0x0; RegValue = *AT91C_PIOA_OSR; /* read initial value */ /* 0 - peripherial mode */ /* 1 - I/O mode */ RegValue = *AT91C_PIOA_PSR; /* set PA lines to peripherial functions */ *AT91C_PIOA_PER = 0x0; RegValue = *AT91C_PIOA_PSR; *AT91C_PIOA_PDR = 0xFFFFFFFF; RegValue = *AT91C_PIOA_PSR;
/* 0 - A-mode of peripherial */ /* 1 - B-mode of peripherial */ RegValue = *AT91C_PIOA_ABSR; /* enable managment interface */ *(AT91_REG*)(AT91C_BASE_EMACB) |= AT91C_EMAC_MPE;
/* configure network: MDC = CLK/32 */ *(AT91C_EMACB_NCFGR) = 0x81F;
/* operations with PHY interface register */ *(AT91C_EMACB_MAN) = 0x50022100;
return 0; }
|