Открыл для себя линейку дисплеев от DWIN. Раньше делал интерфейс на Nextion, но DWIN по возможностям в разы лучше!! Кроме aliexpress их можно купить в Амперкоте, но даже с наценкой от Амперкота цена очень вкусная
( Read more... )
Все вопросы правильные, вот только применимы они когда есть "голый" дисплей. В этом случае всё очень грустно и да или FPS или расход памяти. Вместе не получится. К примеру голый цветной дисплей 16к цветов, требует расход памяти для того же 640x480 640*480*2=600 килобайт на один фреймбуфер. Такой объём RAM автоматом требует большего контроллера с поднятием цены. Я грубо прикидывал: даже внешняя SRAM не сильно удешевляет устройство :( Про DRAM с её циклами обновления вообще всё грустно. Проще взять сразу старшее семейство.
В своё время я узнал про HMI. HMI по сути автономная система, которая хранит всю графику у себя в памяти и сама рисует экран, сама следит за обработкой сенсора. HMI в 2000е вполне себе были и успешно работали. К контроллеру выходят разные варианты последовательного порта (зависит от конструкции HMI модуля), обмен по которому позволяет менять управляющие элементы на экране по команде с контроллера устройства и отправлять нажатия на экране в контроллер устройства.
И вот тут требования к памяти на контроллере устройства резко падают. Вполне можно написать работу с HMI и графиками на STM32F072, так как нет необходимости держать фреймбуфер и обрабатывать его на контроллере устройства. Вся движуха вынесена в HMI. У DWIN как я понял их datasheet большую часть работы вообще делает их ПЛИС. Контроллер занимается только загрузкой и обработкой действий. Я лично писал реализацию MODBUS на STM32F072 - памяти хватает. А у DWIN протокол обмена очень похож на MODBUS.
Ещё и модбас! Жесть какая!!! Когда уже закончатся эти старпёры, пихающие во всё ублюдочный модбас - говно мамонта 50-летней несвежести? Поверх уарта можно какой угодно протокол замутить, чтобы не было необходимости паузы выдерживать, но нет, они, похоже, до сих пор живут на релейной коммутации...
Никто не мешает по нему же запрашивать у дисплея что он фактически получил для контроля. Зато код на прерываниях получается короткий! У старших дисплеев кстати обмен по CAN. CAN залезает в STM32F103, писал, проверено!
Я тоже поднимал CAN на STM32F103. Купил три десятка их по 50р на али - самый дешёвый вариант с CAN. Может, когда-нибудь для машины таки сделаю управление фарами и стеклоподъемниками с обратной связью. Жаль только, что у 103 одновременно не работают CAN и USB - приходится переходники на значительно более дорогих F0x2 делать.
У меня в одном решении по CAN идёт обмен между RPI4 где WiFi/BT/LoRa/WEB интерфейс, исполнительным устройством и хабом для 1-Wire датчиков. Причём кабель метров 50 по зданию. Работает! Но там USB как раз мне не требовалось ни на исполнительном устройстве ни на хабе датчиков. Скорость выставлена в минимум.
Нет, есть плата расширения к гребёнке RPi. Минусы такой платы - это всё-таки плата расширения, питание модуля предполагается от RPi4. Пришлось делать свой с развязкой по сигналам и питанию.
А у меня гальванически развязанный преобразователь USB-CAN, для одноплатников вполне можно "этажерку" сделать и подключить к одному из нераспаянных USB. Тогда себестоимость была 300р (с учетом плат с JLCPCB), сейчас подскочила почти в три раза (в основном, из-за плат, которые на JLCPCB уже не закажешь + STM32F072 уже стоит не 60 рублей, а 250-300). Кстати, USB тоже не мешало бы хоть ESD-защитой обзавести: не знаю, как на RPI4 (там, все-таки, места много), но на OPi-zero и OPi-zero2 USB вообще не защищен! Разве что пару резисторов на 22Ом воткнули, а какой-нибудь USBLC6 - нет.
Да, стоимость изготовления подскочила. На более-менее крупные партии вариантов масса! А вот на прототипы - сам заказываю у https://pselectro.ru и практически плачу :( Но это всяко лучше чем ушлёпский Резонит с его заскоками. Хочу заказать следующую партию тут. Обещают почти JLCPCB по всем параметрам.
В этом случае всё очень грустно и да или FPS или расход памяти. Вместе не получится.
К примеру голый цветной дисплей 16к цветов, требует расход памяти для того же 640x480
640*480*2=600 килобайт на один фреймбуфер.
Такой объём RAM автоматом требует большего контроллера с поднятием цены.
Я грубо прикидывал: даже внешняя SRAM не сильно удешевляет устройство :( Про DRAM с её циклами обновления вообще всё грустно. Проще взять сразу старшее семейство.
В своё время я узнал про HMI. HMI по сути автономная система, которая хранит всю графику у себя в памяти и сама рисует экран, сама следит за обработкой сенсора. HMI в 2000е вполне себе были и успешно работали. К контроллеру выходят разные варианты последовательного порта (зависит от конструкции HMI модуля), обмен по которому позволяет менять управляющие элементы на экране по команде с контроллера устройства и отправлять нажатия на экране в контроллер устройства.
И вот тут требования к памяти на контроллере устройства резко падают. Вполне можно написать работу с HMI и графиками на STM32F072, так как нет необходимости держать фреймбуфер и обрабатывать его на контроллере устройства. Вся движуха вынесена в HMI. У DWIN как я понял их datasheet большую часть работы вообще делает их ПЛИС. Контроллер занимается только загрузкой и обработкой действий.
Я лично писал реализацию MODBUS на STM32F072 - памяти хватает. А у DWIN протокол обмена очень похож на MODBUS.
Reply
Когда уже закончатся эти старпёры, пихающие во всё ублюдочный модбас - говно мамонта 50-летней несвежести? Поверх уарта можно какой угодно протокол замутить, чтобы не было необходимости паузы выдерживать, но нет, они, похоже, до сих пор живут на релейной коммутации...
Reply
У старших дисплеев кстати обмен по CAN.
CAN залезает в STM32F103, писал, проверено!
Reply
Reply
Работает!
Но там USB как раз мне не требовалось ни на исполнительном устройстве ни на хабе датчиков.
Скорость выставлена в минимум.
Reply
Reply
Минусы такой платы - это всё-таки плата расширения, питание модуля предполагается от RPi4. Пришлось делать свой с развязкой по сигналам и питанию.
Reply
Кстати, USB тоже не мешало бы хоть ESD-защитой обзавести: не знаю, как на RPI4 (там, все-таки, места много), но на OPi-zero и OPi-zero2 USB вообще не защищен! Разве что пару резисторов на 22Ом воткнули, а какой-нибудь USBLC6 - нет.
Reply
На более-менее крупные партии вариантов масса!
А вот на прототипы - сам заказываю у https://pselectro.ru и практически плачу :( Но это всяко лучше чем ушлёпский Резонит с его заскоками.
Хочу заказать следующую партию тут. Обещают почти JLCPCB по всем параметрам.
Reply
Leave a comment