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

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

Отправить сообщение

Обзор Протокола ISO-TP [ISO 15765-2]

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

Как известно канальные CAN пакеты могут быть размером максимум 8 байт. Одновременно с этим, с более высоких уровней модели OSI могут поступить запросы передать огромные пакеты  [ jumbo frame(ы) ]. Как же разрешить это противоречие?

Эту ситуацию призван распетлять протокол ISO-15765-2 (или попросту ISO-TP ).

В этом тексте я выполнил обзор протокола ISO-TP.

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

Взлом аппаратного ключа методом veni, vidi, vici

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

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

Задача: Сделать так, чтобы можно было пользоваться оборудованием. Дистрибутив софта, требующего ключ, есть. Работает он под Windows. Просроченный ключ есть. Оборудованию около 10 лет.

Ниже описан путь решения со всеми ошибками.

Прочитать историю
Всего голосов 155: ↑152 и ↓3+182
Комментарии26

USB Type-C SWD Adapter

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

Прочитав статью Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB у меня сразу появилась идея, как сделать более правильно и удобнее (как хочешь втыкай кабель, по привычке и рабочий USB 2.0 порт). Получился вот такой вот адаптер для J-Link (для JTAG 10 pin):

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

SimulIDE: открытый симулятор цифровых схем и микроконтроллеров

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

В этой заметке я решил рассказать о SimulIDE. Это относительно новое программное средство с открытым исходном кодом, предназначенное для моделирования 8-битных микроконтроллеров семейств AVR и PIC, а также прочих электронных схем. По интерфейсу SimulIDE напоминает Proteus. SimulIDE кроссплатформенный и работает под Linux, Windows и Mac. Далее будут рассмотрены основные возможности этого симулятора и рассказано о моих личных впечатлениях от работы с данной программой.

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

STM32. Процесс компиляции и сборки прошивки

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров27K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

Всем кому интересно — добро пожаловать под кат! 🙂

Читать дальше →
Всего голосов 107: ↑106 и ↓1+122
Комментарии67

Копаемся в встроенном приложении камеры старого Xiaomi. Часть 1

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

Попытаемся портировать встроенные фильтры камеры Xiaomi Mi A1 на новенький Redmi Note 12 с восьмой попытки

[К первой попытке!]
Всего голосов 46: ↑46 и ↓0+46
Комментарии15

Fan Control — лучший софт для управления вентиляторами в компьютере

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


Каждый владелец компьютера сталкивался с шумом вентиляторов. Хорошо, когда они качественные, не шипят и не гудят, а материнская плата каким-то чудом сама управляет ими в оптимальном режиме, и все довольны.

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

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

В этой статье я опишу очень небольшую утилиту для управления вентиляторами в ПК, которая поразила меня своей гибкостью, и вот уже многие годы является второй в списке на установку в свежую систему. Почему второй? Потому что первым делом в систему ставится браузер, желательно огнелис.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+53
Комментарии78

Самый простой способ обхода блокировок доступа к сайтам любых стран

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

Я понимаю, что пока, за использования VPN, аннонимайзеров и/или tor не применяют уголовные статьи, поэтому гораздо проще скачать какое нибудь приложение из магазина приложений и бесплатно воспользоваться им. Но где гарантия, что завтра они будут работать?

Я понимаю (программисты, сисадмины, DevOps'ы и т.д.) данный способ нельзя назвать уникальным, оптимальным и вообще, так лучше не делать, но согласитесь - это достаточно простой способ туннелирования трафика, который позволяет обойти (если не все), то огромное количество разнообразных сетевых блокировок.

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

Так же, этот способ - достаточно дешевый (меньше чашки кофе в день) и очень быстрый с точки зрения реализации (буквально 5 минут).

Интересно?

Читать далее
Всего голосов 90: ↑61 и ↓29+49
Комментарии412

Обзор микроволнового датчика присутствия Hi-Link LD2410

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

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

Мой выбор пал на DIY микроволновый датчик Hi-Link LD2410, расскажу почему.

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

Дозиметр для Серёжи. Часть II. «столетние трубки» vs мирный атом

Время на прочтение27 мин
Количество просмотров61K
В первой части своего повествования я рассказал о производителях, без сомнения, ТОП-овых белорусских дозиметров. Несмотря на все их достоинства, основные недостатки — отсутствие в розничной продаже и высокая цена даже на вторичном рынке — сводят полезность упомянутых приборов для рядового пользователя к нулю. Основная претензия к оборудованию для контроля радиационного фона со стороны обывателя — должно быть просто и дешево. Поэтому сегодня я попробую описать свое видение простых, сделанных на коленке сигнализаторов радиоактивности. Никаких там сцинцилляторов за сотни и тысячи долларов, намотки трансформаторов и травления печатных плат. Сегодня под катом то, что под силу каждому человеку обладающему стандартным уровнем технической грамотности.

Читать дальше →
Всего голосов 86: ↑82 и ↓4+78
Комментарии176

Добавляем Unit-тестирование в проекты STM32CubeIDE

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

А именно, мы будем добавлять отличную систему Сeedling. Данная система содержит в себе сразу два инструмента – Unity – непосредственно для проведения и написания тестов и CMock для генерации объектов-заглушек. Но самая большая заслуга данного пакета – простота во всех аспектах – начиная от генерации тестируемых модулей и до релиза проекта. Использование Сeedling превращает рутинное TDD (Разработка через тестирование) или TLD(если захочется так) в обычный рабочий процесс.

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

Знакомимся с Artery. AT-START-F423 – пробуем и подключаем дальномер AJ-SR04M

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

Микросхемы микроконтроллеров от Artery выглядят достаточно интересным вариантом замещения STM. Больше всего подкупают своей доступностью для заказа. Отладок много, собраны качественно, шелкография качественная(по крайней мере на тех, которые я видел и держал в руках). Посмотрим, что производитель предлагает по поддержке со стороны программного обеспечения и IDE

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

Запускаем кодек OPUS на микроконтроллере

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

Исходные данные – есть контроллер STM32 с очень ограниченной памятью, а мы хотим записывать на нем звук. Допустим, что примеров с подключением выбранного нами микрофона гора и маленькая тележка. В итоге имеем контроллер, который умеет выдавать нам WAV-подобный сигнал. Хотелось бы этот WAV-сигнал куда-то записать или передать. Таких данных будет очень много, есть ненулевая вероятность, что мы не влезем по полосе пропускания используемого канала или заполним память до того, как получим нужную информацию. На помощь нам спешит компрессия!

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

Как запустить собственную GSM-сеть за пять минут при помощи SDR

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

Давным-давно я уже рассказывал про то, как в домашних условиях поднять GSM-сеть при помощи комплектующих, доступных любому школьнику. И в той статье я мельком упомянул, что идеальным в плане производительности вариантом будет запускать сети при помощи SDR, а не телефонов.



Итак, в сегодняшней статье поговорим о том, как быть владельцам SDR, желающим запустить свою GSM-сеть. Узнаем, какой софт нужен, чтобы заставить её работать в прямом смысле слова за пять минут. Попутно запустим GPRS и ненадолго побываем в 2007 году. Традиционно будет много интересного.
Читать дальше →
Всего голосов 107: ↑107 и ↓0+107
Комментарии98

STM32. Подготавливаем среду разработки в Linux

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров25K
В недавнем времени получилось так, что у меня появилась пара интересных проектов, где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки как в первый раз. Плюсом, последние проекты, которые я делал для STM32 — выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно переехал в Linux — возникла необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений.

Всем, кому интересно — добро пожаловать под кат.

Читать дальше →
Всего голосов 53: ↑52 и ↓1+61
Комментарии35

Как нашли бэкдор в радиосвязи TETRA — подробный разбор

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

Неприступных крепостей не бывает. Опасную брешь, то есть бэкдор, недавно обнаружили в шифрованном стандарте радиосвязи TETRA. А ведь он вот уже 25 лет используется военными, экстренными службами и объектами критической инфраструктуры по всему миру. Самое интересное, что на технические детали и контекст этой истории почти никто не обратил внимания.

Мы изучили статьи и доклады исследователей и собрали всю суть. Перед вами — подробная история взлома TETRA.

Читать далее
Всего голосов 176: ↑175 и ↓1+219
Комментарии35

Малоизвестные и интересные особенности C и C++

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

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Всего голосов 127: ↑126 и ↓1+159
Комментарии61

Сам себе мобильный интернет. Запускаем базовую станцию стандарта 4G LTE

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

Я уже не раз рассказывал про то, как в домашних условиях поднять сотовые сети разных стандартов. Но всё же все они были уже весьма древними. Самое время замахнуться на кое-что поинтереснее — LTE.



Итак, в сегодняшней статье поговорим о том, что детально в нашем сообществе не описывал практически никто — о том, как запустить базовую станцию самого нового из поддерживаемых большинством телефонов этой страны стандартов. Поговорим об особенностях её работы и о трудностях, с которыми, возможно, придётся столкнуться при запуске. Традиционно будет много интересного.
Читать дальше →
Всего голосов 313: ↑312 и ↓1+368
Комментарии159

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

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


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 47: ↑46 и ↓1+61
Комментарии37

Структура драйвера Linux для одноплатного компьютера

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

Здраствуйте меня зовут Дмитрий. Недавно я написал статью как собрать прошивку для одноплатного компьютера Orange PI i96 с нуля. Если вы не читали то очень советую. И там я упоминал что для того чтобы собрать прошивку на новом ядре Linux, мне пришлось переписать драйверы с учетом архитектуры Device Tree, которую использует современное ядро. В этой статье я опишу как я это сделал.

Читать далее
Всего голосов 34: ↑33 и ↓1+35
Комментарии5

Информация

В рейтинге
2 294-й
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Embedded Software Engineer