Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 25.02.2016, 12:53   #1
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Ethernet на STM32

А давайте в этой теме затронем вопросы насчет Ethernet например на STM32. Не все же в теме "STM32 для начинающих" спрашивать. Я вот разобрался/запустил LwIP + FreeRTOS + TCP протокол. Не было готового примера под мое железо и переделал/скомбинировал из разных проектов/примеров. Если что интересно - спрашивайте тоже и у меня. Сейчас вот разбираюсь с проблемой физического дисконнекта Ethernet разъема. Как реагирует система на это? Разбираюсь с прерыванием от модуля Ethernet и пр. На такое физическое отключение реагирует PHY драйвер (например от серии LAN87xx и пр.) и он должен так среагировать чтобы сгенерировалось прерывание в контроллере. Интересно как он это делает? Покамест не понятно. Для простоты примем, что интерфейс у нас RMII. Драйвер нужно настроить соотв. образом? Покамест не понятно.
AleksBak вне форума   Ответить с цитированием
Старый 25.02.2016, 14:44   #2
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,348
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от AleksBak Посмотреть сообщение
А давайте в этой теме затронем вопросы насчет Ethernet например на STM32. Не все же в теме "STM32 для начинающих" спрашивать. Я вот разобрался/запустил LwIP + FreeRTOS + TCP протокол. Не было готового примера под мое железо и переделал/скомбинировал из разных проектов/примеров. Если что интересно - спрашивайте тоже и у меня. Сейчас вот разбираюсь с проблемой физического дисконнекта Ethernet разъема. Как реагирует система на это? Разбираюсь с прерыванием от модуля Ethernet и пр. На такое физическое отключение реагирует PHY драйвер (например от серии LAN87xx и пр.) и он должен так среагировать чтобы сгенерировалось прерывание в контроллере. Интересно как он это делает? Покамест не понятно. Для простоты примем, что интерфейс у нас RMII. Драйвер нужно настроить соотв. образом? Покамест не понятно.
Я использовал пример от СТ, там никак не реализована обработка отключения кабеля, главное, что бы на момент запуска микроконтроллера он был подключен. Если при запуске кабеля нет, что через таймаут завершается с ошибкой инициализация Ethernet (но ошибка не обрабатывается) и что-то касаемо DMA не доинициализируется. Я добавлял, в случае ошибки инициализации, сброс контроллера, нет подключение - не нужно и остальное.
Вот только с Вашим постом задумался, а как оно продолжает работать, если кабель отключить и подключить, а вот так и работает - главное, что бы на момент инициализации подключен кабель, до отключения питания работает с этими настройками.
Рак на форуме   Ответить с цитированием
Старый 27.02.2016, 08:13   #3
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Рак Посмотреть сообщение
Я использовал пример от СТ, там никак не реализована обработка отключения кабеля, главное, что бы на момент запуска микроконтроллера он был подключен. Если при запуске кабеля нет, что через таймаут завершается с ошибкой инициализация Ethernet (но ошибка не обрабатывается) и что-то касаемо DMA не доинициализируется. Я добавлял, в случае ошибки инициализации, сброс контроллера, нет подключение - не нужно и остальное.
Вот только с Вашим постом задумался, а как оно продолжает работать, если кабель отключить и подключить, а вот так и работает - главное, что бы на момент инициализации подключен кабель, до отключения питания работает с этими настройками.
Очень извиняюсь за поздний ответ - так получилось. А какой PHY-драйвер используете? У меня с STM32 пока что LAN87xx, а у них есть выход прерывания, но он как-то совмещен с др. линией от интерфейса (либо с выходом на светодиод, либо с выводом REFCLKO). Как он "извещает" о каких-то событиях не используя этот вывод прерывания? Я как понял в RMII - когда приходят данные от PHY драйвера он просто их выдает на линии RXD0-RXD1 и соответственно наоборот - когда данные посылаются на PHY драйвер. В прерывании от Ethernet MAC модуля контроля только эти 2 ситуации и обрабатываются. А как быть с др. ситуациями? Т.е. когда произойдет физ. дисконнект например. Добавить поллинг флага "LINK_STATUS" регистра состояния, то может так? А RTOS Вы используете? Она у меня тоже в процессе изучения как и LwIP тут. В какой задаче этот момент нужно учитывать? Еще раз извиняюсь за поздний ответ - так у меня сложилось.
AleksBak вне форума   Ответить с цитированием
Старый 27.02.2016, 08:31   #4
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Еще добавлю - странно немного сделана инициализация PHY драйвера. Большие задержки, вначале появляется какой-то непонятный MAC-адрес 02-00-00-00-00-00, потом задержка и уже нужный MAC-адрес идет. Для чего этот адрес вначале так и не понял покамест. А вообще Ethernet модуль как функционирует - изучать и изучать нужно...
AleksBak вне форума   Ответить с цитированием
Старый 29.02.2016, 10:01   #5
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,348
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

У меня плата от Терры, за 150 долл. покупали. Там старый PHY RTL8201BL. Состояние линка можно смотреть периодически в регистре статуса, полезно если без отключения питания могут переподключить сетевой кабель к другому коммутатору или компьютеру (с другими параметрами скорости или типа обжатия кабеля).
Прошу прощение за поздний ответ, сообщение увидел в субботу, но из дома не стал отвечать, сейчас все время семье уделяю (младшему уже 7 месяцев, в краватке его не устраивает сидеть, а на полу тянет все провода в рот) да и авто появилось, больше хлопот стало, резину летнюю нужно присматиривать, колодки скоро менять, омывайку не вонючую выбрать, разбираюсь потихоньку
Рак на форуме   Ответить с цитированием
Старый 29.02.2016, 10:19   #6
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Еще добавлю - странно немного сделана инициализация PHY драйвера. Большие задержки, вначале появляется какой-то непонятный MAC-адрес 02-00-00-00-00-00, потом задержка и уже нужный MAC-адрес идет. Для чего этот адрес вначале так и не понял покамест. А вообще Ethernet модуль как функционирует - изучать и изучать нужно...
Два вопроса:
1) "Большие задержки" - это сколько в цифрах?
2) Чем смотришь MAC-адреса?

Хочу у себя посмотреть, повторить опыт. В демке был какой-то MAC по умолчанию, я его поменял на свой, который прописывается из энергонезависимой памяти. Предполагалось, что MAC-адрес в каждом девайсе будет локальный (поэтому ручками в меню его и вписываем), из внешней сети все девайсы доступны через роутер с глобальным MAC-адресом.
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 29.02.2016 в 10:25.
Pridnya вне форума   Ответить с цитированием
Старый 29.02.2016, 10:28   #7
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,348
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Предполагалось, что MAC-адрес в каждом девайсе будет локальный (поэтому ручками в меню его и вписываем), все девайсы доступны через роутер с глобальным MAC-адресом.
Я тоже думал, что ничего криминального нет в локальном MACе, пока моих устройств в одной сети не стало больше одного. Наступил на грабли, что на двух узлах могут настроить одинаковые маки, пришел к установке микрочиповской памяти с честным маком. На фоне стоимости контроллера 25 центов погоды не делают.
Рак на форуме   Ответить с цитированием
Старый 29.02.2016, 11:23   #8
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Рак Посмотреть сообщение
Я тоже думал, что ничего криминального нет в локальном MACе, пока моих устройств в одной сети не стало больше одного. Наступил на грабли, что на двух узлах могут настроить одинаковые маки, пришел к установке микрочиповской памяти с честным маком. На фоне стоимости контроллера 25 центов погоды не делают.
IMHO: можно в инструкции к девайсу написать "при настройке локальной сети необходимо каждому из устройств задать уникальный локальный MAC-адрес". У кого-то в техописании подобное видел.

Применительно к себе: а можно ли в девайсах STM32F4+LAN8720A использовать микрочиповские MAC-и? MAC несет информацию о производителе.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 29.02.2016, 11:39   #9
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,348
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
IMHO: можно в инструкции к девайсу написать "при настройке локальной сети необходимо каждому из устройств задать уникальный локальный MAC-адрес". У кого-то в техописании подобное видел.

Применительно к себе: а можно ли в девайсах STM32F4+LAN8720A использовать микрочиповские MAC-и? MAC несет информацию о производителе.
MAC несет информацию о том, кто выкупил диапазон адресов.
На ноуте HP probook стоит карта с чипом Atheros, но WireShark приписывает ему D-LinkCo.
Рак на форуме   Ответить с цитированием
Старый 29.02.2016, 13:45   #10
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,748
Вес репутации: 3479/96
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от AleksBak Посмотреть сообщение
А давайте в этой теме затронем вопросы насчет Ethernet например на STM32. Не все же в теме "STM32 для начинающих" спрашивать. Я вот разобрался/запустил LwIP + FreeRTOS + TCP протокол. Не было готового примера под мое железо и переделал/скомбинировал из разных проектов/примеров. Если что интересно - спрашивайте тоже и у меня. Сейчас вот разбираюсь с проблемой физического дисконнекта Ethernet разъема. Как реагирует система на это? Разбираюсь с прерыванием от модуля Ethernet и пр. На такое физическое отключение реагирует PHY драйвер (например от серии LAN87xx и пр.) и он должен так среагировать чтобы сгенерировалось прерывание в контроллере. Интересно как он это делает? Покамест не понятно. Для простоты примем, что интерфейс у нас RMII. Драйвер нужно настроить соотв. образом? Покамест не понятно.
Я пока проверяю именно LINK_STATUS и если нет - делаю
повторный инит PHY драйвера с прежними установками.
Физический уровень у меня на 8710A.
Тоже планирую расковырять драйвер.
Но пока не дошел.
Решение пока "так себе" именно из-за задержек.
Непонятно почему они так велики.
И что там вообще ожидается и делается.

Прикрутил к uIP(uip-0_9-refman.pdf) микрочиповский FTP сервер и WEB сервер.
Тут пока полирую(но уже работает).
А то родной пример от ST вызвал у меня грусть...

Планирую все же драйвер физ.уровня подробно расковырять. Но не сейчас.
Никакую ось не использую - не вижу пользы от них.
Но к предмету разговора это не относится.
Petr вне форума   Ответить с цитированием
Старый 29.02.2016, 14:17   #11
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Petr Посмотреть сообщение
Решение пока "так себе" именно из-за задержек.
Непонятно почему они так велики.
И что там вообще ожидается и делается.
Петр, какие у вас там с Алексом задержки? Термины "велики" и "малы" ни о чем не говорят.
У меня нет никаких задержек, все работает, и шнур можно выдергивать из прибора.
Можно в программе на компе нажать кнопку "Прочитать" при выдернутом шнуре, программа начинает ожидать, через несколько секунд воткнуть шнур и данные появятся в программе.
Вот если модуль на котором LAN8720 отсоединить от STM32 (подключен по RMII), то MCU виснет, но WDT обнаруживает. С этим пока не разбирался.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 29.02.2016, 14:38   #12
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,748
Вес репутации: 3479/96
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Петр, какие у вас там с Алексом задержки? Термины "велики" и "малы" ни о чем не говорят.
У меня нет никаких задержек, все работает, и шнур можно выдергивать из прибора.
Можно в программе на компе нажать кнопку "Прочитать" при выдернутом шнуре, программа начинает ожидать, через несколько секунд воткнуть шнур и данные появятся в программе.
Вот если модуль на котором LAN8720 отсоединить от STM32 (подключен по RMII), то MCU виснет, но WDT обнаруживает. С этим пока не разбирался.
Речь идет о:
Код:
  // Initialize the ethernet device driver
  // Init MAC
  // Phy network negotiation
  tapdev_init();

  // Initialize the uIP TCP/IP stack.
  uip_init();
Это выполняется при старте.
Далее идет что то типа:
Код:
  uip_ipaddr(ipaddr, 192,168,1,114);
  uip_sethostaddr(ipaddr);
  uip_ipaddr(ipaddr, 192,168,1,1);
  uip_setdraddr(ipaddr);
  uip_ipaddr(ipaddr, 255,255,255,0);
  uip_setnetmask(ipaddr);
  //инит модулей
  uip_listen(HTONS(80));                                        //инициализация WEB сервера, слушаем 80-й порт
  FTPInit();                                                    //инит FTP
  uip_listen(HTONS(FTP_COMMAND_PORT));                          //инициализация FTP, слушаем COMMAND_PORT порт
Но это вот как раз не проблема.
А вот tapdev_init(); uip_init(); выполняются несколько секунд(до 10).
Это я и называю "долго".
Если при инициализации кабель воткнут - все ОК.
Если выдернуть на ходу - светодиоды гаснут.
Воткнуть - не работает uIP, сам то проц конечно работает без проблем.
Если сделать инит заново - снова работает.
Но ждем несколько секунд. Не дело...
Petr вне форума   Ответить с цитированием
Старый 29.02.2016, 15:01   #13
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Так тема начиналась для связки STM32F+LAN8720A+LwIP.
Цитата:
Сообщение от AleksBak Посмотреть сообщение
А давайте в этой теме затронем вопросы насчет Ethernet например на STM32. Не все же в теме "STM32 для начинающих" спрашивать. Я вот разобрался/запустил LwIP + FreeRTOS + TCP протокол.
Цитата:
Сообщение от AleksBak Посмотреть сообщение
Я покамест со 107-м разбираюсь и не успел с платкой на F030P4 что-то сделать. Еще надо разобраться как подпаять разъем микроСД карты. Сейчас PACK обновляется (в Кейле). Все-таки Кейл имеет некоторые преимущества (недостатки тоже есть).
А у вас другой стек - uIP, так мы вообще запутаемся, придется тему делить на подтемы, да еще с указанием версий стеков и библиотек.
Цитата:
Сообщение от Petr Посмотреть сообщение
Речь идет о:
Код:
  // Initialize the ethernet device driver
  // Init MAC
  // Phy network negotiation
  tapdev_init();

  // Initialize the uIP TCP/IP stack.
  uip_init();
Это выполняется при старте.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 29.02.2016, 15:19   #14
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,748
Вес репутации: 3479/96
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Так тема начиналась для связки STM32F+LAN8720A+LwIP.



А у вас другой стек - uIP, так мы вообще запутаемся, придется тему делить на подтемы, да еще с указанием версий стеков и библиотек.
Ага, только сейчас заметил, что стек другой...
Petr вне форума   Ответить с цитированием
Старый 29.02.2016, 15:30   #15
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Petr Посмотреть сообщение
Ага, только сейчас заметил, что стек другой...
Стек другой, но, вроде, автор один и тот же. uIP урезанный LwIP, у uIP ограничений больше.

Цитата:
Сообщение от Petr Посмотреть сообщение
А вот tapdev_init(); uip_init(); выполняются несколько секунд(до 10).
Это я и называю "долго".
Если при инициализации кабель воткнут - все ОК.
Если выдернуть на ходу - светодиоды гаснут.
Воткнуть - не работает uIP, сам то проц конечно работает без проблем.
Если сделать инит заново - снова работает.
Но ждем несколько секунд. Не дело...
Что-то неправильно настроено. Такая длинная задержка до 20 секунд бывает при ожидании установки TCP-соединения. Может, у вас стек что-то делает и ждет? У меня после включения МК LwIP-стек сразу работает. Т.е. включаю питание с выдернутым шнуром, затем быстро (не измерял, но примерно за 1 сек) подключаю сетевой кабель и Modbus TCP работает.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 29.02.2016, 15:31   #16
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,813
Вес репутации: 5440/167
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Petr Посмотреть сообщение
Решение пока "так себе" именно из-за задержек.
Непонятно почему они так велики.
а какая была скорость на микрочиповском, например запись в SD по FTP?
Greg вне форума   Ответить с цитированием
Старый 29.02.2016, 15:52   #17
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,748
Вес репутации: 3479/96
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Greg Посмотреть сообщение
а какая была скорость на микрочиповском, например запись в SD по FTP?
Запись на PIC18F67J60 при софтверном SPI у меня примерно 50 кБ/сек.
Чтение 70 кБ/сек.
Petr вне форума   Ответить с цитированием
Старый 29.02.2016, 15:55   #18
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,748
Вес репутации: 3479/96
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Стек другой, но, вроде, автор один и тот же. uIP урезанный LwIP, у uIP ограничений больше.


Что-то неправильно настроено. Такая длинная задержка до 20 секунд бывает при ожидании установки TCP-соединения. Может, у вас стек что-то делает и ждет? У меня после включения МК LwIP-стек сразу работает. Т.е. включаю питание с выдернутым шнуром, затем быстро (не измерял, но примерно за 1 сек) подключаю сетевой кабель и Modbus TCP работает.
Я думаю дело в том, что при назначении MAC там что то проверяется.
Т.е. скорее всего на предмет наличия оного в сети с целью вернуть код ошибки в случае дублирования.
Но меня пока не особо беспокоит.
Дополирую WEB, тогда займусь стеком.
Petr вне форума   Ответить с цитированием
Старый 29.02.2016, 16:15   #19
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,348
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

"Долго" инициализируется только Auto-negotiation, когда идет определение типа сети. Но как и у Pridnya все работает с первой секунды.
Рак на форуме   Ответить с цитированием
Старый 01.03.2016, 13:47   #20
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Вчера писал, писал - а потом поздно стало и ничего не отправил. Писатель блин.
1. Долго и длит. задержки - это 1 секунда для сброса и по несколько сот секунд в нескольких местах. В принципе и не такие уж огромные задержки, но все-таки. Я только что запустил LAN8720A на STM32F107-м (а до этого другой был контроллер и LAN8742A был). Теперь дальше надо экспериментировать с задержками и уменьшать насколько можно.
2. То что у Pridnya быстро работает, то это скорее всего результат работы LwIP в поллинг-режиме как бы. Интересно сколько при этом отбирает процессорного времени стек?? Подозреваю, что немало. Сам TCP/IP стек может конечно самостоятельно "распознать" физическое отключение эзернета, но это будет гораздо дольше чем при использовании выхода Int с PHY-драйвера, настроенного соотв. образом на потерю линка. Нужно постоянно опрашивать на этот случай PHY драйвер. У LAN8720A не очень удачно расположен выход на его прерывание как писал. НО! Со 107-м можно использовать выход MC0 контроллера, настроенный на 50МГц и при этом у LAN8720A освобождается его пин nINT/REFCLKO от выдачи необходимых 50МГц и его можно с успехом применить теперь как выход на прерывание от этого PHY-драйвера. С контроллерами серии 4хх (407, 427 и выше) такой финт уже не пройдет насколько я понял. Если не прав - например у Pridnya может как раз такой вариант работает и если он может об этом сообщить, то будем ему очень признательны.
AleksBak вне форума   Ответить с цитированием
Старый 01.03.2016, 13:55   #21
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Два вопроса:
1) "Большие задержки" - это сколько в цифрах?
2) Чем смотришь MAC-адреса?

Хочу у себя посмотреть, повторить опыт. В демке был какой-то MAC по умолчанию, я его поменял на свой, который прописывается из энергонезависимой памяти. Предполагалось, что MAC-адрес в каждом девайсе будет локальный (поэтому ручками в меню его и вписываем), из внешней сети все девайсы доступны через роутер с глобальным MAC-адресом.
MAC адреса я смотрю в логах аналога сервера на компе (там можно любой сервер DHCP, DNS и т.д. запустить) такой программы. Немного глючная, но все равно сойдет для отладки. А задержки большие в "родной" либе от ST при инициализации. 1 секунда там, несколько сот милликесунд в нескольких местах. Кривоватая инициализация (2 MAC адреса как писал!). Не зря Petr от нее в грусть впал. Потому как видно, что делали так чтобы запутать пользователей недорогих плат (Discovery серия) и усложнить им жизнь, а предпочтение дается пользователям дорогих плат (EVAL серия и она раз в 10 дороже). В принципе, что поделать - не всегда же бесплатный сыр кушать и самим тоже надо думать/писать что-то. Тем более такая база имеется. Для EVAL плат все примеры есть, а для Discovery урезаны. На EVAL плате стоит DP83848, а это более "полноценный" PHY драйвер т.к. у него 48 ножек - ровно в 2 раза больше чем у LAN8720 и выше. Поэтому у него есть отдельный вывод для прерывания, а не совмещенный с каким-то др. выводом как у LAN8720. Поэтому приходится "извращаться".
AleksBak вне форума   Ответить с цитированием
Старый 01.03.2016, 14:11   #22
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

И еще тут добавлю т.к. в той теме уже нехорошо будет и как флуд пойдет - оказывается Pridnya и на электрониксе есть. Будем знать. Я там недавно опять зарегился (раньше тоже давным-давно там был, но потерял пароль и почта та сменилась и не доступна уже).
AleksBak вне форума   Ответить с цитированием
Старый 01.03.2016, 14:34   #23
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от AleksBak Посмотреть сообщение
2. То что у Pridnya быстро работает, то это скорее всего результат работы LwIP в поллинг-режиме как бы. Интересно сколько при этом отбирает процессорного времени стек?? Подозреваю, что немало.
Не знаю что ответить. Был большой проект на STM32F4 я добавил к нему LAN8720A (подключена по RMII), добавил LwIP (переделал под себя пример tcp-echo-сервер). Входящий запрос обрабатывается по протоколу ModbusTCP. Запросы одиночные до 256-ти байт, на каждый запрос микроконтроллер отвечает. Т.е. непрерывной передачи данных (как заливка файла на SD-карту) нет.

Как работает - не знаю. Правда. Глубоко не вникал (кандидатов и профессоров по Ethernet-у нам не нужно, нужно, чтобы стабильно работало). Мне достаточно, чтобы работал основной проект (там системный тик 0,01 сек, т.е. на всю алгоритмы тратится не более 0,01 сек) Это я микрочиповский стек как-то уличил, что он (PIC24F+ENC28J60) по пуллингу работает, хотя у ENC28J60 есть пин для прерываний, я думал, что он и используется, а нет, он не дрыгается, а микроконтроллер периодически опрашивал ENC.

Повторюсь, что LAN8720A по RMII, используется библиотека от ST STM32F4x7_ETH_Driver (stm32f4x7_eth.h, stm32f4x7_eth.с). Если бы что-то долго работало, то сторожевой таймер обнаружил, он на 0,04 сек (вроде) настроен. Самое главное, что получилось совместить основной и коммуникационный процессор (использовать один), а пару лет назад я спрашивал, никто мне не ответил даже (а можно ли).

Как посмотреть MAC-и в этой программе я так и не понял. У меня нет ftp-клиента. Могу подключаться к прибору с помощью TCP-клиентов с поддержкой ModbusTCP. Как с помощью этой проги посмотреть?

Wireshark видит мой локальный MAC (06-05-04-03-02-01), который я использую (который задан в меню), видит запросы ModbusTCP. В локалке IP девайса 192.168.1.100, компьютера 192.168.1.10. Мой девайс доступен из интернета (через внешний IP после настройки переадресации запросов в роутере).

Я с рабочего компа заходил на рабочий стол домашнего и с домашнего запускал программу, которая подключалась к прибору (там указывал внешний IP и нужный порт, а роутер переадресует). В таком объеме мне достаточно.
Миниатюры
Tfdpd.PNG   ws.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.03.2016, 14:56   #24
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/104
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

А STM32F4 это какой? 407-й или 429-й? Или еще какой-то другой. Программа, та что ссылку дал, превращает комп. в подобие DHCP сервера и когда к этому "серверу" снаружи подключатся клиенты, то в логах (крайняя закладка на твоем скриншоте этой программы) появляются соотв. сообщения о том, что такой MAC адрес выдал запрос на DHCP и пр. Вот там я и увидел, что плата с контроллером у меня шлет сразу 2 MAC адреса (!) в разное время. Посмотрел - код инициализации и увидел насколько он кривой и оба MAC адреса нашел в нем. А еще я вообще-то спрашивал насчет подключения вывода nINT/REFCKO у LAN8720A (14-й пин у нее). Он используется как выход 50МГц от LAN8720A у тебя? Или же с PLL от контроллера смог взять 50МГц? На 107-м так можно и я так и сделал, а на серии 4хх уже вроде нельзя. А насчет того, что спрашивал 2 года назад и никто не ответил - бывает. Но я вот 2 года назад не занимался STM32F4 вообще. Сейчас немного больше чем 2 месяца стал с СТМ контроллерами заниматься. Так что теперь если что спросишь по этой теме, то надеюсь смогу тоже что-то ответить. Хотя вот, в соседней теме, человек спросил про fatfs, но не смог ничего ему ответить/сказать т.к. сейчас и сам покамест новичок. Пока что вроде. На этом форуме наверно совсем мало людей будет, что с контроллерами от СТМ занимаются. Надо бы на др. форумах тоже побольше появляться. (а на каких? ) У всех свои проблемы бывают и главное не переругаться/перессориться. Жизнь сейчас не самая легкая пошла (мягко говоря)

Последний раз редактировалось AleksBak; 01.03.2016 в 15:02.
AleksBak вне форума   Ответить с цитированием
Старый 01.03.2016, 15:22   #25
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,576
Вес репутации: 4493/127
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Ethernet на STM32

Цитата:
Сообщение от AleksBak Посмотреть сообщение
А STM32F4 это какой? 407-й или 429-й? Или еще какой-то другой.

А еще я вообще-то спрашивал насчет подключения вывода nINT/REFCKO у LAN8720A (14-й пин у нее). Он используется как выход 50МГц от LAN8720A у тебя? Или же с PLL от контроллера смог взять 50МГц?
407-й, подключен как в Datasheet-е на рисунке.
Миниатюры
1.pdf  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где взять VID PID для STM32 и libusb дешевле, чем на форуме разработчиков? Вова Общетехнические вопросы 13 23.03.2015 16:49
PIC16F84a stepka Вопросы начинающих 56 24.03.2010 18:30
Нужна помощь....как наиболее выгодно соединить мк(желательно пик) с ПК посредством интерфейса Ethernet...на МК стоят датчики.... zasrane4 Вопросы начинающих 4 30.10.2009 00:02
помогите переложить рабочую прог с P16F628 на 12f629 gen22 Общетехнические вопросы 3 15.06.2009 14:27


Часовой пояс GMT +3, время: 12:02.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot