Top.Mail.Ru
Уведомления
Очистить все

[Решено] Отправка UDP с помощью STM32 + ENC28J60

(@timur)
Level 1

Всем привет, прочел отличную статью по работе с enc28j60 на этом сайте состоящую из 4 частей, и очень захотелось добавить в нее поддержку udp протокола, но знаний по C не хватает, кто мог бы помочь в этом вопросе?

Ссылка на статью - 4 часть

Цитата
Создатель темы Размещено : 28.02.2023 20:16
Метки темы
Aveal
(@aveal)
Top level Admin

Привет, блин был проект под UDP, тогда еще, когда те статьи писал. Но что-то отвлекло, не было времени статью написать пятую, а теперь и проект почему-то не нашел 🤔 Если прямо совсем не срочно, то в течение 3-4 недель могу постараться время выкроить - статью добавить с UDP.

ОтветитьЦитата
Размещено : 28.02.2023 20:45
(@timur)
Level 1

Был бы очень признателен, мне лично не обязательно прям целую статью с описанием, достаточно увидеть основную концепцию протокола, в любом случае, буду ждать, заранее спасибо 🙂 

ОтветитьЦитата
Создатель темы Размещено : 28.02.2023 21:08
Aveal
(@aveal)
Top level Admin

@timur Договорились )

ОтветитьЦитата
Размещено : 28.02.2023 21:14
Aveal
(@aveal)
Top level Admin

@timur приветствую ) Свои ENC28J60 поставил в одном проекте, пришлось новые заказывать, доставку ждать... Набросал демо-проект с UDP, принимается пакет, данные инкрементируются, затем отправляются обратно:

изображение

 

ОтветитьЦитата
Размещено : 19.03.2023 10:33
(@timur)
Level 1

@aveal Спасибо большое за 5 часть, оказывается не так все сложно было 👍 

Думаю теперь можно попробовать реализовать еще одну важную часть драйвера ENC, это генерация своих UDP пакетов. К примеру, сбор каких либо данных с датчиков температуры и т.п. устройств, формирование UDP пакета и отправка по сети на сервер 🤔 тут понадобится ещё функция арп кеширования, в общем надо нормально изучить этот Си 😀 

ОтветитьЦитата
Создатель темы Размещено : 21.03.2023 08:27
(@timur)
Level 1

@aveal а и еще один вопрос, я попробовал отправить по udp через микроскрипт написанный на питоне 212 байт цифр вида 111111..., контроллер вернул мне 22222..., окей работает, но если я пробую отправить больше чем 212 байт, то в ответе получаю 212 байт вида 22222... а после набор случайных байт.

Провел дебаг в STM32CuneIDE (st-link v2 + stm32f103c8t6), данные в переменной data udp кадра правильные, все 22222.... они идут через SPI в ENC, но wireshark показывает мне лабуду после 212 байта.

Можете по возможности проверить почему такое ограничение в длине ответа?

ОтветитьЦитата
Создатель темы Размещено : 21.03.2023 10:07
Aveal
(@aveal)
Top level Admin

@timur решилось после изменения uint8_t на uint16_t? Для тех, кто читает - это в комментариях.

ОтветитьЦитата
Размещено : 21.03.2023 17:04
(@timur)
Level 1

@aveal да, отправил 1000 букв А, получил 1000 букв В, до этого после 213 буквы был бардак, а и еще насчёт глюка четности длины кадра, пробовал разную длину, что-то его не словил или может в модуле enc 6 версии исправили это 🤨 

ОтветитьЦитата
Создатель темы Размещено : 21.03.2023 21:18
(@timur)
Level 1

Продолжая тему udp рассылки, а можно замутить статью про mpeg ts?Вроде есть библиотека lame и скорости stm32 должно хватить для кодирования звука в стрим например от fm радио и отправка в интернет как поток или просто передача звука по сети 🤔 

ОтветитьЦитата
Создатель темы Размещено : 22.03.2023 21:54
Aveal
(@aveal)
Top level Admin

@timur Да тут всегда все в одно упирается... Идей много, времени чисто физически не хватает.

ОтветитьЦитата
Размещено : 23.03.2023 10:25
(@timur)
Level 1

@aveal Понимаю, ну, по возможности, может быть, как нибудь, сделаем 😎 

ОтветитьЦитата
Создатель темы Размещено : 24.03.2023 08:13
Aveal
(@aveal)
Top level Admin

@timur Я может не так понял сообщение ) Если сам вдруг захочешь статью написать и опубликовать, то всячески приветствуется ) Тема-то интересная 👍

ОтветитьЦитата
Размещено : 24.03.2023 22:20
(@igor727)
Level 1

Мне кажется гораздо проще использовать связку stm32 и W5500. Есть сайт http://freelimelectronic.com/development/w5500%20f4discovery.html там рабочий проект, на его основе сделал проект stm32f103 и w5500. Там все расписано. Сначала повторил его проект, а затем переделал под stm32f103, работает прекрасно.

ОтветитьЦитата
Размещено : 05.06.2023 18:52
Поделиться: