19 октября 2017 г.

Библиотека SSD1306 для STM32, использующая HAL

   Когда нет нужных библиотек, но очень надо, приходится писать свои. Так и получилось с дисплеем SSD1306. Нужен был русский шрифт, и чтобы все работало через HAL. Выложил первую версию драйвера дисплея SSD1306 на github. Кому интересно, пробуйте и обязательно отпишитесь, если возникли проблемы с чем-либо.
  Как пользоваться библиотекой:
  1. Для начала необходимо подключить "ssd1306.h" в Вашем "main.c" файле.
  2. Затем в файле "ssd1306.h" заменить подключение "stm32f0xx_hal.h", если Вы используете не Cortex-M0.
  3. Инициализировать дисплей, указав I2C порт и адрес: ssd1306_Init(hi2c1, 0x78);
  4. Установить курсор туда, куда нужно вывести текст: ssd1306_SetCursor(0, 0);
  5. Записать текст в буфер дисплея: ssd1306_WriteString("Привет мир!", Font_7x9, White);
  6. Обновить изображение на экране из буфера: ssd1306_UpdateScreen();

16 сентября 2017 г.

Создание шаблонов проекта IAR EWARM (и не только для ARM)

   Наверное каждый, кто работает в среде IAR, а в особенности новички, сталкивался с проблемой создания нового проекта. Каждый раз приходится настраивать новый проект заново и добавлять библиотеки, даже если проекты принадлежат одному рабочему пространству (workspace). Но, в IAR есть очень полезная вещь, которая называется "шаблоны проектов". Чтобы создать шаблон проекта, нужно выполнить всего лишь три шага:
  • создать новый проект,
  • настроить проект и подключить необходимые библиотеки,
  • удалить из проекта все лишнее и добавить его в папку с шаблонами.
   А теперь обо все более подробно (здесь не описывается настройка проекта в подробностях):
Шаг 1 - создаем простой проект из доступных шаблонов.

Create New Project

22 сентября 2016 г.

Sharp GP2Y1010AU0F - хорошая альтернатива DSM501

   Компактный оптический датчик пыли - именно так позиционирует себя GP2Y1010AU0F от Sharp. Данный датчик вызывает больше доверия чем noname DSM501, собранный непонятно где и откалиброванный непонятно кем, а тут Sharp! Но тем не менее, неизвестно, а может китайцы что-то накрутили подстроечным резистором.

5 августа 2016 г.

О том, как правильно использовать датчик пыли DSM501(A)

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

   У этого датчика 5 выводов:
  1. Control (установка чувствительности первого выхода)
  2. Vout2 (выход 2)
  3. Vcc (питание)
  4. Vout1 (выход 1)
  5. GND (земля)

28 июля 2016 г.

Создание проекта для STM8 в IAR EWSTM8

   Хотите создать проект для STM8 в IAR, но не знаете с чего начать? Тогда эта статья для Вас. Многие думают, что работать в IAR сущий ад, особенно когда речь идет о STM32, но с линейкой STM8 это совсем не так. 
   Шаг первый (создание проекта): 
  • запускаем IAR, жмем "Project" -> "Create New Project"
  • выбираем "С" или "C++" из списка "Project templates" и жмем "OK"

27 июля 2016 г.

Коротко об обозначении микроконтроллеров STM8

   Порой берешь в руки микроконтроллер STM8 и не понимаешь с ходу, что он из себя представляет. Это касается и просто наименование контроллера, которое нашел в интернете, не видя схемы. На самом деле в символьном обозначении все просто. Каждая цифра (буква) относится к какому-либо параметру. Далее подробно описаны все варианты.

Обозначение: STM8   S   103   F   3   P   6
Параметр:      1    2    3    4   5   6   7


12 июля 2016 г.

Как запрограммировать STM32 без программатора

   Мало кто знает, а в особенности те, кто только начинает изучать микроконтроллеры STM32, что их можно запрограммировать не имея специального программатора. Необходимо лишь выбрать режим загрузки контроллера через встроенный загрузчик, подключитьcя через UART и записать необходимый код.
   Теперь обо всем подробнее. Большая часть контроллеров STM32 имеет встроенный (нестираемый) загрузчик в специальной области памяти, который работает по протоколам UART, SPI, I2C и CAN. Конечно же проще всего работать через UART, т.к. он есть почти у каждого, кто имеет дела с электроникой, поэтому его и будем рассматривать.
   Выбор области памяти, из которой осуществляется загрузка контроллера осуществляется подачей низкого или высокого уровня на ножки BOOTx (может быть как одна, так и несколько). Подробнее о том, как выбрать загрузчик на конкретном контроллере указано в AN2606. Так же в AN2606 указано, какой интерфейс контроллера можно использовать для программирования. Еще, чтобы записать код в контроллер, потребуется небольшая программка с сайта ST, которая называется STM32 FlashLoader Demonstrator.
   Ну и чтобы понять, как эти знания использовать, запрограммируем плату с STM32F103C8T6B на борту.

STM32F103C8T6 board