STM32 vs Atmega

Все, что не подходит под определение "старого софта и железа", обсуждается здесь
Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

STM32 vs Atmega

Сообщение Rio444 » 11.01.2020,18:54

Постепенно подбираюсь к STM32.
Прошу совета, какой воспользоваться литературой, какую лучше использовать среду разработки.
А заодно хочу обсудить, если STM32 так хорош (и к тому же дёшев), остались ли ещё применения, где он проигрывает AVR Atmega?
Или причина того, что Atmega ещё не сдаёт свои позиции, только в том, что STM32 сложнее и мало кто его освоил?
Электронка: Изображение копия Изображение

Аватара пользователя
F0lken
Advanced Member
Сообщения: 1259
Зарегистрирован: 07.11.2006,10:48
Контактная информация:

Конкурсы

Вклад в сообщество

STM32 vs Atmega

Сообщение F0lken » 11.01.2020,22:12

У меня ровно такая же ситуация.
Плюсы:
огромная линейка микрух под любые цели.
больше гибкости
больше мощности - вплоть до Rtos

Минусы:
Сложнее
Я не вижу задач, которые бы надо было решать именно на стм32. Ну у меня таких нет. Но чел на швабрашвабре (говноHabr) с эмулятором спектрума дико доставлял.

Программить можно чуть ли не в Ардуино. Врать не буду, но там все очень круто нынче.
Туториалы ищите на easyelectronics.ru -- Либо зарубежные источники. Это даже лучше.
Книги - рутрекер. Авторам русскоязычных изданий кассу делать не надо - никакой новизны они не приносят - это сплошь заимствование. Ну не они это изобрели ;). Максимум - криво перевели.

Из девайсов - купите bluepill плату и программатор. Мне на Али комплект обошёлся рублей в 300 или меньше в "черную пятницу". Правда пока что оно простаивает.
Это самый быстрый вход. Программатор может и не обязателен, но пусть будет.

Начинать, ясное дело, с мигания лампочкой ;).

Мне esp8266 и esp32 больше по душе - хотя и тут все упирается в идеи. Пока что только детектор wifi deauth атак перетащил на подручную плату.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

STM32 vs Atmega

Сообщение Rio444 » 11.01.2020,23:58

F0lken, у меня есть идеи для пары проектов, где STM32 должен подойти. Дешевые AVR слишком слабые или не хватает функций. Подходящие - почти на порядок дороже STM32. Да и не очень популярны. Могут быть проблемы с покупкой.
Туториала нормального пока не нашел. И на изиэлектроникс искал, и на рутрекере (может неправильно искал?). Статьи, которые находятся - слишком частные, от "блогеров".
Не объясняются основные принципы. Только конкретика: скачайте такую-то программу, нажмите такую-то кнопку, вставьте такой-то код и т.п.
С CPLD кстати было то же самое. Или частности, или вода. Пришлось доходить самому.
F0lken писал(а): 11.01.2020,22:12 Мне esp8266 и esp32 больше по душе
А что это такое? Расскажите.
Электронка: Изображение копия Изображение

Аватара пользователя
F0lken
Advanced Member
Сообщения: 1259
Зарегистрирован: 07.11.2006,10:48
Контактная информация:

Конкурсы

Вклад в сообщество

STM32 vs Atmega

Сообщение F0lken » 12.01.2020,09:43

Rio444 писал(а): 11.01.2020,23:58 А что это такое? Расскажите.
О, это замечательные микросборки (чип в голом виде встречается не часто, сложен в пайке и требует обвязки). По факту - это продвинутый микроконтроллер с WiFi и в случае с ESP32 с блютус.

Изображение

В эпоху так называемого IoT такие поделия обрели популярность. Ну ещё бы - за несколько долларов вы получаете беспроводную связь, набор ног для дрыгания, а так же кучу интерфейсов типа i2c, uart и прочего. Так же на блюдечке 5v tolerance, deep sleep.

Вобщем, эдакая Ардуина на стероидах из 21 века.

Из минусов, у нее довольно капризная система питания.

Уже есть microPython, интерпретатор Lua, поддержка (полная) в Arduino.

У меня лично есть Odroid-Go - консоль портативная на базе ESP32. Можно Doom, NES (денди), MSX, спектрум. Можно в метро снифферить WiFi траффик. Можно отгрузить microPython и программировать на нем. Думал продать, ибо выходит следующая модель, но потом понял, что аккум вполне заменяем и пока передумал.

Вот, как обычно на швабре статья ниочем про ESP32 - https://habr.com/ru/post/309746/ и про 8266 https://habr.com/en/post/390593/

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

STM32 vs Atmega

Сообщение Tronix » 12.01.2020,10:18

Rio444 писал(а): 11.01.2020,18:54 А заодно хочу обсудить, если STM32 так хорош (и к тому же дёшев), остались ли ещё применения, где он проигрывает AVR Atmega?
Ну, как известно - каждой задаче - свой микроконтроллер.

STM32 плохо заточен под "ногодрыг", потому что ядро имеет в себе кеши,префетчи,спаривание,ветвление и всякие такие новомодные приблуды, которые не гарантируют выполнение одной команды ровно за время X. В одном участке кода команда может выполнится за X, а в другом участке кода - за другое время, потому что мимо кеша промахнулась, допустим. Отсюда сложность реализации протоколов и соблюдение временных интервалов, которых нет в стандартной аппаратной реализации. Простейший пример - протокол 1-wire, который на STM32 реализуется в виде костылей через USART с парой дополнительных транзисторов в обвязке, либо без транзисторов, но с задействованием трех таймеров, двух прерываний. Вот такая простая вещь для всех восьмибитников (8051, AVR, PIC, MSP430), как прочитать температурку с DS1820, вызывает дикий оверхед у STM32. Но, если с 1-wire есть тысячи решений и чуть ли не апп-ноты от самой ST, поэтому можно программировать методом CTRL+C/CTRL+V, то шаг в сторону какого-нибудь еще хитровыдуманного последовательного интерфейса с жесткими временными рамками - и добро пожаловать в доскональное изучение таймеров, компараторов, прерываний с их детальными режимами работы в STM32.

С другой стороны, STM32 обладает почти всеми современными аппаратными интерфейсами, причем в количествах. Несколько UART, несколько SPI, I2C, USB device/host. Сейчас оно настраивается мышкой в CubeMX (не сложнее программирования мышкой в Delphi) и дальше просто работает, не нужно практически даже лезть в какие-то регистры, просто время от времени вызывай нужные функции для приема/передачи, да и все.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

STM32 vs Atmega

Сообщение Rio444 » 12.01.2020,10:32

Tronix писал(а): 12.01.2020,10:18 Отсюда сложность реализации протоколов и соблюдение временных интервалов, которых нет в стандартной аппаратной реализации.
Тогда вопрос в лоб: возможно ли реализовать на STM32 цифровой фильтр (звуковой частоты)? И понятно, избежать джиттера.
Электронка: Изображение копия Изображение

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

STM32 vs Atmega

Сообщение Tronix » 12.01.2020,10:49

Rio444 писал(а): 12.01.2020,10:32 возможно ли реализовать на STM32 цифровой фильтр (звуковой частоты)? И понятно, избежать джиттера.
Я не знаю, с такими задачами не сталкивался. Знаю лишь то, что в некоторых STM32 есть FPU, поэтому всякие фурье раскладываются вполне себе, тысячи "осциллограф на STM32" это подтверждают. Они все как раз в пределах звуковой частоты работают...

i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

STM32 vs Atmega

Сообщение i8088 » 13.01.2020,14:24

Tronix писал(а): 12.01.2020,10:18 Сейчас оно настраивается мышкой в CubeMX (не сложнее программирования мышкой в Delphi) и дальше просто работает, не нужно практически даже лезть в какие-то регистры, просто время от времени вызывай нужные функции для приема/передачи, да и все.
Вот это мне очень не нравится, я считаю что микроконтролер нормальный программировать нужно
только на Ассемблере, ну в крайнем случае Си.

Вообще мне бы хотелось, чтобы для ресурсоемких задач вместо всех этих stm32 итп существовал бы
однокристальный x86 - типа как 80186/188, но со встроенным ПЗУ, ОЗУ и более развитой переферией.
Делай что хочешь и систему команд учить заново не надо.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

STM32 vs Atmega

Сообщение Rio444 » 13.01.2020,14:30

i8088 писал(а): 13.01.2020,14:24 Вот это мне очень не нравится, я считаю что микроконтролер нормальный программировать нужно
только на Ассемблере, ну в крайнем случае Си.
Согласен. Но с другой стороны даже у самых дешевых STM32 запредельная мощность для большинства задач.
И, например, в C++ Builder мне очень нравится, что вообще не нужно париться с интерфейсом. Можно почти сразу заниматься основной задачей.

Кое-что нашел из литературы. Надо было искать не "STM32", а "ARM".
Электронка: Изображение копия Изображение

i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

STM32 vs Atmega

Сообщение i8088 » 13.01.2020,14:55

Rio444 писал(а): 13.01.2020,14:30 И, например, в C++ Builder мне очень нравится
Да согласен, работал на нем под NT4 и 2000, очень удобно сделано. Ставил четвертую версию на
Pentium60 с 40MB RAM, под NT4 работало хорошо (только сильно тормозили выплывающие подсказки
определения функций, когда мышь наводишь на имя функции, отключил) . Это перед тем как
окончательно уйти в командную строку и FreeBSD:)

Аватара пользователя
EJSanYo
Advanced Member
Сообщения: 414
Зарегистрирован: 27.12.2007,23:55

Вклад в сообщество

STM32 vs Atmega

Сообщение EJSanYo » 08.02.2020,12:54

Сижу сейчас на связке CubeMX и Keil 5.20, делаю на работе всякие поделия таким образом. Начинать рекомендую с понимания мерзкой "философии" современных чипов, к которой после "классики" привыкнуть бывает сложно: как вы привыкли, полагаю? Открываем даташит на чип, в нём всё есть, даже полная система команд. Открываем компилятор, в его хелпах всё есть. Что-то дополнительно приходится искать довольно редко. Так вот, с STM-инами не так! :mad: Документация раскидана по разным документам - в одном обзор семейства в целом (типа как для STM32F0, для F1...), в другом - перечень, что вошло конкретно в ваш чип. Просто перечень. И электрические характеристики. В третьем - описание бутлодыря, причём для нескольких семейств. И т.д., информацию придётся собирать по частям. Функции, которые генерит Кубик - это вообще отдельная история. В принципе есть большая PDF-ина, в которой они как бы перечислены все. Но в том и беда, что просто перечислены, а разных нюансов их использования не раскрыто. Так что открываем проект, сгенерированный Кубиком, и читаем-читаем комменты прямо в коде. Так бывает понять быстрее и проще. Если не помогло - гуглим-гуглим, читаем-читаем. А ещё STM-овские индусы без конца что-то обновляют, переделывают в своей среде, периодически добавляют в неё косяки, потом их исправляют, потом опять ломают. Так что информация из тырнетовской статьи, написанной, скажем, в 2016 году, может оказаться уже ни разу не актуальной. Ну ещё некоторые аппаратные косяки периферии вас, возможно, "порадуют", особенно в первых и самых популярных чипах, вроде STM32F103. Короче, чем чип сложнее, тем хуже он оттестирован и задокументирован. К слову, в этом плане ESP-хи куда как хуже, чем STM-ы! :frown:
А самое забавное, что при всём при этом...вам всё равно придётся с этим работать, рано или поздно, если хотите делать актуальные вещи. И скоро уже настанет время, когда на желание сделать схему на старой доброй АтМеге 8 ваш работодатель будет смотреть, как в наше время - на КР580, скажем. "Ты чё, идиот?! Ты с какой эпохи этот музейный экспонат откопал? Что в нём такого, что на копеечной ESP100500 сделать нельзя? Зачем тебе документация, возьми скетч готовый!" :08:
Хорошо иметь DOOM-ик в деревне!

Ответить