STM32F103 & Arduino IDE
- Войдите на сайт для отправки комментариев
Хотите прокачать ваши Arduino проекты? Заставить их работать быстрее, измерения и регулировку сделать точнее, ну и добавить баги(с новыми девайсами они неизбежны). Тогда Вам сюда.
Сравним основные параметры STM32 платы, и её аналога по цене — Arduino Nano V3.0:
- Рабочая частота 72 МГц, против 16 у ардуино;
- Объем Flash памяти 64 Кбайта, против 32;
- Оперативной памяти, она же RAM(где хранятся переменные), у STM32 целых 20 Кбайт, у ардуинки всего лишь 2;
- Быстрый 12-ти битный АЦП, в то время как у Arduino плат, что на базе AVR микроконтроллеров(это как правило большинство) используется 10-ти битный. Это означает, что в случае STM32, функция analogRead(*); будет возвращать 0..4095 против 0..1023, что в первом случае ведёт к более точным измерениям;
-
16-ти битный аппаратный ШИМ, против 8-ми у Arduino плат, то есть, функция
analogWrite(*);pwmWrite(*); может принимать значение 0..65535, против убогих 0..255. Это позволит ещё точнее управлять нашими двигателями, сервами и прочими девайсами, которые рулятся при помощи ШИМ; - Аппаратная работа с USB, чем не может похвастаться не одна Arduino плата стоимостью менее 2 долларов;
- Напряжение питания — от 2 до 3.6В(прямо таки заточено под 2 AA батарейки), против 2.7...5В у ардуино плат;
- Цены на момент написания статьи — 1.9 доллара против 1.8(алиэкспресс).
Очевидно, что отладочная плата на базе STM32 выигрывает по всём параметрам у Arduino Nano, исключением является разве что стоимость, но согласитесь 10 центов — хорошая цена за большую производительность, а про периферию, которой нафарширован STM32, так я вообще молчу, чего только стоят DMA или интегрированные в микроконтроллер часы реального времени.
Подробная статья:
https://geektimes.ru/post/277928/
Видео "Дешёвая STM32 плата + Arduino IDE":
Архив к ролику:
https://drive.google.com/file/d/0B3jRYZMczSQsS0w4SG1GRm1IdTA/view
На али ищется по запросу "stm32f103c8t6 board" ;)
Странный ты - сравнивать 32-х битную платформу с 8-ми битной.
Странный ты - сравнивать 32-х битную платформу с 8-ми битной.
я так понял, что он сравнивает одну ценовую категорию - как по мне, пофиг на чём ехать за ту же цену, если ехается быстрее, то это круто.
Флеша там 128к. 64к официально и еще 64к бонус.
Для STM32 уже пора делать отдельный раздел на форуме :)
Для STM32 уже пора делать отдельный раздел на форуме :)
ага. отдельный район вам без мексов, ниггеров и вежливыми полицейскими.
ATtiny13A 101 применение как-то кантуются и вы перетопчетесь.
Очевидно, что отладочная плата на базе STM32 выигрывает по всём параметрам у Arduino Nano, исключением является разве что стоимость...
Очевидно, что она проигрывает, минимум, по двум параметрам. Притом, настолько существенным, что одного из них вполне достаточно для того, чтобы категорически отказаться от STM:
- необходимость согласования уровней с 5-вольтовой периферией,
- существенно более высокий уровень вхождения, связанный с необходимостью вручную настраивать Arduino IDE и переписывать библиотеки.
3. Производительность оставляет желать лучшего, как выяснилось на соседней ветке. :)
Флеша там 128к. 64к официально и еще 64к бонус.
Подтверждаю, загонял в свою плату 80 кб кода, работает без проблем.
3. Производительность оставляет желать лучшего, как выяснилось на соседней ветке. :)
Вы всё врёте. Вернее перевираете слышымый звон. В соседней ветке ничего не выяснилось. Про плохую производительность пишет человек, который ни разу не програмировал stm. Он сознался, что про кристал тролит остальных, что бы маркетологи агрессивно не продвигали ему почему то ненавистный stm. А на счет производительности - у меня мега не потянула задачу, которая stm загрузила только на 20%. Так что если кидаете заявление, то хотябы потрудитесь его обосновать. Напишите, где и как "Производительность оставляет желать лучшего...". По крайней мере те платы, которые в заголовке топика у меня обе есть и я обе програмировал. На задачах, где основное время процессор должен что то ждать - разницы нет. Там, где нужно непрерывно считать, и по результатам расчетов как то реагировать, stm однозначно существенно быстрее. Цена одна и та же. Вход - да, на ардуину легче. Но это черевато толпой недоучек, которые мнят себя супер програмистами, помигав светодиодиком. Таким нано предел мечтаний и попытка предложить что то более продвинутое, но вызывающее необходимость учится и напрягать голову, приводит к воплям - stm отстой. Остальным, кто уже перерос нано, просто совет - обратите внимание на stm. Не пожалеете.
Непонятен ещё один момент: нахрена юзать убогую Arduino IDE для STM, если вполне есть себе нормальные среды разработки, с поддержкой внутрисхемной отладки, всякими watch и прочими вкусными плюшками?
Это я к чему: сам планирую тесное знакомство с STM (начну с STM8), и думаю, что точно не в Arduino IDE, ибо - каждому овощу свой фрукт, в смысле - раз есть нормальная среда разработки (и не одна, к слову), то какбэ просится начать именно на ней, без костылей всяких. Не?
Прежде чем кого-либо обвинять во вранье, неплохо потрудится и перечитать ссылки и хотя бы знакомиться с даташитами. В даташите на STM32F103 всё расписано очень честно: 1.25DMIPS при 0ws и ARM Cortex M3 with 48Mhz. Отсюда, прямым расчетом получаем "пиковую производительность" на 72Мгц (2ws flash + 2ws SRAM) не способную превышать .. 6 DMIPS на 72Мгц при работе с памятью. Для меги тот же самый показатель при 16Мгц (0ws flash + 1ws SRAM) составит .. около 2DMIPS. А для икс-меги на 32Мгц должно оказаться .. упс 3-5. И это 8/16 разрядная архитектура против 32-х со всеми вытекающими последствиями по перерасходу памяти всех видов.
Сначала сравниваете жопу с пальцем, а потом дивитесь нормальной оценке. STM32 - худший из всех ARM решений, потому и стоит "копейки" .. впрочем и не такие уж и копейки, как тоже выяснилось и там же. Потому вам и остается сравнивать Attiny с STM32 .. да, вполне себе "конкуренты".
Да, кстати .. разница в цене корпусов .. около 50-60руб. для примерно равных наборов периферии .. это собственно и есть ОЦЕНКА труда по сложности программирования периферии в СТМ. "труд за 3 копейки". :)
P.S. А всяческие "у меня не влезло" говорит только об вашем уровне программирования. Тут много где раздается "чудо советов" что и как "можно софтово запрограммить" .. от большого количества навыков видимо. :(
Я этого тоже не понимаю. И вообще слабо понимаю нафига лезть на чужой форум с этой безделицей? Ну нравится - пользуй .. куча мест где можно и похвастаться и тебя там и поддержут и помогут .. сюда то нафига эти сопли постить?
Поддерживаю то, что непомешает создать "веточку", по таким платам. Неизбежно потребность в более производительных, чем Ардуино, платах возникнет (банально - АЦП). Пока более продвинутые будут нарабатывать опыт, мы, чайники, будем присматриваться, задавать вопросы.
Относительно среды программаирования. Благодаря IDE ардуины я сумел "стартануть" в изучении СИ. До этого (лет 20-ть назад) нишло ну никак (а на ассемблере уже получалось не плохо). Хоть и читал умные книги. Теперь понимаю, что запустить, а уже потом разобраться как работает тот же "Блинк", гораздо эффективнее в плане изучения СИ, чем "заталкивать" в себя толстые книги и в результате не сделать ничего сколь нибудь работающего. Думаю, что я не один такой.
Простая задачка. Оцифровать 4 канала сетевого напряжения с периодом не хуже 50мкс посчитать RMS (Это который крень квадратный из суммы квадратов) и вывести на дисплей. Делать каждый период (50 герц) сети. Мега сможет со своими 2 DMIPSa ? У STM32f103c8 расчет занимает 1 милисекунду. Остальное время процессор спит. Оцифровка и складирование в память работает автоматически. Без DMIPS. Заставить Нану уложиться в 20 мс период я не смог. Конкретная задача. Где DMIPSы? В сентетических задачах, которые к жизни имеют опосредованную привязку?
Ну так вот и продолжайте рассказывать всем в том же духе "заставить нану я не смог". Продолжайте сравнивать 32-х разрядную фигню с 8-битной упрощенной моделькой .. ей тут самое место. :)
.. я вот тоже свой "Электроника МК-61" не смог заставить управлять ни одним мотором робота по причине отсутсвия в корпусе калькулятора каких-либо управляющих выходов .. и чё? :)
ага. отдельный район вам без мексов, ниггеров и вежливыми полицейскими.
ATtiny13A 101 применение как-то кантуются и вы перетопчетесь.
Ну так это же AVR, нафига тиньке отдельный район? А STM совсем другие камни, с другой "идеологией".
Если хотите сравнить производительность, то вот вам пример:
https://youtu.be/bIRAWJz7li4
Сабж набирает 63 fps, вот ссылка на библиотеку:
http://www.rinkydinkelectronics.com/library.php?id=79
Но, на видео МК разогнанный до 120 МГц, к стати, посредсвами той же адской Arduino IDE.
Ну так вот и продолжайте рассказывать всем в том же духе "заставить нану я не смог". Продолжайте сравнивать 32-х разрядную фигню с 8-битной упрощенной моделькой .. ей тут самое место. :)
.. я вот тоже свой "Электроника МК-61" не смог заставить управлять ни одним мотором робота по причине отсутсвия в корпусе калькулятора каких-либо управляющих выходов .. и чё? :)
Архат, это ты типо разрешил?
.. я вот тоже свой "Электроника МК-61" не смог заставить управлять ни одним мотором робота по причине отсутсвия в корпусе калькулятора каких-либо управляющих выходов .. и чё? :)
Просто вы не умеете его готовить. Радио 1988 №3. Дедушку вашего 61 заставляли управлять внешними устройствами :-)
DUE тоже "другой с другой идеологией", но его нигде с ардуиновских форумов не гонят, а "притащили" его сами отцы основатели. Еще есть YUN, который использует уже третью идеологию -- MIPS. И как-то уживались до сих пор эти идеологии под общей ардуиновской крышей. В этом смысле стоит смотреть на STM32Duino, как на некий сорт ардуин, выросших в дикой природе. Важно, что он может быть употреблен стандартыми ардуиновскими средствами и укладывается в общую концепцию.
Прелесть ардуины в том и заключается, что не обязательно знать, что там "внизу", чтобы взяться за изготовление девайсов собственной конструкции.
Как же я люблю этот форум ^_^
Как же я люблю этот форум ^_^
Я тут уже около 3-х лет тусуюсь, и вижу что особо ничего не поменялось.
По теме:
https://www.youtube.com/watch?v=jv1BmJSLb4Y
https://youtu.be/yb-sQ7HLly4
Показан пример плавного старта DC двигателя. Практической пользы пока что не имеет, просто демонстрация возможностей stm32f103.
Arduino IDE sketch:
stm32f103 запрограммировал в Arduino IDE. Частота PWM равна 20 KHz:
pwmtimer.setPeriod(50); // 20 KHz, PWMresolution = 3600
Шпаргалка по частоте ШИМ при помощи функции setPeriod()(актуально для среды разработки Arduino IDE) (с) http://stm32duino.com/viewtopic.php?p=12493#p12493 .
Схема выглядит вот так, только вместо 12 36В, а вместо составного TIP122 отечественный КТ827, резистор на 1 кОм, диод какой-то на 10 А 200В.
Зачем быстрый процессор, если новички "засрут" код delay() ями. Новичкам надо научится хотя бы кататься на велосипеде и не падать.
Процессор не должен быть "быстрым", он должен быть "в самый раз".
Вот новички и пытаются отрихтовать контроллер в соответствии со своими представлениями о прекрасном.
А чё, плавный старт DC двигателя, да еще и без учета влияния нагрузки, такая охереннно сложная задача?! Куда катится этот мир...
А чё, плавный старт DC двигателя, да еще и без учета влияния нагрузки, такая охереннно сложная задача?! Куда катится этот мир...
Полезности у кода на видео ноль, я с этим соглашусь, это всего лишь демонстрация кое каких фишечек стм32 и ардуино иде.
Акуеть .. быстрый старт на Ардуино Нано продемонстрирован любителям STM на Робофесте-2017. Научитесь так кататься - пишите исчо. :)
Добрый день, нет ли у вас примера работы с SD-карточками по SPI на stm32f103 через arduino-ide? Интересует создание .txt файлов, записи в них данных итп.. Был бы очень благодарен.
Убил вечерок на данный проект, ну как убил, перевёл его из ардуино на стм32, работает пошустрее чем на нано.
Убил вечерок на данный проект, ну как убил, перевёл его из ардуино на стм32, работает пошустрее чем на нано.
Т.е. 20 fps 328-й Атмеги не хватает?
Убил вечерок на данный проект, ну как убил, перевёл его из ардуино на стм32, работает пошустрее чем на нано.
Красиво, поделитесь кодом (для дуины) и не удаляйте комменты из кода :)
DUE тоже "другой с другой идеологией", но его нигде с ардуиновских форумов не гонят, а "притащили" его сами отцы основатели. Еще есть YUN, который использует уже третью идеологию -- MIPS. И как-то уживались до сих пор эти идеологии под общей ардуиновской крышей. В этом смысле стоит смотреть на STM32Duino, как на некий сорт ардуин, выросших в дикой природе. Важно, что он может быть употреблен стандартыми ардуиновскими средствами и укладывается в общую концепцию.
Прелесть ардуины в том и заключается, что не обязательно знать, что там "внизу", чтобы взяться за изготовление девайсов собственной конструкции.
Спасибо вам. Спасибо, что вы есть. Отдельное спасибо - за то, что вас легион))
Сразу оговорюсь - мне нечего сказать по сути сравнения "Ардуино vs STM32". Я STM пока даже в руках не держал. Но я не понимаю, почему эта тема вызывают такую резко-негативную реакцию у многих старожилов. Такое впечатление, что у каждого из них есть что-то личное к платам STM.
Думаю, что материалы по STM были бы весьма полезны на форуме. Разве "высокий порог входа" означает, что эти платы нужно отбросить? Да, совсем зеленым новичкам они не подходят, нужно настроить АрдуиноИДЕ (суперсложно?) и придется править библиотеки (а их и для дуин приходится править, ибо в половине библиотек говнокод). Но зато есть куда двигаться дальше. Да и на форуме среди бесконечных тем "как слить два скетча" будет что почитать
Сразу оговорюсь - мне нечего сказать по сути сравнения "Ардуино vs STM32". Я STM пока даже в руках не держал. Но я не понимаю, почему эта тема вызывают такую резко-негативную реакцию у многих старожилов. Такое впечатление, что у каждого из них есть что-то личное к платам STM.
Разумеется есть ))) Просто пробовали STM и есть чего сравнивать. И другое пробовали другое, например пики, 51 а из arm-ов свежих например OrangePI. И соотваетственно отношение сформировалось к каждому. И если отношение к стм-у у разных людей схожы, то в этом есть рациональная составляющая. Ну и реакция некоторых неадекватных проффесиональных любителей ;) этой железки тоже накладывается разумеется.
ПС. Года 4 как купил был один maple, проект на нем сделал, разумеется не в рамках либ ардуиновских, напрямую с портами, таймером, АЦП. Больше не хочется.
b707, я недавно перешёл на Arduino IDE->STM32 . Эмоции только положительные -не нарадуюсь! Ардуиновская среда сильно облегчает вход, многие сторонние библиотеки написанные для AVR "ардуиновским" языком так-же работают и на stm32. Например i2C дисплей заработал сразу, хотя в его библиотеке ни слова про поддержку ARM. Можно перейти на stm, и спокойно говнокодить как прежде, потихоньку изучая особенности перефирии. Так же поразило обилие русскорязычных материалов по перефирии stm32. Правда вот библиотека maple, на которой базируется поддержка переферии stm32 в аддоне arduino IDE к сожалению задокументирована крайней хреново: вот вам дижитал райт, вот пинмоде и аттач интерраптс и пошли нафиг. Так что чайникам будет тяжеловато слезть с быдлокода. Но "кто ищет, тот всегда найдёт" :)
ПС. Года 4 как купил был один maple, проект на нем сделал, разумеется не в рамках либ ардуиновских, напрямую с портами, таймером, АЦП. Больше не хочется.
Может потому и не хочется ?
Может стоило попробовать библиотеки производителя, там с настройками все не плохо. Тут ситуация такая, не важно, хочется или нет. По факту STMки несравненно быстрее и мощнее, другой вопрос нужно ли это для конкретной задачи. Так что, ИМХО, на данный момент это всего лишь вопрос необходимости выбора. И то что в будущем STM выжмет атмел так как атмел выжал пики можно не сомневаться.
В общем STMка в среде адруино ИДЕ вещь полезная, как бы там "любители чистых си" не обсирали это самое IDE.
ПС. Года 4 как купил был один maple, проект на нем сделал, разумеется не в рамках либ ардуиновских, напрямую с портами, таймером, АЦП. Больше не хочется.
Может потому и не хочется ?
Может стоило попробовать библиотеки производителя, там с настройками все не плохо. Тут ситуация такая, не важно, хочется или нет. По факту STMки несравненно быстрее и мощнее, другой вопрос нужно ли это для конкретной задачи. Так что, ИМХО, на данный момент это всего лишь вопрос необходимости выбора. И то что в будущем STM выжмет атмел так как атмел выжал пики можно не сомневаться.
В общем STMка в среде адруино ИДЕ вещь полезная, как бы там "любители чистых си" не обсирали это самое IDE.
Вы действительно считаете что библиотеки производителя обеспечат большую скорость чем прямая работа с переферией? Хотя какая нафиг разница что считает человек написавший "STMки несравненно быстрее и мощнее" даже не утруждая себя указать быстрей чего конкретно. Сравнивали уже и не раз, ниче там выдающегося нет, ищите на воруме подробности.
ПС. Когда действительно нужна моща и производительность пользую OrangePi 1,4ГГц на четыре ядра, 1ГБ ОЗУ 15 баксов с езернетом, видео, аудио на борту и ОС с набором служб. Аналог от "несравненного" STM приведите. Я серьезно спрашиваю, рассмотрю варианты.
Вы действительно считаете что библиотеки производителя обеспечат большую скорость чем прямая работа с переферией? Хотя какая нафиг разница что считает человек написавший "STMки несравненно быстрее и мощнее" даже не утруждая себя указать быстрей чего конкретно. Сравнивали уже и не раз, ниче там выдающегося нет, ищите на воруме подробности.
пусть "там нет ничего выдающегося" - но хотя бы то что в STM32 как минимум вдвое больше памяти под программы и в 10 раз больше памяти под данные - это вроде в доказательствах не нуждается? Или это тоже не так? А куча встроенной перефирии? хотя бы 3 хардварных сериала? и тд
Ок - пусть правы те, кто говорит что более высокая частота СТМ не дает ей преимуществ по скорости - но одного выигрыша в обьеме памяти более чем достаточно, чтобы как минимум попробовать перейти с нано или уно на стм32
А расбери или оранж - это совсем другой класс. Они как минимум в 15 раз дороже. Да и нафиг не нужен полнофункциональный комп для управления десятком датчиков и светодиодов...
"в STM32 как минимум вдвое больше памяти под программы"
И, не надо забывать, вдвое большая ширина команды.
"А куча встроенной перефирии? хотя бы 3 хардварных сериала?"
А у 2560 тоже 3 хадварных сериала
Но, я согласен, AVR-кам ОЗУ бы побольше не помешало. Килобайта бы 32 хотя бы, и не было бы таких задач, с которыми бы не справилса AVR. На Спектруме вон какие чудеса делали. :)
"А куча встроенной перефирии? хотя бы 3 хардварных сериала?"
А у 2560 тоже 3 хадварных сериала
ну да, только ценник различается раз так в восемь...
СТМ имеет смысл попробовать. Заказал на али, жду...
Я тоже заказал. Тоже хочу пащюпать. Тоже жду.
Кстати, может кто подсказать проверенный китайский магазин, который торгует SPI SRAM?
Три раза заказывал 23x640 у трех разных продаванов, и ни разу ничо не пришло. :(
<del> Жутко извиняюсь, если кто-то может восстановить пост - сделайте, плиз.. ошибся кнопкой.. <arhat109-2>
Я тоже заказал. Тоже хочу пащюпать. Тоже жду.
Будьте уверены, когда дождетесь, сами убедитесь, что быстрее. Ибо аппаратное 16 битное умножение, И ДЕЛЕНИЕ, ОСТАТОК ОТ ДЕЛЕНИЯ, БИТБАНДИНГ это то что вы используете ежедневно и то чего априори нет у атмела, если это не ардуино DUE (c тем же кортексом).
Знаете, откуда беруться истерики матерящие 32 STMи ? От нежелания осваивать новое, от лени почитать, от скудоумия воспринять чего то отличное от того, что они , по их мнению, уже освоили и знают.
"Знаете, откуда беруться истерики матерящие 32 STMи ? От нежелания осваивать новое, от лени почитать, от скудоумия воспринять чего то отличное от того, что они , по их мнению, уже освоили и знают."
+100500 !!!
"И, не надо забывать, вдвое большая ширина команды."
И что? АВР в пролёте, в полном, уже сравнивали.
"А у 2560 тоже 3 хадварных сериала"
Убожество 2560 с 3-мя сериалами. а чем гордиться то?
"Но, я согласен, AVR-кам ОЗУ бы побольше не помешало. Килобайта бы 32 хотя бы, и не было бы таких задач, с которыми бы не справилса AVR."
Чушь! АВР своё отжил уже, морально и физически, во всех отношениях.
только дебилу не понятно
+++ Ну наконец-то, хоть один умеет правильно это слово написать, а то наш логист все время на диму билана == дибил ссылается :)