Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

IAR и STM32 CORTEX M0. Часть 0x00 (пустой треп и отмазки)

1. Введение (Почему IAR)
В прошлой статье по IAR я объяснил выбор просто: потому что не Keil. Ну а если более развернуто, то еще и потому что не Coocox и не Eclipse. Давайте вместе пройдемся по минусам:

  • Keil — дорогой (upd: хотя в комментариях подсказывают, что для STM32F0 и STM32L0 он вообще бесплатен!);
  • Coocox — нет симулятора, нет поддержки AVR;
  • Eclipse — имеет симулятор, но убогий, работающий только под бубном;

Что предлагает IAR?

  • Во-первых, бесплатную версию (лимит кода 16 Кб для Cortex-M0/M0+/M1).
  • Во-вторых, нормальный симулятор для отладки кода — кто-то сейчас поморщит носом, что настоящие джедаи отлаживают только в железе, а мне вот лениво каждый раз заливать прошивку, да и свободы как-то больше.
  • В третьих, IAR работает и под AVR, для этого нужно скачать соответствующую версию и при установке выбрать другую директорию (адепты AVR Studio дружно негодуют, а я не хочу курить две IDE, когда можно ограничиться одной).

С инструментами разобрались, перейдем к подопытному...

STM32F030F4P6

2. Что будем изучать
А изучать мы будем микроконтроллер STM32F030F4P6. Потому что он самый простой для домашней пайки. А еще самый дешевый — эдакий attiny13, только в мире STM32. Стоит чуть-чуть дороже тиньки, зато флеша 16 Кб (как раз в лимиты бесплатного IAR вписались!) и ног в три раза больше. А про богатство периферии (АЦП, UART, IRTIM...) я вообще молчу.

Изначально, у меня лежала душа к раскурке отечественной микросхемы от Миландр (К1986ВЕ92QI), но доллар подскочил, цена «отечественного» мк резко выросла — со 160 до 400 рублей — и как-то расхотелось иметь с ними дело...

3. Крик души, который можно не читать (и не писать)
Знаете, растущее количество материала по 32-битным контроллерам несомненно радует: сайты, статьи, отладочные платы... Но черт побери, нельзя же так зацикливаться на последних! Нет, правда, я всеми руками за облегчение жизни разработчиков, за быстрый старт... Только ведь довольно быстро надоедает управлять диодиками на дискавери-платах, хочется чего-то реального, не оторванного от жизни — и мы опять скатываемся в ардуино!

Ну а как иначе, если почти в каждой вводной статье советуют: «Начинать дружить с контроллерами STM32 надо с...»

  • Плат STM32Fx-Discovery
  • Программатора Versaloon
  • Программатора-отладчика ST-LINK-V2
  • STM3220G-EVAL
  • Супер-мега-платы-звоните-прямо-сейчас

Я понимаю, что авторы этих статей не хотят терять ту публику, которая паяльник держит второй раз в жизни, но почему так популярен программатор «5 проводков» для AVR и так бессовестно обходится стороной «2 (!) проводка» на STM32? Наверное, потому что на отладочных платах есть встроенные пищалки, дисплеи, диодики... Плюс возможность отладки. Нет, вы серьезно?! Это правда то, что нужно позарез начинающему?

Странно, ведь я всегда считал, что начинающему нужна возможность как можно быстрее пройти этап трехколесного велосипеда. В чем прелесть 5 проводков? В том, что после программирования, плату с микрухой можно сразу затолкать в корпус. И не бояться, если что-то сгорит — новая микруха стоит копейки. Зато вокруг STM32 просто какой-то ореол таинственности для непосвященных. Что, действительно? Для того, чтобы начать изучение stm32 так важна функция отладки? Нет, это правда очень полезная фича, но не в рамках же «помигать диодиком»! Что, не все могут паять такую мелочь? Так можно легко научиться. И даже без фена! Смысл вообще их изучать, если на практике применять не собираетесь? И, наконец, самое главное: разве начинающий настолько беспомощен, что не сможет сам решить, какую обвязку ему выбрать: диодик или дисплей?

В первых статьях настоящего цикла не будут использоваться готовые отладочные платы. Не будут от слова совсем. Полигоны для испытаний мы спаяем вместе, попутно вкурив их работу. А вот как вкурим, пойдут примеры на плате Pinboard (а то что, я зря ее покупал?) — впрочем, это для моего удобства, вы сможете обойтись и без нее.

На этом водная часть закончена, кто дочитал — молодец, а остальные уже читают следующую статью, чего и вам желаю!

Теги:

Опубликована: Изменена: 20.05.2017 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 1.6 Проголосовало: 1 чел.

Комментарии (26) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
shodan_micron_servis #
Функция отладки для STM32 - жизненно необходимая вещь!
Архитектура камней настолько сложна и глючна, что без отладки запустить столь-либо маломальски значимый проект невозможно вообще.
Тоесть я говорю не о мигании светодиодом, а о ситуации когда прошивка уже более 30-40 КБ флеша и задействовано более 70% переферии кристалла.
Для ситуации когда прошивка меньше, STM32 вообще не нужен. Ибо с мелкими проектами суперски справляются АВР-ки.
Это, уважаемый автор, я говорю как человек который уже много лет делает проекты только на STM32, и только с полной выкладкой по периферии и математике.
Ну а без отладки, можно гарантированно помигать светодиодиком. :)
Ответить
0
shodan_micron_servis #
Я собственно к чему веду... ненужен начинающим STM32.
STM32 - нужен уже тем, кому не хватает 8-ми битных АВР-ок.
А на таких проектах, извольте 100% поддержки флеша компилятором, извольте отладку... и прочие фенечки типа трассировки ... без которых работа с STM32 - уже не работа а откровенный BDSM.
Отредактирован 18.05.2017 11:47
Ответить
0

[Автор]
DySprozin #
При всем уважении к вашему опыту, я считаю, что на начальном этапе этими вещами можно пренебречь в угоду простоты (и дешевизны!) конструкции.

Раскурка основной периферии микроконтроллера не упирается ни в 30, ни в 40, ни даже 3 кБ флеша, если речь не идет об использовании готовых библиотек.

По мере усложнения проектов к новичку самому придет понимание, что требуется отладка и опять-таки, он уже сам будет готов выбрать: ST-LINK-V2 или дискавери-плата, или еще что-то. А для переслать пару байт через SPI/USART, снять данные с АЦП, получить ШИМ и т.д. это явно лишнее.

Безусловно, аврки могут многое, но лично меня очень отталкивало при переходе с АВР, что везде мне тыкали в нос дискавери-платами, хотя мне хотелось для начала просто "помигать диодиком" и ради этого покупать отладочную плату казалось избыточным, даже если бы она стоила не более 100 рублей.
Ответить
0
shodan_micron_servis #
По опыту обучения новичков, скажу что STM32 с их довольно сложным мануалом для понимания, слабо подъемная для новчика штука.

Ну а готовые библиотеки тут не при чем. Речь же не идет о банальной инициализации периферии. Речь идет о обработке данных. Код растет именно на математике, а не на библиотеках. Ну если конечно не писать математику на асме :)

Вообщем я считаю что тыкать "дискаверей" это конечно безусловно неправильно, т.к. платы эти сами по себе ущербны даже излюбленный всеми F4, и не дают понимания, что "там под капотом пламенный мотор".
Тыкать надо готовым проектом, а не отладочной платой :)
Мне кажется сутью отладочных плат от STM является только получение дешевого программатора-отладчика под все семейство сразу.

Кстати в списке отладчиков-программаторов отсутствует самый главный Keil ULINK :) Именно с него надо начинать "дружить" :)
Отредактирован 18.05.2017 13:22
Ответить
0

[Автор]
DySprozin #
Тыкать надо готовым проектом, а не отладочной платой :)
Можете привести примеры таких проектов, которыми можно "ткнуть" в пику отладочным платам?
Ответить
0
shodan_micron_servis #
Ну возьмем к примеру два моих последних любительских:
раз
два
Несмотря на кажущююся простоту, весь "пламенный мотор под копотом" задействован по самое "не хочу".
Во втором вообще пришлось заюзать DMA, USB. DAC, ADC с регулярками и инекцией, COMP2, RTC, все таймеры, PLL, почти весь RAM, EEPROM, запись во флеш, температурную компенсацию, приоретизацию NVIC, и возможно еще что-то "по мелочи" что я сейчас вероятно уже не вспомню.
PS. Это какраз именно те случаи, когда АВР-ка просто физически не способна обеспечить нужное быстродействие(с кодом любой красоты и оптимальности) и нужную перефирию.

Когда человеку тыкают мигающим светиком на дискавери или каким-нить новомодным акселерометром впаянным на F4, это не создает понимания что это мощьный и очень гибкий МК. Потому как на ардуине такие давно есть. А если потыкать в нос картинкой с импульсами милисекундной длительности, амплитуду которых надо измерить с высокой точностью на одно преобразование, а она уникальна для каждого импульса. И прифаршеровать это еще в добавок условиями обработки до 49000 таким импульсов в секунду, и их мат. анализ в придачу. То человек начинает понимать, что это действительно мощный МК. До нюансов получения PWM сигнала способного держать стабильные 1.1 кВ напряжения с дрейфом в пару вольт в долгосрочной перспективе с кучей математики и периферии для этого, обычно народ не дочитывает :)
Поправка: конечно речь идет о "МИКРО-секундной" длительности.
Ответить
+1

[Автор]
DySprozin #
Ну возьмем к примеру два моих последних любительских:
раз
два
вы непоследовательны. Проекты "любительские", но в первой же статье пишете:
Исходных кодов прошивки и платы я не предоставляю, в связи с ограничениями о неразглашении данных.
При всем уважении, когда вы писали:
Тыкать надо готовым проектом, а не отладочной платой :)
я надеялся, что вы предложите что-то в пику отладочной плате, но в чем преимущество ваших плат с точки зрения обучения?..
Ответить
-1
shodan_micron_servis #
DySprozin - не публиковать исходников кода, это священное право любого автора.
Ну а схемы, гербера, прошивки и монтажки есть.
И вы очень хитро опустили фразу
Однако вы можете без проблем самостоятельно собрать устройство для личных некоммерческих целей.
Так делать некрасиво.
Ответить
+1

[Автор]
DySprozin #
не публиковать исходников кода, это священное право любого автора.
да, очень органично смотрится апеллирование к священному праву, когда проект коммерческий ;)

вы очень хитро опустили фразу
В данном контексте она неважна - вы пишите, что "вот вам любительский проект" и тут же даете ссылку на коммерческий - это по-вашему красиво?
Ответить
0
простоя #
Отладчик - это моветон, уважаемый. Если вы понимаете код, который сами пишете, то ошибки исправляются без отладчика даже в сложном проекте. Если не понимаете - лучше не пишите совсем. Не знаю сколько лет вы делаете проекты, но я тоже делаю проекты очень много лет, в том числе очень сложные проекты, и под разные архитектуры. Отладчик не использую за ненадобностью.
Ответить
0
Александр #
Не тем загоняетесь.
1. Не каждый новичок сможет сделать плату под STM32 с их шагом а тем более запаять
2. Полно китайских плат
3. Было бы удивительно если STM не стал везде как пример вставлять свои DVBOard
4. Да в будущем CubeMx и генерируемый им код будет тормозить разите
5. Да в HAL есть косяки и приходится под свои нужды их править.
6. Когда достаточно будет опыта вы сами сможете постепенно отказаться от HAL драйверов
7. Иногда действительно полезно заглядывать в HAL т.к. некоторая периферии сходу просто не запускается а у некоторой есть просто баги как писалось выше
8. Как то удивительно начинающий начинает что то пинать и делать выводы
Ответить
0

[Автор]
DySprozin #
1. Любой новичок, способный спаять два проводка (спаять, а не повесить соплю), способен запаять TSSOP20, да и остальные тоже не проблема, это вам не ножки на пузе, как у CP2102
2. Полно китайских *любое_устройство*
3. Но не в каждую же статью SMT32 в рунете
4. К чему это?
5. К чему это?
6. Скорее, наоборот, когда будет достаточно опыта, тогда и следует переходить на HAL, чтобы в случае косяков последней знать, в какую сторону копать
7. Что подтверждает пункт 6.
8. Как-то удивительны пинки в комментариях: "полно китайских плат" и "не каждый новичок умеет паять".
Отредактирован 18.05.2017 17:45
Ответить
0
Александр #
Не меряйте всех по себе. Я не преуменьшаю ваши способности.
Но 120% те кто начинают не кинутся вот прям паять сразу.
А те кто уже знаком с котроллерами, как раз таки и возьмут Discovery - потому что им нафиг не нужно заморачиваться с платами.
Поглядите на проект Амперка, они не зря выбрали концепуию мин. проводов максимум модуле.

И да. это не пинки в комментариях.
Если вы рискнули писать статьи то и принимайте все то что вам говорят при чем не с высока своих знаний а с осознания что вы еще чтото не знаете.
Вы явно не эксперт т.к. они не сидят на таких сайтах и вообще им не в прикол тратить время на такие статьи
Успехов
Ответить
0
shodan_micron_servis #
8. Это нормальная тенденция. Так сейчас делает каждый начинающий. И что характерно, любая обучающая статья начинается с доказывания что именно его выбор самый верный. А все остальное криво/плохо/очень дорого :)
Отредактирован 18.05.2017 18:51
Ответить
0

[Автор]
DySprozin #
Вы неправы. Любой курс должен начинаться с обоснования его необходимости. В данной статье не было ни слова, что "все остальное криво/плохо/очень дорого"
Ответить
0
radiomanoff #
Поддержу автора. Статья интересная и нужная.
А по теме - STM32F030F4P6 микроконтролер из серии "value line" имеет некоторые ограничения по переферии и ограниченое гарантированое количество циклов "запись-стирание", по моему 1000 раз. Их плюс в цене, я брал в Китае от 10шт по 0,55$ за "камень", что как говорится Atmega отдыхает.
И все-же на мой взгляд, гораздо интересней для учебы МК STM32F042F6P6 :
- корпус TSSOP20;
- Flash-память - 32 кБайт;
- RAM-память - 6 кБайт;
- 48 MHz CPU, USB, CAN and HDMI CEC functions
Вот где разгулятся... Я на таком МК делал себе отладочную платку: переходник TSOP20-DIP и минимальная обвязка. На ней отлаживаю все, а уже потом "подгоняю" код под F030F4.

И еще, Keil по-моему вообще без ограничений для STM32F0xx.
Ответить
0

[Автор]
DySprozin #
Спасибо за поддержку, но данная статья — ни о чем (название намекает). О нужности можно будет судить по следующим статьям цикла (часть из них сейчас проходят модерацию).

по моему 1000 раз
все верно, 1 kcycles для всех мк серии cortex-m0. Впрочем, Cortex-M4 не сильно лучше: 10к циклов - о полноценной замене eeprom не может быть и речи.

гораздо интересней для учебы МК STM32F042F6P6

по аналогии - attiny45 интересней, чем attiny13... но изучив последний, можно легко перейти на первый :)

но за наводку спасибо, возможно, когда буду разбирать USB, возьму на вооружение этот камушек.

Хотя может и не понадобится — на we.easyelectronics недавно обсуждалась либа виртуального usb - stm32f030-vusb. Будем посмотреть, по моему опыту с тиньками, программный усб не слишком стабилен: может на одном компе работать нормально, а на другом "неизвестное устройство"... причем, на том же компе меняешь усб-контроллер - и все заводится.

И еще, Keil по-моему вообще без ограничений для STM32F0xx.
да? не слышал. Впрочем, iar дает бесплатно играться с любыми камушками (по-моему, для старших кортексов ограничение уже не 16, а 32 кб)
Ответить
+1
radiomanoff #
И еще, Keil по-моему вообще без ограничений для STM32F0xx.
да? не слышал.
С 2015 года пакет программного обеспечения MDK ARM от компании Keil для микроконтроллеров STM32 на ядрах Cortex-M0 и Cortex-M0+ предоставляется без ограничений по размеру кода и времени использования. Кроме этого, нет никаких отчислений при использовании среды в коммерческих целях, применяя микроконтроллеры STM32 семейств STM32F0 и STM32L0.
ссылка - http://www.compel.ru/2015/03/20/keil-uvision-dlya-stm32f0-i-stm32l0-bez-ogranicheniy
Просто с IAR у меня как-то не срослось, а Keil... ну люблю я его.
А по поводу МК, есть еще интересный экземпляр STM32F030K6T6 вообще в 32-yх выводном корпусе LQFP-32, шаг 0,8мм(типа Аtmega8). К примеру шаг у STM32F030F4P6 - 0,65мм.
Кроме того есть еще L-серия(STM32L0xx) c EEPROM и уменьшеным потреблением для батарейного питания.
Ответить
0

[Автор]
DySprozin #
Хм... интересненько... спасибо за наводку!
p.s. Ух ты, и активация гораздо приятней, чем IAR - просто на официальном сайте лежит ключик - юзай кто хочет!
Я по таком случаю даже статью немного поправлю
Ответить
0
GOR23 #
Eclipse вообще никто не юзает? С ним хоть и возни много зато редактор удобный. Ещё есть СLion (шикарная ide для си). Вот только возни чтобы настроить ещё больше, подключение отладчика к ней я так и не поборол.
Ответить
0

[Автор]
DySprozin #
хм.. В моем понимании, крутость любой IDE заканчивается на подсветке и автозавершении. Подсветка сейчас вроде во всех IDE практически одинакова, в чем фишка редактора Eclipse?
Ответить
+1
GOR23 #
Подсказки: написал пару начальные буквы переменной или функции предложило варианты, в структурах их содержимое можно смотреть. Переход на объявление функции по клику на неё с вместе с Cntrl (в kiel тоже такое есть только ни как руки не доходят горячие клавиши назначить или посмотреть назначенные). Ну и рефактор - переименовываем переменную или функцию в одном месте меняется по всему коду. Может и мелочи, но быстро привыкаешь. Интеграция с git у эклипса с коробки. Есть и минусы достаточно весомые: хреновый отладчик в котором больше 4х брейкпоинтов просто так не ставиться (ну это больше к OpenOcd вопрос). Недавно скачал плагин под J-link, там и отладчик свой, но с ним ещё не пробовал.
Ответить
0

[Автор]
DySprozin #
Интеграция с гитом и плюшки с функциями... Звучит весьма вкусно, убедили!
Ответить
0
CoBa31Rus #
Это Eclipse то более убог чем iar? O_O На фоне iar'a даже keil выглядет как IDE а не блокнот с компилятором.
Ответить
0

[Автор]
DySprozin #
Это Eclipse то более убог чем iar? O_O
Я так написал? Где? Приведите цитату, пожалуйста.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Регулятор мощности 2 кВт 200 Вт усилитель класса D на IRS2092
вверх