Например TDA7294

Форум РадиоКот • Просмотр темы - ModbusRTU и STM32F103
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 29, 2025 22:17:48

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 12:18:23 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Добрейшего времени суток всем.
Понадобилось мне запустить ModbusRTU на ранее готовом устройстве, МК STM32F103, через UART2, порты А2 и А3.
Прошу индейку как лучше это сделать. Так как устройство физически уже есть и заточено под некоторые задачи, то внутренние аппаратные ресурсы очень ограничены.
Таймер 2 однозначно занят, запускается не всегда и от внешнего события. Другие таймеры не хотелось бы выделять под это дело, но рассмотреть можно.
Фиксировать и анализировать время приема каждого байта не вариант, так как уверен что не хватит ресурсов, чтобы укладываться вовремя. Сейчас скорость 9600 и понижать не хочется.

Сейчас я сделал через событие IDLE UART и DMA. В принципе работает. Но я нарушаю стандарт RTU. Вместо интервалов <1.5 и >3.5 между байтами и пакетами соответственно, у меня получается <1 и >1.
Если нечего не придумается, то я так и оставлю. Но все же хотелось бы соответствовать стандарту.

Спасибо.

З.Ы. Modbus ASCII не хочу.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 12:37:03 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
А не получится его на G0 заменить? По ногам более-менее должно совпадать по идее. А у G0 есть аппаратная поддержка этого идиотского модбаса.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 12:41:55 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Z_h_e писал(а):
Но я нарушаю стандарт RTU. Вместо интервалов <1.5 и >3.5 между байтами и пакетами соответственно, у меня получается <1 и >1.

Для соблюдения требований протокола нужно задействовать таймер или использовать МК с полноценным UART, имеющим RTO, а не кастрата как в F1. Для STM32F103 оставь приём по IDLE и забей. Работает вполне нормально на небольших скоростях или при обменен с узлами, отправляющими через DMA или FIFO.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 13:12:35 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Eddy_Em писал(а):
А не получится его на G0 заменить?
Не.Это невозможно.
tonyk писал(а):
приём по IDLE и забей
Наверное, но вдруг существуют какие-то решения, а я не знаю. Например, как-ниубдь умудрится 3 раза подряд взвести флаг IDLE.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 13:45:18 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Z_h_e писал(а):
как-ниубдь умудрится 3 раза подряд взвести флаг IDLE.

Никак он три раза _сам_ не установится. На F1 других решений нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Чт янв 12, 2023 15:00:16 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
Z_h_e, а почему вдруг невозможно? Нужно много операций деления что ли? Или по производительности не канает?
Если что, есть еще F303, у которого тоже на аппаратном уровне поддержка модбаса. Там уж точно по ногам практически 1-в-1 получается F103, сам делал не так давно универсальную "вундервафлю" для тестирования F0x2, F103 и F302/303 в корпусе LQFP64. Плюсом является бóльшая производительность, наличие флоатов, наличие ЦАПов и еще разнообразные фишки. По цене, конечно, не 50 рублей, как F103C6T6, но рублей в400 уложиться можно (если LQFP-48).

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Пт янв 13, 2023 09:25:08 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Менять МК не вариант однозначно.
Отвлекать МК на принятие каждого байта, при наличии DMA, имхо зло. Да еще модбас планируется постоянно молотящий.
Я что вопрос то задал, вдруг упускаю какое-то интересное и оригинальное решение.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Пт янв 13, 2023 09:50:36 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
Я все не пойму, почему МК заменить нельзя?
F103 худшее детище ST!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Пт янв 13, 2023 09:56:37 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн апр 02, 2012 15:56:23
Сообщений: 145
Рейтинг сообщения: 0
С учетом но рассмотреть можно опишу пару жутких костылей, до чего дошел:
1) Базовый таймер, настроенный на 3.5, счетчик которого сбрасывается при приеме каждого байта (но придется вешать обработчик на прием или окончание каждого байта DMA)
2) Если найдется свободный таймер общего назначения, то можно его настроить на 3,5 и линию RX завести на вход ETR, у таймера настроить триггер на сброс (фронт тут уж без разницы, наверно), каждый бит посылки будет счетчик сбрасывать.
3*(чисто посмеяться): завести еще на один UART линию RX и настроить его таким образом, чтобы по DMA он сбрасывал счетчик таймера, настроенного на 3.5.

Для пунктов 2-3, разумеется, надо таймеры активировать, но, наверно, ничего критичного не случится, если UART при приеме первого байта в прерывании эту операцию выполнит и тут же сам себе прерывание отключит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Пт янв 13, 2023 11:58:04 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
azhel12, да первая мысль была запускать и сбрасывать таймер по спаду на входе RX в режиме однократного счета. Однако таймер занят и ни один ремапинг не подходит.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Пт янв 13, 2023 17:32:24 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Z_h_e писал(а):
Однако таймер занят

Если твой девайс будет опрашивать мастер, не допускающий больших пауз между байтами, то IDLE будет нормально работать.
Eddy_Em писал(а):
F103 худшее детище ST!

Согласен. Хотя начинал изучение STM32 именно с F103. Потом сравнил с другими сериями, после чего отказался от линейки F1.

Если в проекте изначально предполагается много работы через UART, то нужно брать МК с полноценным UART, а не кастратом как во всей линейке F1. МК с полноценным UART есть во всех линейках, кроме F1.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 09:50:10 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
Вам нужна задержка без tim?

- "два" байта "левым" уартом;
- да, любой процесс на свободной периферии, устраивающий вас по времени и способу использования, флаги - хоть выполнения, хоть таймаута;
- время преобразования ацп - то же задержка; (это так, до кучи)
- две свободные ноги и цепочка rc; :))
за шутку извиняюсь, навеяло - схемы конца 70-х часто перед глазами.

сфотографировать можно и на спичечный коробок, но если "спортом" не заниматься - tonyk прав - по задаче и инструмент.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 11:28:06 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн июл 31, 2017 10:53:04
Сообщений: 48
Рейтинг сообщения: 0
Имхо, я бы взял библ freeModbus и портировал её. Порт там несложный и работает все четко


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 11:48:17 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн апр 02, 2012 15:56:23
Сообщений: 145
Рейтинг сообщения: 0
Имхо, я бы взял библ freeModbus и портировал её. Порт там несложный и работает все четко
Тут дело не в этом, модуль UART в F103 в принципе не имеет возможности аппаратно отслеживать простой в 3,5 байта, как того требует стандарт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 11:56:37 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
[offtop]А весь прикол ситуации в том, что автор вместо какого-либо вменяемого современного протокола (да пусть даже CANopen) выбрал убогое дерьмо мамонта, которое еще 30 лет назад закопать надо было![/offtop]

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 12:25:06 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Eddy_Em, ты не знаешь ни схемы девайса, ни назначения, почему нет возможности сменить МК и остальную схематехнику и пр. Но ты все решил и сделал выводы.
UART древнее модбас, закапывай и его тоже.
Интересно, на автофоруме, на вопрос что подкрутить чтобы приора бензин меньше жрала, ты бы посоветовал Лексус взять?
Я всего-лишь спросил
Цитата:
вдруг существуют какие-то решения, а я не знаю
. Ты предложил сменить МК, я тебя и других услышал. Это сделать нельзя, вот ещё раз отвечаю, что это обсуждать?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 12:28:40 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 1
Eddy_Em писал(а):
выбрал убогое дерьмо мамонта, которое еще 30 лет назад закопать надо было!

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

ТС, не слушай Eddy_Em. Он старый, поэтому умные слова, которые он не понимает, его раздражают. :)))

Добавлено after 3 minutes 22 seconds:
Cheeseman писал(а):
Имхо, я бы взял библ freeModbus и портировал её. Порт там несложный и работает все четко

Ага, только с одним UART. ТС ведь не уточнял, сколько у него портов требуют обслуживания Modbus. Касаемо чёткости: в этой библе косяк с койлами исправили?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 12:49:14 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я тоже не молод :(. Скоро пердеть буду чаще, чем проект собирать.:) Можно 100500 примеров привести нового современного промышленного оборудования с модбасом. И пообсуждать это. Очередной топик будет содержать все что угодно, кроме сути.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ModbusRTU и STM32F103
СообщениеДобавлено: Сб янв 14, 2023 13:28:46 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Z_h_e писал(а):
Скоро пердеть буду чаще, чем проект собирать.:)

:)))

Одной из причин моего ухода с F1 было отсутствие у него полноценного UART. Когда у тебя один порт с Модбас на 9600, то пофиг, чё и как там реализовано. А когда у МК и так загрузка большая, да ещё и 4-6 портов на высоких скоростях, то уже ищешь МК с полноценным UART, чтобы как можно меньше грузить процессор в МК. Полноценный UART умеет и сигналом DIR трансивера управлять, и задержки после его переключения на передачу сам отрабатывать, и 3.5 символа сам отмерять. В итоге получается 1 прерывание на приём посылки, и 2 на отправку.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y