Доброго времени суток. Есть плата с stm32f107 и lan8710a. Режим MII. Стек LWIP из примера ST не хочет отвечать на ARP запросы. Причем, при инициализации самообращенные запросы, функция etharp_gratuitous(netif), выходят без проблем. А ответ на обычный запрос теряется где-то в недрах DMA. Ибо до функции ETH_TxPkt_ChainMode доходит, а на ногах процессора ничего.
Эта же программа на отладочной плате STM32-P107 с STE101P-1A в качестве PHY работает нормально. Режим RMII на MII поменял, ноги вродь все прописал. Регистр SR на 31 исправил.
Если кто в курсе, подскажите в каком направлении можно покопать.
ЗЫ. У lan8710a свободна 18я нога. Может ее надо куда нибудь заводить?
Конфигурация выводов:
CODE
/*Ethernet MII*/
GPIO_PinRemapConfig(GPIO_Remap_ETH, DISABLE);
/* Configure PA2 as alternate function push-pull MII_MDIO */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure PC1, PC2, PC3 as alternate function push-pull MII_MDC, MII_TXD2, MII_TX_CLK*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
/* Configure PB8, PB11, PB12 and PB13 as alternate function push-pull MII_TXD3, MII_TX_EN, MII_TXD0, MII_TXD1*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* Configure PA0, PA1, PA3 and PA7 as input MII_CRS, MII_RX_CLK, MII_COL, MII_RX_DV*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure PC4 and PC5 as input MII_RXD0, MII_RXD1*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC, &GPIO_InitStructure); /**/
/* Configure PB0, PB1 and PB10 as input MII_RXD2, MII_RXD3, MII_RX_ER*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure); /**/
/* MCO pin configuration------------------------------------------------- */
/* Configure MCO (PA8) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);