Stm32 BSRR VS ODR.
20-10-2016, 19:43
Те кто читает эту статью, думаю знают, что записать единицу в нулевой бит порта А можно двумя способами GPIOA->ODR |= GPIO_ODR_ODR0; или GPIOA->BSRR |= GPIO_BSRR_BS0; И везде пишут, что второй способ правильнее так, как установка бита в таком случае выполянется атомарно. Тут не поспоришь. А теперь давайте представим ситуацию, у нас есть восьмибитная шина, по которой передаются данные,...
Измерение температуры с помощью термопары, на примере MAX6675 для STM32.
21-09-2016, 16:41
В последнее время появилась необходимость в печке для пайки оплавлением. Для тех кто не знает, что это такое, в двух словах опишу, как она работает и для чего она нужна. Есть у меня десяток плат, которые надо собрать, элементы на плате в основном smd. Сейчас платы собираются по следующему алгоритму: сначала с помощью шприца наношу на контактные площадки паяльную пасту, затем раскладываю элементы....
STM32 тактирование.
17-09-2016, 15:15
Первое время для того, чтобы упростить написание программ для STM32 не вдавался в тонкости настройки системы тактирования, а выбирал частоту системной шины в файле system_stm32f10x.c, просто расскоментировав нужную строку. Но если уж доходило дело до настройки частоты тактирования отдельных блоков(например АЦП), то использовал CUBE. Перед глазами вся система тактирования, что очень удобно и...
Подключение резистивной сенсорной панели c драйвером XPT2046 к STM32 и её калибровка по четырём точкам.
11-08-2016, 13:07
Статей про резистивные сенсорные панели на сайте уже несколько, тут можно почитать как они работают, а тут как подключить её к AVR и произвести калибровку. Поэтому далее рассказ пойдёт лишь о тонкостях работы с такой панелью. Как известно, обмен данными c XPT2046 происходит по SPI, поэтому надо просто найти свободный и подключится к нему. Обычно чтобы посмотреть под какой SPI какие выводы...
Подключение TFT дисплея по FSMC к STM32, на примере SSD1963 .
3-08-2016, 19:11
Дело было так, один из посетителей сайта выслал мне, в качестве подарка, 5 дюймовый TFT дисплей, который управляется драйвером SSD1963. Дней через десять посылка прибыла, но на коробке, в которую он был упакован, была вмятина, а сам дисплей был разбит. Написал об этом отправителю и он сразу же заказал на моё имя такой же дисплей на ebay, за что ему спасибо. Прошло не более двух недель с момента...
Создание проекта в Keil uVision.
21-07-2016, 17:32
Один из вопросов, который возникает, при переходе на STM32: «Какую среду разработки выбрать?» Наверное самые популярные — это Coocox, IAR и Keil uVision, я пользуюсь последней. Главное её преимущество перед другими — это мощный симулятор, с поддержкой периферии и множеством виртуальных приборов. Все эти плюшки "упрощают жизнь" опытному разработчику и помогают новичку разбираться с богатой...
STM32 Режим захвата.
25-05-2016, 14:30
Режим захвата — это особый режим работы таймера, суть которого в следующем, при изменении логического уровня на определённом выводе микроконтроллера, значение счётного регистра записывается в другой регистр, который именуют регистром захвата. Для чего это надо? С помощью этого режима можно измерить длительность импульса или период сигнала. Режим захвата у STM32 обладает некоторыми особенностями:...
STM32 запуск АЦП по таймеру.
20-04-2016, 13:02
На днях мне понадобилось раз в секунду запускать АЦП преобразование и сразу же стало понятно, что битами SMPR[2:1], которые задают количество тактов между выборками АЦП, сделать это не получится, поэтому прийдётся искать другой способ. Максимальное количество тактов между выборками, которое можно задать с помощью этих битов, равно 239,5. Если к этому числу прибавить время преобразования — 12.5...
Отладка по SWD STM32.
12-01-2016, 14:10
У STM32 есть очень удобный интерфейс для отладки и прошивки МК — Serial Wire Debug, сокращено SWD. Его удобство заключается в том, что для отладки надо подключить всего два информационных вывода и соответственно два вывода питания. Схема подключения выглядит следующим образом. После того как выводы подключены, надо разрешить отладку по SWD в среде программирования, в KEIL это делается так....
STM32 не работает SPI3.
19-12-2015, 21:30
Обычно перед тем как собирать какое-то устройство реализую на макетке базовый функционал, так было и в этот раз. После того как базовый функционал был реализован, начал разводить плату, походу выяснилось, что гораздо проще развести плату если использовать SPI3, нежели SPI2, который использовался в проекте. Ну зачем создавать себе трудности, подумал тогда и развёл плату используя SPI3....
STM32 режимы  пониженного энергопотребления.
15-12-2015, 20:17
Сначала хотелось бы пару слов сказать о питающих напряжениях микроконтроллера, для нормальной работы STM32 необходимо от 2 до 3.6V, а уже встроенный стабилизатор обеспечивает 1.8 вольта для питания ядра. Ниже схематично изображена общая схема питания контроллера. Как видно, схема питания разделена на домены и каждый из них отвечает за питание определённой периферии/части МК. Уменьшить потребление...
Функция задержки STM32.
30-11-2015, 20:17
Первое на что обратил внимание, после перехода с AVR на STM32 — это отсутствие привычных функций, для реализации задержки: delay_us() и delay_ms(), ну отсутствуют так отсутствуют, подумал тогда и если надо было реализовать задержку, то делал это так....
SPI STM32.
27-11-2015, 18:09
Принцип работы протокола рассматривать не будем, он был рассмотрен тут, перейдём сразу к возможностям модуля SPI у STM32: полнодуплексная синхронная передача с использованием 3 линий симплексная синхронная передача с использованием двух линий, возможность использования двунаправленной линии для передачи данных 8 или 16 битный формат фрейма работа в режиме Master или Slave в режиме Master 8...
Прерывания STM32.
3-08-2015, 14:52
У STM32 прерываниями управляет контроллер прерываний NVIC — Nested vectored interrupt controller. Давайте рассмотрим его возможности: обслуживание до 81 прерывания, в зависимости от модели МК программируемый уровень приоритета от 0 до 15 для каждого прерывания, самым приоритетным считается прерывание с уровнем 0 динамическое изменение приоритета разделение прерываний на группы, а внутри группы...
Время  выполнения кода STM32.
28-07-2015, 16:32
Всё началось с того что, появилась необходимость хотя бы примерно оценить время выполнения участка кода. Оказалось у микроконтроллеров с ядром Cortex-M3 для этого предназначен специальный модуль, который называется Data Watchpoint and Trace Unit, сокращённо DWT. Чтобы настроить DWT на измерение длительности выполнения кода нам необходимо установить 2 бита. Бит TRCENA в регистре DEMCR, установка...
STM32 ШИМ.
21-07-2015, 17:11
Генерация ШИМ у STM32 осуществляется с помощью таймеров, про них в документации написано много, но ШИМ оказалось настроить достаточно просто. Генерировать ШИМ будем с помощью 4-го канала первого таймера. Первым делом надо найти какой вывод отвечает за 4-й канал первого таймера, для этого открываем Technical DataSheet на свой МК, у меня STM32F103VET6, и находим альтернативной функцией какого...
Внешние прерывания STM32.
15-07-2015, 14:41
Плюсом внешних прерываний является то, что они фиксируют переход от одного логического уровня к другому, а не сам уровень. Предположим нам надо зафиксировать когда изменится напряжение на какой-то ножке и экстренно выполнить определённый набор инструкций. Самый простой алгоритм выглядит следующим образом, через определённые интервалы времени опрашиваем вывод и анализируем изменилось ли его...
STM32 сохранение данных АЦП с помощью DMA.
8-07-2015, 17:27
DMA(Direct Memory Access – прямой доступ к памяти) – позволяет передавать данные без участия ядра. То есть, если использовать DMA, то по завершении преобразования АЦП, нам не надо забирать результат преобразования и сохранять его в памяти, за нас это сделает DMA. Для этого при конфигурации DMA достаточно указать адрес откуда брать данные и куда сохранять, а также ещё несколько простых настроек,...
Цифровой программируемый генератор, подключение ltc6903 к STM32.
В одной из конструкций понадобилось изменять тактовую частоту в большом диапазоне и из названия становится понятно, что выбор пал на LTC6903. LTC6903 и LTC6904 — цифровые программируемые генераторы с диапазоном частот от 1KHz до 68MHz, отличаются они лишь тем, что LTC6903 управляется по SPI, а LTC6904 по I2C. Они достаточно просты в подключении и требуют лишь блокировочные конденсаторы по питанию....
Как подключить энкодер к STM32.
12-05-2015, 13:29
В одной из прошлых статей про энкодер описывался принцип его работы и способы обработки данных приходящих с него. Описанные способы можно реализовать на простых микроконтроллерах типа Atmega, у более продвинутых, типа STM32, для работы с энкодером предназначен специальный интерфейс, который сам обрабатывает данные, приходящие с энкодера и на основе этих данных увеличивает или уменьшает значение...