STM32 vs Atmega
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
STM32 vs Atmega
Постепенно подбираюсь к STM32.
Прошу совета, какой воспользоваться литературой, какую лучше использовать среду разработки.
А заодно хочу обсудить, если STM32 так хорош (и к тому же дёшев), остались ли ещё применения, где он проигрывает AVR Atmega?
Или причина того, что Atmega ещё не сдаёт свои позиции, только в том, что STM32 сложнее и мало кто его освоил?
Прошу совета, какой воспользоваться литературой, какую лучше использовать среду разработки.
А заодно хочу обсудить, если STM32 так хорош (и к тому же дёшев), остались ли ещё применения, где он проигрывает AVR Atmega?
Или причина того, что Atmega ещё не сдаёт свои позиции, только в том, что STM32 сложнее и мало кто его освоил?
Электронка: копия
- F0lken
- Advanced Member
- Сообщения: 1259
- Зарегистрирован: 07.11.2006,10:48
- Контактная информация:
-
Конкурсы
Вклад в сообщество
STM32 vs Atmega
У меня ровно такая же ситуация.
Плюсы:
огромная линейка микрух под любые цели.
больше гибкости
больше мощности - вплоть до Rtos
Минусы:
Сложнее
Я не вижу задач, которые бы надо было решать именно на стм32. Ну у меня таких нет. Но чел на швабрашвабре (говноHabr) с эмулятором спектрума дико доставлял.
Программить можно чуть ли не в Ардуино. Врать не буду, но там все очень круто нынче.
Туториалы ищите на easyelectronics.ru -- Либо зарубежные источники. Это даже лучше.
Книги - рутрекер. Авторам русскоязычных изданий кассу делать не надо - никакой новизны они не приносят - это сплошь заимствование. Ну не они это изобрели . Максимум - криво перевели.
Из девайсов - купите bluepill плату и программатор. Мне на Али комплект обошёлся рублей в 300 или меньше в "черную пятницу". Правда пока что оно простаивает.
Это самый быстрый вход. Программатор может и не обязателен, но пусть будет.
Начинать, ясное дело, с мигания лампочкой .
Мне esp8266 и esp32 больше по душе - хотя и тут все упирается в идеи. Пока что только детектор wifi deauth атак перетащил на подручную плату.
Плюсы:
огромная линейка микрух под любые цели.
больше гибкости
больше мощности - вплоть до Rtos
Минусы:
Сложнее
Я не вижу задач, которые бы надо было решать именно на стм32. Ну у меня таких нет. Но чел на швабрашвабре (говноHabr) с эмулятором спектрума дико доставлял.
Программить можно чуть ли не в Ардуино. Врать не буду, но там все очень круто нынче.
Туториалы ищите на easyelectronics.ru -- Либо зарубежные источники. Это даже лучше.
Книги - рутрекер. Авторам русскоязычных изданий кассу делать не надо - никакой новизны они не приносят - это сплошь заимствование. Ну не они это изобрели . Максимум - криво перевели.
Из девайсов - купите bluepill плату и программатор. Мне на Али комплект обошёлся рублей в 300 или меньше в "черную пятницу". Правда пока что оно простаивает.
Это самый быстрый вход. Программатор может и не обязателен, но пусть будет.
Начинать, ясное дело, с мигания лампочкой .
Мне esp8266 и esp32 больше по душе - хотя и тут все упирается в идеи. Пока что только детектор wifi deauth атак перетащил на подручную плату.
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
STM32 vs Atmega
F0lken, у меня есть идеи для пары проектов, где STM32 должен подойти. Дешевые AVR слишком слабые или не хватает функций. Подходящие - почти на порядок дороже STM32. Да и не очень популярны. Могут быть проблемы с покупкой.
Туториала нормального пока не нашел. И на изиэлектроникс искал, и на рутрекере (может неправильно искал?). Статьи, которые находятся - слишком частные, от "блогеров".
Не объясняются основные принципы. Только конкретика: скачайте такую-то программу, нажмите такую-то кнопку, вставьте такой-то код и т.п.
С CPLD кстати было то же самое. Или частности, или вода. Пришлось доходить самому.
Туториала нормального пока не нашел. И на изиэлектроникс искал, и на рутрекере (может неправильно искал?). Статьи, которые находятся - слишком частные, от "блогеров".
Не объясняются основные принципы. Только конкретика: скачайте такую-то программу, нажмите такую-то кнопку, вставьте такой-то код и т.п.
С CPLD кстати было то же самое. Или частности, или вода. Пришлось доходить самому.
А что это такое? Расскажите.
Электронка: копия
- F0lken
- Advanced Member
- Сообщения: 1259
- Зарегистрирован: 07.11.2006,10:48
- Контактная информация:
-
Конкурсы
Вклад в сообщество
STM32 vs Atmega
О, это замечательные микросборки (чип в голом виде встречается не часто, сложен в пайке и требует обвязки). По факту - это продвинутый микроконтроллер с 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
Ну, как известно - каждой задаче - свой микроконтроллер.
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
Тогда вопрос в лоб: возможно ли реализовать на STM32 цифровой фильтр (звуковой частоты)? И понятно, избежать джиттера.
Электронка: копия
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
STM32 vs Atmega
Я не знаю, с такими задачами не сталкивался. Знаю лишь то, что в некоторых STM32 есть FPU, поэтому всякие фурье раскладываются вполне себе, тысячи "осциллограф на STM32" это подтверждают. Они все как раз в пределах звуковой частоты работают...
-
- Advanced Member
- Сообщения: 4383
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
STM32 vs Atmega
Вот это мне очень не нравится, я считаю что микроконтролер нормальный программировать нужно
только на Ассемблере, ну в крайнем случае Си.
Вообще мне бы хотелось, чтобы для ресурсоемких задач вместо всех этих stm32 итп существовал бы
однокристальный x86 - типа как 80186/188, но со встроенным ПЗУ, ОЗУ и более развитой переферией.
Делай что хочешь и систему команд учить заново не надо.
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
STM32 vs Atmega
Согласен. Но с другой стороны даже у самых дешевых STM32 запредельная мощность для большинства задач.
И, например, в C++ Builder мне очень нравится, что вообще не нужно париться с интерфейсом. Можно почти сразу заниматься основной задачей.
Кое-что нашел из литературы. Надо было искать не "STM32", а "ARM".
Электронка: копия
-
- Advanced Member
- Сообщения: 4383
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
STM32 vs Atmega
Да согласен, работал на нем под NT4 и 2000, очень удобно сделано. Ставил четвертую версию на
Pentium60 с 40MB RAM, под NT4 работало хорошо (только сильно тормозили выплывающие подсказки
определения функций, когда мышь наводишь на имя функции, отключил) . Это перед тем как
окончательно уйти в командную строку и FreeBSD:)
STM32 vs Atmega
Сижу сейчас на связке CubeMX и Keil 5.20, делаю на работе всякие поделия таким образом. Начинать рекомендую с понимания мерзкой "философии" современных чипов, к которой после "классики" привыкнуть бывает сложно: как вы привыкли, полагаю? Открываем даташит на чип, в нём всё есть, даже полная система команд. Открываем компилятор, в его хелпах всё есть. Что-то дополнительно приходится искать довольно редко. Так вот, с STM-инами не так! Документация раскидана по разным документам - в одном обзор семейства в целом (типа как для STM32F0, для F1...), в другом - перечень, что вошло конкретно в ваш чип. Просто перечень. И электрические характеристики. В третьем - описание бутлодыря, причём для нескольких семейств. И т.д., информацию придётся собирать по частям. Функции, которые генерит Кубик - это вообще отдельная история. В принципе есть большая PDF-ина, в которой они как бы перечислены все. Но в том и беда, что просто перечислены, а разных нюансов их использования не раскрыто. Так что открываем проект, сгенерированный Кубиком, и читаем-читаем комменты прямо в коде. Так бывает понять быстрее и проще. Если не помогло - гуглим-гуглим, читаем-читаем. А ещё STM-овские индусы без конца что-то обновляют, переделывают в своей среде, периодически добавляют в неё косяки, потом их исправляют, потом опять ломают. Так что информация из тырнетовской статьи, написанной, скажем, в 2016 году, может оказаться уже ни разу не актуальной. Ну ещё некоторые аппаратные косяки периферии вас, возможно, "порадуют", особенно в первых и самых популярных чипах, вроде STM32F103. Короче, чем чип сложнее, тем хуже он оттестирован и задокументирован. К слову, в этом плане ESP-хи куда как хуже, чем STM-ы!
А самое забавное, что при всём при этом...вам всё равно придётся с этим работать, рано или поздно, если хотите делать актуальные вещи. И скоро уже настанет время, когда на желание сделать схему на старой доброй АтМеге 8 ваш работодатель будет смотреть, как в наше время - на КР580, скажем. "Ты чё, идиот?! Ты с какой эпохи этот музейный экспонат откопал? Что в нём такого, что на копеечной ESP100500 сделать нельзя? Зачем тебе документация, возьми скетч готовый!"
А самое забавное, что при всём при этом...вам всё равно придётся с этим работать, рано или поздно, если хотите делать актуальные вещи. И скоро уже настанет время, когда на желание сделать схему на старой доброй АтМеге 8 ваш работодатель будет смотреть, как в наше время - на КР580, скажем. "Ты чё, идиот?! Ты с какой эпохи этот музейный экспонат откопал? Что в нём такого, что на копеечной ESP100500 сделать нельзя? Зачем тебе документация, возьми скетч готовый!"
Хорошо иметь DOOM-ик в деревне!