С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/122: Рейтинг темы: голосов - 122, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
1

STM32F4Discovery + ethernet

12.08.2014, 19:21. Показов 23664. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
скачал с сайта ST ST STM32F4x7_ETH_LwIP_V1.1.0
пытаюсь запустить web сервер. Сама плата Dyscovery не имеет ног PG11... Поэтому в настройках GPIO переназначил на PB..
Вопрос- надо ли еще где-то в коде изменять дефайны на эти ноги? Ведь где-то проц ими дергает же? А т.к. просто назначил GPIO на ноги PB.., то в самом коде, вероятно, дергаются старые PG.. Ноги. Вот только не могу найти, где эти ноги дергаются, чтобы изменить?
Может у кого-то есть рабочий пример под эту дискавери ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.08.2014, 19:21
Ответы с готовыми решениями:

STM32F4DISCOVERY
Здравствуйте ! Подскажите пожалуйста для чего нужны модули на странице ...

STM32F4Discovery
Доброго времени суток... Возникло желание запустить внешний ЦАП (CS43L22) на указанной плате......

stm32f4discovery + ENC28J60
Всем привет! Есть такой код: int main(void) { SystemInit(); SystemCoreClockUpdate(); ...

STM32F4Discovery + акселерометр
Доброго времени суток господа. Решил запустить акселерометр на указанной в заголовке плате. Но вот...

35
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
12.08.2014, 19:53 2
На плате STM32F4Dyscovery не установлена микросхема PHY-level. О каком переназначении ног может идти речь в этом случае?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
12.08.2014, 21:04 3
Цитата Сообщение от mitsimkir
скачал с сайта ST ST STM32F4x7_ETH_LwIP_V1.1.0
пытаюсь запустить web сервер. Сама плата Dyscovery не имеет ног PG11... Поэтому в настройках GPIO переназначил на PB..
Вопрос- надо ли еще где-то в коде изменять дефайны на эти ноги? Ведь где-то проц ими дергает же? А т.к. просто назначил GPIO на ноги PB.., то в самом коде, вероятно, дергаются старые PG.. Ноги. Вот только не могу найти, где эти ноги дергаются, чтобы изменить?
Надо не на произвольные PB.. ноги переназначать, а на те, которые могут использоваться для Ethernetа данным микроконтроллером (то есть 100-пиновым STM32F407).
А именно: PA2,7, PB11-13, PC0,1,4,5. Это если Вы выбрали соединение по RMII, а не MII (выбор делается в хедере проекта).
Функции пинов переназначаются (см.код проекта) так, что становятся не GPIO, а пинами со специальной функцией (AF). Поэтому в коде дёргание этими конкретными PA/PB/PC уже не будет использоваться, не беспокойтесь.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
12.08.2014, 21:11 4
спасибо за ответы.
я использую платку с DP83848
выбрал RMII в хидере, переназначил ноги так:
/* Confikure PG11, PG14 omd PG13 */
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14;
// GPIO_Init(GPIOG, &GPIO_InitStructure);
// GPIO_PinAFConfig(GPIOG, GPIO_PinSource11, GPIO_AF_ETH);
// GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_ETH);
// GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_ETH);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_ETH);

не пингуется. Все же правильно?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
12.08.2014, 21:11 5
Цитата Сообщение от Парфирий
На плате STM32F4Dyscovery не установлена микросхема PHY-level. О каком переназначении ног может идти речь в этом случае?
На e-Bay без проблем можно купить внешний модуль PHY для подключения к F4-Dyscovery. Возможно, ТС уже приобрёл такой модуль. Если нет - то вот вариант с чипом DP83848, вот с чипом LAN8720, и т.п. ... Выберите модуль такой, на чип которого есть драйвер в скачанном проекте.

UPDATE: а, автор уже ответил про DP83848.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
12.08.2014, 21:16 6
Цитата Сообщение от mitsimkir
переназначил ноги так:
...
не пингуется. Все же правильно?
Что касается этих трёх ног - да, правильно. Остальные - не знаю, как у Вас сделано :-)

Если не пингуется, то первым делом проверьте в хедере, чтобы статический IP (даже если выбрано USE_DHCP), mask, gatiwoy были настроены правильно на Вашу сеть. Вы к роутеру подключаетесь?
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
12.08.2014, 21:20 7
Цитата Сообщение от OtyxPM
Цитата Сообщение от Парфирий
На плате STM32F4Dyscovery не установлена микросхема PHY-level. О каком переназначении ног может идти речь в этом случае?
На e-Bay без проблем можно купить внешний модуль PHY для подключения к F4-Dyscovery. Возможно, ТС уже приобрёл такой модуль. Если нет - то вот вариант с чипом DP83848, вот с чипом LAN8720, и т.п. ... Выберите модуль такой, на чип которого есть драйвер в скачанном проекте.

UPDATE: а, автор уже ответил про DP83848.
Автор оказался гораздо более грамотным, чем я имел неосторожность подумать. К сожалению, часто встречаются гореспециалисты, которые воспринимают и ставят Ethernet в один ряд с теми же UART/SPI (интерфейсы обмена ведь), не зная ничего про внешнюю обвязку и принципы работы. Собственно это и побудило меня упомянуть про PHY-level. Из данной темы темы испаряюсь, дабы не мельтешить своей болтовнёй.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
12.08.2014, 21:41 8
иногда да, бывают тупняки на ровном месте, иногда сам что-то банальное забываю сделать. Извиняюсь, что забыл упомянуть про отдельный модуль- думал, что и так понятно, что с ним делается.
Роутер использую, но гэтвэй в хидере поменял на нужный.
Может есть кто делал на этой плате с этим модулем?
И напомните пож-ста, если сделан ремапинг ног, то как-то это надо дополнительно обозначать? Что-то вылетело из памяти. Или достаточно просто того, что у меня в коде?
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
12.08.2014, 22:43 9
заглянул в микроэксплорер- там для 100-ногой модели проца нет никакой альтернативы, кроме PB 11 12 13.
Т.е. однозначно их надо прописывать.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
13.08.2014, 13:10 10
Цитата Сообщение от mitsimkir
скачал с сайта ST ST STM32F4x7_ETH_LwIP_V1.1.0
Цитата Сообщение от mitsimkir
И напомните пож-ста, если сделан ремапинг ног, то как-то это надо дополнительно обозначать? Что-то вылетело из памяти. Или достаточно просто того, что у меня в коде?
Дайте ссылку на оригинальный архив, мне проще поглядеть весь код. Плюс свои файлы - но только те, в которых сделаны изменения (т.е. патч).

И ещё - когда "не пингуется" - проверьте под отладчиком, не висит ли в это время программа в каком-то цикле. Есть такие места в проектах на lwIP, сам видел, ругался и исправлял :-)
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
13.08.2014, 17:05 11
Спасибо за готовность помочь)
https://cloud.mail.ru/public/dc185fa729 ... V1.1.0.zip
я сюда выложил скаченный проект с ST.
Там я только лишь исправил:
main.h- изменил IP и шлюз роутера. Сделал дефайн на RMII
stm32f4x7_eth_bsp.c- изменил порты GPIO на PB11 12 13.

Больше ничего не делал.
схема подключения такая
http://btog.tkjitistronics.dk/wp-conten ... ctions.png

речь про проект stomdalone http server
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
13.08.2014, 19:26 12
Цитата Сообщение от mitsimkir
... скаченный проект с ST.
Там я только лишь исправил: ...
схема подключения такая ...
речь про проект stomdalone http server
Посмотрел проект. Переделывать ещё есть что, но всё несложно. Давайте по порядку:<ul><li>Родные подключения пинов F4-Dyscovery, которые сейчас задействованы для Ethernet, - отсоединены/отрезаны/не_помешают? Проверьте по схеме Dyscovery.</li><li>system_stm32f4xx.c: #define PLL_M 25 - исправьте на 8, согласно номиналу HSE-кварца на F4-Dyscovery.</li><li>И в свойствах Keil-проекта частоту Target тоже установите 8 Мегагерц.</li><li>stm324xg_eval.h (если определено USE_STM324xG_EVOT) или stm324x7i_eval.h (если определено USE_STM324x7I_EVOT) - тут определены LEDs, buttons, USORT. Замените на реально используемые GPIO или убедитесь, что "кривые" ресурсы не используются в коде.</li><li>Тщательно проверьте, что нигде не определён макрос MII_MODE, а то частоты уедут.</li><li>main.h: USE_LCD должен быть закомментирован, пока у Вас нет правильного драйвера дисплея.</li><li>stm32f4x7_eth_bsp.h: Вы не используете линию прерывания от PHY, поэтому удаляйте (или прячьте под "if 0") всё, что связано с "ETH_LINK_EXTI_LINE", Eth_Link_PHYITConfig(), Eth_Link_EXTIConfig(), Eth_Link_ITHomdler(), EXTI15_10_IRQHomdler(). ETH_link_callback() пока оставьте.</li><li>stm32f4x7_eth_bsp.c: Уберите несуществующие порты из параметров RCC_AHB1PeriphClockCmd() - оставьте только GPIOA, GPIOB, GPIOC.</li><li>stm32f4x7_eth_bsp.c: удалите код, связанный с PB5,PB8, PC2,PC3, PGx, PHx, PIx. Они в проекте не задействованы.</li><li>main.h: /*Gatiwoy Address*/ должен в точности равняться IP-адресу роутера. /*NETMASK*/ должна в точности равняться маске в свойствах роутера. /*Static IP ADDRESS*/ должен иметь первые три байта в точности как IP роутера, а четвёртый байт должн быть заведомо неиспользуемым в Вашей сети - например 123 или другой раритет.</li><li>Провода, соединяющие Dyscovery с платой PHY, долны быть как можно короче, т.к.по ним гуляют частоты до 100 МГц.</li><li>Ну и на будущее, когда сервер оживёт, - в файле httpd_cgi_ssi.c надо будет поменять параметры настройки АЦП на актуальные (сейчас в коде: ADC3, ADC_Channel_7, GPIOF, GPIO_Pin_9). Да и вообще, обработчики SSI и CGI в этом проекте сильно выхолощенные, я потом поделюсь своим вариантом, более функциональным и читабельным.</li></ul>
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
13.08.2014, 20:33 13
спасибо, разбираюсь. Позже отпишусь по порядку по пунктам. Все внимательно проверю. Только это IAR проект.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
13.08.2014, 22:01 14
прошелся по всем пунктам. Главное- забыл сисконфиг на 8 мГц перестроить. Но не работает один фиг. Ни через роутер, ни напрямую от компа. Хотя зеленая лампа что-то мигает там себе на платке DP83848.
Вы сами в кейл пишете?
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
13.08.2014, 23:22 15
вот что странное в отладке-
http://c2n.me/iJH8Jy
1- бряка на ф-ии
IP4_ADDR():
и след. ходом он выбрасывает меня на цифру2. Хотя, F11 жму- into.
Т.е. он как бы не заходит в IP4_ADDR();
Думаю, может здесь что. Хотя, может он так дефайн просто отражает- сразу мимо проходит.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
14.08.2014, 12:21 16
Цитата Сообщение от mitsimkir
вот что странное в отладке-
http://c2n.me/iJH8Jy
1- бряка на ф-ии
IP4_ADDR():
и след. ходом он выбрасывает меня на цифру2. Хотя, F11 жму- into.
Т.е. он как бы не заходит в IP4_ADDR();
Думаю, может здесь что. Хотя, может он так дефайн просто отражает- сразу мимо проходит.
Отключите оптимизацию в компиляторе (-O0), тогда пошаговая отладка станет адекватной. А когда с проблемами разберётесь - вернёте оптимизацию обратно.

"Неотображаемые" вещи бывают, но для них смотрИте в ассемблерное окно и окно с регистрами CPU - там видны любые значения/действия, даже спрятанные под макросы Си. Или можно временно подставить вместо макросов их "раскрытое" содержимое. Но в описанном Вами случае всего этого не нужно. Достаточно в "цифре 2" (после макросов) убедиться, что эти три переменные (ipaddr, netmask, gw) получили нужные четырёхбайтовые значения. Например, IP=192.168.1.101=0xC0.0xA8.0x01.0x65 - значение будет 0xC0A80165.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
14.08.2014, 12:28 17
в проекте промэлектроники схема соединений

ETH_MDIO -------------------------> PA2
ETH_MDC --------------------------> PC1
ETH_MII_RX_CLK/ETH_RMII_REF_CLK---> PA1
ETH_MII_RX_DV/ETH_RMII_CRS_DV ----> PA7
ETH_MII_RXD0/ETH_RMII_RXD0 -------> PC4
ETH_MII_RXD1/ETH_RMII_RXD1 -------> PC5
ETH_MII_TX_EN/ETH_RMII_TX_EN -----> PB11
ETH_MII_TXD0/ETH_RMII_TXD0 -------> PB12
ETH_MII_TXD1/ETH_RMII_TXD1 -------> PB13
ETH_nRST -------------------------> PE2

вот последнее что? У меня не соединено.
Давайте может по схеме пройдемся. т.к. скомпилил еще проект под RTOS с тех же с файлов,что присылал- та же фигня- не хочет пинговаться. А код такой же почти.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
14.08.2014, 12:33 18
Цитата Сообщение от mitsimkir
...
ETH_nRST -------------------------> PE2
вот последнее что? У меня не соединено.
Давайте может по схеме пройдемся. т.к. скомпилил еще проект под RTOS там же с файлов- та же фигня- не хочет пинговаться. А код такой же почти.
IMHO stomdalone проект проще отладить.
Riset для чипа PHY - у Вас это не было подключено? - выбираете любой свободный GPIO-пин (я выбрал PC0, но это не принципиально) и генерируете на нём импульс физического сброса в начале работы , подобно тому, как делаете сброс LCD-модулям.

Можно, наверно, и s/w risitом обойтись (у Вас на схеме как раз помечено "линия Riset - optional), но в любом случае не забудьте, что PHY требует двух достаточно длинных задержек - на сброс и по окончании конфигурирования (в проекте найдёте соответствующие дефайны).
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
14.08.2014, 12:39 19
ETH_nRST -------------------------> PE2
вот этого нет.
Но на модуле нет ноги с названием nRST
там все ноги расписаны и они совпали.
0
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 27
14.08.2014, 12:55 20
http://c2n.me/iJPzq9
фот фото оборота модуля. Все 9 пин + 2 питания я задействовал.

Я же правильно понимаю, что если мне надо OSCIN, то это нога со стрелочкой?
http://c2n.me/iJPD3p
0
14.08.2014, 12:55
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2014, 12:55
Помогаю со студенческими работами здесь

STM32F4Discovery + VS1011e
Решил наваять аппаратный MP3 плеер :) VS1011k в корпусе SOIC-28 (паять легче), его обвяз взят...

STM32F4Discovery+OV7670
Доброго времени суток OV7670 - без буфера... Не как не получается пообщаться с камерой(OV7670)....

STM32F4DISCOVERY и SWD
Добрый вечер, Решил замутить кое-какую штуку на stm32 и прошивать/отлаживать ее с помощью...

[STM32F4Discovery] Таймер
Здравствуйте, господа. Запускаю на STM32F4Dyscovery следующую программу: #include &quot;stm32f4xx.h&quot; ...

STM32F4Discovery и UART
Всем привет. Помогите разобраться, что я делаю не так. Ниже код, всё собирается, вот только...

STM32F4Discovery Board
Почему CubeMX при инициализации первого CAN'a подключает порты RX, TX на порты PA11 и PA12 на камне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru