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

 
 
> Не работает Ethernet на stm32f107, Не могу заставить контроллер принимать ethernet-пакеты
GreyM
сообщение Oct 5 2011, 14:24
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 5-04-11
Из: Москва
Пользователь №: 64 141



Использую TE-stm32f107. Пытался запустить тестовый пример из IAR'а - WebServer_Demo_uIP. Контроллер на все попытки общения по сети не отзывается. Тогда я нашел на сайте терры аналогичный пример (правда под gcc), взял из него инициализацию пинов (подумал, вдруг различается). Результата нет. Тогда я убрал инициализацию веб-сервера и попробовал на уровне MAC передавать сообщения от контроллера на хост и обратно. Соединил проводом - пробую. Контроллер напрямую отправляет пакеты, хост ловит. Обратно - пакеты отправляются, контроллер - ноль эмоций. Предположил, что может не вызываться обработка приходящих сообщений (хотя до этого брейки ставил везде где можно) - попробовал настроить прерывания по Ethernet - не реагируют ни на прием, ни на отправку. При этом другие прерывания работают.
Пока больше идей нет.
В чем может быть дело? Помогите, пожалуйста!

Сообщение отредактировал GreyM - Oct 5 2011, 14:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zatylok
сообщение Nov 1 2012, 05:57
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 19-04-11
Пользователь №: 64 467



Доброго времени суток. Есть плата с 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);

Go to the top of the page
 
+Quote Post



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

 


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


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