27-12-2020, 19:47
Если Вы не интересовались как работает МК, то скорее всего считаете, что он выполняет инструкции последовательно, одну за другой. Именно так и работали первые МК, но со временем их структура усложнялась для увеличения быстродействия. Важно отметить, что выполнение самих инструкций, состоит из этапов. В общем виде с позиции МК это выглядит так, извлекаем инструкцию из памяти, выполняем ее,...
15-11-2020, 16:59
На сегодняшний день, даже самые дешевые МК имеют в себе аппаратный usb и в тоже время этот интерфейс является стандартом для подключения периферийных устройств к ПК. Это понимание пришло ко мне не сегодня, но usb достаточно сложен и я долгое время не знал как к нему подойти....
Ровно пять лет прошло с того момента, как на сайте появилась первая статья, описывавшая инициализацию дисплея. В своих проектах я использовал его не один год и за это время, в продаже появились дисплеи, обладающие лучшими характеристиками. Например, IPS дисплей размером 3.97 дюйма, с разрешением 800x480 пикселей....
21-02-2020, 16:17
Несколько раз мне задавали вопрос как записать переменную типа float в внешнюю eeprom память или в backup регистры. Этот вопрос мне показался интересным, по этому решил ответить на него в статье. Как известно, один backup регистр вмещает в себя 16 бит, а переменная float содержит 32 бита. Получается для того, чтобы сохранить одну переменную типа float, нам понадобится 2 backup регистра. Первое,...
20-11-2019, 02:45
Ключевое отличие цифровой электроники от аналоговой заключается в том, что цифровая электроника оперирует лишь двумя уровнями сигнала логическим нулем и единицей. Это не значит, что если мы подключим к ножке микроконтроллера мультиметр, он покажет 0 или 1V. Нуль, образно говоря, можно представить как отсутствие сигнала, а единица как присутствие сигнала, величина же самого сигнала зависит от...
24-04-2019, 01:55
На сайте уже есть несколько статей, посвященных работе с SD картой, подключенной по SPI. Но у SPI есть один минус, он не является для карточки "нативным" и как следствие, не поддерживает некоторые команды и не обеспечивает максимальной скорости обмена данными. Что касается поддержки команд, меня они пока мало интересуют, а вот увеличить скорость обмена данными хотелось бы....
25-10-2018, 14:22
В одном из проектов использовал следующий механизм для управления бузером, включал его вручную, запускал таймер и выключал в прерывании, которое возникало при переполнении таймера. Со временем количество прерываний в проекте выросло и часто другие прерывания не давали сработать прерыванию, в котором выключался бузер. В результате чего, бузер всегда издавал разный по длительности звуковой сигнал....
30-08-2018, 12:33
Протокол I2S, не путать с I2C, предназначен для передачи аудио потока. В моем устройстве этот протокол используется для передачи аудио потока между кодеком и МК. Сразу хотелось бы отметить, что как такового отдельного модуля I2S у STM32 нет, а тот что есть реализуется на основе модуля SPI и тот же регистр DR[0:15] у них общий....
27-06-2018, 11:11
В последнее время все чаще натыкаюсь на негативные отзывы о шине I2C у STM32, мол работа с ней это танцы с бубном и тд. За последний месяц мне удалось запустить две микросхемы, работающие по I2C и ни каких танцев, только вдумчивое чтение даташита....
5-05-2018, 19:10
Думаю постоянные посетители сайта заметили, что предпочитаю все делать на регистрах, но иногда все таки использую SPL. Например, в статье про самописный бутлоадер, использовались библиотечные функции для работы с флэш памятью. В очередной раз, подключая эту библиотеку, решил, что она занимает много места и решил самостоятельно реализовать необходимые функции. Для работы с флэш памятью...
19-04-2018, 13:25
Начнем с того, что RTC — это аббревиатура которая расшифровывается следующим образом Real-time clock или по-русски, часы реального времени. В былые времена, при использовании МК AVR в качестве RTC, использовал отдельную микросхему, общение с которой происходило по определенному протоколу. У STM32 RTC же представляет собой модуль, реализованный внутри МК. У STM32 RTC обладает следующими...
26-03-2018, 14:41
В одной из прошлых статей описывал, как подключить дисплей к микроконтроллеру семейства STM32, используя интерфейс LTDC. Статья оканчивалась видеороликом, в котором на встроенный в DISCOVERY дисплей, выводилось изображение. Конечно же следующим желанием было запустить, что-то побольше и подключить это самостоятельно, чтобы в голове сложилась полная картина. С Китая был заказан 7-дюймовый дисплей...
22-02-2018, 18:07
При переносе одного из проектов с сотой серии на трехсотую столкнулся с проблемой, посылки SPI всегда были длиной 16 бит, а мне нужно было 8. Что интересно у сотой серии для настройки длины пакета SPI выделен один бит DFF(Data frame format) , когда он сброшен длина посылки 8 бит, когда установлен 16. В трехсотой серии под это дело выделили битовое поле длиной 4 бита и длину посылки можно...
3-12-2017, 20:10
Около полугода назад один из постоянных посетителей сайта отправил мне отладочную плату STM32F429I DISCO. На мои рассказы, что она мне не нужна, он ответил, что это подарок и его следует принять. А ещё он где-то вычитал, что оперативка на плате нужна для работы дисплея и интересовался у меня для чего именно, но ответа на этот вопрос у меня не было. Понятно было, что оперативка выступает в...
21-11-2017, 15:28
В одной из прошлых статей уже описывал, что такое DMA и приводил пример его работы в связке с АЦП. В том примере, результаты преобразования АЦП записывались в буфер без участия ядра. В этот раз мне надо было перенести буфер из одного участка памяти в другой и я точно знал, что это можно сделать с помощью DMA используя режим MEM2MEM....
13-10-2017, 10:31
В одной из прошлых статей рассказывал про режим захвата у STM32 и приводил пример как с его помощью измерить период сигнала. Но таким способом не получится ТОЧНО измерить период высокочастотного сигнала.(дальше станет понятно какой сигнал считать высокочастотным) Предположим, что частота исследуемого сигнала 1MНz, а наш таймер отсчитывает 72млн в секунду. Переведем значения частоты в период....
24-05-2017, 00:18
Когда дописывал прошлую статью, на радиокоте наткнулся на тему где обсуждали в каком формате передавать прошивку бутлоадеру. У меня тоже возникал такой вопрос и в конце прошлой статьи описал почему передавать прошивку удобнее hex файлом, чем бинарником, кому интересно могут почитать тут. Значит так, нам надо рассмотреть какие бывают типы записей в hex файле и дополнить код из прошлой статьи. Все...
10-05-2017, 13:32
В одной из прошлых статей описывал как прошить STM32 с помощью бутлоадера и объяснял принцип его работы. Для тех кто её не читал напомню, что бутлоадер, по сути, это программа, которая живёт в МК и может перезаписывать его память, то есть обновлять прошивку. Думаю у кого-то мог возникнуть вопрос, зачем писать бутлоадер самому, если можно пользоваться встроенным? Ответ на этот вопрос очень прост,...
9-02-2017, 17:19
Как-то раз один знакомый ругался на меня за то, что вместо проекта скинул ему hex и у него так и не получилось залить его в микроконтроллер. Я, честно говоря так и не понял чего он ругался на меня, ведь не получилось у него)))Эта ситуация подтолкнула меня к написанию статьи. Итак у нас есть прошивка, которую мы хотим залить в МК. Первым делом, надо создать пустой проект, выбрав при этом МК,...
7-02-2017, 14:55
В интернете достаточно информации про стек поэтому вряд ли смогу рассказать что-то новое. Если кто-то всё-таки не в курсе, то стек — это область в оперативной памяти, которая работает по принципу стопки тарелок. Что это за принцип такой? Принцип заключается в том, что если перед нами стоит стопка одинаковых тарелок и нам надо взять одну, то мы возьмём верхнюю, её взять проще всего. Этот же...