Рейтинг
27.02
голосов: 29

О блоге

Работа с ядром CortexM3 и периферией STM

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (261)

ploop _YS_ m3hc Krieger Tabke marvin_yorke Ultrin WildCat hexanaft Vga Alatar mzw Reverb grand1987 dievgen woogle PahanMenski anper citizen ZiB

Все читатели блога

STM32CubeMX и драйвера HAL для серии STM32F1xx

Тихо вот так, как мне кажется, без особой помпы вышло обновление STM32CubeMX под номером 4.6
Изначально обещали (на форуме ST) к концу декабря, файлы и правда датированы 16.12.2014, но обнаружил на сайте ST только вчера:
www.st.com/stm32cube
После установки самого Куба — в обновлениях программы стало доступно скачивание пакета для F1 серии версии 1.0.0
Отдельно от Куба пакет для STM32F1xx можно скачать по прямой ссылке (спасибо freeon):
http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/firmware/stm32cubef1.zip
Также доступна и сама страничка CubeF1 — www.st.com/web/en/catalog/tools/PF260820
Посмотрел, на то что скачалось, — обычный пакет, включающий HAL драйвера, CMSIS версии 4.2, драйвера для плат от ST и куча примеров.
Фактически ST закончила перевод на HAL всей линейки STM32, и теперь следует ожидать «допиливания» уже всего HAL для обеспечения лучшей переносимости кода между разными семействами линейки STM32.

STM32CubeMX start code -> Eclipse быстрый старт -> отладка в Eclipse через ST-Link Discovery

Наверное в инете есть сотни статей с подобной темой. Но, так как тема относится к опенсорсу, — никто не гарантирует результат. Результат-то как правило бывает, но обычно, вначале, лишь частичный. Что-то, как правило, не работает нормально. Глючит. Пугает кучей ошибок и варнингов. Основная тема, лейтмотив опенсорса, — поиск ответа на вопрос «почему не так работает?». В этот момент начинаешь понимать, почему за готовую к работе, из коробки, IDE — просят денюшку, и немаленькую.
Когда начинал знакомится с микроконтроллерами, ограничение кода в 32 кБ казались такими недосягаемыми, а в современное время одно подключение какой-либо библиотеки может съесть значительную часть лимита кода, а ещё хочется и ВЭБ интерфейс к соей домашней поделке приделать, а недавно решил «пощупать» библиотеку libMAD, так код вообще сразу выскочил за 120 кБ…

Основная задача — допилить Eclipse до такого состояния, когда внутри будет весь цикл, от написания кода до отладки. Для генерации начального кода очень хотелось использовать STM32CubeMX, так как кроме свежих библиотек HAL имеется поддержка современной версии CMSIS, уже интегрированная FreeRTOS (в составе куба идет порт FreeRTOS, сделанный по правилам нового CMSIS v3.20), и много других «вкусняшек», а используемая среда Eclipse, не накладывает ограничения на размер кода, да и просто имхо удобней.
У меня получилось. Конечно есть в отладчике Keil'a фишки, которые больше нигде не повторяются. Да и в используемом отладчике OpenOCD реализованы не все функции, которыми может похвастаться Eclipse, но это плата за простоту установки и настройки. Полученным результатом оказался доволен. Во время поиска приемлемого варианта установки, подбора плагинов и других компонентов возникла необходимость сохранить результаты проделанной работы. В основном — что бы не забыть.

Условно всю работу можно разбить на 3 части:
  • Установка и настройка Eclipse.
  • Генерация начального кода проекта в STM32CubeMX и адаптация проекта для использования в Eclipse.
  • Настройка отладки и отладка созданного проекта в Eclipse.

Если Вам интересно — читаем дальше.


Читать дальше

Генератор видео на STM32F407: рецепт быстрого приготовления

Производительность современных недорогих и доступных микроконтроллеров позволяет с лёгкостью решать задачи, за которые было страшно браться, скажем, лет 10 назад. Давайте соберём несложный формирователь видеосигнала на популярной плате STM32F4Discovery.


Читать дальше

Codesourcery CodeBench Lite больше не распространяется бесплатно

Собственно, новость в заголовке. По ссылке можно прочитать следующее:
Sourcery CodeBench Lite releases for ARM EABI, ARM GNU/Linux, ARM AARCH64-Linux, IA32/IA64 GNU/Linux and ELF are no longer available.
Самый «православный» путь — собирать самому из исходников. Для ленивых ( как я) на сайте CooCox-a есть ссылка, чтобы скачать в другом месте. Теперь на сайте Canonical Ltd.
UPD: Искал именно их сборку, чтобы было как в комплекте, по которому осваиваю ARM. Соответствия всё равно не получилось. Узнал много из комментариев.

USB микрофон на базе STM32F4-DISCOVERY

Ранее я уже писал о выводе звука через USB при помощи платы STM32F4-DISCOVERY. А вот реализация микрофона оказалась сложнее. В Интернете не удалось найти подобных проектов.
Самостоятельно несколько раз пробовал сделать USB-микрофон на этой плате, и вот, наконец, получилось.


Читать дальше

Вектора прерываний в C++ стиле

Хочу представить на суд широкой общественности (да и самому не потерять) мою реализацию таблицы векторов прерываний для arm микроконтроллеров STM32. Данная реализация генерируется из asm-файлов SPL, написана на С++ и облегчает работу поддержкой автодополнений и корректной работой с таблицей векторов в памяти.


Читать дальше
  • +6
  • 11 ноября 2014, 17:25
  • dekar

Частотомер на STM32F10x

How it all began…

Как-то появилась у меня задача – померять частоту сигнала с некого датчика, который по сути являлся кварцевым резонатором с внешней схемой возбуждения.

Дано:
  • Cигнал прямоугольной формы
  • Меандр
  • Приведен к логическим уровням микроконтроллера
  • Выходная частота не более 6МГц
  • Погрешность измерений 1Гц


Последний пункт был прописан в ТЗ. Заказчик, как выяснилось позднее, ляпнул его туда с мыслью “лучше – не хуже, авось сделают и так”. Об этом я узнал позднее, а до того момента пришлось откинуть разные варианты реализации, погрешность которых выходила больше – например с делителями входного сигнала.
Сходу ничего готового не нашлось, хотя я был уверен по дороге домой, что на запрос “Частотомер STM32” Google поделится со мною массой готовых устройств – мне лишь останется только залить прошивку и отзвонить заказчику о работоспособном макете.
Не тут то было. Я не нашел практически ничего полезного, но благодаря этому чуть лучше разобрался в работе таймеров STM32, и теперь могу поделится этим с другими!


Читать дальше..

Очередная DevBoard STM32

Захотелось сделать некоторые поделки на STM32 для дома. Так как включать утюг под корпуса с шагом 0,5мм лениво, поискал готовые на ebay, ali и ничего интересного не нашел, все или мелко, или крупно, или дорого, или цвета не того :) В общем решил сделать свою.
Основные требования были, в порядке важности
1. Универсальность
2. Стоимость
3. Экран + кнопки на плате
4. Возможность подключить беспроводные модули
То что из этого получилось:платы


Читать дальше
  • +10
  • 08 октября 2014, 16:15
  • AVF
  • 2

GPIO выход в режиме OpenDrain

Читая даташит при подготовке схемы я напоролся на интересный момент. Есть выводы которые можно использовать в режиме OpenDrain (т.е. открытый сток). Для тех кто не врубился — СТМ32 питается максимум 3.3В (3.6В вообще-то, но интегральный стабилизатор проще найти на 3.3). Большинство логики работает на 5В (так и у меня — плата с МК отдельно, а основная плата уже есть). Как бы тут сильно экономится кол-во элементов для согласования уровней (будь это специализированная микросхема или транзистор). Я довольный, с расчетом на это поставил резисторы подтяжки к +5В.
При заводке выяснилось что OpenDrain не такой уж хороший…


Читать дальше

Настройка UART в STM32 и проблемы двоично-десятичной арифметики

Данная заметка в первую очередь будет интересна без(д)умным поклонниками библиотеки SPL от конторы STMicroelectronics.


Читать дальше