Recently, the PlatformIO development environment of embedded systems has supported PVS-Studio. In this article, you'll find out how to check your code with the static analyzer on the example of several open projects.
Читать полностью »
Рубрика «microcontroller»
Статическая подписка с использованием шаблона Наблюдатель на примере С++ и микроконтроллера Cortex M4
2019-12-24 в 15:00, admin, рубрики: c++, c++17, microcontroller, stm32, STM32F4, templates, микроконтроллер, Программирование, программирование микроконтроллеров, С++, шаблоны c++, шаблоны проектирования
Всем доброго здравия!
В преддверии Нового года хочу продолжить рассказывать про использование С++ на микроконтроллерах, на этот раз попытаюсь рассказать про использование шаблона Наблюдатель (но далее я буду называть его Издатель-Подписчик или просто Подписчик, такой вот каламбур), а также реализацию статической подписки на С++17 и преимущества этого подхода в некоторых приложениях.
С хорошим микроконтроллером и время летит быстро или осциллограф выходного дня
2019-09-23 в 13:26, admin, рубрики: adc, cortex-m4, diy или сделай сам, microcontroller, stm32, программирование микроконтроллеров, схемотехникаНекоторое время назад автор этих строк взялся разрабатывать компактный регистратор одно-полярного аналогового сигнала в пределах 3 вольт с максимально возможной скоростью считывания и минимально возможными затратами и размерами. В список минимально возможных затрат я вписал также и свою головную боль и выбрал хорошо знакомый мне STM32F303. Это, напомню, Cortex-M4 на 72 мегагерца от известной компании, со встроенными 12 разрядными, довольно шустрыми, аналого-цифровыми преобразователями (АЦП или ADC, кому как нравится) и с CAN интерфейсом на борту.
Таких небольших регистраторов требовалось несколько десятков. А наличие у микроконтроллера корпуса о 48-ми ногах вселяло надежду на то, что получится назвать этот считыватель компактным. Интерфейс CAN, с которым у меня уже тогда были хорошие отношения, давал мне возможность объединить весь этот джаз в достаточно удобной манере.
Скорость, с которой, в конце концов, все это заработало, оказалась вполне подходящей, чтобы заявить о работоспособности выбранного подхода. Удалось добиться пол микросекундного шага дискретизации. Головной боли и ассемблера избежать не удалось, но кто об этом сейчас вспоминает?
Однако, некоторый осадок остался. Осталась мысль, что, в отношении быстродействия, выжато было не все.
И вот, совсем недавно появляется серия STM32G4 с тактовой частотой до 170 мегагерц с вариантом в маленьком корпусе, и с почти такими же шустрыми АЦП на борту в количестве пяти штук. Надо было что-то делать.
История создания синхронизатора часов DCF77
2017-09-30 в 18:11, admin, рубрики: microcontroller, radio, программирование микроконтроллеровОднажды я решил порадовать себя и купил часы citizen. Кроме всего прочего, в этих часах заявлена возможность синхронизировать часы по радиоканалу. В момент заказа я не сильно представлял, что это такое, думал, что оно как-то само всё сделает как надо. Но оказалось, что синхронизация по радио в России практически не работает. Я решил исправить ситуацию. Первое, что я нашёл была статья посвященная усилению сигнала. Предлагалось намотать большую катушку с конденсатором, положить на окно, выходящее на запад и ждать. [1]. Также в этой статье упоминался протокол dcf77, по которому часы синхронизируют время, и я понял, что он не очень сложный. Хотя на этот момент в электронике я был полный ноль, но мне представлялось, что с цифровой частью я справлюсь, а с остальным я как-то разберусь. И я решил стартовать проект по разработке устройства синхронизации часов по протоколу dcf77.
Здесь я опишу то, как я работал над этим проектом, с какими проблемами столкнулся, будучи новичком в электронике, интересные решения, которые мне попались при работе над проектом, и попробую оправдать их. Этот текст, может быть интересен программистам, которые решили заняться электроникой. Поэтому со стороны программирования многие вещи будут опускаться.
Как штатными настройками убить микроконтроллер. Часть 2
2016-09-12 в 6:35, admin, рубрики: arduino, atmel, brick, microcontroller, microcontrollers, Интернет вещей, микроконтроллеры, ненормальное программирование, Программирование, программирование микроконтроллеров, Разработка для интернета вещей, Разработка робототехники
Не так давно я писал о том, как мне удалось превратить в "кирпич" микроконтроллер, задав неудачную комбинацию настроек. Проблема была в том, что у меня случайно получилось ввести в режим работы "по требованию" генератор, тактирующий ядро контроллера. При этом, отключалось все, в том числе и модуль отладки. Множество людей откликнулись на мою просьбу и дали мне несколько дельных советов и многие до сих пор спрашивают чем же все закончилось. Так вот история развивалась довольно комично, но закончилась весьма банально. Подробности под катом.
Как штатными настройками убить микроконтроллер
2016-08-29 в 6:37, admin, рубрики: arduino, atmel, brick, microcontroller, microcontrollers, Интернет вещей, микроконтроллеры, ненормальное программирование, Программирование, программирование микроконтроллеров, Разработка для интернета вещей, Разработка робототехники
Не могу назвать себя очень аккуратным и внимательным человеком, но тем не менее, за более чем 10 лет разработки ПО для встраиваемых устройств мне толком не удалось ничего сжечь или испортить. С одной стороны, стоит за это сказать "спасибо" моим коллегам — схемотехникам. С другой стороны, современная "умная" микроэлектроника имеет достаточно серьезную "защиту от дурака". Но пару дней назад произошел один интересный случай. Мне удалось превратить в "кирпич" микроконтроллер Atmel SAMD21G18AU, выполняя обычные манипуляции, описанные в user manual.