Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

STM32 + Modbus TCP

360 views
Skip to first unread message

Michael Belousoff

unread,
Nov 16, 2017, 2:04:59 AM11/16/17
to
Привет, All.

Кто-нибудь реализовал? Hе знаю, с какого боку подступиться. Собственно,
модбасовая часть элементарна, а вот на чём реализовать стек TCP? Hаверняка есть
что-то готовое, но беглое гугление не очень помогло. Хотелось бы без применения
библиотек HAL, с ними я ещё не разобрался окончательно, а на SPL. МК пока не
выбрал, хотелось бы старый добрый STM32F103RCT6, но это не догма.

--Michael G. Belousoff--
Yekaterinburg city
mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Alexey V Bugrov

unread,
Nov 16, 2017, 2:34:59 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Michael Belousoff wrote to All:

MB> Кто-нибудь реализовал? Hе знаю, с какого боку подступиться. Собственно,
MB> модбасовая часть элементарна, а вот на чём реализовать стек TCP? Hаверняка
MB> есть что-то готовое, но беглое гугление не очень помогло. Хотелось бы без
MB> применения библиотек HAL, с ними я ещё не разобрался окончательно, а на
MB> SPL.
MB> МК пока не выбрал, хотелось бы старый добрый STM32F103RCT6, но это не
MB> догма.

Я делал. И именно на этом камне. У всех готовых библиотек есть фатальный
недостаток. Поэтому давно уже сделал свой TCP/IP-стек.

А так можешь попробовать lwIP прикрутить, не сильно оптимальный, но вполне
работоспособный.

WBR,
AVB

Alexey Vissarionov

unread,
Nov 16, 2017, 3:24:59 AM11/16/17
to
Доброго времени суток, Michael!
16 Nov 2017 11:39:00, ты -> All:

MB> Кто-нибудь реализовал? Hе знаю, с какого боку подступиться.
MB> Собственно, модбасовая часть элементарна, а вот на чём
MB> реализовать стек TCP? Hаверняка есть что-то готовое, но
MB> беглое гугление не очень помогло.

Посмотри в сторону https://savannah.nongnu.org/projects/lwip/

MB> Хотелось бы без применения библиотек HAL, с ними я ещё
MB> не разобрался окончательно, а на SPL. МК пока не выбрал,
MB> хотелось бы старый добрый STM32F103RCT6, но это не догма.

Я егойный справочный листок не смотрел, но оно вроде бы не должно сильно
отличается от известного мне C8T6, а посему надеюсь, что LWIP туда влезет.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Имеющий глаза да увидит, имеющий уши да услышит, имеющий ноги да протянет

Alexey Vissarionov

unread,
Nov 16, 2017, 3:24:59 AM11/16/17
to
Доброго времени суток, Alexey!
16 Nov 2017 10:14:04, ты -> Michael Belousoff:

MB>> Кто-нибудь реализовал? Hе знаю, с какого боку подступиться.
MB>> Собственно, модбасовая часть элементарна, а вот на чём реализовать
MB>> стек TCP? Hаверняка есть что-то готовое [...]
MB>> хотелось бы старый добрый STM32F103RCT6, но это не догма.
AVB> Я делал. И именно на этом камне. У всех готовых библиотек есть
AVB> фатальный недостаток.

Этак он и у glibc есть... :-)

AVB> Поэтому давно уже сделал свой TCP/IP-стек.

Хм... Из каких соображений? Совсем мелкий, или?
Ну и самое главное: git clone что?

AVB> А так можешь попробовать lwIP прикрутить, не сильно оптимальный,
AVB> но вполне работоспособный.

Лишь бы поместился.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Мое мнение может меняться, но моя правота - непоколебимый факт

Alexey V Bugrov

unread,
Nov 16, 2017, 4:25:00 AM11/16/17
to
Hi Alexey, hope you are having a nice day!


16 Nov 17, Alexey Vissarionov wrote to Alexey V Bugrov:

AVB>> Я делал. И именно на этом камне. У всех готовых библиотек есть
AVB>> фатальный недостаток.
AV> Этак он и у glibc есть... :-)

Истесственно.

AVB>> Поэтому давно уже сделал свой TCP/IP-стек.
AV> Хм... Из каких соображений? Совсем мелкий, или?

Изначально (15 лет назад) был написан под Blackfin, но с учетом портабельности
на другие платформы. Под STM32 перенесся без проблем. По хорошему его пора
переписать с нуля и устранить врожденные патологии, но пока лениво (в смысле
руки не доходят). Заточен опять же под свою rtos (опять же из-за фатального
недостатка всех прочих). Для работы достаточно несколько кБ ОЗУ (если без TCP),
с TCP зависит от требуемого количества сокетов. В общем ничего оригинального.

AV> Ну и самое главное: git clone что?

Оно тебе действительно надо? Ща попробую сделать hello word проект с ним и
покласть к себе на svn, может быть Михаилу пригодится.

AVB>> А так можешь попробовать lwIP прикрутить, не сильно оптимальный,
AVB>> но вполне работоспособный.
AV> Лишь бы поместился.

Помещался вроде бы у кого-то.

WBR,
AVB

Alexey Vissarionov

unread,
Nov 16, 2017, 4:34:59 AM11/16/17
to
Доброго времени суток, Alexey!
16 Nov 2017 11:54:26, ты -> мне:

AVB>>> Поэтому давно уже сделал свой TCP/IP-стек.
AV>> Хм... Из каких соображений? Совсем мелкий, или?
AVB> Изначально (15 лет назад) был написан под Blackfin, но с учетом
AVB> портабельности на другие платформы. Под STM32 перенесся без проблем.

Ясно.

AV>> Ну и самое главное: git clone что?
AVB> Оно тебе действительно надо?

Оно мне действительно интересно. Пока все сетевое делаю в основном на
овощах-фрухтах (которые полноценные Linux-системы), но мало ли...

AVB> Ща попробую сделать hello word проект

listen() с одной стороны, connect() с другой?

AVB> с ним и покласть к себе на svn, может быть Михаилу пригодится.

Тоже правильно.

AVB>>> А так можешь попробовать lwIP прикрутить, не сильно оптимальный,
AVB>>> но вполне работоспособный.
AV>> Лишь бы поместился.
AVB> Помещался вроде бы у кого-то.

Очхшо.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Большинство пишевых отравлений начинается с "что ему в холодильнике будет?"

Alexey V Bugrov

unread,
Nov 16, 2017, 4:34:59 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Alexey V Bugrov wrote to Michael Belousoff:

MB>> Кто-нибудь реализовал? Hе знаю, с какого боку подступиться. Собственно,
MB>> модбасовая часть элементарна, а вот на чём реализовать стек TCP?
MB>> Hаверняка есть что-то готовое, но беглое гугление не очень помогло.
MB>> Хотелось бы без применения библиотек HAL, с ними я ещё не разобрался
MB>> окончательно, а на SPL. МК пока не выбрал, хотелось бы старый добрый
MB>> STM32F103RCT6, но это не догма.

AVB> Я делал. И именно на этом камне.

Наврал. Камень должен быть STM32F107xx (со встроенным контроллером Ethernet), в
остальном все верно.


WBR,
AVB

Michael Belousoff

unread,
Nov 16, 2017, 7:04:59 AM11/16/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Alexey Vissarionov:

AV>> Ну и самое главное: git clone что?

AB> Оно тебе действительно надо? Ща попробую сделать hello word проект с
AB> ним и покласть к себе на svn, может быть Михаилу пригодится.

Буду премного благодарен.

Michael Belousoff

unread,
Nov 16, 2017, 7:04:59 AM11/16/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Michael Belousoff:

MB>>> окончательно, а на SPL. МК пока не выбрал, хотелось бы старый
MB>>> добрый STM32F103RCT6, но это не догма.

AVB>> Я делал. И именно на этом камне.

AB> Наврал. Камень должен быть STM32F107xx (со встроенным контроллером
AB> Ethernet), в остальном все верно.

Пока я нарыл плату STM32F4DISCOVERY на STM32F407VGT6, отрабатывать буду на
ней, а там посмотрим. Какой-то контроллер Ethernet у него на борту есть.

Michael Belousoff

unread,
Nov 16, 2017, 7:04:59 AM11/16/17
to
Привет, Alexey.

Вот что Michael Belousoff wrote to Alexey V Bugrov:

AB>> Оно тебе действительно надо? Ща попробую сделать hello word
AB>> проект с ним и покласть к себе на svn, может быть Михаилу
AB>> пригодится.

Hа вский случай я заказал платку с контроллером ENC28J60, завтра получу. Он
мне может облегчить жизнь?

Alexey V Bugrov

unread,
Nov 16, 2017, 8:04:59 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Michael Belousoff wrote to Alexey V Bugrov:

AB>>> Оно тебе действительно надо? Ща попробую сделать hello word
AB>>> проект с ним и покласть к себе на svn, может быть Михаилу
AB>>> пригодится.
MB> Hа вский случай я заказал платку с контроллером ENC28J60, завтра получу.
MB> Он
MB> мне может облегчить жизнь?

Думаю, что только усложнит. Это сущий огрызок по сравнению со встроенным в STM.

WBR,
AVB

Alexey V Bugrov

unread,
Nov 16, 2017, 8:04:59 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Michael Belousoff wrote to Alexey V Bugrov:

AB>> Наврал. Камень должен быть STM32F107xx (со встроенным контроллером
AB>> Ethernet), в остальном все верно.
MB> Пока я нарыл плату STM32F4DISCOVERY на STM32F407VGT6, отрабатывать буду
MB> на
MB> ней, а там посмотрим. Какой-то контроллер Ethernet у него на борту есть.

Могу собрать под F407, не принципиально. Только на этой плате нету PHY, будешь
внешний цеплять? Я всегда использую LAN8720, если что.

WBR,
AVB

Alexey V Bugrov

unread,
Nov 16, 2017, 8:24:58 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Alexey V Bugrov wrote to Michael Belousoff:

MB>> Пока я нарыл плату STM32F4DISCOVERY на STM32F407VGT6, отрабатывать буду
MB>> на ней, а там посмотрим. Какой-то контроллер Ethernet у него на борту
MB>> есть.
AVB> Могу собрать под F407, не принципиально. Только на этой плате нету PHY,
AVB> будешь
AVB> внешний цеплять? Я всегда использую LAN8720, если что.

https://www.promelec.ru/product/153991/

Такая борда есть? С ней должно подняться, после неболших патчей.

WBR,
AVB

Michael Belousoff

unread,
Nov 16, 2017, 9:34:59 AM11/16/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Michael Belousoff:

MB>>> Пока я нарыл плату STM32F4DISCOVERY на STM32F407VGT6,
MB>>> отрабатывать буду на ней, а там посмотрим. Какой-то контроллер
MB>>> Ethernet у него на борту есть.
AVB>> Могу собрать под F407, не принципиально.

Было бы прекрасно.

AVB>> Только на этой плате нету PHY, будешь внешний цеплять?

Придётся.

AVB>> Я всегда использую LAN8720, если что.

Попробую найти такой в городе. Пока не находится. С китайпосылторга мне ждать
некогда, сроки "позавчера".

AB> https://www.promelec.ru/product/153991/

AB> Такая борда есть? С ней должно подняться, после неболших патчей.

Hету, а покупать пришлось бы за свои деньги. И ХЗ, вернутся ли...

Alexey V Bugrov

unread,
Nov 16, 2017, 10:04:59 AM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Michael Belousoff wrote to Alexey V Bugrov:

AVB>>> Могу собрать под F407, не принципиально.
MB> Было бы прекрасно.

Сегодня сделаю.

AVB>>> Я всегда использую LAN8720, если что.
MB> Попробую найти такой в городе. Пока не находится. С китайпосылторга мне
MB> ждать некогда, сроки "позавчера".

https://www.promelec.ru/product/108165/

В наличии.

AB>> https://www.promelec.ru/product/153991/
AB>> Такая борда есть? С ней должно подняться, после неболших патчей.
MB> Hету, а покупать пришлось бы за свои деньги. И ХЗ, вернутся ли...

Не знаю, вряд ли получится мелкий QFN с обвесом распаять сильно проще/дешевле.

WBR,
AVB

Michael Belousoff

unread,
Nov 16, 2017, 10:44:59 AM11/16/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Michael Belousoff:

AVB>>>> Могу собрать под F407, не принципиально.
MB>> Было бы прекрасно.

AB> Сегодня сделаю.

ОК.

AVB>>>> Я всегда использую LAN8720, если что.
MB>> Попробую найти такой в городе. Пока не находится. С
MB>> китайпосылторга мне ждать некогда, сроки "позавчера".

Имелись в виду готовые модули с оной животинкою.

AB> https://www.promelec.ru/product/108165/

AB> В наличии.

Видел я их. Заебусь, наверно. Hо делать неча, придётся заебаться.

AB>>> https://www.promelec.ru/product/153991/
AB>>> Такая борда есть? С ней должно подняться, после неболших патчей.
MB>> Hету, а покупать пришлось бы за свои деньги. И ХЗ, вернутся
MB>> ли...

AB> Не знаю, вряд ли получится мелкий QFN с обвесом распаять сильно
AB> проще/дешевле.

Если получится самоделка, то предложу заказчику эту плату, он купит. Сейчас
этого делать не хочу, опасаясь, что или не получится, или времени не хватит.

Alexey V Bugrov

unread,
Nov 16, 2017, 3:54:59 PM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Alexey V Bugrov wrote to Michael Belousoff:

AVB> Подготовил сильно кастрированный проект под мое железо.

И, кстати, да. Если дашь адресок, то могу закинуть эту железяку тебе
экспресс-почтой. Думаю, что в понедельник уже сможешь ее получить.

WBR,
AVB

Alexey V Bugrov

unread,
Nov 16, 2017, 3:54:59 PM11/16/17
to
Hi Michael, hope you are having a nice day!


16 Nov 17, Michael Belousoff wrote to Alexey V Bugrov:

AVB>>>>> Могу собрать под F407, не принципиально.
MB>>> Было бы прекрасно.
AB>> Сегодня сделаю.
MB> ОК.

Подготовил сильно кастрированный проект под мое железо. С большой долей
вероятности он запустится на дискавери без изменений. Даже, наверное, PHY с
платы расширения -BB (там тоже LAN8720A) подхватился бы, но надо проверять на
каком он адресе и на какой gpio с него заведено прерывание. Поправить недолго.
Предполагается еще, что на I2C висит eeprom с MAC адресом, но его можно и
руками вбить в код.

svn checkout https://svn.avblabs.com/tcpip_demo/

user: fido
passwd: rules

У меня оно запускается, на пинги отвечает, по Modbus/TCP тоже. Даже работает
гейт TCP->UART.

Проект сделан под gcc+Eclipse. Как настроить среду/окружение для сборки я не
так давно писал в азерсах. Для экспериментов можно запускать из среды сразу
application, там все настройки сделаны.

Посмотри пока общую идею, будут вопросы - пиши. Или здесь, или, для
оперативности, можно в аську/жабер.

WBR,
AVB

Alexey Vissarionov

unread,
Nov 17, 2017, 4:45:00 AM11/17/17
to
Доброго времени суток, Alexey!
16 Nov 2017 23:22:06, ты -> Michael Belousoff:

AVB> Подготовил сильно кастрированный проект под мое железо. С большой
AVB> долей вероятности он запустится на дискавери без изменений.
AVB> svn checkout https://svn.avblabs.com/tcpip_demo/
AVB> user: fido passwd: rules

Брррр... как ты можешь пользоваться этим угробищем? Есть же git :-)

2 MB: мне пришлось вытягивать посредством
svn --username fido --password rules checkout
https://svn.avblabs.com/tcpip_demo/

AVB> Проект сделан под gcc+Eclipse.

Оно и видно... ладно, уж Makefile я как-нибудь напишу.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Кто в моей доброте усомнится, тот кровавыми слезами обольется

Alexey V Bugrov

unread,
Nov 17, 2017, 6:14:59 AM11/17/17
to
Hi Alexey, hope you are having a nice day!


17 Nov 17, Alexey Vissarionov wrote to Alexey V Bugrov:

AVB>> Подготовил сильно кастрированный проект под мое железо. С большой
AVB>> долей вероятности он запустится на дискавери без изменений.
AVB>> svn checkout https://svn.avblabs.com/tcpip_demo/
AVB>> user: fido passwd: rules
AV> Брррр... как ты можешь пользоваться этим угробищем? Есть же git :-)

Вы свои сектантские замашки оставьте уже. Каждому овощу свое место.

AV> 2 MB: мне пришлось вытягивать посредством
AV> svn --username fido --password rules checkout
AV> https://svn.avblabs.com/tcpip_demo/

хм. Вообсче-то оно и так спросит и логин и пароль.

AVB>> Проект сделан под gcc+Eclipse.
AV> Оно и видно... ладно, уж Makefile я как-нибудь напишу.

И нахрена он тут? А запускать и отлаживать ты потом будешь в консольке gdb без
фронтэнда?

Библиотеки у меня собираются тоже мейкфайлами, но для проектов, которые
работают с железом, это нихрена не удобно.

WBR,
AVB

Michael Belousoff

unread,
Nov 17, 2017, 7:05:00 AM11/17/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Michael Belousoff:

AVB>> Подготовил сильно кастрированный проект под мое железо.

AB> И, кстати, да. Если дашь адресок, то могу закинуть эту железяку тебе
AB> экспресс-почтой. Думаю, что в понедельник уже сможешь ее получить.

Пока не требуется и, похоже, не потребуется и потом. Тем не менее благодарю
ещё раз.

Michael Belousoff

unread,
Nov 17, 2017, 7:05:00 AM11/17/17
to
Привет, Alexey.

Вот что Alexey V Bugrov wrote to Michael Belousoff:

AB> У меня оно запускается, на пинги отвечает, по Modbus/TCP тоже. Даже
AB> работает гейт TCP->UART.

AB> Проект сделан под gcc+Eclipse. Как настроить среду/окружение для
AB> сборки я не так давно писал в азерсах. Для экспериментов можно
AB> запускать из среды сразу application, там все настройки сделаны.

AB> Посмотри пока общую идею, будут вопросы - пиши. Или здесь, или, для
AB> оперативности, можно в аську/жабер.

Благодарю душевно! Судя по всему, от этой работы я откажусь, сроки совершенно
нереальные: до сдачи готового девайса меньше месяца. Как всегда, заказчик
изменил ТЗ по ходу дела. Раньше эта контора пускала шкафы управления с моим
девайсиком на борту, в котором не было модбаса тсп, а тут вдруг понадобился.
Тем не менее, твой труд зря не пропадёт, я обязательно им займусь, хотя бы для
повышения своей квали-фикции.
0 new messages