Как стать автором
Обновить
108.79

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

Библиотека libopencm3: Быстрый старт (Часть 2). Работа с GPIO, SPI, отладка проекта при помощи GDB

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 883
Туториал

В первой части мы подготовили среду для легковесной разработки под STM32. Пора приступить к экспериментам.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 1

Новости

Процессор, который использовался в «Тетрисе»: на каких SoC работала недорогая микроэлектроника в 90-х?

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 8K
Ретроспектива
image

В наше время большинство портативных устройств работает на базе достаточно мощных микроконтроллеров, которые способны запускать даже интерпретируемый код на Lua/Python. Чего уж там говорить — даже современная кофеварка или умный электрочайник может быть в разы мощнее оригинального IBM-PC, не говоря уже о автомобильных бортовых компьютерах, которые зачастую мощнее топовых ПК из начала нулевых. Но давайте вспомним конец 90-х и начало 2000-х, когда разработка собственной электроники была практически недоступна рядовому пользователю, а микроконтроллеры программировались в основном только на ассемблере. Недавно я нашёл некоторую информацию о том, какой процессор вероятно использовался в таких знакомых нам приставках Brick Game, которые мы называли «Тетрисами»! Более того, мне удалось найти полный даташит с описанием всех модулей этого процессора, который гордо можно назвать «система на кристалле». Какой была разработка микроэлектроники в 90-х? Читайте в статье!
Читать дальше →
Всего голосов 69: ↑69 и ↓0 +69
Комментарии 29

Британская фобия embarrassment-а и российская движуха портабильных примеров на ПЛИС

Время на прочтение 9 мин
Количество просмотров 2.6K

Гугл переводит английское слово embarrassment как "смущение", но для британцев это не просто смущение. Для них это сродне ощущение во сне, в котором вы приходите на экзамен совсем не готовым и при этом голым. Когда британцы проводят семинар с какими-нибуть платами в далекой стране, они панически боятся, что плата не заработает и будет embarrassment. Поэтому они стараются использовать один тип плат в фиксированной конфигурации, если всего этого нельзя избежать вообще и просто показывать плату издалека.

В глубине души британцы завидуют русским, которые "able to cope with difficulties". И вот вам свежий пример: когда выяснилось, что на более чем 300 заявок (UPD: сейчас уже больше 600) на Школу Синтеза Цифровых схем в 15 российских кластерах (UPD: уже 19, из них один белорусский) не хватает FPGA плат, группа волонтеров реализовала возможность легкого портирования учебных примеров на зоопарк из более чем 20 типов плат от Intel FPGA, GoWin и Xilinx, с идеей расшириться до 50 типов, с креативным добавлением недорогих внешних устройств.

Читать далее
Всего голосов 17: ↑12 и ↓5 +7
Комментарии 18

Контроль состояния аккумулятора, если у вас стоит предпусковой подогреватель

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2.9K
Туториал

Для справки - предпусковой подогреватель (далее ПП) двигателя, это устройство, позволяющее прогреть двигатель внутреннего сгорания транспортного средства для облегчения его запуска, не запуская его. И в некоторых случаях, для прогрева воздуха в салоне транспортного средства.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 10

Истории

Разбор работы FIFO на микроархитектурном тренажере

Уровень сложности Средний
Время на прочтение 1 мин
Количество просмотров 2.9K

FIFO – ключевая концепция в хардварном дизайне. Понимание работы FIFO необходимо, в частности, для понимания протокола valid/ready, который в свою очередь необходим для организации flow-control как внутри цифровых блоков так и на межблочном уровне.

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

Микроархитектурный тренажер дает возможность «прощупать» хардварные сценарии в пошаговом (интерактивном) режиме, предоставляя детальную визуализацию цифровой логики.

Поскольку тренажер является "фронтендом" для HDL симулятора то на самом симуляторе исполняется реальный, синтезируемый SystemVerilog который можно посмотреть и даже поменять его функциональность.

Смотреть видео и читать дальше
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 15

Самый суровый магнитный ключ

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 19K
Ретроспектива
Приветствую всех!

Думаю, многим из нас хорошо известно, что в ныне применяемых домофонных ключах, хоть их иногда называют магнитными, никаких магнитов на деле нет.

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

image

Итак, в сегодняшней статье поговорим о ферритовых домофонных ключах. Узнаем, как же они считываются, как устроена панель. Традиционно будет много интересного.
Читать дальше →
Всего голосов 90: ↑90 и ↓0 +90
Комментарии 136

Техникум: Конечный Aвтомат Обработки Сигнала с Кнопки

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 4K
Туториал

В электронных устройствах часто бывают тактовые кнопки. Например в Bluetooth колонке пять кнопок: увеличение/уменьшения громкости, перехода в режим загрузчика, остановки звука и прочего.

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

Очевидно, что firmware должно как‑то однозначно распознавать тип нажатия на кнопку; короткое долгое.

Можно очень красиво и элегантно решить эту задачу прибегнув к конечно автоматной методологии разработки программного обеспечения.

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 83

Препарируем Bluetooth Колонку JBL Clip 3

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.2K
Обзор

Как известно чтобы стать хорошим архитектором надо изучать чертежи выдающихся архитектурных сооружений: плотина Гувера, Бруклинский мост, Эмпайр Стейт Билдинг.

Этот принцип применим в любой другой области. Например в электронике. Чтобы стать хорошим инженером-электроником надо изучать выдающиеся электронные платы. Вот например есть у меня Bluetooth колонка Clip 3. Всё в ней кажется здорово.

Надо понять как это устроено внутри.

Читать далее
Всего голосов 7: ↑2 и ↓5 -3
Комментарии 6

Мой первый околонаучный проект: инерциальный трекер

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.1K
Туториал

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

Алгоритм работы был малопонятным, потому что основывался на фантазировании и подгоне. Поэтому оценить его надёжность, масштабировать или восстановить для другого датчика было бы сложно.

Затем в универе мне показали линейную алгебру и MATLAB. Мне открылись новые возможности, и создать прототип программы удалось очень быстро.
К тому же у меня есть тяга к относительно научному познанию, и через такую работу я могу потренироваться. Текст же поможет структурировать мысли и сохранить математические выкладки.

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 20

Отслеживание изменения температуры в помещении при помощи ультразвука

Уровень сложности Средний
Время на прочтение 20 мин
Количество просмотров 2.2K

До недавних пор для проведение подобных измерений требовалось использовать промышленные приемники/передатчики ультразвука. Только они могли дать приемлемую точность и дальность. Но они были слишком большие и дорогие. Использовать дешевые китайские модули, такие как HC-SR04/US-025, не выйдет. Точность, стабильность, повторяемость результата оставляет желать лучшего.

Ситуацию изменило появление нового чипа CH-201. Его основная проблема заключается в том, что он китайский. Я еще не видел китайский чип с хорошей документацией и хорошей службой поддержки.

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 16

Разработка робастного управления сервоприводом

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 4.2K

Продолжаем открытый проект сервоконтроллера MC50. 

В предыдущей статье была разработана архитектура управления и написана программа сервопривода. Но регулятор был вручную настроен на определенный тип нагрузки. А что делать если тип и динамика нагрузки неизвестны?

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 14

ISO 26262-6 разбор документа (или как писать безопасный софт)

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 3.1K
Обзор

ISO26262 это международный текст, который объясняет как создавать безопасный и высоконадежный встраиваемый софт для мотоциклов, автомобилей, грузовиков и автобусов.

В этом тексте я попробовал разобраться с тем как понять автомобильный стандарт функциональной безопасности ISO26262 в той части, которая относится к требованиям к программному обеспечению (часть 6).

-----

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 20

Как подключить магнитный считыватель к микроконтроллеру

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 3.9K
Туториал
Приветствую всех!

Давным-давно я уже писал один пост про магнитные карты, где рассказывалось о том, что это вообще за технология и как оно работает. Сейчас же речь пойдёт о ней с совершенно другой стороны — как управлять магнитным считывателем с TTL-интерфейсом и что с этим всем делать.



Итак, в сегодняшней статье поговорим о встраиваемых магнитных считывателях. Разберёмся, как подключить его и как обрабатывать данные с него. Традиционно будет много интересного.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 24

Ближайшие события

Yandex Scale
Дата 25 – 26 сентября
Время 17:00 – 18:00
Место Москва Онлайн
Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business&IT Day: Retail CPG
Дата 28 сентября
Время 09:50 – 14:00
Место Онлайн
XIX конференция разработчиков свободных программ «Базальт СПО»
Дата 29 сентября – 1 октября
Время 10:00 – 19:00
Место Переславль-Залесский Онлайн
Kokoc Hackathon
Дата 29 сентября – 1 октября
Время 19:00 – 21:00
Место Онлайн
Ruby Russia 2023 Online
Дата 30 сентября
Время 11:00 – 21:00
Место Онлайн
PG Boot Camp Russia 2023
Дата 5 октября
Время 10:00 – 17:00
Место Москва Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн

Разбор I2S трафика в программе Logic 2

Уровень сложности Простой
Время на прочтение 1 мин
Количество просмотров 1.5K
Туториал

В этом тексте я написал инструкцию того как настроить логический анализатор Saleae производить автоматический синтаксический разбор трафика на шине I2S.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 23

Одноплатный ПК Cytron Reka:Bit: отличный старт для обучения робототехнике и электронике

Время на прочтение 3 мин
Количество просмотров 5.6K

Одноплатные компьютеры стали одним из самых популярных компонентов для проектов как новичков, так и профессионалов в мире электроники. Но для работы с теми же Raspberry Pi нужны достаточно обширные знания как в плане аппаратного обеспечения, так и программирования (хотя бы база). Но если всего этого нет, можно попробовать платы с более низким порогом входа. Одна из них — Cytron Reka:Bit от компании Cytron. О ней сегодня и поговорим.

Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 9

Обзор Aппаратного Aудио кодека MAX9860 (2x ADC+DAC)

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 1.9K
Обзор

Обзор аудиокодека MAX9860.

MAX9860 это 24 пиновый ASIC американской компании Maxim Integrated у которого внутри один 16ти битный sigma delta ЦАП, и два AЦП с управлением по I2C. Данные загружаются и выгребаются по I2S.

В тексте я написал свои впечатления от работы с этим чипом. Перечислил достоинства и недостатки микросхемы MAX9860.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 12

Знакомимся с RepkaPi.GPIO SysFS. Установка и управление GPIO через Python 3. Теоретические основы работы GPIO портов

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1.7K
Обзор

Начнем знакомство с подключаемой библиотекой RepkaPi.GPIO, данная библиотека написана на Python 3 и для управления GPIO использует методы, реализованные через SysFS.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 1

Техникум: Распознавание Вещественного Числа из Строчки

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 3.5K
Туториал

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

Потом часто надо анализировать текстовые логи с SD-карты. Надо выхватывать вещественные числа из CSV файлов для дальнейших расчетов.

Для всего этого нужен какой-то надежный переносимый прозрачный и простой алгоритм, чтобы распознавать вещественные числа из строчек.

В этом тексте я представил решение этой задачи.

Читать далее
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 84

Load-Detect для Проверки Качества Пайки

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 2.8K
Туториал

Как вы думаете зачем в микроконтроллерах есть функция pull-up/pull-down, если можно просто воспользоваться установкой логического уровня push-pull?

Вот типичная ситуация. Вам принесли электронную плату с производства. Крайне вероятно, что на PCB есть какие-то аппаратные баги. Обычно это короткие замыкания на GND/VCC или вовсе непропай.

Как выявить и найти эти бракованные пины?

Вот тут-то нам и помогут подтяжки к питанию/земле на пинах MCU.

Называется эта тема load-detect.

В этом тексте я подробно написал про то, как работает load-detect под капотом.

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 32

Симулятор Графического Монохромного Дисплея на Graphviz

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.7K
Туториал

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

Проблема в том что у языка Си нет встроенной библиотеки для отрисовки битовых матриц в отдельном окне подобно тому как это есть в Python или C#. Поэтому отлаживают такой код обычно на конечных устройствах.

В этом тексте я написал как можно отлаживать графические дисплеи на DeskTop PC без самого физического дисплея.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 22

Вклад авторов