stm32_Junior 1 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба Доброго времени суток! Пишу проект под stm32f407vet6 пробую подключать ethernet, собираю пробный проект, в котором только LWIP + диод, чтобы пропинговать, но после прошивки плата сама не стартует. Только из дебага и с 3го нажатия RUN. На плате Nucleo stm32f429 все работает и стартует(там встроенный phy). Код программы привожу. Пингуется через раз, один-два пинга из четырех. Пробовал разные версии куба. Пробовал ставить оптимизацию 0 IP статический, в системе и в программе определен верно. #include "main.h" #include "lwip.h" extern struct netif gnetif ; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_LWIP_Init(); while (1) { ethernetif_input(&gnetif); sys_check_timeouts(); HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); HAL_Delay(10); } } Вопросы: почему плата не стартует сама, как сделать чтобы стартовала? Если по более конкретным вопросам - как происходит отправка данных по eth на самом низком уровне? Чтобы вопрос был более понятен: Для другой физике, в её драйвере есть функция 1 enc28j60_send_packet((uint8_t *) uip_buf, uip_len); А для моей dp83848 такой функции нет. Как правильно реализовывать отправку кадров eth с ней? Как правильно инициализировать? Хочу попытаться собрать на более простом uip, если кто знает, или есть примеры, напишите, пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба А почему вы это считаете программной проблемой? Аппаратура ваша или покупная отладка, не совсем ясно. 407 проц +phy на MII при правильном подключении пинг стартует из "коробки". Тоесть собранный кубом проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба 4 часа назад, stm32_Junior сказал: . . . . Для другой физике, в её драйвере есть функция 1 enc28j60_send_packet((uint8_t *) uip_buf, uip_len); А для моей dp83848 такой функции нет. . . . Вы путаете. В STM32 интегрированный контроллер Ethernet, + внешний IC трансивера ("физика сопряжени с линией") dp83848 enc28j60 - внешний по отношению к STM модуль, подключаемый через интерфейс SPI, на специализированном чипе, со встроенной "физикой". Судя по datasheet, трансивер dp83848 имеет пару десятков регистров конфигурации и требует настройки, а также контроля статуса в процессе работы. Если в Cube нет поддержки варинта API с dp83848, то быстро что-либо "прилепить" или взять со стороны не получится, IMHO, тк работу с трансивером надо встраивать в драйвер. http://stm32f4-discovery.net/2015/02/library-52-ethernet-peripheral-on-stm32f4xx/ Library 52- Ethernet peripheral on STM32F4xx Цитата . . . . плата сама не стартует . . . она "стартует", но код, который в нее прописали в виде программы, или не выдал диагностики, или вошел в зацикл, или вообще отсутствует. ps работа контроллера Ethernet порядка на 2-3 сложнее, чем USART. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба dp83848 Это обычная MII / RMII PHY В общем случае все эти PHY стандартно без дополнительных настроек будут поднимать линк, и через кубовскю программу заготовку будет устройство пинговаться. Если нужны какие-то особые режимы, тогда да надо писать и настраивать PHY. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 20 января, 2023 Опубликовано 20 января, 2023 · Жалоба 52 минуты назад, mitya1698 сказал: dp83848 Это обычная MII / RMII PHY В общем случае все эти PHY стандартно без дополнительных настроек будут поднимать линк, и через кубовскю программу заготовку будет устройство пинговаться. Если нужны какие-то особые режимы, тогда да надо писать и настраивать PHY. Наверное так, трансиверный интерфейс очевидно более-менее стандартизирован "по базе". ТС надо покурить интернет по этой теме. И по Cube тоже. https://community.st.com/s/question/0D53W00001UyDfJSAV/stm32f407-lwip-dp83848-cannot-ping-why STM32F407 + LwIP + DP83848 = Cannot Ping - Why? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stm32_Junior 1 26 января, 2023 Опубликовано 26 января, 2023 · Жалоба В 20.01.2023 в 20:11, k155la3 сказал: Вы путаете. В STM32 интегрированный контроллер Ethernet, + внешний IC трансивера ("физика сопряжени с линией") dp83848 enc28j60 - внешний по отношению к STM модуль, подключаемый через интерфейс SPI, на специализированном чипе, со встроенной "физикой". Судя по datasheet, трансивер dp83848 имеет пару десятков регистров конфигурации и требует настройки, а также контроля статуса в процессе работы. Если в Cube нет поддержки варинта API с dp83848, то быстро что-либо "прилепить" или взять со стороны не получится, IMHO, тк работу с трансивером надо встраивать в драйвер. http://stm32f4-discovery.net/2015/02/library-52-ethernet-peripheral-on-stm32f4xx/ Library 52- Ethernet peripheral on STM32F4xx она "стартует", но код, который в нее прописали в виде программы, или не выдал диагностики, или вошел в зацикл, или вообще отсутствует. ps работа контроллера Ethernet порядка на 2-3 сложнее, чем USART. Спасибо за ответ! Разобрался с пингом на lwip - дело было в проводах, сделал покороче - теперь пингует хорошо. Осталось разобраться почему запускается все только из под дебага. В 20.01.2023 в 20:20, mitya1698 сказал: dp83848 Это обычная MII / RMII PHY В общем случае все эти PHY стандартно без дополнительных настроек будут поднимать линк, и через кубовскю программу заготовку будет устройство пинговаться. Если нужны какие-то особые режимы, тогда да надо писать и настраивать PHY. Спасибо, вы были правы В 20.01.2023 в 21:16, k155la3 сказал: Наверное так, трансиверный интерфейс очевидно более-менее стандартизирован "по базе". ТС надо покурить интернет по этой теме. И по Cube тоже. https://community.st.com/s/question/0D53W00001UyDfJSAV/stm32f407-lwip-dp83848-cannot-ping-why STM32F407 + LwIP + DP83848 = Cannot Ping - Why? Спасибо В 20.01.2023 в 17:12, mitya1698 сказал: А почему вы это считаете программной проблемой? Аппаратура ваша или покупная отладка, не совсем ясно. 407 проц +phy на MII при правильном подключении пинг стартует из "коробки". Тоесть собранный кубом проект. Спасибо 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба У меня вопрос по связке STM32+Ethernet. Опыт какой-никакой у меня имеется, но программировать Ethernet никогда прежде не приходилось. А тут возникла у меня идея-фикс, чтобы на базе Ethernet сделать виртуальный СОМ-порт. Ведь если его на USB делают, то вероятно и на Ethernet тоже можно сделать. Причем, не столько ради скорости передачи данных, сколько из-за того, что трансформатор у Ethernet'a может служить гальванической развязкой. А такая развязка нужна мне для того, чтобы с помощью АЦП (у меня ADS1256) можно было отрицательные напряжения мерить. Для этого я гальванически развязываюсь, а вместо земли вывожу из платы напряжение с опорника (Vref) - оно как раз посреди шкалы у этого АЦП находится. Терзаемая такими желаниями 🙂, купила я себе на Aliexpress вот такую плату (STM32-ETH-47V/UET) : https://aliexpress.ru/item/1005002921352110.html Это связка контроллера STM32F407VG6 с EthernetPHY DP83848. Продавец обещает: "Предоставляется интерфейс Ethernet и программа тестирования.", но никакой "программы тестирования" я не получила, а продавец на связь не выходит. Сама же плата при подключении питания признаков жизни не подает (за исключением горящего светодиода питания) - впечатление, что контроллер еще не прошит. Где бы мне раздобыть демку для этой платы, желательно написанную на CubeMX (т.к. в программе, написанной на регистрах, логику работы с Ethernet мне не разобрать)? В интернете уже рылась - самое близкое это: Цитата Приобрел пару лет назад платку STM32-V/UET c F207VGT6 и эзернетом на DP83848. Валялась, вспомнил, решил поиграться. Из доки - исходники проектов с примерами к STM3220F-EVAL 😃 и схемка. Сгенерил проект с помощью cubemx (RMII Ethernet, lwIP), 50МГц MCO1. Прошил, эзернет поднимается, даже вижу DHCP Discover... http://forum.easyelectronics.ru/viewtopic.php?f=35&t=34172 Но этому товарище хотя бы повезло в том, что ему "дока" досталась, тогда как мне - ничего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 1 октября, 2023 Опубликовано 1 октября, 2023 (изменено) · Жалоба 18 minutes ago, Xenia said: на базе Ethernet сделать виртуальный СОМ-порт А какой драйвер со стороны ПК предполагается использовать? Ну и ценник! Изменено 1 октября, 2023 пользователем tonyk_av Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба Только что, tonyk_av сказал: А какой драйвер со стороны ПК предполагается использовать? До выбора драйвера у меня еще руки не дошли - мне бы Ethernet довести хотя бы до того, чтобы он в сети был виден по TCP/IP. А пока плата мертва, заниматься выбором драйвера преждевременно. Но если у вас что-то есть на примете, то я бы с интересом вас послушала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alag57 1 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба Искать stsw-stm32070, это правда не HAL, но разобраться можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба 24 минуты назад, tonyk_av сказал: Ну и ценник! Я ее покупала за 6414.90 руб (с доставкой вышло 6845.52 руб). Заказывала 27 августа, получила на почте только вчера. Тоже не дешево, но с чего-то мне надо начинать. А если изготовление такой платы у умельцев заказывать, то обошлось бы гораздо дороже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба 35 minutes ago, Xenia said: Но если у вас что-то есть на примете, то я бы с интересом вас послушала. В своё время смотрел в сторону com2tcp. У него много производных на github, но качество этих проектов я не проверял. Есть коммерческие варианты типа вариант от Элтима. У китайцев на Али есть конвертеры на RISC-V, если не ошибаюсь, на CH32F307. В моём случае требовался драйвер под Винду в исходниках, потому что требовалось, чтобы приложение видело СОМ-порт с параметрами 9600/8N1, а реально на МК шло 115200 вне зависимости от настроек порта. В итоге проблему успешно решил с другого бока и на W5500. Тем не менее, вариант с виртуальным портом всё равно интересен для бюджетных применений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба 1 час назад, tonyk_av сказал: У китайцев на Али есть конвертеры на RISC-V, если не ошибаюсь, на CH32F307. И что во что они конвертируют? Поймите, что мне никакая конвертация не нужна, т.к. для компьютера Ethernet-разъем родной, вы, даже если заходите, выковырить его из материнской платы не сможете. А с другой стороны у меня плата с Ethernet-разъемом, который через приемо-передатчик DP83848 непосредственно связан с контроллером. Соединяются же они между собой патч-кордом, и здесь нигде нет никаких посредников типа RS-232 или RS-485 с их бодами, четностью, битностью и прочими специфическими атрибутами. А слово "виртуальный СОМ-порт" я произнесла вовсе не оттого, что через Serial-port связь хочу наладить, а исключительно потому, что так называется удобная удаленная связь через файловые операции, когда отправляемые сообщения пишутся в виртуальный СОМ-порт, открываемый как файл, и так же из того же файла читаются входящие сообщения. Это вариант привлекателен еще и тем, что такая передача буферизируется на уровне операционной системы - например, заказав буфер в 64КB, вы будете избавлены от ловли каждого входящего байта и получите возможность читать входящие сообщения блоками, которые накопились со времени предыдущего чтения. Кроме того виртуальный СОМ-порт удобен еще и тем, что программы, работающие с внешними устройствами через реальный СОМ-порт, легко "обмануть", подсунув им вместо номера реального СОМ-порта номер виртуального. Они даже не заметят этого. Но если я возьму драйвер от какого-то умельца с Гитхаба, то в придачу к нему получу библиотеку на десятки мегабайт, предоставляющую функции, посредством которых буду вынуждена связываться с отдаленным девайсом. Положим, что в своей программе я бы могла переделать файловый доступ на библиотечный, однако чужие программы мне на этот вариант не переделать (из-за отсутствия их исходников). С подобной ситуацией я уже встречалась в ... мобильных телефонах старых типов, которые при подключении к компьютеру по USB не показывают содержимое своей памяти в виде дерева директориев, а требуют специальную программу от производителя, которая содержимое памяти скрывает, а позволят только скачивать фотки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба 2 часа назад, Xenia сказал: А такая развязка нужна мне для того, чтобы с помощью АЦП (у меня ADS1256) можно было отрицательные напряжения мерить. Это понятно. Непонятно - зачем для этого городить виртуальный COM-порт??? Передавать данные через Ethernet-интерфейс можно кучей разных способов. Например - посредством UDP-кадров или через TCP-сокет. TCP-сокет (с точки зрения юзера) наиболее близок к соединению UART-UART. 2 часа назад, Xenia сказал: Терзаемая такими желаниями 🙂, купила я себе на Aliexpress вот такую плату (STM32-ETH-47V/UET) : https://aliexpress.ru/item/1005002921352110.html Сильно! Искали подороже? Если зайти на: http://starterkit.ru/html/index.php?name=shop&cat=95 то можно найти гораздо дешевле. Например: http://starterkit.ru/html/index.php?name=shop&op=view&id=93 и много других с Ethernet-разъёмом. Есть там и STM32. Причём - там для всех плат имеются схемы и кучи примеров. А не как на али.... Вот тоже: http://starterkit.ru/html/index.php?name=shop&op=view&id=38 всего 2 тыр стоит. Всё есть для Ethernet. А в описании к последней сказано: Цитата Демо и приложения WEB сервер основанный на uIP стеке протоколов TCP/IP. WEB сервер основанный на LwIP стеке протоколов TCP/IP. USB Host Mass Storage - контроллер читает содержимое USB флешки. USB Host Keyboard - контроллер опрашивает USB клавиатуру. USB Virtual COM Port. 2 часа назад, Xenia сказал: Но этому товарище хотя бы повезло в том, что ему "дока" досталась, тогда как мне - ничего. Ну так - кто-ж Вас заставлял покупать на али, кота в мешке? На стартерките все платы со схемами и библиотеками примеров. И поддержка - на русском. 2 часа назад, Xenia сказал: Я ее покупала за 6414.90 руб (с доставкой вышло 6845.52 руб). Заказывала 27 августа, получила на почте только вчера. Всего-то в ~3 с хвостиком раза дороже чем: http://starterkit.ru/html/index.php?name=shop&op=view&id=38 44 минуты назад, Xenia сказал: А слово "виртуальный СОМ-порт" я произнесла вовсе не оттого, что через Serial-port связь хочу наладить, а исключительно потому, что так называется удобная удаленная связь через файловые операции, когда отправляемые сообщения пишутся в виртуальный СОМ-порт, открываемый как файл, и так же из того же файла читаются входящие сообщения. TCP-сокет точно также открывается как поток. В который затем можно писать и читать из него массивы байт. Кроме того (в отличие от костыльного виртуального COM-порта) - он позволяет получать информацию о статусе подключения (есть подключение? нет? произошло отключение удалённой стороны? и т.п.). О чём, в варианте с COM-портом, и мечтать не приходится. А если что-то не так сделаешь с виртуальным COM, то и синий экран получить на раз можно и просто систему завесить. Поэтому - ну очень странный выбор..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 1 октября, 2023 Опубликовано 1 октября, 2023 · Жалоба 32 минуты назад, jcxz сказал: 3 часа назад, Xenia сказал: А такая развязка нужна мне для того, чтобы с помощью АЦП (у меня ADS1256) можно было отрицательные напряжения мерить. Это понятно. Непонятно - зачем для этого городить виртуальный COM-порт??? Потому что я работаю с программным обеспечением, написанном разными иностранными компаниями под связь с железом через СОМ-порт. Протокол связи я уже разгадала и уже сотворила замену их фирменного железа на самодельное из китайских модулей. Ибо скопировать чужую программу ничего не стоит, а покупать железо у фирмы стоит огромных (по моим меркам) денег, тем более что железо отдельно от программы они не продают, а ныне с Россией вообще не торгуют. Сперва работала через реальный СОМ-порт, купив у китайцев "промышленную" плату с интерфейсом RS-232, но потом перешла на виртуальный СОМ-порт, подключив USB-кабель напрямую к контроллеру, занимающимся периодическим съемом результатов с АЦП (по прерыванию), а в остальное время манипулирующего 32-мя цифровыми линиями (какие-то из них управляющие и ориентированы на вывод, а какие-то информационные, ориентированные на чтение). Избавившись от реального СОМ-порта, я избавилась и от досадного ограничения в 115200 бод, а теперь хочу еще большего. А компьютеры нынче быстрые пошли - программа с возросшим входным потоком справляется. 32 минуты назад, jcxz сказал: Сильно! Искали подороже? Если зайти на: http://starterkit.ru/html/index.php?name=shop&cat=95 то можно найти гораздо дешевле. Например: http://starterkit.ru/html/index.php?name=shop&op=view&id=93 Я искала только на Aliexpress, т.к. и раньше там всё покупала, а по российским магазинам я не спец. Просьба к вам - не забалтывать заданный мной вопрос о ПО для этой платы, переводя разговор о том, где дешевле покупать. Всё равно, чтобы вы мне ни посоветовали, купленную плату я уже не выброшу. 32 минуты назад, jcxz сказал: 32 минуты назад, jcxz сказал: TCP-сокет точно также открывается как поток. В который затем можно писать и читать из него массивы байт. точно также открывается как поток. В который затем можно писать и читать из него массивы байт. Я это знаю, но чужую/фирменную программу мне с СОМ-порта на TCP-сокет не переделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться