30-11-2015, 20:17
Первое на что обратил внимание, после перехода с AVR на STM32 — это отсутствие привычных функций, для реализации задержки: delay_us() и delay_ms(), ну отсутствуют так отсутствуют, подумал тогда и если надо было реализовать задержку, то делал это так....
27-11-2015, 18:09
Принцип работы протокола рассматривать не будем, он был рассмотрен тут, перейдём сразу к возможностям модуля SPI у STM32: полнодуплексная синхронная передача с использованием 3 линий симплексная синхронная передача с использованием двух линий, возможность использования двунаправленной линии для передачи данных 8 или 16 битный формат фрейма работа в режиме Master или Slave в режиме Master 8...
3-08-2015, 14:52
У STM32 прерываниями управляет контроллер прерываний NVIC — Nested vectored interrupt controller. Давайте рассмотрим его возможности: обслуживание до 81 прерывания, в зависимости от модели МК программируемый уровень приоритета от 0 до 15 для каждого прерывания, самым приоритетным считается прерывание с уровнем 0 динамическое изменение приоритета разделение прерываний на группы, а внутри группы...
28-07-2015, 16:32
Всё началось с того что, появилась необходимость хотя бы примерно оценить время выполнения участка кода. Оказалось у микроконтроллеров с ядром Cortex-M3 для этого предназначен специальный модуль, который называется Data Watchpoint and Trace Unit, сокращённо DWT. Чтобы настроить DWT на измерение длительности выполнения кода нам необходимо установить 2 бита. Бит TRCENA в регистре DEMCR, установка...
21-07-2015, 17:11
Генерация ШИМ у STM32 осуществляется с помощью таймеров, про них в документации написано много, но ШИМ оказалось настроить достаточно просто. Генерировать ШИМ будем с помощью 4-го канала первого таймера. Первым делом надо найти какой вывод отвечает за 4-й канал первого таймера, для этого открываем Technical DataSheet на свой МК, у меня STM32F103VET6, и находим альтернативной функцией какого...
15-07-2015, 14:41
Плюсом внешних прерываний является то, что они фиксируют переход от одного логического уровня к другому, а не сам уровень. Предположим нам надо зафиксировать когда изменится напряжение на какой-то ножке и экстренно выполнить определённый набор инструкций. Самый простой алгоритм выглядит следующим образом, через определённые интервалы времени опрашиваем вывод и анализируем изменилось ли его...
8-07-2015, 17:27
DMA(Direct Memory Access – прямой доступ к памяти) – позволяет передавать данные без участия ядра. То есть, если использовать DMA, то по завершении преобразования АЦП, нам не надо забирать результат преобразования и сохранять его в памяти, за нас это сделает DMA. Для этого при конфигурации DMA достаточно указать адрес откуда брать данные и куда сохранять, а также ещё несколько простых настроек,...
18-06-2015, 23:12
В одной из конструкций понадобилось изменять тактовую частоту в большом диапазоне и из названия становится понятно, что выбор пал на LTC6903. LTC6903 и LTC6904 — цифровые программируемые генераторы с диапазоном частот от 1KHz до 68MHz, отличаются они лишь тем, что LTC6903 управляется по SPI, а LTC6904 по I2C. Они достаточно просты в подключении и требуют лишь блокировочные конденсаторы по питанию....
12-05-2015, 13:29
В одной из прошлых статей про энкодер описывался принцип его работы и способы обработки данных приходящих с него. Описанные способы можно реализовать на простых микроконтроллерах типа Atmega, у более продвинутых, типа STM32, для работы с энкодером предназначен специальный интерфейс, который сам обрабатывает данные, приходящие с энкодера и на основе этих данных увеличивает или уменьшает значение...
5-05-2015, 19:38
Самый простой и доступный способ прошивки STM32 – с помощью бутлоудера, в этой статье мы рассмотрим как это сделать на примере платы miniSTM32F103V. Для начала давайте разберёмся, что такое бутлоадер или как его ещё называют загрузчик. Загрузчик — это просто программа, которая хранится в определённой секции памяти и может перезаписывать флеш микроконтроллера. Она зашивается при производстве чипа...
29-04-2015, 14:45
Давайте рассмотрим какими особенностями обладает АЦП в STM32. Разрядность 12 бит Опорное напряжение от 2.4 до 3.6 Вольта Скорость оцифровки до 1MSPS 18 каналов(16 внешних и 2 внутренних – опорное напряжение и температурный датчик) Прерывание по окончании регулярных и инжектированных преобразований Прерывание от оконного компаратора(Analog watchdog) Отправка данных по DMA для...
23-04-2015, 15:15
Каждый порт STM32 состоит из 16 выводов, а каждый вывод может быть сконфигурирован одним из 8 способов. После включения все выводы находятся в состоянии плавающего входа, он же высокоимпедансный вход, он же аналоговый вход, он же Hi-Z, он же третье состояние....
20-04-2015, 16:56
Независимо от такого какие микроконтроллеры Вы собираетесь программировать, первое что придётся освоить — это битовые операции. Битовых операций в языке Си всего 6. & ( AND ) | ( OR ) ^ ( XOR ) ~ ( NOT ) <<(сдвиг влево) >>(сдвиг вправо) Побитовое ИЛИ — результат операции равен 1, если один из соответствующих битов равен 1, иначе 0....