Немного продолжим...
4. Как облегчить себе жизнь...Итак, первую программу мы скомпилировали, можно заливать в МК, но тут возникает вопрос - а куда же подключить тот самый светодиод чтобы он у нас мигал???
Конечно самое правильное - залазить с головой в Datasheet и читать, читать, читать... А с учетом того что на каждое подсемейство есть как минимум 3 базовых даташита:
1. Просто Datasheet, тот который нам предлагают
скачать на
первой же страничке с описанием МК - маленький (всего 99 страничек убористого англицкого текста) обзор функций.
2. Reference Manual - можно найти там же во вкладке Design Resources, "RM0091: STM32F0x1/STM32F0x2/STM32F0x8 advanced ARM-based 32-bit MCUs" - основной для изучения, там подробно расписывается устройство каждого модуля, его регистры, настройки и т.д. 988 страниц. А кому легко?
3. Programming Manual - там же, "PM0215: STM32F0xxx Cortex-M0 programming manual" - это для самых маньяков, пособие по низкоуровневому программированию. Честно говоря мне ни разу не пригодился, поэтому просто для информации. Тут всего 90 страничек.
Но это же не путь истинных джедаев, все давно придумано за нас
Поэтому в данной части хочу представить список полезного программного обеспечения и инструментов.
1. STM32CubeMX
Скачивается с сайта ST, ссылка на последнюю версию легко находится
гуглом.
Вот она, та самая палочка выручалочка.
Устанавливаем, запускаем и нажимаем New Project:
Здесь мы можем выбрать интересующий нас МК, или подобрать нужный по параметрам - корпус, наличие нужной периферии, семейство. F050 можно не искать, она осталась в предыдущих версиях, поэтому смело выбираем STM32F031F4Px.
Попадаем в основное окно, где видим наш МК со всеми его ножками, что на какую настроено. Можно включить какую-нибудь периферию и сразу увидеть на каких ногах она будет работать. Если выделено красным - значит нужные ножки уже заняты.
Для примера один из моих текущих проектов (управление полкой с клубникой)
Во вкладке Clock Configuration можно посмотреть и настроить тактирование всех модулей. Configuration - тонкая настройка периферии. Power Consumption Calculator - расчет потребления мощности.
Кроме того имеется возможность генерировать код инициализации в соответствии с выставленными параметрами. Честно говоря не пользовался ни разу, ибо когда начинал такой штуки еще не было, но иногда подсматриваю если что не получается сделать самому.
Как можно увидеть, ног PC8 и PC9 у нас нет и в помине, поэтому программу придется подправить, но об этом в следующих частях.
2.
STM StudioПолезная программа для визуальной отладки приложений в реальном времени. Может отслеживать любую переменную в памяти МК, даже не запуская Debugger. То есть в любое время можно подключиться к работающему МК и посмотреть что творится у него внутри в графиках.
Для примера - отладка ПИД регулятора для управления теплым полом:
Верхний график - зависимость установленной мощности от температуры с течением времени, нижний - текущие значения темпеературы и мощности.
Точность в 1 градус меня вполне устроила, работает второй месяц без выключения.
Железо:3. Logic Analyzer
На осциллограф я пока не сподобился, а иногда интересно посмотреть что происходит на ногах в процессе работы. Самое доступное решение - логический анализатор типа
USB Saleae 24MHz 8Channel Logic Analyzer. За 300 р. мы получаем на экране компа все сигналы в удобоваримой форме, в том числе и с расшифровкой основных протоколов.
4. Паяльник с контролем температуры
Обычный китайский паяльник на 40 Ватт я поменял на термостабилизированный еще до увлечения МК. Это был один из множества дешевых китайских клонов по 300 р. Неплохая штука, но чего-то вечно не хватало, да и найти нормальные жала под него та еще заморочка. Поэтому на этот новый год сделал себе подарок -
Goot PX-501. Отличнейший инструмент, своих денег точно стоит. Нагрев моментальный, температуру держит стабильно, жала подходят стандартные Hakko. Заказал на ebay набор жал на все случаи жизни - и вот оно счастье! Парочку переделал на микроволну - теперь никаких проблем ни с LQFP корпусами, ни с лужением плат.
Да, паяю и лужу я способом, который мне показался самым удобным и удачным. А именно - ПОС-61 + глицерин в качестве флюса. ОБИЛЬНО смазываем нужное место глицерином (его можно литрами закупить у электронных курильщиков, мне баночки 100 мл уже на год хватило и еще половина не ушла), набираем в "микроволну" припоя, и легким движением руки проводим по ножкам микросхены/дорожкам и т.д. Глицерин при этом приятно шкворчит, пайка получается чистой и блестящей, никаких соплей или перемычек, смывается простой водой - в общем одно удовольствие!
PS: да, я еще и травлю в перекиси с лимонной кислотой. В общем старый извращенец
Ну вроде пока все что вспомнил, если что - позже добавлю. Если у кого есть свои секреты или полезные мелочи - делимся не стесняемся.