Рубрика «программирование микроконтроллеров» - 27

Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться.

Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он никак не обрабатывается, а просто остаётся висеть в бесконечном цикле обработчика, предусмотренном в startup файле производителя. В то же время программист пытается интуитивно найти причину отказа. На мой взгляд это не самый оптимальный путь решения проблемы.

В данной статье я хочу описать методику анализа тяжелых отказов популярных микроконтроллеров с ядром Cortex M3/M4. Хотя, пожалуй, «методика» — слишком громкое слово. Скорее, я просто разберу на примере то, как я анализирую возникновение тяжелых отказов, и покажу, что можно сделать в подобной ситуации. Я буду использовать программное обеспечение от IAR и отладочную плату STM32F4DISCOVERY, так как эти инструменты есть у многих начинающих программистов. Однако это совершенно не принципиально, данный пример можно адаптировать под любой процессор семейства и любую среду разработки.

Что делать, если поймал HardFault? - 1
Читать полностью »

Наиболее популярные топологии dc/dc преобразователей buck и boost имеют существенное ограничение: топология buck может лишь понижать входное напряжение, а топология boost только повышает его. Однако бывают задачи, когда диапазон входного напряжения требует одновременно работы и на повышение и на понижение, например, мы имеем вход 3...15В, а на выходе необходимо получить стабилизированные 12В. Знакомая ситуация?

Тут возможны 2 решения:

  • С помощью преобразователя boost повысить входное напряжение из 3...15В до стабильных 15В на выходе, а затем уже с помощью топологии buck понизить напряжение до требуемых 12В;
  • Применить топологию buck-boost, которая позволяет оптимально решить данную задачу.

Очевидным минусом первого способа является необходимость применять 2 дросселя, увеличенное количество конденсаторов и не самый оптимальный режим работы, а значит более низкий КПД. Buck-boost топология лишена данных недостатков, поэтому сегодня рассказ пойдет о ней. Чтобы было интересно, я решил не брать какой-то готовый контроллер и реализовал dc/dc преобразователь с цифровым управлением на базе STM32F334C8T6.

Фото преобразователя

Результат работы для тех, кто не хочет читать стену текста

В рамках данной статьи я кратко расскажу про аппаратную реализацию преобразователя и о том, как реализовать систему управления для различных режимов работы. Интересно? Тогда поехали...

Читать полностью »

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.

В моем последнем посте упоминалось, что некоторые вещи требуют лучшего объяснения, потому что я всегда пытаюсь объяснить и уточнить.

Этот блог посвящен использованию Haskell со встраиваемыми системами. Что это хотя бы значит? Мы видим пару широких категорий (которые отражают слайды на последней странице, а также наша страница ссылок):

  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.

Читать полностью »

LVGL — Light and Versatile Graphics Library также известная как LittleVGL.

Интеграция в проект LVGL графической библиотеки для микроконтроллеров - 1

Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство.
Читать полностью »

Запускаем камеру от телефона, или что делать, когда ничего не получается? - 1

Лет восемь назад работал я в одном… а в прочем, не важно где. Делали мы там всякие разные интересные вещи. В том числе занимались системами технического зрения для роботов. Роботы были немного маленькие. И если привод для них маленький сделать не было для нас особой проблемой, то вот сделать миниатюрную цифровую камеру, которая не была бы размером с половину робота, было трудно (когда же мы наконец похороним PAL в таких разработках и везде будет цифра?). Если вам любопытно узнать, чем же всё закончилось, прошу под кат!

Читать полностью »

Всем привет!

Помимо основной работы я делаю достаточно много пет-проектов, но никогда о них не писал. Сейчас я решил исправить ситуацию и написать о проекте, который только что завершил. На его создание меня вдохновила вот эта работа Джорджа Хиллиарда.

Моя USB визитка - 1
Читать полностью »

Привет всем любителям IoT и железок!

В этой статье я расскажу про, пожалуй, самый популярный протокол передачи данных, используемый в сфере Интернета вещей, — MQTT. А если конкретнее, то про MQTT Version 5.0 (версия, опубликованная 7 марта 2019 года). А если еще конкретнее, — про приятные нововведения версии 5.0 по сравнению с версией 3.1.1.

Кстати, а почему v5.0? Куда делась версия v4.0?

Коренная причина лежит в заголовке пакета CONNECT. Версия протокола или, если быть более точным, уровень версии протокола устанавливается в байте 7.

MQTTv5.0: Обзор новых функций - 1

Читать полностью »

В далеком 2011 году компания Xilinx представила свои первые микросхемы SoC (System On Chip) — Zynq-7000. SoC Zynq сочетает в себе программируемую логику, процессорный модуль и некоторую периферию. Статья не является максимально полным описанием SoC Zynq, а лишь отражает те или иные характеристики, с которыми пришлось столкнуться при разработке устройств на базе SoC Zynq.
Читать полностью »

Наконец то у меня добрались руки до сборки минимального аналога Espressif Systems плат на ESP32 микроконтроллере.

На плате расположен микрофон, усилитель для этого микрофона на одном транзисторе. Усилитель для динамика на трех транзисторах с выходным каскадом работающим в режиме AB. OLED дисплей 128x64 SSD1306

ESP32 development board с кастомным дизайном - 1

Espressif Audio Development Framework предоставляет богатую функциональную SDK которая работает все стабильнее с каждым релизом. Не без своих косяков конечно. Есть у нее и минусы. Например некоторые библиотеки предоставляются без исходных кодов. В линейке плат не было версии с использованием внутреннего ЦАП и АЦП для обработки звука. Конечно для чего-то серьезного такой подход не подойдет. И разрядность встроенного АЦП 12 бит и ЦАП 8 бит накладывает некоторые ограничения. Да и шумят эти встроенные модули не слабо. Но хотелось попробовать сделать если уж не VoIP телефон, то пример Google Translator и Text-To-Speech постараться запустить. Как это у меня получилось читайте под катом
Читать полностью »

Как я делал себе АВР для генератора - 1

Несколько лет назад делал себе АВР (автоматический ввод резерва) для работы на даче от генератора. Сейчас многие ИТ-шники переходят на удалёнку, работают с дач, где качество электропитания может оставлять лучшего. Поэтому решил написать о своем опыте самодельного АВР на микроконтроллере ATmega8A. Если тема интересна, добро пожаловать под кат, будет много букв и кода.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js