Как стать автором
Обновить
4
0
Yaroslav @RISA

Software Developer

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

Согласование импедансов: как сломать и как починить

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

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

Данная статья является попыткой начать с конца. Я возьму работающую схему, выполненную в текстолите. Затем постараюсь ухудшить её характеристики так, чтобы рассогласование линий стало причиной сбоев в работе или хотя бы стало заметно на осциллографе. А затем постараюсь устранить возникшие проблемы.

Согласовать импедансы
Всего голосов 68: ↑67 и ↓1+88
Комментарии40

DIY-зарядник для аккумуляторов ноутбуков на базе контроллера MP26123/MP26124

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

Это не первый мой проект по разработке зарядного устройства для батарей ноутбуков. Отмечу, что в первом проекте я использовал Max1873. Но для контроля заряда пришлось использовать микроконтроллер ATtiny. Все бы ничего, но здесь требовалось написать специфический код, что усложнило проект.

Второй проект работает на базе MP26123 или MP26124 от Monolithic Power Systems. Эти чипы дают возможность заряжать разряженный аккумулятор, прекращать зарядку при достижении 100% уровня заряда, разряжать уже заряженную батарею и контролировать ее температуру. Достоинством контроллеров является еще и то, что основной FET-свитч расположен внутри, что снижает сложность компоновки. Пример собранной платы — в самом начале статьи. Ну а под катом обсудим подробности проекта.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+44
Комментарии19

АЦП преобразования в указанные моменты времени на STM32

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

В этом посте я расскажу, как мне удалось заставить STM32F4 измерять аналоговые сигналы в указанные моменты времени с помощью DMA не расходуя вычислительных ресурсов микроконтроллера.

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

Как работает парктроник и как его обмануть

Время на прочтение3 мин
Количество просмотров48K
imageВ один прекрасный день… Зачем я вру? Не настолько прекрасен был день, когда у меня сдох отечественно-китайский парктроник, установленный еще прежним владельцем. Надо что-то делать, но что? Купить на любой онлайн площадке очередное готовое изделие? Неинтересно. В сети, да и на хабре, есть достаточное количество материалов о реверсе протокола общения блока с индикатором или о создании своего парктроника на Arduino. И можно пойти по одному из этих путей. Но это все не то, чего желала душа. А желала она чего-то более штатного, приближенного по исполнению к автомобильной электронике.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+57
Комментарии84

Лазерный станок своими руками

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


Привет, Хабр! Сегодня расскажу о своем лазерном станке для резки фанеры и гравировки кожи. Цель была как всегда – максимум функционала за минимум денег).
Читать дальше →
Всего голосов 90: ↑89 и ↓1+124
Комментарии194

Все, что вы хотели знать об обратном маятнике

Время на прочтение5 мин
Количество просмотров37K
Статья служит шпаргалкой для тех, кто хочет сделать свой обратный маятник. Здесь описаны проблемы, из-за которых я все переделывал несколько раз, приведен краткий обзор теории, необходимый для понимания, как стабилизировать систему.
Всего голосов 70: ↑70 и ↓0+70
Комментарии23

Дешёвые и дорогие батарейки ААА

Время на прочтение3 мин
Количество просмотров346K
Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


Читать дальше →
Всего голосов 369: ↑363 и ↓6+357
Комментарии388

ЧПУ в хоббийной мастерской (часть 3)

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


Изначально, планировал ограничиться двумя постами (раз, два) про мои ЧПУшные эксперименты. Но, тема оказалась многим интересной, поэтому, немного ее еще пораскрываю. В этом посте пойдет речь про написание самодельного софта для управления любительским ЧПУ.
Всего голосов 31: ↑31 и ↓0+31
Комментарии32

Разрабатываем процессорный модуль NIOS II для IDA Pro

Время на прочтение12 мин
Количество просмотров8.1K
image

Скриншот интерфейса дизассемблера IDA Pro

IDA Pro — знаменитый дизассемблер, который уже много лет используют исследователи информационной безопасности во всем мире. Мы в Positive Technologies также применяем этот инструмент. Более того, нам удалось разработать собственный процессорный модуль дизассемблера для микропроцессорной архитектуры NIOS II, который повышает скорость и удобство анализа кода.

Сегодня я расскажу об истории этого проекта и покажу, что получилось в итоге.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии5

Радиоэлектроника, или как я начал её постигать

Время на прочтение5 мин
Количество просмотров196K
Добрый день, уважаемое сообщество.

Меня все время удивляли люди, которые понимают в радиоэлектронике. Я всегда их считал своего рода шаманами: как можно разобраться в этом обилии элементов, дорожек и документации? Как можно только взглянуть на плату, пару раз «тыкнуть» осциллографом в только одному ему понятные места и со словами «а, понятно» взять паяльник в руки и воскресить, вроде как почившую любимую игрушку. Иначе как волшебством это не назовёшь.

Расцвет радиоэлектроники в нашей стране пришёлся на 80-е годы, когда ничего не было и все приходилось делать своими руками. С той поры прошло много лет. Сейчас у меня складывается впечатление, что вместе с поколением 70-х уходят и знания с умением. Мне не повезло: половину эпохи расцвета меня планировали родители, а вторую половину я провёл играя в кубики и прочие машинки. Когда в 12 лет я пошёл в кружок «Юный техник» — это были не самые благополучные времена, и ввиду обстоятельств через полгода пришлось с кружком «завязать», но мечта осталась.

По текущей деятельности я программист. Я осознаю, что найти ошибку в большом коде ровно тоже самое, что найти «плохой» конденсатор на плате. Сказано — сделано. Так как по натуре я люблю учиться самостоятельно — пошёл искать литературу. Попыток начать было несколько, но каждый раз при начале чтения книг я упирался в то, что не мог разобраться в базовых вещах, например, «что есть напряжение и сила тока». Запросы к великому и ужасному Гуглу также давали шаблонные ответы, скопированные из учебников. Попробовал найти место в Москве, где можно поучиться этому мастерству — поиски не закончились результатом.

Итак, добро пожаловать в кружок начинающего радиолюбителя.
Читать дальше →
Всего голосов 68: ↑54 и ↓14+40
Комментарии122

Диод. Светодиод. Стабилитрон

Время на прочтение13 мин
Количество просмотров150K
Не влезай. Убьет! (с)

Постараюсь объяснить работу с диодами, светодиодами, а также стабилитронами на пальцах. Опытные электронщики могут пропустить статью, поскольку ничего нового для себя не обнаружат. Не буду вдаваться в теорию электронно-дырочной проводимости pn-перехода. Я считаю, что такой подход обучения только запутает начинающих. Это голая теория, почти не имеющая отношения к практике. Впрочем, интересующимся теорией предлагаю эту статью. Всем желающим добро пожаловать под кат.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии104

Радиоконструктор: FM радио на базе Atmega328-P и RDA5807M

Время на прочтение5 мин
Количество просмотров47K
Добрый день, уважаемые хабражители!

Меня зовут Михаил Матвеев, и я хотел бы представить Вашему вниманию проект современного «радиоконструктора», основанного на МК Atmega328 и чипе RDA5807M.

Предыстория


Я думаю, многие из вас не только слышали, но и непосредственно сталкивались с такой платформой, как Arduino. И как показывает моя личная статистика, очень немногие заходят дальше, чем поморгать светодиодами. Когда я познакомился с Arduino в первый раз, меня останавливало то, что не было идей, как именно я бы мог использовать все возможности того же UNO на «полную катушку». Хватило только на сборку простенького робота на двух колёсах и сигнализации. Вместе с тем, хотелось сделать что-то более основательное.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии51

Wiren Board 6: снова на Хабре с новой версией контроллера для автоматизации

Время на прочтение6 мин
Количество просмотров43K
Всем привет!

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


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

Беспроводной звук. Часть 1. Препарируем Bluetooth

Время на прочтение20 мин
Количество просмотров317K
Иногда, бывает, натыкаешься на какой-то баг впервые, списываешь все на обстоятельства и забываешь о нем. Затем он повторяется снова и снова, вынуждая тебя приступить к поиску проблем и, по возможности, их устранению. И вот когда ты обнаруживаешь себя в глубокой ночи за анализом дампом/дебагом/чтением_мануалов, то становится понятно, дело на полпути бросать уже нельзя и дело принципа — довести его до конца.

Такая история со мной приключилась в момент обзора с коллегой r3s потребительской беспроводной Bluetooth-акустики Klipsch KMC 3. Я столкнулся с ситуацией, когда «беспроводной» аудиопоток начинал безбожно прерываться, стоило лишь мне расположить источник звука у себя за спиной. Пищи для размышлений мне подкинула другая Bluetooth-аудиосистема, которая в тех же условиях вела себя куда лучше. Такая простая проблема выродилась в нырок с головой во внутренности протокола Bluetooth и детали передачи аудио с его помощью.

Под катом первой части цикла статей мы в легкой и непринужденной форме познакомимся с основными протоколами стека Bluetooth, покопаемся в дампе соединения источника и приемника звука, разберемся в причинах конфликта Bluetooth и Wi-Fi и обнаружим корень моей проблемы — прерывающегося звука.
Читать дальше →
Всего голосов 113: ↑112 и ↓1+111
Комментарии38

Downclocking оперативной памяти на MacBook

Время на прочтение7 мин
Количество просмотров40K
Хочу поделиться своим опытом апгрейда своего MacBook6,1 A1342 (увеличение памяти до 8Гб, установка SSD) и решении ряда проблем связанных с установкой системы на новый диск и борьба с глюками несовместимости RAM.

Сначала может показаться, что апгрейд старого железа тривиальная задача: в интернете должно быть полно статей на эту тему, а на рынке куча дешевых запчастей для него. Но не все так просто на практике. Проблемы начались еще в магазине на этапе подбора комплектующих
Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии46

Вам не следует проводить собеседования, потому что… [спойлер — вы сами не ходите на собеседования]

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

Тезис: вам не следует проводить собеседования, если вы не ходили хотя бы на три интервью как соискатель за последние полгода.


Более того, вы сами это прекрасно знаете, сознательно или подсознательно, однако корпоративная этика мешает заявить прямо о своих сомнениях.


Для привлечения внимания покажем картинку и продолжим.


Народ нарывается на ЯРОСТЬ


Читать дальше →
Всего голосов 76: ↑56 и ↓20+36
Комментарии75

Исследуем минорные возможности C# 7

Время на прочтение4 мин
Количество просмотров15K
C# 7 добавляет ряд новых возможностей и фокусирует внимание на потреблении данных, упрощении кода и производительности. Самые большие фичи были уже рассмотрены — кортежи, локальные функции, сопоставление с образцом и throw выражения. Но есть и другие новые возможности, как большие, так и малые. Все они сочетаются, чтобы сделать код более эффективным и понятным, чтобы все были счастливы и продуктивны.

Давайте рассмотрим и остальные возможности новой версии C#. Итак! Начнем!
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии11

Как я писал компилятор С++. Пересказ спустя 15 лет

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

image
Читать дальше →
Всего голосов 114: ↑109 и ↓5+104
Комментарии117

Иммутабельные данные в C++

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

Привет, Хабр! Об иммутабельных данных немало говориться, но о реализации на С++ найти что-то сложно. И, потому, решил данный восполнить пробел в дебютной статье. Тем более, что в языке D есть, а в С++ – нет. Будет много кода и много букв.


О стиле – служебные классы и метафункции используют имена в стиле STL и boost, пользовательские классы в стиле Qt, с которой я в основном и работаю.


Введение


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


По сути иммутабельные данные должны:


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

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


Как можно реализовать иммутабельные данные в С++?
В С++ у нас есть (сильно упрощенно):


  • значения – объекты фундаментальных типов, экземпляры классов (структур, объединений), перечислений;
  • указатели;
    ссылки;
    массивы.

Функции и void не имеет смысл делать иммутабельными. Ссылки тоже не будем делать иммутабельными, для этого есть const reference_wrapper.


Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии123

RESTful API для сервера – делаем правильно (Часть 1)

Время на прочтение13 мин
Количество просмотров332K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии57

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

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

Software Developer, Backend Developer
Lead
English
Java Spring Framework
Database
High-loaded systems
Designing application architecture
Kubernetes
Redis
Linux
Java
Spring Boot