Разработки ecoins для STM32

Разработки как правило универсальны для архитектур AVR,SAM3,SAMD21,ESP,STM32.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#1

Сообщение ecoins » 13.12.2020{, 22:46}

Новая библиотека RT_HW_BASE.h поддерживает контроллеры STM32 на ядре Arduino IDE STM32duino.
RT_00_HW_BASE_v6.53.zip
(145.9 КБ) 197 скачиваний
Новые пользовательские блоки
EIS.01.СИСТЕМА вер.1.23 (18.08.21).zip
(838.87 КБ) 163 скачивания
Инструкция по загрузке (будет дорабатываться)
v.02_Дружим ArduinoIDE с STM32F103 и STM32F411.pdf
(3.95 МБ) 342 скачивания
Рекомендуемые начальные тесты
FPROG_Test01_BOARD_v02_130721.zip
(417.95 КБ) 178 скачиваний
FPROG_Test02_LED_DHT22_DS1820_v01.zip
(681.96 КБ) 126 скачиваний
FPROG_Test03_SHED_LED_DHT22_DS1820_LCD_v01.zip
(1.43 МБ) 157 скачиваний
Внешний вид одного из стендов
Стенд STM32.jpg
Один и тот же тест загружался в Nano,Mega2560,DUE,ESP8266,ESP32,STM32F103C(BLUEPILL),STM32F103R,STM32F401,STM32F411,STM32F407.
------------------------------
Обновление всех файлов 13.07.2021г.
Обновление библиотек 16.08.21, 20.08.21
Последний раз редактировалось ecoins 20.08.2021{, 18:00}, всего редактировалось 9 раз.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#2

Сообщение ecoins » 13.12.2020{, 22:48}

Сравнение быстродействия трех плат на приложенном тесте:
Сравнение STM32_2.jpg
Логический анализатор.png
Измерения выполнены для трех контроллеров MEGA2560,STM32F103C,STM411 с использованием логического анализатора.
Последний раз редактировалось ecoins 14.12.2020{, 00:48}, всего редактировалось 3 раза.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#3

Сообщение ecoins » 13.12.2020{, 23:11}

Размышления на выбор между STM32F411,STM32F410,STM32F103,Arduino Nano.
1. Arduino Nano - очень удобно работать, быстро компилируется и грузиться через USB. Основной недостаток - мало памяти для программ(32/30кБайт), ОЗУ - 2кБайт. Дешевая (но уже дороже BLUEPILL_F103C). Ограниченное кол-во пинов и UART - не самая большая проблема, есть хорошо работающие i2c и SPI.
2.STM32F103C - дешевая, много портов (UART-4, i2c-2,SPI), пинов больше чем в Nano, есть еще ряд полезностей. Недостатки - не все платы имеют 128кБайт памяти (как повезет) - 64кБайт мал. Обычно исходный код начинается с >40кбайт. Часть пинов не толерантны к +5в. Долго компилируется - это относится ко всем STМ при использовании ядра STM32duino. Грузить код хорошо получается через ST-Link, с DFU получилось, но не очень удобно и потом какие-то доп. проблемы проявляются.
3.STM32F401CC(BLACKPILL_F - немного дороже STM32F103C. Гораздо мощнее, быстрее предыдущей. Все пины толерантны к 5в. Недостатки - большое время компиляции.
4.STM32F411CE - немного дороже STM32F401CE. Мощнее, лучше. Два пина не толерантны к 5в.
------------------------------------------
На практике мы зачастую отлаживаем проекты (или части проектов) на Arduino Nano - быстро, удобно. Затем переходим к STM32.
STM32F103C вообще не рекомендовали к использованию - пины платы BLUEPILL_F103C немного не совпадают с пинами BLACKPILL_F4x1Cx.
Переходить с Nano на STM32 проще сразу BLACKPILL_F4x1Cx.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#4

Сообщение ecoins » 13.12.2020{, 23:20}

Размышления на выбор между STM32F407VE и MEGA2560.
В принципе схожее соотношение недостатков и достоинств. В MEGA2560(16мГц) и много UART, и памяти достаточно, работать очень удобно.
STM32F407VRE(168мГц)- немного дешевле, пинов столько же, интерфейсов побольше, быстродействие гораздо больше (1. Много таймеров.
------------------------------------------
На практике мы зачастую отлаживаем проекты (или части проектов) на MEGA2560 - быстро, удобно. Затем переходим к STM32F407.
Уже доступны STM32FH7(400 мГц).
Порог вхождения для MEGA2560 ниже, но это может быть компенсировано блоками FLProg и библиотеками ecoins.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins для STM32

#5

Сообщение Dryundel » 14.12.2020{, 09:57}

ecoins, Вы забыли записать в минусы шилдов с STM32 отсутствие EEPROM - жирный такой минус, не смотря на все плюсы.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#6

Сообщение ecoins » 14.12.2020{, 10:23}

Dryundel писал(а):
14.12.2020{, 09:57}
ecoins, Вы забыли записать в минусы шилдов с STM32 отсутствие EEPROM - жирный такой минус, не смотря на все плюсы.
Вы правы.
При этом полагаю, что отсутствие EEPROM связано не с техническими проблемами реализации EEPROM в чипе, а тем, что задача сохранения энергонезависимых параметров решается иными средствами:
1.Есть какие-то имитаторы EEPROM на Flash - не изучал, но думаю, что этого может на практике и не понадобиться.
2.Там есть встроенные часы вместе с RTC-памятью небольшой от батарейки;
3.Есть возможность подключить внешний чип 8-выводов через i2c - платах BLACKPILL_F4x1Cx есть под такие чипы место.
----------------------------
Сделаю предположения, что на рынке микроконтроллеров, которые используются в Arduino, фирма STM стала уверенным лидером.
Фирма Atmel сильна в ином.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins для STM32

#7

Сообщение Dryundel » 14.12.2020{, 10:56}

ecoins писал(а):
14.12.2020{, 10:23}
При этом полагаю, что отсутствие EEPROM связано не с техническими проблемами реализации EEPROM в чипе, а тем, что задача сохранения энергонезависимых параметров решается иными средствами:
Точно! Именно перечисленными КОСТЫЛЯМИ и решается.
Либо батарейку подключай, либо соплей навешивай. Печально.
А вот про наличие штатного места на BLACK PILL_F4x1Cx не знал. Спасибо.
ecoins писал(а):
13.12.2020{, 23:11}
STM32F103C - дешевая, много портов (UART-4, i2c-2,SPI), пинов больше чем в Nano, есть еще ряд полезностей. Недостатки - не все платы имеют 128кБайт памяти (как повезет)
Странно. Как то не привык надеяться на повезет. Всегда считал что маркировкой строго регламентирована flash и был уверен что именно последний знак за это отвечает.
4 - 16, 6 - 32, 8 - 64, B - 128 и т.д.
Ну как то такПоказать
2020-12-14_105238.jpg
ecoins, у Вас другие сведения? Буду рад, если поделитесь опытом.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#8

Сообщение ecoins » 14.12.2020{, 11:29}

ecoins писал(а):
14.12.2020{, 10:23}
Сделаю предположения, что на рынке микроконтроллеров, которые используются в Arduino, фирма STM стала уверенным лидером.
Фирма Atmel сильна в ином.
Оказалось:
В январе 2016 года Microchip заключила сделку о покупке Atmel за $3,56 миллиарда при посредничестве JPMorgan Chase и Qatalyst Partners[5].
Atmel Corporation — компания производитель полупроводниковых электронных компонентов, существовавшая с 1984 по 2016 годы. Являлась одним из лидеров производства микроконтроллеров (MCS-51, ARM, AVR, AVR32), также разрабатывала и производила небольшие модули энергонезависимой памяти для электронных изделий, ПЛИС, цифровые микросхемы-радиоприёмники и передатчики, сканеры отпечатков пальцев. Также выпускала системы на кристалле, объединяющие несколько затребованных компонентов. Продукция Atmel широко применяется в компьютерных сетях, промышленности, медицине, связи, автомобилях, космосе, военных устройствах, а также кредитных картах.
Microchip Technology Inc. (NASDAQ: MCHP) — американский производитель микроэлектроники, 8-, 16- и 32-битных микроконтроллеров, цифровых сигнальных контроллеров, а также аналоговой и интерфейсной продукции.
Одним из основных направлений является производство контроллеров семейства PIC, которое представлено 8-и, 16-и и 32-битными микроконтроллерами и цифровыми сигнальными контроллерами dsPIC. Отличительной особенностью PIC-контроллеров является хорошая преемственность как внутри, так и между семействами.
--------
Оказалось, что непосредственного разработчика контроллеров ARM,AVR,AVR32 теперь не стало - MicroChip поглотила конкурента, и продолжила развитие своих PIC-контроллеров.
Хорошие контроллеры, но нет поддержки Arduino, и к инструментам разработки есть вопросы. Сами чипы очень устойчиво работают в промышленных условиях.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#9

Сообщение ecoins » 14.12.2020{, 11:38}

Dryundel писал(а):
14.12.2020{, 10:56}
Странно. Как то не привык надеяться на повезет. Всегда считал что маркировкой строго регламентирована flash и был уверен что именно последний знак за это отвечает.
4 - 16, 6 - 32, 8 - 64, B - 128 и т.д.
ecoins, у Вас другие сведения? Буду рад, если поделитесь опытом.
Все точно так.
При этом на aliexspess чипы с буквой В на конце почти не найти.
Распространенные платы BLUEPILL_F103C выполнены STM32F103C8.
"Пытливые" умы установили, что на самом деле многие чипы на "голубой" плате имеют 128кБай - видимо так проще производителю, а на корпусе пишется 8 или B в конце из разных маркетинговых соображений.
Черная плата BLACKPILL_F103C - она уже продается как 128кБайт, но она подороже.
https://aliexpress.ru/item/32802556794. ... hweb201603_

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins для STM32

#10

Сообщение Dryundel » 14.12.2020{, 11:49}

ecoins писал(а):
14.12.2020{, 11:38}
Черная плата BLACKPILL_F103C - она уже продается как 128кБайт, но она подороже.
https://aliexpress.ru/item/32802556794. ... hweb201603_
Чего то на этой BLACKPILL_F103C мне не удалось обнаружить место под flash. Видимо RobotDyn забил на это. :)

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#11

Сообщение ecoins » 14.12.2020{, 12:26}

В библиотеку RT_HW_BASE.h встроенная подсказка, которая может оказаться удобной при отладки проектов.
Она занимает немного Flash-памяти, для AV328 сделана еще компактней.
При включении контроллера в порт UART выдается следующая информация:
Вывод на консоль параметров STM32F411.JPG
------------------------
1.В начале общая информация:
1.1.Дата и время компиляции, тип контроллера и его архитектуры, версия библиотеки,
рекомендуемый номер контрольного пина (для логического анализатора), номер пина, к которому подключен светодиод на плате (если такой есть). На примере где-то выпали данные о процессоре (быстройдействие, питание) - это настраивается в проекте FLProg.
1.2.Размер памяти.
1.3.Разрядность устройств контроллера ADC,PWM,DAC и выбранная системная разрядность SYS(обычно выбирается=12). Библиотека
позволяет нормализовать работу с устройствами разной разрядности без предварительного масштабирования - все внутри библиотеке.
1.4.Параметры интерфейсов i2c,SPI,UART. Пины указываются в той системе, которая принята в контроллере. Например AVR 0,1,..69, ESP8266 -DO,D1 и т.д., STM32 - PA0,PB12 и т.д.
2.Наименование пинов - только для ESP8266 и ESP32 - фактическое значение, генерируемое компилятором. Для одного и того же чипа (например STM32F407VE) размещенного на платах Discovery и BLACK_F4VE эти значения будут отличаться. Особенность STM32duino - неожиданно, но как есть. Наименование пинов с их цифровыми значениями - эта информация носит справочный характер и на практике использоваться не будет, поскольку имеется механизм работы с буквенно-цифровыми обозначениями пинов.
3.Перечь доступных пинов с разными функционалом:
ALL - все доступные пины, DIN -пины как дискретный вход (для ESP8266 пин DO в этом перечне будет отсутствовать, этот пин работает только на выход),ADC (АЦП), DOT (дискретный выход), PWM(ШИМ), INT(прерывания), могут быть DAC(ЦАП), TCH(сенсорный ввод для ESP32). Если в программе прописана реализация на пине функции, для которой она не предназначена, то такое обращение к пину будет проигнорировано. Перечень выводимых пинов прописаны в таблицах, размещены во FLASH. в библиотеке могут быть откорректированы - исправлены неточности, введены искусственные ограничения. Например можно для AVR328 можно запретить работу с пинами 0,1 где пины RX,TX UART, и чем самым исключить вмешательство в работу UART.
Отдельно выводятся номера пинов не толерантны к +5V[N5V].
4.Далее снова "Наименование пинов" - это неточность, будет убрана. Может быть заблокирована и из проекта.
5."Тестовые пины". Для каждого контроллера прописаны свои рекомендуемые пины для разного применения. Удобно использовать при одновременной отладки контроллеров разной конструкции - больше нужно разработчикам библиотек.
6."Адреса устройств" - рекомендуемые адреса устройств на шине I2c - тоже больше нужно разработчикам библиотек.
7.При включении контроллера сканируется шина i2c и выводится адреса(HEX/DEC форматы) подключенных устройств и их кол-во.
-------------------------------------
С точки зрения ecoins это очень удобный инструмент и мы активно (помыслить сложно как без него :smile427: )им пользуемся.
Последний раз редактировалось ecoins 14.12.2020{, 12:33}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#12

Сообщение ecoins » 14.12.2020{, 12:28}

Dryundel писал(а):
14.12.2020{, 11:49}
Чего то на этой BLACKPILL_F103C мне не удалось обнаружить место под flash. Видимо RobotDyn забил на это.
Так и есть.
При этом повторю ранее высказанное соображение:
ecoins писал(а):
13.12.2020{, 23:11}
Переходить с Nano на STM32 проще сразу BLACKPILL_F4x1Cx.
Отдельный недостаток STM32F1 - много пинов не толерантных к 5v.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Разработки ecoins для STM32

#13

Сообщение Ingwar » 14.12.2020{, 15:58}

ecoins писал(а):
14.12.2020{, 11:29}
Хорошие контроллеры, но нет поддержки Arduino
А если найду :smile427:
https://github.com/chipKIT32/chipKIT-core
https://www.microchip.com/wwwproducts/en/en545660
https://www.microchip.com/wwwproducts/en/en532434
https://mcucpu.ru/index.php/devsystems/ ... -chipkit32

Но это для ценителей, ибо ценник на камни на Али - от 370р.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

slon-genia
Сержант
Сообщения: 102
Зарегистрирован: 21.11.2016{, 11:05}
Репутация: 2

Разработки ecoins для STM32

#14

Сообщение slon-genia » 14.12.2020{, 16:32}

ecoins писал(а):
14.12.2020{, 11:38}
Dryundel писал(а):
14.12.2020{, 10:56}
Странно. Как то не привык надеяться на повезет. Всегда считал что маркировкой строго регламентирована flash и был уверен что именно последний знак за это отвечает.
4 - 16, 6 - 32, 8 - 64, B - 128 и т.д.
ecoins, у Вас другие сведения? Буду рад, если поделитесь опытом.
Все точно так.
При этом на aliexspess чипы с буквой В на конце почти не найти.
Распространенные платы BLUEPILL_F103C выполнены STM32F103C8.
"Пытливые" умы установили, что на самом деле многие чипы на "голубой" плате имеют 128кБай - видимо так проще производителю, а на корпусе пишется 8 или B в конце из разных маркетинговых соображений.
Черная плата BLACKPILL_F103C - она уже продается как 128кБайт, но она подороже.
https://aliexpress.ru/item/32802556794. ... hweb201603_
На оригинальной stm32f103c8t6 стоит 128 kb памяти. Проверенно, и не один раз. На китайских клонах типа cs32f103c8t6 - 64kb.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#15

Сообщение ecoins » 14.12.2020{, 16:49}

https://github.com/chipKIT32/chipKIT-core
https://www.microchip.com/wwwproducts/en/en545660
https://www.microchip.com/wwwproducts/en/en532434
https://mcucpu.ru/index.php/devsystems/ ... -chipkit32


Но это для ценителей, ибо ценник на камни на Али - от 370р.

Спасибо, удивили - не знал, что есть такое. Работал с маленькими PIC18F. Одна из проблем была - это требовался программатор с +12в.
Про PIC32 много слышал хорошего от разработчиков встроенных систем. Как в прочем и то, MicroChip забросило старую среду разработки, а за новую надо платить много, много $$$. :smile37:
Многие "Ардуинщики" наверное даже и не догадываются, в какой комфортной среде они обитают - появляются новые версии IDE, огромное кол-во библиотек. Однако у этого благостного "мира" есть и оборотная "черная сторона" - это и естественно, большое безграничное "счастье" бесплатно не бывает. И одним из явных проявлений оборотной стороны, это оператор delay() в библиотеках.
Приведу пример.
Для проверки готовности UART в API Arduino предлагается использовать проверку if(!Serial).
Это просто необходимо, когда в контроллерах применяется виртуальный порт Serial - обычно это USB (Leonardo,DUE,STM32).Если после Serial.begin() не проверить и двинуться дальше, возникают самые неожиданные проблемы.
Всё это неоднократно проверялось и прекрасно работало. И на STM32 на ядре от Clark все было замечательно.
А вот при переходе на STM32duino какие-то странные вещи наблюдались - вроде контроллер работает, светодиоды контрольные нормально моргают, но быстрые задачи как-то не так...
Логический анализатор показал, что цикл loop() 10mc!!!, f потом вдруг 3.2мкс.
Удалось идентифицировать проблему - как-то только подключается монитор IDE после сброса контроллера, все начинает работать.
Обнаружился и код этого "мракобесия":
USBSerial::operator bool()
{
bool result = false;
if (lineState == 1) {
result = true;
}
delay(10);
return result;
-------
Вот и delay(). Сейчас будем придумывать обходной путь.
----------------------------------------------------
Ваша идея по PIC интересна и технические реализуема.
При этом приходиться принимать во внимание:
1.Возможные неожиданности в системных библиотеках ( ссылку Вы привели).
2.Очень, и очень не дешёво:
https://aliexpress.ru/item/32610561695. ... 9241655247
более 9тыс.руб.
----------------------------------------------------
Еще раз благодарю за интересную информацию.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#16

Сообщение ecoins » 14.12.2020{, 17:52}

Отправлено спустя 1 час 1 минуту 41 секунду:
slon-genia писал(а):
14.12.2020{, 16:32}
На оригинальной stm32f103c8t6 стоит 128 kb памяти. Проверенно, и не один раз. На китайских клонах типа cs32f103c8t6 - 64kb.
Не вполне представляю, как отличить оригинальную от не оригинальной.
По data-sheet STM на чипе stm32f103c8t6 памяти 64кб.
Возможно ведь и наоборот - на не оригинальной stm32f103c8t6 памяти может оказаться 128кБайт(если повезет :smile469: )?

slon-genia
Сержант
Сообщения: 102
Зарегистрирован: 21.11.2016{, 11:05}
Репутация: 2

Разработки ecoins для STM32

#17

Сообщение slon-genia » 15.12.2020{, 10:30}

ecoins писал(а):
14.12.2020{, 17:52}
Отправлено спустя 1 час 1 минуту 41 секунду:
slon-genia писал(а):
14.12.2020{, 16:32}
На оригинальной stm32f103c8t6 стоит 128 kb памяти. Проверенно, и не один раз. На китайских клонах типа cs32f103c8t6 - 64kb.
Не вполне представляю, как отличить оригинальную от не оригинальной.
По data-sheet STM на чипе stm32f103c8t6 памяти 64кб.
Возможно ведь и наоборот - на не оригинальной stm32f103c8t6 памяти может оказаться 128кБайт(если повезет :smile469: )?
Я как то пробовал в свою синюю таблетку STM32F103C8T6 зашивать прошивку, которая превращает её в ПЛК Mitsubishi FX2N. Так вот та прошивка в виде BIN файла весила 128 kb. А китайская cs32F103C8T6 - не хотела шиться (там жёстко 64kb)

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Разработки ecoins для STM32

#18

Сообщение starshoy81 » 15.12.2020{, 16:08}

Dryundel писал(а):
14.12.2020{, 11:49}
Чего то на этой BLACKPILL_F103C мне не удалось обнаружить место под flash. Видимо RobotDyn забил на это.

Так речь то шла о F4хх серии
ecoins писал(а):
14.12.2020{, 10:23}
3.Есть возможность подключить внешний чип 8-выводов через i2c - платах BLACKPILL_F4x1Cx есть под такие чипы место.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для STM32

#19

Сообщение ecoins » 15.12.2020{, 17:50}

IMG_2961.jpg
На оборотной стороне место под чип на платахSTM32F4x1Cx.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Разработки ecoins для STM32

#20

Сообщение CraCk » 17.12.2020{, 22:07}

Такое можно завести в флпрог? Только недостаток, нет развязки входов.
https://a.aliexpress.com/_AfZnCz

Ответить

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