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

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

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

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

Смотрим на шину I2C через осциллограф

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K

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

Итак, рассмотрим поведение шины I2C при работе с микроконтроллером stm32 с использованием библиотеки HAL. На шине I2C1 подсоединена микросхема EEPROM 24LC21.

Согласно описанию на микросхему ее адрес на шине – 1010ххх(7бит), где ХХХ – не имеет значения, хоть ноль, хоть единицы. Следом за адресом устройства идет 8й бит R/W̅. Этот бит говорит slave-устройству, что нужно будет делать дальше – принимать или отдавать данные. Если лог 0, то slave-устройство будет принимать данные (write), то есть запись в slave-устройство. Если лог 1, то slave-устройство будет отправлять данные (read), то есть чтение из slave-устройства. Когда slave-устройство видит на шине свой адрес, то на 9м тактовом импульсе (на линии SCL) оно прижимает линию SDAв ноль, сообщая master-устройству о своем присутствии на линии. Если мастер выдал адрес, но устройства с таким адресом на шине не обнаружилось, то на 9м тактовом импульсе линия SDAбудет в единице. Это девятый бит называют битом подтверждения, acknowledge bit (А, АСК). Каждый обмен сообщениями обрамляется стартовым и стоповым битом. Стартовый бит это состояние когда при высоком состоянии линии SCL линия SDA прижимается к нулю. Стоповый бит это состояние когда при высоком состоянии линии SCL линия SDA прижимается к единице.

Читать далее

Обнаружение устройств через UPnP / SSDP

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

Что больше всего бесит при первом запуске устройств с управлением по Ethernet? Необходимость его искать в сети с использованием зоопарка из подходов. Тут используются программы автопоиска (например Winbox для MikroTik), дефолтные IP адреса (все эти 192.168.1.1, 192.168.100.1, 192.168.2.1 - кто во что горазд). Иногда надо со смартфона показывать QR коды в камеру устройства или передавать настройки тональными сигналами в микрофон. Мы задались целью найти стандарт для поиска устройств в сети и внедрить его в свои устройства на основе микроконтроллеров и/или одноплатных компьютеров. Это статья о стандартах, их особенностях, преодолённых трудностях и об открытом коде, который мы написали для себя и считаем лучшей в мире открытой реализацией SSDP сервера и клиента.

Читать далее

FreeRTOS для самых маленьких на примере ESP-IDF

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

Все мы знаем, что FreeRTOS — это операционная система для проектов, где каждой задаче установлены строгие рамки времени, чтобы любое действие было гарантированно обработано. На этом познания об этой системе у большинства айтишников заканчиваются, по той простой причине, что 99% из нас не собираются никогда в жизни разрабатывать ничего наподобие софта тормозной системы автомобиля или медицинского оборудования. Но я бы хотел сегодня немного рассказать об этой системе, потому как она вполне может пригодиться многим из нас по другим причинам. Ведь FreeRTOS вполне может оказаться отличным следующим шагом для саморазвития после Arduino, потому как поддерживает невероятное количество процессоров и при разрастании проекта немногим сложнее «Hello World» её использование будет проще для написания кода за счёт своей продуманной архитектуры. Её можно использовать на микроконтроллерах, с которыми многие уже привыкли работать в своих проектах выходного дня и которые обходятся в смешные деньги, например AVR, ESP32 и STM32. Сегодня я покажу, насколько просто использовать преимущества FreeRTOS на примере контроллера ESP32 и фреймворка от производителя Espressif — ESP-IDF, для своей линейки микроконтроллеров.
Читать дальше →

DIY LED Cube: ультимативный гайд для сильных духом. Часть 1. Сборка

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров15K


В народе говорят, что каждый радиолюбитель должен собрать своими руками хотя бы один радиоприёмник, а каждый настоящий DIY-щик — LED Cube. Действительно, какой же ты радиолюбитель, если не собрал ни одного радио? (смайл)

Со светодиодным кубом тема интересная, но имеет множество «нюансов», поэтому я всё время откладывал построение собственного куба. И, как выяснилось, не зря — если бы я только знал во что ввязываюсь, то скорее всего никогда бы не взялся за этот проект.

На деле всё вылилось в просто-таки экзистенциальный вызов и испытание, которое может пройти только человек с узкой задницей стальными нервами, кучей навыков и умений и непреклонной волей к победе — иначе вся эта конструкция уже на сотом светодиоде полетит через всю комнату в мусорное ведро (или просто тупо не включится после подачи питания).

Но зато, если ты преодолел все трудности и создал это маленькое чудо, то можешь наслаждаться как самим девайсом (а это совершенно замечательная штука, особенно в умелых руках), так и осознанием того, что ты сдал экзамен на звание DIY-щика 80-го уровня (смайл).
Читать дальше →

Светодиодная звезда из елочной игрушки

Время на прочтение2 мин
Количество просмотров8.2K
Приветствую, Хабр!



В преддверии Нового года очень хотелось написать статью о какой-нибудь праздничной поделке. Вообще, каждый год я стараюсь сделать что-то новое, чтобы порадовать свою семью. Решил с вами поделиться своей первой разработкой, которая радует нас в праздники уже 14 лет.
Читать дальше →

Как взломать Harley Davidson. Часть 1

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

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

Читать далее

Создаём своё первое USB-устройство

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

Сегодня мы поговорим о создании USB-устройств, подключаемых к компьютеру и распознаваемых им. Этот пост задумывался как ваш первый источник для знакомства с разработкой USB-устройств.

Сначала небольшое предупреждение: я не считаю себя экспертом в USB. Не рассматривайте пост как авторитетное руководство; скорее, это документация к моему небольшому проекту по созданию простейшего USB-устройства E2E. Также в нём приведены ссылки на хорошие материалы, в которых тема рассмотрена более подробно.
Читать дальше →

Портативные медицинские приборы из микроконтроллера, датчиков и смартфона

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

Привет, читатель! Вероятность того, что вы пользуетесь устройствами из сферы персональной медицины, весьма высока. Для профессиональных спортсменов есть приборы для контроля состояния сердечно-сосудистой системы во время тренировок, (например, портативный ЭКГ). Для пациентов — медицинские холтеры, которые отслеживают работу сердца. Для всех желающих – фитнес-браслеты на любой вкус и кошелек. А что если собрать такой прибор своими руками? Нюансы, особенности и реализация проектов под катом!
Читать дальше →

От спецификации до производства: как устроена магистратура, где студенты разрабатывают чипы

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

«Несколько лет в университете приносят меньше знаний, чем несколько месяцев практики в реальной компании». Этот аргумент в пользу «ненужности» высшего образования звучит все громче. Но что если результат обучения в магистратуре — не вымученный, написанный «в стол» диплом, а топология микроконтроллера, готовая к печати на фабрике? 

Несколько лет назад МИЭТ и YADRO решили заложить в основу новой магистерской программы проект, который объединит студентов, желающих стать инженерами в сфере микроэлектроники. Александр Силантьев, руководитель лаборатории НИЛ СФБ и старший преподаватель НИУ МИЭТ, лектор Школы синтеза цифровых схем, рассказал про то, как строится программа и какие обязательные этапы проходят будущие инженеры. А еще — про характеристики созданного магистрантами чипа, который скоро вернется с фабрики. 

Читать далее

ЭКЛЗ. Как работали кассы в нулевые

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.3K
Приветствую всех! Давным-давно, лет так десять назад, не было онлайн-касс. И, если в девяностые обходились одной лишь фискальной памятью, то в двухтысячные придумали ещё один девайс для контроля, сложный и во многом противоречивый. Сейчас они уже не используются, а кассы такой системы запрещены к применению. Тем интереснее заставить их работать сейчас. Конечно, в магазин такую уже не поставишь, но посмотреть на сами аппараты после многих лет простоя мы сможем.



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

Все мои Ардуинки: часть третья, ESP8266 и ESP32

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров25K

И снова, уже в третий раз (здесь у нас первый, вон там второй) вашему вниманию предлагается моя коробочка с Ардуинками. На этот раз будем извлекать из неё и рассматривать под светом допросной лампы платы на микроконтроллерах ESP8266 и ESP32. Также изучим краткую историю появления этих контроллеров, некоторые их особенности и роль в мировой революции место в экосистеме Arduino.
Читать дальше →

Особенности построения графиков Qt в «Авроре»

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

Привет, читатель! Графики — это удобно. Нередко при разработке они нужны мне для визуализации процесса или демонстрации критичных событий. А еще их можно использовать, чтобы отобразить изменения погоды в течение дня, колебания курса валюты или диаграмму нагрузки и доступности сервера. В большинстве случаев для построения графиков есть готовые инструменты в самой операционной системе, но если вы это читаете, то в «Авроре» я ничего такого не нашел. Как я решал проблему и с какими подводными камнями столкнулся, рассказываю под катом.
Читать дальше →

Перепрограммируем заводской термостат Zigbee для теплого пола от компании Tuya

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

Автор не несет ответственности, если данная статья сделает из вашего умного термостата полоумный.

Для пользователей умных домов, которые строят свои системы на протоколе Zigbee, название Tuya знакомо, как никогда. Причем в последнее время название Tuya не всегда ассоциируют именно с компанией Tuya. Очень много китайских компаний выпускают свои изделия, в сердце которых лежит платформа Tuya. Вот весь этот "зоопарк" и принято называть Tuya.

Читать далее

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

Контроллер студийных мониторов с коррекцией АЧХ

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

История создания данного девайса началась с того, что я задумал прикупить пару студийных мониторов для работы с музыкой дома, однако, в отличии от обычных мультимедийных колонок, мониторы чаще представляют собой два независимых устройства. Т.е. регулировать громкость можно только на компьютере либо отдельно на каждом мониторе. Помимо этого, при работе в специализированном ПО (DAW) часто не используются стандартные драйвера и, соответственно, системный аудиомикшер и регулятор громкости просто не работают. Все это делает простую регулировку громкости совсем не тривиальной задачей. Регулировать звук можно фактически только изменяя уровень мастер-канала в DAW, что совсем неудобно. Конечно, в профессиональных внешних звуковых картах внешняя регулировка тоже предусмотрена, но не все ими пользуются. Для решения этой проблемы существуют мониторные контроллеры, бывают пассивные и активные. В самом простом пассивном варианте это просто потенциометр с ручкой в корпусе с разъемами на вход и выход. Возможности активных ограничены только фантазией разработчика и бюджетом покупателя. Вот как раз такой активный регулятор с дополнительными функциями мы и будем конструировать.

Читать далее

Умное освещение и старая проводка

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

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

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

Интеграция с Home Assistant
Другой способ интеграции - это переделка электроники люстры. Нужно заменить радиоуправление на модуль ESP32 под управлением ESPHome, который отлично интегрируется с Home Assistant.
Все управление освещением производится изменением состояния двух каналов яркости с помощью ШИМ-сигналов - холодного белого и теплого белого. Прошивка ESPHome умеет это "из коробки". Требуемый режим "искусственный рассвет" тоже легко реализуется - просто устанавливаем время включения на 30 минут, и получим плавное нарастание яркости.
Получается, что интегрировать люстру в систему умного дома относительно несложно, осталось придумать как сохранить возможность управления освещением с помощью существующих выключателей. Для этого нужно передавать команду от выключателя к люстре по тем же двум проводам, что и питание.

Читать далее

ESP32 тоже отчасти немножко ПЛИС? Делаем динамическую индикацию на матрице светодиодов за 0 тактов процессора

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

Пару месяцев назад в очередной раз занесло меня в Акихабару, и конечно же я не мог не заглянуть в свой любимый Akizuki Denshi.

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

Делать нечего, придётся пилить — и давайте попробуем сделать это, совершенно не занимая процессор!

Читать далее

Проектирование RTL на SCALA, схемотехника в российских САПР и верификация RISC-V: 8 докладов заключительной FPGA Systems

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

Если вы хотя бы раз слушали доклады FPGA Systems, вы знаете, что это настоящий интенсив с новыми знаниями по FPGA-разработке и не только. Заключительная конференция сообщества в этом году, организованная с YADRO, — не исключение. 30 ноября, в субботу, вас ждет восемь докладов от инженеров из МИЭТ, БЮРО 1440, ЭРЕМЕКС, YADRO. От новостей китайских ПЛИС (BMTI) — докладчик недавно посетил их производство — до разбора кейсов. Например, как запустить видеокарту AMD на ПЛИС с RISC-V. 

Места на офлайн-формат уже разобрали, но онлайн-трансляция доступна всем. Изучайте программу и подключайтесь к интересному именно вам докладу. И обязательно регистрируйтесь — так вы получите ссылку на трансляцию и ее запись после митапа. 

Читать далее

Разгон Raspberry Pi 5 до 3 600 МГц и охлаждение жидким азотом

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

Мы испробовали всё, чтобы сделать наш Raspberry Pi самым быстрым в мире — меняли ОС, использовали для охлаждения жидкий азот, апгрейдили схему питания и даже поменяли тактовый генератор. В этой статье я поделюсь некоторыми интересными выводами, которые мне удалось сделать за несколько недель хакинга малинки в сотрудничестве с ElmorLabs.
Читать дальше →

Подключаем «крысу» от ЕС ПЭВМ к современному ПК

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

Этот шедевр советской компьютерной промышленности знаком любому интересующемуся компьютерной историей. А некоторые из тех, кому довелось с ним работать, называли его не иначе как «крысой». И вот спустя много десятилетий после его выпуска я задумался: а что, если подключить этот девайс к обычному компьютеру? Именно этим мы сегодня и займёмся.



Итак, в сегодняшней статье поговорим про мышь от советского персонального компьютера ЕС1841. Узнаем, как заставить её работать и так ли она сурова, как можно подумать. Традиционно будет много интересного.
Читать дальше →

Как разрабатываются электронные девайсы

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

Мы постоянно окружены огромным количеством электроники. Эти маленькие платы с электронными мозгами есть практически везде. Некоторые из них даже подключены к интернету шпионят за нами. Но как они создаются?

Эта статья для тех, кто не имеет опыта разработки электроники, но хочет получить представление о процессе.

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

Читать далее

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