Библиотека для работы с дисплеем 1602

Библиотека для работы с двухстрочным 16 символьным дисплеем.

Денис Заикин

Моя реализация библиотеки для дисплея 16х2 под управлением HD44780.

Описывать протокол и особенности управления, пайки и настройки не буду.

Краткие возможности:

  • управление отображением курсора;
  • вкл/выкл дисплея;
  • вывод текста в любое место;
  • поддержка специальных символов \n и \t;
  • вывод числа с преобразованием его в строку;
  • и др.

Подключаем энкодер с помощью таймера

Описание процесса работы с энкодером с помощью таймера в режиме захвата для микроконтроллеров STM32

Администратор
Cover Image

На этот раз рассмотрим подключение к микроконтроллеру STM32F205 (на остальных аналогично) энкодер.

Есть несколько вариантов считывания информации с энкодера. Но так как микроконтроллер у нас имеет таймеры работающие в режиме захвата и способные обрабатывать сигналы с энкодера, будем пользоваться именно ими.

Подключение выполним к выводам 6 и 7 порта A (это входы/выходы таймера TIM3) вот по схеме на рисунке выше.

Настраиваем и генерируем ШИМ.

Генерируем ШИМ на микроконтроллере STM32F100 для полумостового преобразователя напряжения.

Администратор
Cover Image

Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте

В микроконтроллерах stm ШИМ можно генерировать несколькими способами. Один из них программный - подача нуля и единицы на логический вывод в нужное время, и аппаратный - используя один из таймеров контроллера.

В данной заметке рассмотрим второй способ.

Список команд ядра cortex-m3

Список команд ядра ARM Cortex-m3

Денис Заикин

Арифметические операции

ADDADD R0, R1, Operand2
ADD R0, R1, 12bit const.
Сложение
R0 = R1 + R2
N, Z, C, V S
ADCADC R0, R1, R2
ADC R0, R1, 8bit const
Сложение с учётом переноса
R0 = R1 + R2 + C
N, Z, C, VS
ADDWADD R0, R1, 12bit const.Сложение с 12bit константойN, Z, C, V 
SUBSUB R0, R1, R2
SUB R0, R1, 12bit const.
Вычитание
R0 = R1 - R2
N, Z, C, VS
SBCSBC R0, R1, R2
SBC R0, R1, 8bit const.
Вычитание с учётом переноса
R0 = R1 - R2 - C
N, Z, C, VS
SUBWSUB R0, R1, 12bit const.Вычитание с 12bit константойN, Z, C, V 
RSBRSB R0, R1, R2
RSB R0, R1, 8bit const. 
RSB R0, R1, R2, ASR#23
Вычитание с противоположным порядком аргументов. 
R0 = R2 - R1 или R0 = 8bit const - R1
N, Z, C, VS

Защита прошивки от считывания.

Небольшой туториал по защите прошивки микроконтроллера stm32 от считывания

Администратор
Cover Image

Для защиты прошивки можно применять несколько способов:

  • установка битов соответствующих регистров
  • и совсем варварский способ - оторвать ноги JTAG :)

Я предпочитаю исключительно первый способ.

Программатор stm32 своими руками.

Самодельная и доступная альтернатива продаваемому программатору от STMicroelectronics. Является выдержкой и компиляцией нескольких статей и схем найденных в интернете. Реализация в минимально возможном форм-факторе.

Денис Заикин
Cover Image

У любого разработчика встраиваемого софта должен быть программатор для устройств которые он использует. В моём случае микроконтроллеры фирмы STMicroelectronics, а так же Milandr (российские процессоры на ядре ARM).

Покупка данного девайса весьма затратна, особенно если сравнивать с себестоимостью компонентов - печатной платы и радиодеталей.

Решено было сделать программатор самостоятельно. За основу легли схемы отладочных плат для различных МК, в итоге получился полнофункциональный отладочный модуль и не только для stm32, но и для stm8 и даже миландровских чипов (проверено пока только на К1986ВЕ92, но думаю и другие тоже будут шиться и отлаживаться).