Pull to refresh
-4
Эдуард Зиганшин @e-zigread⁠-⁠only

Разработка электроники

Send message

USB на регистрах: составные устройства

Reading time13 min
Views9.5K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


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

Читать дальше →

Синтез цифровых схем: что почитать при любом уровне подготовки

Level of difficultyEasy
Reading time7 min
Views15K

Осенью стартовал новый поток Школы синтеза цифровых схем — нашей бесплатной образовательной программы о современных приемах проектирования цифровых микросхем. От серийных ASIC и микропроцессоров общего назначения до реконфигурируемых FPGA и специализированных вычислителей. По этим и связанным темам выпущено немало профессиональной литературы. Мы попросили преподавателей Школы — Юрия Панчула и Александра Рябова — выбрать книги, которые помогут при обучении в школе и самостоятельном освоении синтеза цифровых схем.

Читать далее

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

Level of difficultyEasy
Reading time13 min
Views19K

Linux Kernel — это, пожалуй, один из самых распространённых (и, возможно, до сих пор недооценённых) программных продуктов в мире. Он является основой всех дистрибутивов Linux (что очевидно), но на этом его роль не заканчивается. Ядро также работает на множестве встроенных устройств практически повсюду. У вас есть микроволновка? Скорее всего, она работает на ядре Linux. Посудомоечная машина? Тоже. Если у вас достаточно средств на автомобиль Tesla, вы даже сможете найти несколько багов, исправить их и отправить патч в код Model S или Model X на GitHub. А что насчёт схем, которые не позволяют Международной космической станции сойти с орбиты и врезаться в Землю? Конечно, и там тоже Linux. Ядро легковесное — значит, отлично работает даже в условиях невесомости.

В этой статье напишем свой первый модуль ядра под Linux

Читать далее

Светодиодная лента COXO FCOB RA90 480 LED, 10 Вт/м

Level of difficultyEasy
Reading time3 min
Views8K
Мне удалось найти на AliExpress недорогую светодиодную ленту с действительно высоким индексом цветопередачи и параметрами, соответствующими заявленным.

Заказал, изучил, протестировал.



Читать дальше →

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

Level of difficultyEasy
Reading time7 min
Views54K

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
Читать дальше →

Синтез Цифрового БИХ Фильтра Низких Частот

Level of difficultyEasy
Reading time5 min
Views4.1K

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

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

Далее я покажу некоторые приёмы расчета IIR фильтра по известным коэффициентам.

Читать далее

Quake 2 на нашем RISC-V, или как мы поднимали старый Radeon на FPGA

Level of difficultyMedium
Reading time11 min
Views9.3K

Всем привет! Меня зовут Александр Разинков, я разрабатываю системный софт в компании YADRO. В этом посте я расскажу о стресс-тестировании нашего RISC-V-кластера с помощью… Quake 2! Почему «квейк»? RISC-V активно развивается как основная application-платформа в мире, и игры — это хороший способ проверить возможности ядер, драйверов GPU и экосистемы в целом. В некоторых важных аспектах игры дают значительно большую нагрузку, чем стандартные программные тесты, особенно на память и интерконнект.

В ходе проекта мы получили отличный опыт работы с видеоподсистемой и графическим стеком Linux, которым стоит поделиться. Открыли для себя новую группу бенчмарков по графике и UX. Наконец, это первый на моей памяти запуск игр именно на российских ядрах RISC-V!

Читать далее

Рабочая C++ IDE в docker container

Level of difficultyMedium
Reading time10 min
Views7.9K

Привет, хабр! Программирую на C++ / Qt / QML в среде разработки QtCreator уже 6-ой год. У меня есть определенные пересечения мыслей с мозгом груга и еще мне постоянно хочется избавиться от глупой и рутинной работы, которая есть на разных этапах разработки. Одна из таких работ - возня с IDE и рабочим окружением, особенно в мире C++ разработки. В статье постараюсь раскрыть проблему и описать свой текущий подход к решению.

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views569

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

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

Читать далее

История одного блокчейна

Level of difficultyMedium
Reading time76 min
Views2.9K

На протяжении нескольких лет я участвовал в разработке блокчейн-платформы, вначале как разработчик, затем как руководитель команды (team lead, как это принято сейчас называть). За это время мне посчастливилось пройти все стадии жизненного цикла продукта, от идеи до выхода в продакшн. И это был уникальный опыт, в каком-то смысле драматический.  Дело в том, что в процессе своей довольно длительной карьеры я участвовал в огромном множестве самых различных проектов, но до сих мне не приходилось сталкиваться с таким количеством нетривиальных задач, которые требовали нестандартных решений.  И я хотел бы поделиться этим опытом.

Для кого? В первую очередь для специалистов, занимающихся проектированием блокчейн-систем – ведь всегда полезно посмотреть, что происходит у коллег по цеху. Руководителям команд, мне кажется, будет интересно понаблюдать за борьбой идей, процессом выработки решений, допущенными ошибками и их исправлениями. Остальным категориям разработчиков ПО представится возможность заглянуть во внутреннюю кухню блокчейна, увидеть, как это работает «под капотом», и применить полученные знания в других областях, не обязательно связанных с блокчейном.

Читать далее

Слово this: управление контекстом выполнения в JavaScript

Reading time5 min
Views5.2K

Привет, Хабр! Сегодня мы поговорим о this, потому что без четкого понимания, как работает this, ваш код может стать источником путаницы и ошибок.

this в JS — это ключевое слово, которое ссылается на текущий контекст выполнения. Его значение зависит от того, где и как была вызвана функция, а не от того, где она была определена.

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

Читать далее

Попытка просто объяснить сложные, для новичков, вещи в javascript

Reading time8 min
Views24K
Я попытаюсь просто объяснить, как работают замыкания в Javascript, как работает this, как создавать конструкторы для своих классов и чем различаются различные подходы к их созданию.
Статья не претендует на новаторство, но достаточно доступные объяснения how it works для новичков я не видел, и на мой взгляд — это три самых узких места в Javascript (не привязанному к какому либо контексту, серверу или браузеру, например).
Читать дальше →

SLS по-прежнему является национальным позором

Level of difficultyMedium
Reading time29 min
Views63K

Четыре года назад, не сумев найти достаточно полного обзора вялотекущего провала под названием NASA SLS (Space Launch System), я написал его сам. Если вы не знакомы с темой, рекомендую сначала прочитать ту статью.

За эти четыре года SLS запустили только один раз. Время летит, а вот ракета — не очень. Я редко пишу посты резко критического характера, поэтому в силе обычные оговорки: я тут пишу исключительно как частное лицо, некий Парень с Мнением в Интернете.

Читать далее

Некоторые малоизвестные фичи, фокусы и причуды языка C

Reading time19 min
Views34K

В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку  не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.

Читать далее

Моделируем работу ПЛИС красиво

Level of difficultyEasy
Reading time7 min
Views5.6K

Настройка визуального представления сигналов при моделировании в среде ModelSim (часть 1)

Добрый день читателям Хабра! Меня зовут Алексей, я занимаюсь работой с ПЛИС (FPGA) уже более 15 лет. Хабр читаю давно, но статьи здесь никогда не писал. В общем решил попробовать. Не знаю, насколько на Хабре интересны темы, связанные с ПЛИС? Но всё же, вдруг кому-то эта небольшая статья будет полезна.

Читать далее

Zynq 7000. HDMI для платы Zynq Mini для baremetal

Level of difficultyMedium
Reading time10 min
Views7.1K

Я давно носил идею проверки HDMI на платах Zynq, и вот наконец-то дошли руки до этого интересного топика. В этой статье я покажу, что вывод изображения через HDMI достаточно прост, но ограничусь только рассмотрением вывода изображения из baremetal-приложений, а вопросы про Linux оставлю для следующей статьи. В первую очередь изучим возможность простого вывода изображения в HDMI из генератора тестовых изображений с использованием Test Pattern Generator в PL-логике, а затем коснёмся применения AXI Video DMA.

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

Читать далее

Голова на подушке, попкорн и песочные часы: какие дефекты можно встретить при рентген-контроле качества печатных узлов

Reading time13 min
Views8.5K

Качество монтажа компонентов на печатной плате требует постоянного контроля. Пропущенный дефект может вылиться в брак итогового устройства — его некорректную работу или полное отсутствие «жизни». На современных производствах давно используют системы оптического контроля — AOI и SPI, но не всегда они применимы. Так, ими не проверить качество пайки внутренних выводов микросхем в BGA-корпусе или монтажа термопадов QFN-, QFP-корпусов. Для них используют рентген-контроль.

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

Читать далее

Метрическая триангуляция (теория)

Reading time2 min
Views5.4K

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

Читать решение

Что должен знать каждый разработчик о вычислениях на GPU

Level of difficultyMedium
Reading time13 min
Views17K

Большинство программистов отлично разбираются в работе процессоров и последовательном программировании, поскольку с самого начала пишут код для CPU. Однако многие из них меньше знают о том, как устроены графические процессоры (GPU) и в чем заключается их уникальность. За последнее десятилетие GPU стали чрезвычайно важны благодаря широкому применению в глубоком обучении, и сегодня каждому разработчику необходимо обладать базовыми знаниями о том, как они работают. Цель этой статьи — дать вам это понимание. 

Читать далее

Information

Rating
Does not participate
Location
Мытищи, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

System Software Engineer, Hardware Engineer
Senior
From 225,000 ₽
C++
Qt
Verilog HDL
VHDL
C
Git
Linux