Pull to refresh
125
2.3
Автушенко Игорь @GarryC

Разработчик аппаратуры и программист ее

Send message

Народный измеритель ёмкости батареек BatteryTest

Level of difficultyEasy
Reading time6 min
Views24K
Я разработал дешёвый, точный и максимально простой в использовании прибор, с помощью которого можно измерить ёмкость практически любой батарейки (от микроскопических батареек для слуховых аппаратов до крупных батарей). Повторить мой прибор может любой желающий.



Читать дальше →
Total votes 188: ↑206.5 and ↓-18.5+225
Comments51

CG Charger BQ: как TP4056, только на стероидах (BQ25895)

Level of difficultyMedium
Reading time16 min
Views13K


Сегодня на нашем операционном столе очередное гениальное изобретение компании ClimateGuard — девайс под не менее гениальным названием CG Charger BQ. Расшифровке того, что же всё-таки скрывается под этими загадочными буквами BQ (что означают буквы CG постоянные читатели моего блога уже знают) и посвящена эта статья.

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

Правда для осмысленной работы с BQ25895 вам понадобятся пара высших образований в Computer Science (смайл) и… эта статья…
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments40

Энциклопедия контроллеров и обучающий проект (на Хабре)

Level of difficultyEasy
Reading time7 min
Views13K


Я давно занимаюсь микроконтроллерной тематикой и делюсь своими изысканиями (частью изысканий) в блоге на Хабре. Делаю я это довольно давно и количество статей уже перевалило за сотню, и, в полном соответствии с воззрениями (старины) Гегеля, количество явно переросло в качество.

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

Настало время как-то систематизировать эту информацию, прокомментировать и поделиться своими мыслями на эту тему. А в практическом плане этот каталог (мини-энциклопедию) можно использовать для выбора DIY контроллеров для своих проектов или, учитывая опубликованные примеры кода и переводы туториалов, как обучающее пособие по их программированию.

Итак…
Читать дальше →
Total votes 59: ↑59.5 and ↓-0.5+60
Comments11

Расчет потерь в MOSFET транзисторах

Level of difficultyMedium
Reading time6 min
Views6.6K

Приветствую!

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

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments19

Рецепт красивого бабаха. Три составляющих хорошего силового преобразователя. Часть 2

Reading time11 min
Views15K

У вас есть симпатичная плата силового преобразователя? Тогда мы идём к вам! Давайте взорвём его! На картинке источник питания и «всё что осталось после нашей с ним работы». Приветствую. Это вторая часть статьи о трёх составляющих преобразователя. Сегодня доберёмся до некоторых хитростей, до пока ещё живых примеров и до салюта. Интересно? Тогда пристёгивайтесь и поехали!
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments15

Бесплатные курсы для изучения C++ в 2024 году

Level of difficultyEasy
Reading time6 min
Views37K


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

Учить C++ в 2024 году по бесплатным курсам имеет несколько преимуществ. Вот несколько причин, почему это стоит делать:

1. Популярность языка: C++ является одним из самых популярных языков программирования, который широко используется в различных областях, включая разработку игр, системное программирование и мобильные приложения. Изучение C++ может открыть перед вами множество возможностей в карьере.

2. Высокая производительность: C++ известен своей высокой производительностью и эффективностью. Он позволяет разрабатывать быстрые и оптимизированные приложения, особенно в сферах, где требуется работа с большими объемами данных или высокая скорость выполнения.

3. Множество полезных библиотек: C++ предоставляет широкий набор инструментов и библиотек для разработки приложений.

4. Доступно множество полезных ресурсов: Язык C++ очень популярный, существует множество различных онлайн-ресурсов, форумов и сообществ, где можно получить помощь и поддержку от опытных разработчиков.

Читать
Total votes 37: ↑35 and ↓2+33
Comments18

Устройство GPIO-драйверов в Linux

Level of difficultyMedium
Reading time26 min
Views5.2K

Рассмотрим, как устроены GPIO-драйверы в Linux, и почему это сделано именно так. Поймем, почему для простого мигания светодиодом в этой операционной системе надо пройти через N слоев абстракции.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments18

Универсальная плата для E-Ink экранов. Ч1. Разработка системы питания

Level of difficultyMedium
Reading time13 min
Views7.2K

Однажды мне попался один весьма интересный проект платы, поддерживающей большое количество разнообразных E-Ink экранов. Проект довольно быстро заинтересовал, появилось желание несколько переработать плату, внести улучшения, узнать и попробовать что-нибудь новое. Больше всего изменений претерпела система питания: она была разработана практически с нуля. Процесс оказался очень познавательным и увлекательным, а отладка прототипа преподнесла много поучительных и забавных сюрпризов. Это жизненный рассказ о разработке как есть.
Читать дальше →
Total votes 70: ↑70 and ↓0+70
Comments30

Создаем I2C Master Controller на Verilog. Проверим работу на реальном железе

Level of difficultyMedium
Reading time22 min
Views5.6K
После того, как Я реализовал битовый контроллер I2C Master — уж очень чесались руки опробовать его в реальной задаче. Теперь можно начинать строить уровни абстракции от манипуляции отдельными битами и уже формировать полноценные транзакции, которые приводят к какому-либо действию с подчиненным устройством. Я подумал, что было бы классно сделать такую проверку своего автомата во взаимодействии с простейшей I2C 2K-bit EEPROM.

Идея простая — читаем и записываем данные по нажатию клавиш на одной из отладок с Cyclone IV, которые я рассматривал в одном из своих обзоров.

Если материал вам кажется интересным — добро пожаловать, с удовольствием и в свойственной мне манере расскажу, чего мне удалось добиться, а чего не удалось. 🙂

image


Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments8

Ускоряем программу для 50-летнего процессора на 180000%

Level of difficultyHard
Reading time36 min
Views45K

В прошлом году я написал программу, вычисляющую 255 цифр числа π на самом первом микропроцессоре от Intel - 4004. В той статье я упоминал рекорд ENIAC'a - 2035 цифр [^1], но побить его не смог. Настало время закрыть гештальт. В этот раз возьмём одного из преемников от Intel - 4040.

Читать далее
Total votes 289: ↑287 and ↓2+285
Comments41

Сборка мусора: как это делается в системном программировании

Level of difficultyMedium
Reading time9 min
Views8.4K
image

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

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

Объединим две эти цели – и обнаружим, сколько же существует странных и магических методов для неблокирующего совместного использования данных в разных потоках. Давайте поговорим об одном из этих методов – «чтение-копирование-запись» (RCU).
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments10

Можно ли доверить компилятору оптимизацию вашего кода?

Level of difficultyHard
Reading time9 min
Views6.2K
image

Существует три уровня понимания того, как работает SIMD (ну, по крайней мере, на данный момент я нахожусь на 3-м уровне):

  1. Компиляторы умны! Они автоматически векторизуют весь код!
  2. Компиляторы тупы, автоматическая векторизация хрупка, ее очень легко нарушить несвязанными изменениями в коде. Всегда лучше вручную написать конкретные инструкции SIMD.
  3. Написать SIMD вручную действительно сложно — для каждой архитектуры процессора придется писать разный код. Кроме того, вы, вероятно, понимаете, что компилятор напишет на ассемблере скалярный код лучше вас. Что заставляет вас думать, что вы превзойдете компилятор в SIMD, где еще больше странных инструкций и запретов? Компиляторы — это инструменты. Они могут надежно векторизовать код, если он написан в форме, поддающейся векторизации.

Недавно я перешел со второго уровня на третий, и я заметил, как модель, используемая компилятором, щелкнула у меня в голове. В этом посте я хочу объяснить общую структуру компиляторов, пригодную для оптимизации статических языков, таких как Rust или C++. После этого я применю эту структуру к автоматической векторизации.
Читать дальше →
Total votes 41: ↑36 and ↓5+31
Comments11

Спортивное программирование: что это, зачем и какие задачи приходится решать

Reading time6 min
Views11K

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

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments2

Одноплатный компьютер с 3G «за косарь». Что Orange Pi предлагает по цене ящика пива?

Level of difficultyMedium
Reading time9 min
Views20K
image

Каждый год выпускается с десяток новых моделей одноплатных компьютеров. Свежие девайсы представляют как старые и уважаемые фирмы по типу Raspberry Pi, Orange Pi или Banana Pi, так и относительные новички на рынке — Repka Pi, или, например, Lctech Pi. Одноплатники работают на достаточно большом парке железа: кто-то использует чипы AllWinner, кто-то Amlogic, кто-то Broadcom, а кто-то… мобильные! Пару лет назад Orange Pi отличились выпуском нескольких одноплатников на базе чипсетов очень бюджетных мобильников 2013-2015 годов — 2G IoT и 3G IoT. На данный момент, выпуск 3G IoT завершен, а компания предлагает купить абсолютно новый одноплатник с 3G, Bluetooth, Wi-Fi, GPS, поддержкой Linux и Android всего за 1.000 рублей (500 само устройство и 500 доставка). На что оно способно и стоит ли его брать — узнаем в статье!
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments85

Обзор платы Tang Primer 20K на Gowin GW2A-LV18

Level of difficultyMedium
Reading time8 min
Views10K
После получения большого количества отзывов и комментариев на обзор платы на Cyclone IV из части из них четко прослеживались мысль: “А почему Cyclone IV, это же старый хлам!”. В ответ на это я решил сделать обзор на что-нибудь современное, функциональное и очень недорогое. И такой вариант нашелся — это отладочная плата Tang Primer 20K на ПЛИС от небезызвестной компании Gowin. На неё я и сделаю обзор в этой статье и расскажу про примеры проектов, доступных для этой платы.

Кого заинтересовала тема — добро пожаловать под кат! =)

image
Читать дальше →
Total votes 63: ↑63 and ↓0+63
Comments39

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

Reading time13 min
Views8.1K


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


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

Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments8

10 игр для изучения JavaScript

Reading time3 min
Views28K

Мы рассматривали 10 удивительных игр для изучения CSS. А в этой статье мы сделаем то же самое для JavaScript. Изучать язык, играя в игры, очень весело, а для некоторых людей это отличный способ наглядного восприятия языка.

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

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments0

Wireshark — подробное руководство по началу использования

Level of difficultyMedium
Reading time8 min
Views150K

Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

Читать далее
Total votes 41: ↑39 and ↓2+37
Comments21

Ультимативный гайд по HTTP. Структура запроса и ответа

Level of difficultyEasy
Reading time9 min
Views63K

Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас. 

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

Читать далее
Total votes 16: ↑14 and ↓2+12
Comments4

Аналоговое и цифровое питание. Мифы и реальность

Reading time8 min
Views34K

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

Узнать как разделять питание и властвовать
Total votes 47: ↑43 and ↓4+39
Comments49
1
23 ...

Information

Rating
1,060-th
Location
Зеленоград, Москва и Московская обл., Россия
Date of birth
Registered
Activity