Разработки ecoins

ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Анонс по разработкам для STM32:
1.Удается загружать скетчи не только в STM32F103x, но и в STM32F401, STM32F411.
2.Произошли значимые изменения по аддонам для STM32.
Раньше мы пользовались аддоном от Роджера Кларка
https://github.com/rogerclarkmelbourne/Arduino_STM32.
Ссылка на уже обновленную версию. В ней похоже уже отказались от загрузки через miple - поэтому основная загрузка через SWD.
3.Значительно продвинулся основной аддон от Atduino IDE
https://github.com/stm32duino/Arduino_C ... -available
4.Оба аддона подразумевают, что также должен быть установлен пакет
STM32CubeProg https://www.st.com/en/development-tools ... eprog.html.
Очень удобная штука - это и программатор, и viewer памяти. Через него Arduino и поддерживает загрузку.
Также правильно указывает размер памяти.
При установленном аддоне глюкует аддон от Роджера Кларка.
Пока остановились на этом аддоне.
5.В версиях с Arduino 1.8.13 (1.9.0 beta) стало удобнее выбирать контроллеры - они сгруппированы по типам.
-----------------------------
Если есть какие-то интересные ссылки или опыт по загрузке STM32 через USB, они помогли бы нам в работе.
---------------------------------------------------------------------------------
http://arduino.ru/forum/obshchii/arduin ... n-ot-stm32 (Arduino IDE + аддон от stm32)
https://blog.kvv213.com/2020/01/kak-proshit-chip-stm32/ (как прошить чип STM32)
http://wiki.amperka.ru/js:ide:dfu-firmware (обновление прошивки через DFU)
https://kkmspb.ru/development/microcont ... t/USB-DFU/ (Обновление прошивки по USB-DFU)
https://istarik.ru/blog/stm32/107.html (как сделать программатор ST-LINK/V2 из дешёвой платы Blue Pill)
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

Сообщение SSSergeich »

ecoins писал(а): 27 авг 2020, 13:20
SSSergeich писал(а): 25 авг 2020, 22:47 coins, попробовал использовать этот ПБ и получаю ошибку
Выкладываю тестовый проект и скетч. В них отключены платы работы с ШД - у меня библиотеки не установлены.
Библиотеку LCD и пользовательские блоки размещены в посте 668.
Успехов.
Подскажите, не могу через Ваш блок вывести значения на lcd 2004 больше чем 32768, в flprog переменную ставлю как float так и unsigned long integer.
В чем моя ошибка?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

SSSergeich писал(а): 06 сен 2020, 23:18 Подскажите, не могу через Ваш блок вывести значения на lcd 2004 больше чем 32768, в flprog переменную ставлю как float так и unsigned long integer.
В чем моя ошибка?
float работает, а вывод делал только для int16_t.
Раньше был отдельный блок для uint16_t - убрал, чтобы не плодить блоки. А нужно? Если да, то добавлю. Уточните какие форматы Вам нужны.
В настройках есть возможность выводить 16-разрядное HEX-число.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

В защиту mcp23x17
viewtopic.php?t=5765&start=140#p93666 (тема STM32 программирование в FLProg)
masterw писал(а): 12 сен 2020, 21:39 Пробовал на разных скоростях, все работает нормально на входа выхода процессора, но если добавить mpc23017 то после включения несколько секунд на mpc23017 появляются хаотичные сигналы, после чего может работать нормально, а может вообще зависнуть. Если отключить master, то все работает нормально. RS485 на SN75176. Причем при использовании Software Serial работает стабильнее.
Ingwar писал(а): 13 сен 2020, 00:39 Пару месяцев бился с проектом, где использовал mpc23017 и тегов более полусотни. RTU пробовал и TCP пофиг. Упаковал все койлы в холд и стало их 13 всего. Но все равно висло через непродолжительное время. Плюнул и поставил MEGA mini. Теперь только регистры. Нахер эти mpc23017
Полагаю, что дело не в mcp23017 - в одном проекте новогодняя гирлянда (восемь mcp23017) на улице работает более шести лет, на стендах (в том числе и STM32F103c) устройства непрерывно работают неделями.
Проблема скорее в особенности использования устройств через i2c. В большинстве случаев после пропадания питания (например плохой контакт с макеткой или в разъеме) регистры устройства надо инициировать заново. Так при сбросе питания в mcp23017 регистры А и В по умолчанию настроены на вход, LCD HD44780 на обмен по 8-разрядной шине (а через i2c обмен идет через тетрадами (4-бита)), погодный сенсор bme280 требуется настраивать и калибровать используя параметры, прошитые на чипе и т.д.).
Стандартные библиотеки Arduino обычно реализуют базовые функции и не предусматривают контроль и перезапуск устройств.
Эти проблемы в значительной мере решены в библиотеках и блоках ecoins.
Сейчас библиотеки работы с устройствами реализованы как самостоятельные. Наверное все же начнем включать в них базовую библиотеку - она более тонко адаптирует обмен с устройствами с учетом особенностей разных контроллеров (AVR328, MEGS2560, DUE, ESP8266, ESP32, STM32F1, STM32F4) и можно будет немного упростить пользовательские блоки в части настройки интерфейса.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Разработки ecoins

Сообщение Ingwar »

ecoins писал(а): 13 сен 2020, 11:34 (например плохой контакт с макеткой или в разъеме
ecoins писал(а): 13 сен 2020, 11:34 в одном проекте новогодняя гирлянда (восемь mcp23017) на улице работает более шести лет
Платы разводил сам. Никаких соплей не было. Допускаю, что проблема в библиотеке, используемой в Flprog или совокупности библиотек.
Когда делал проект, Ваших решений на форуме еще не было.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
fsergei70
Капитан
Сообщения: 858
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 7 раз

Разработки ecoins

Сообщение fsergei70 »

[ref]ecoins[/ref], Если не сложно разместите свежие версии библиотеки и блоки пользователя в 1 пост,
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

fsergei70 писал(а): 14 сен 2020, 08:48 ecoins, Если не сложно разместите свежие версии библиотеки и блоки пользователя в 1 пост,
В первый пост не готов пока разместить - сделаны существенные доработки с новыми свойствами и возможностями.
Тестируется, дорабатывается, пользоваться уже можно,но пользователем без опыта будет немного сложно, предстоит доработать описание.
В частности реализована поддержка STM32F401. Сейчас на ядре от Кларка.
Выложу здесь с тестовой программой:
---------------------
Тест:
2 дисплея LCD, 1 дисплей SPI, 2 mcp23017, ds1820, dht21, bme280, HC0-SR04(пока не работает на ESP),бегущая "1" на 74HC595(SPI),
кнопка с защитой от дребезга, светодиод, ADC, PWM, DAC (ESP32), Touch сенсор(ESP32), датчик Холла(ESP32), диспетчер.
Библиотека RT_HW_LCD HD-44780 поддерживает LCD с прошитой кириллицей.
Выполняется однократный вывод на консоль параметров контроллера (архитектура, плата, основные параметры), доступные пины по типам использования (ADC,PWM и т.д.), тестовые пины, пользовательские пины, адреса устройств в программе, адреса подключенных устройств на шине i2c (сканируется шина).
Поддержка вывода на консоль тестовых параметров и сообщений.
IMG_2763[630].jpg
1.Библиотеки:
2.Блоки:
3.Тестовая программа:
RT_HW_LIB_111_140920_alfa.zip
БИБЛИОТЕКА BASE_v02.0_14092020.ubl
BASE_test1_v2.06_140920_ALL.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось ecoins 14 сен 2020, 20:04, всего редактировалось 4 раза.
Taser
Рядовой
Сообщения: 10
Зарегистрирован: 05 июн 2020, 00:21
Имя: Sergey

Разработки ecoins

Сообщение Taser »

ecoins писал(а): 14 сен 2020, 10:36
Выложу здесь с тестовой программой:
1.Библиотеки: RT_HW_LIB_111_140920_alfa.zip
2.Блоки: БИБЛИОТЕКА BASE_v02.0_14092020.ubl
3.Тестовая программа: BASE_test1_v2.06_140920_ALL.zip
---------------------
По-моему здесь какая-то ошибка :smile37:
https://prnt.sc/uh3y5v
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Taser писал(а): 14 сен 2020, 18:19 По-моему здесь какая-то ошибка
https://prnt.sc/uh3y5v
Выложил последовательно в конце сообщения - почему в середине получалось не верно, несколько раз попробовал.
Спасибо за поправку.
Сами файлы те же и без изменения.

Отправлено спустя 10 часов 15 минут 49 секунд:
Короткий отчет:
1.На STM32F103C ModBus Slave работает (проверял с KaScada);
2.На STM32F401 не работает. Не воспринимает Serial1.begin(115200,8N_1) - код который генерит FLProg в setup(); Вручную меняется на Serial1.begin(115200) и эта проблема преодолевается. При работе при поступление правильной посылки из KaScada, отвечает байтом E2 и этим все...
----
Протокол ModBus ключевой для автоматизации.
Как бы не пришлось разрабатывать новую библиотеку (на основе старой).
Лучше это делать совместно с разработчиком FLProg, но он вряд ли сейчас на это будет отвлекаться.
----
Думаем. Может есть какие соображения?
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 15 сен 2020, 06:22
Taser писал(а): 14 сен 2020, 18:19 По-моему здесь какая-то ошибка
https://prnt.sc/uh3y5v
Выложил последовательно в конце сообщения - почему в середине получалось не верно, несколько раз попробовал.
Спасибо за поправку.
Сами файлы те же и без изменения.

Отправлено спустя 10 часов 15 минут 49 секунд:
Короткий отчет:
1.На STM32F103C ModBus Slave работает (проверял с KaScada);
2.На STM32F401 не работает. Не воспринимает Serial1.begin(115200,8N_1) - код который генерит FLProg в setup(); Вручную меняется на Serial1.begin(115200) и эта проблема преодолевается. При работе при поступление правильной посылки из KaScada, отвечает байтом E2 и этим все...
----
Протокол ModBus ключевой для автоматизации.
Как бы не пришлось разрабатывать новую библиотеку (на основе старой).
Лучше это делать совместно с разработчиком FLProg, но он вряд ли сейчас на это будет отвлекаться.
----
Думаем. Может есть какие соображения?
Подскажите пожалуйста где найти блоки для LCD2004 1602?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 12 окт 2020, 01:14 Подскажите пожалуйста где найти блоки для LCD2004 1602?
Сейчас выложу обновленные библиотеки. Специальной библиотеки для LCD 20x4 нет - кол-во колонок и строк задается в блоке инициализации. По умолчанию установлено 16x2.

Отправлено спустя 33 минуты 41 секунду:
Обновленные библиотеки:
1.Библиотеки C++
RT_HW_LIB_115_131020_alfa.zip
2.Библиотека пользовательских блоков
БИБЛИОТЕКА BASE_v02.2_6.3.1_13102020.zip
----------------------
Проделана большая рутинная работа по доработке библиотек и пользовательских блоков, но есть и новое:
1.Добавлена библиотека для обращения к UART по его номеру от 0 до 7. Номер 7 соответствует SoftSerial.
Это открывает возможность создания протокол коммуникаций независимых от платформы. Одной из видимой целью сейчас это
ModBus.
2. Теперь работает сонар HC-SR04 по прерываниям и на ESP8266.
Дело в том, что после версии 2.5.0 требований к программам прерываний изменились и проекты соответственно выходили с ошибкой компиляции.
Теперь с проблемой разобрались и решение её заложили в библиотеку.
3. Мы поддерживаем проект в ДЮАИР проект "детские "машинки".
Для этого были созданы пользовательские блоки на C++ - они получились громоздкими и их сложно развивать.
Поэтому была разработана специальная библиотека RT_HW_CAR - теперь работать с машинками и проще, и добавлять новые возможности легче.
---
В следующем посте выложу проекты машинок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

1.Сами машинки (на Nano, Mega2560, ESP8266)
IMG_2884.jpg
2.Проект для Nano. Пульт на Android - программа BlueTooth RemoteControl.
В проекте для отладки заложен LCD 20x4 - очень удобно, ничего не тормозит.
BASE_CAR_BT_NANO_v01_131020.zip
3.Проект для ESP8266. Один пульт на Android - программа BlueTooth RemoteControl, и один пульт на RemoteXY через Wi-Fi.
BASE_CAR_BT_RC_RXY_WiFi_v01.zip
4.Проект для ESP8266 (мини версия) - один пульт на RemoteXY через Wi-Fi.
BASE_CAR_Micro_v02_WiFi_RXY_xx.zip
-----
Пока все.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 13 окт 2020, 13:47
o615ye161 писал(а): 12 окт 2020, 01:14 Подскажите пожалуйста где найти блоки для LCD2004 1602?
Сейчас выложу обновленные библиотеки. Специальной библиотеки для LCD 20x4 нет - кол-во колонок и строк задается в блоке инициализации. По умолчанию установлено 16x2.

Отправлено спустя 33 минуты 41 секунду:
Обновленные библиотеки:
1.Библиотеки C++
RT_HW_LIB_115_131020_alfa.zip
2.Библиотека пользовательских блоков
БИБЛИОТЕКА BASE_v02.2_6.3.1_13102020.zip
----------------------
Проделана большая рутинная работа по доработке библиотек и пользовательских блоков, но есть и новое:
1.Добавлена библиотека для обращения к UART по его номеру от 0 до 7. Номер 7 соответствует SoftSerial.
Это открывает возможность создания протокол коммуникаций независимых от платформы. Одной из видимой целью сейчас это
ModBus.
2. Теперь работает сонар HC-SR04 по прерываниям и на ESP8266.
Дело в том, что после версии 2.5.0 требований к программам прерываний изменились и проекты соответственно выходили с ошибкой компиляции.
Теперь с проблемой разобрались и решение её заложили в библиотеку.
3. Мы поддерживаем проект в ДЮАИР проект "детские "машинки".
Для этого были созданы пользовательские блоки на C++ - они получились громоздкими и их сложно развивать.
Поэтому была разработана специальная библиотека RT_HW_CAR - теперь работать с машинками и проще, и добавлять новые возможности легче.
---
В следующем посте выложу проекты машинок.
спасибо за блоки и за труд, вот только как в этом теперь разобраться? у вас видео или скеч пример есть?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 13 окт 2020, 21:02 спасибо за блоки и за труд, вот только как в этом теперь разобраться? у вас видео или скеч пример есть?
В посте #698 пункты 2-4.
Задавайте вопросы, будем стараться оперативно отвечать.
В примере с Nano последняя плата - это об использовании LCD2004. Поддерживает дисплеи с кириллицей.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Поступил вопрос по работе с блоком ds1820 библиотеки ecoins.
Этот блок не требует указывать MAC-адрес ds1820, но работает только с одним сенсором (один пин, один сенсор).
Работает побыстрее стандартного, без "тормозов".
Ниже тест с выводом на lcd и консоль. Не "тормозит", основной цикл loop 18mcs.
IMG_2886.jpg
Test_DS1820_1.png
Test_DS1820_1.flp
--------------
И совсем простой тест - вывод на стандартный UART
Test_DS1820_2.png
Test_DS1820_2.flp
-------------
Пин должен быть подтянут к питанию резистором примерно 4.7к.
------------
Успехов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 14 окт 2020, 13:26 Поступил вопрос по работе с блоком ds1820 библиотеки ecoins.
Этот блок не требует указывать MAC-адрес ds1820, но работает только с одним сенсором (один пин, один сенсор).
Работает побыстрее стандартного, без "тормозов".
Ниже тест с выводом на lcd и консоль. Не "тормозит", основной цикл loop 18mcs.
IMG_2886.jpg
Test_DS1820_1.png
Test_DS1820_1.flp
--------------
И совсем простой тест - вывод на стандартный UART
Test_DS1820_2.png
Test_DS1820_2.flp
-------------
Пин должен быть подтянут к питанию резистором примерно 4.7к.
------------
Успехов.
"Планировщик задачи и упраление консолью", эту плату обязательно нужно делать в проекте?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Не обязательно (но правильнее использовать - при развитии проекта может быть полезно).
Test_DS1820_2.flp работает только с двумя блоками -ds1820(ecoins) и отправка в UART (FLProg).
Последний раз редактировалось ecoins 14 окт 2020, 14:14, всего редактировалось 1 раз.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 14 окт 2020, 13:51 Не обязательно (но правильнее использовать - при развитии проекта может быть полезно).
Test_DS1820_2.flp только с двумя блоками.
Понятно, а как определить какая задача быстрая,медленная, оперативная?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 14 окт 2020, 14:03 Понятно, а как определить какая задача быстрая,медленная, оперативная?
Выбор определяется пользователем с учетом особенностей блока. Обычно рекомендации указаны в пользовательских блоков разработанные ecoins.
Примеры:
1. Обработка строковых переменных. Это затратные по времени операции, но ведь их и не надо выполнять постоянно. Тоже можно рекомендовать и для вывода на консоль длинных сообщений. Поэтому эти операции правильнее выполнять в плате, которая вызывается как медленная задача (период 1 сек или 250мс).
2. Стандартный блок опроса аналоговых входов занимает примерно 150mcs. Длительная операция и запись в PWM. Эти задачи можно выполнять в плате оперативная задача(50 или 10мс), или как быстрая задача(100 или 25мс).
3. Работа с блоком LCD состоит из многих микроопераций. Эти блоки всегда нужно вызывать в плате "свободная задача". Если выполнять их как оперативная или быстрая задача, то визуально будет видно торможение вывода (хотя это и не столь критично).
---------------------------
Можно вызывать все как быстрые задачи - если будет что-то "тормозить" (например LCD), то станет понятно что и как полезно передвинуть.
Визуально хорошо видно на логическом анализаторе, для чего в проектах цикл loop можно наблюдать на пине с именем "контроль" (или на другом по выбору пользователя).
---------------------------
Важно сразу в проектах предусматривать возможность планирования вызова плат на выполнение по времени.
Диспетчер компактный и быстрый и соответственно использует небольшое кол-во процессорных ресурсов (память и время).
И по мере разработки проекта расставлять условия вызова плат - в эти условия могут входить не только период вызова, но и значения каких-то пользовательских переменных.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 14 окт 2020, 14:40
o615ye161 писал(а): 14 окт 2020, 14:03 Понятно, а как определить какая задача быстрая,медленная, оперативная?
Выбор определяется пользователем с учетом особенностей блока. Обычно рекомендации указаны в пользовательских блоков разработанные ecoins.
Примеры:
1. Обработка строковых переменных. Это затратные по времени операции, но ведь их и не надо выполнять постоянно. Тоже можно рекомендовать и для вывода на консоль длинных сообщений. Поэтому эти операции правильнее выполнять в плате, которая вызывается как медленная задача (период 1 сек или 250мс).
2. Стандартный блок опроса аналоговых входов занимает примерно 150mcs. Длительная операция и запись в PWM. Эти задачи можно выполнять в плате оперативная задача(50 или 10мс), или как быстрая задача(100 или 25мс).
3. Работа с блоком LCD состоит из многих микроопераций. Эти блоки всегда нужно вызывать в плате "свободная задача". Если выполнять их как оперативная или быстрая задача, то визуально будет видно торможение вывода (хотя это и не столь критично).
---------------------------
Можно вызывать все как быстрые задачи - если будет что-то "тормозить" (например LCD), то станет понятно что и как полезно передвинуть.
Визуально хорошо видно на логическом анализаторе, для чего в проектах цикл loop можно наблюдать на пине с именем "контроль" (или на другом по выбору пользователя).
---------------------------
Важно сразу в проектах предусматривать возможность планирования вызова плат на выполнение по времени.
Диспетчер компактный и быстрый и соответственно использует небольшое кол-во процессорных ресурсов (память и время).
И по мере разработки проекта расставлять условия вызова плат - в эти условия могут входить не только период вызова, но и значения каких-то пользовательских переменных.
Спасибо за пояснение!
Закрыто

Вернуться в «Команда ecoins»

Кто сейчас на конференции

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