Как стать автором
Обновить
4
0
Алексей @proton17

Инженер разработчик электроники

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

Интеграция в проект LVGL графической библиотеки для микроконтроллеров

Время на прочтение4 мин
Количество просмотров34K
LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство
Всего голосов 39: ↑39 и ↓0+39
Комментарии56

Современный самолёт by design защищён от биологической угрозы (COVID-19) лучше, чем вы думаете

Время на прочтение14 мин
Количество просмотров36K
Рейсов осталось очень мало, но они пока есть. Мало их из-за COVID-19. В основном — из-за закрытия пассажирских перевозок и сопутствующих карантинных мер. Но я бы хотел поговорить о том, насколько страшна угроза «подхватить» вирус, находясь внутри самолета. Вдруг вам по тем или иным причинам нужно лететь? А внутри — тесное закрытое пространство, и кажется, что там довольно опасно.

Я опишу специфику семейства Airbus 319/320/321, наверное, одного из самых распространенных узкофюзеляжных самолетов в мире, которые я пилотирую много лет. Я не специалист по Boeing и другим типам самолетов, но предполагаю, что различия в работе описываемых систем минимальны. Кроме того, я не являюсь техническим специалистом, обслуживающим данные самолеты, поэтому уж будьте любезны простить мои возможные небольшие огрехи в описании технической части.

Самое главное:


Схема вентиляции пассажирского салона Airbus A318/319/320/321

Пассажирская кабина самолета «нарезана» системой кондиционирования салона на много-много слоёв, разделенных по рядам и состоящих из отдельных воздушных потоков. Визуально это одно пространство, но благодаря данной системе — крайне маловероятно, что вы сможете заразиться, кроме как от ближайшего соседа. Плюс в полете воздух в салоне полностью обновляется раз в 3 минуты и перед тем, как вернуться обратно, пропускается через салонные HEPA-фильтры.

А теперь, давайте я расскажу вам детали.
Всего голосов 79: ↑74 и ↓5+92
Комментарии98

Настройка автовыравнивания фазы в дифференциальных парах в САПР Cadence Allegro

Время на прочтение3 мин
Количество просмотров3.7K
Иногда даже любимые программы могут доставить мучения — особенно если не знаешь, как правильно настраивать ту или иную функцию. В редакторе печатных плат Cadence Allegro есть такая офигенно полезная опция, High Speed, которая ооочень помогает в трассировке скоростных сигналов, DDR и дифференциальных пар. Однако… не все там получается так уж гладко и просто, если не знать некоторых нюансов.

Одной из таких функций является возможность автоматического выравнивания статической и динамической фазы в дифференциальных парах, с помощью «горбиков», так называемых bumps. Однако данный инструмент не будет хорошо работать без настройки, и получить хорошие результаты, просто запустив инструмент командой Route – Auto-interactive phase tune, и кликнув мышкой на несколько диф. пар, не получится.

Предлагаю вашему вниманию мой опыт работы с данным инструментом:
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Flipper Zero/One — теперь два устройства. Подготовка к Кикстартеру

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


Flipper — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2].


Сайт проекта: flipperzero.one

Пока мы работали над линуксовой частью флиппера, у нас в руках был почти готовый модуль на STM32, который управлял периферией, экраном, кнопками. Без линукса он умел 433MHz радио, домофонные ключи и RFID карты. Чем не готовый девайс – подумал я. Так мы решили сделать из него отдельное устройство. Теперь флипперов два — Zero и One.

Под катом я расскажу про изменения в проекте, и как мы готовимся к краудфандингу.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+42
Комментарии43

ECO Flow в Vivado или работа в режиме редактирования нетлиста

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

Аннотация


В статье рассмотрен режим работы Vivado, позволяющий вносить изменения в проект на уровне редактирования списка соединений (в дальнейшем – нетлиста). Описаны как сам режим ECO, так и некоторые нюансы, которые появляются во время работы в нём. Приведён демонстрационный пример и описана полная последовательность действий для получения результата, в работоспособности которой может убедиться каждый желающий. Статья будет полезна для «общего развития» FPGA-разработчикам, а особенно — тем, кто часто отлаживает проекты в Logic Analyzer. Надеюсь, работа в этом режиме вызовет интерес у разработчиков, работающих с большими кристаллами, время компиляции в которых может достигать часов (а то и десятков часов), поскольку в этом режиме время, затрачиваемое на имплементацию, при внесении изменений в нетлист может сократиться до буквально пары минут.




Оглавление



В статье очень много картинок не в спойлерах (140 штук). Пожалуйста, будьте внимательны, если заходите с телефона


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии17

PCI Express в ПЛИС V-й серии Intel: основы интерфейса и особенности аппаратных ядер

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

Введение


Знакомый многим интерфейс PCI Express или PCIe был доступен разработчикам систем на ПЛИС уже тогда, когда он только начинал распространяться в цифровой технике. В это время существовало решение, в котором программное ядро подключалось ко внешней микросхеме физического уровня [5]. Это позволяло создавать одноканальную линию PCIe со скоростью 2,5 гигатранзакций в секунду. В дальнейшем, благодаря развитию технологий, физический уровень интерфейса перекочевал в аппаратные блоки PCIe внутри самих ПЛИС; количество возможных каналов увеличилось до 8, а в ряде новых микросхем — и до 16; вслед за современными стандартами выросли возможные скорости передачи данных.

В то же время, в русскоязычных источниках по-прежнему затруднительно найти вспомогательные материалы по работе с аппаратными ядрами современных ПЛИС, не так и много информации доступно по самому интерфейсу PCIe. Руководство к аппаратным ядрам PCI Express подразумевает, что разработчик уже ознакомился со стандартом и понимает основы передачи данных между устройством и персональным компьютером (ПК). Однако обилие информации в самом стандарте PCIe не дает сразу же разобраться в том, какие шаги необходимо предпринять, чтобы успешно передать данные от устройства в память ПК или обратно. Чтобы получить более полную картину, немалую часть сведений приходится собирать по крупицам из разных источников. Для разработчиков систем на ПЛИС фирмы Intel сложность также заключается в том, что большинство доступных материалов и статей описывают работу с аппаратными ядрами ПЛИС фирмы Xilinx.

В данной статье автор постарается рассказать о том, что необходимо знать разработчику систем на ПЛИС для работы с интерфейсом PCI Express; рассмотрит особенности работы с аппаратными ядрами PCI Express ПЛИС V-й серии фирмы Intel в варианте Avalon-ST.
К основной части
Всего голосов 33: ↑33 и ↓0+33
Комментарии20

Эксперименты с микроконтроллерами в Jupyter Notebook

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

Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике.


Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического представления данных. Долгое время мы просто считали на нем, используя Python и математические библиотеки (numpy, SciPy, matplot и т.д.). Но оказывается данная среда не так проста и имеет гораздо больший потенциал. Очень неожиданно, но Jupyter позволяет легко манипулировать электронными устройствами на микроконтроллерах, может служить чем-то вроде REPL среды для МК только без слабенького MicroPython и внушительной поддержкой переферии чипа, причем все это почти из коробки.


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

STM32 Часть 3: Первый Проект

Время на прочтение4 мин
Количество просмотров10K
Мы наблюдаем общество, которое все больше зависит от машин, но при этом использует их все неэффективнее. — Douglas Rushkoff


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

STM32 Часть 1: Основы
STM32 Чаcть 2: Инициализация

Итак, продолжим наше приключение. Мы уже написали скрипт инициализации, разобрались с линкером и компилятором. Настало время мигнуть светодиодом. В этой статье мы бегло пробежимся по основам блока RCC и GPIO, а также добавим парочку хедеров, которые мы будем использовать в следующих проектах. Поехали.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+8
Комментарии74

Программный контроллер интерфейса на STM32

Время на прочтение9 мин
Количество просмотров14K
Проблема обратной совместимости, вероятнее всего, будет всегда.

В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше).

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

В таких случаях совместимые контроллеры приходится реализовывать на CPLD\FPGA\ASIC.

Я подумал, что можно обойтись без указанных выше средств, а именно реализовать контроллер интерфейса программно на микроконтроллере серии STM32F4.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+20
Комментарии16

Raspberry Pi и модем SIM7600E 4G HAT

Время на прочтение3 мин
Количество просмотров40K
Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети.

Параметры системы


Raspberry Pi 3B+
OS: Raspbian GNU/Linux 10 (buster)
Модем SIM7600E 4G HAT, версия прошивки LE11B08SIM7600M22

image

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

На моей визитке работает Linux

Время на прочтение6 мин
Количество просмотров109K
Перевод статьи из блога инженера Джорджа Хиллиарда


Кликабельно

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

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

Я подумал: «Эти процессоры настолько дешёвые, что их практически можно раздавать даром». И через некоторое время ко мне пришла идея сделать голую карточку для Linux в форм-факторе визитной карточки.
Читать дальше →
Всего голосов 167: ↑162 и ↓5+210
Комментарии116

Kivy. Сборка пакетов под Android и никакой магии

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

Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник…
Читать дальше →
Всего голосов 18: ↑14 и ↓4+17
Комментарии113

Python в Mobile development

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


Ни для кого не секрет, что область применения Python довольно широка: начиная от web-технологий, игровой индустрии и заканчивая проектами NASA. Python работает практически везде: от карманных компьютеров и смартфонов до серверов сети и практически на всех известных платформах, таких как Windows, Linux/UNIX, macOS, Palm OS, Raspberry PI и так далее. Благодаря фреймворку Kivy в 2011 году Python освоил и мобильные платформы в плане разработки приложений под iOS и Android, а в 2015 с помощью библиотеки KivyMD Python научился использовать Material Design.
Всего голосов 27: ↑26 и ↓1+31
Комментарии74

MicroPyServer простой HTTP сервер для ESP8266 и ESP32

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

Промо


Всем привет!


Хочу рассказать о библиотеке MicroPyServer написанной на Python, которая позволяет взаимодействовать с устройствами ESP8266 и ESP32 посредством простого HTTP сервера.


Что такое MicroPyServer?


MicroPyServer это простой HTTP сервер предназначенный для проектов написанных на Micropython.


Основная концепция работы с библиотекой — это перехватывание запросов к устройству при помощи создания роутов (route) и функций обработчиков (handler).

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

Скрипт настройки Windows 10

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

image
Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

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

Читать дальше →
Всего голосов 88: ↑77 и ↓11+66
Комментарии297

Протокол MQTT: концептуальное погружение

Время на прочтение12 мин
Количество просмотров236K
Протокол Message Queuing Telemetry Transport (MQTT) используется в течение многих лет, но сейчас он особенно актуален благодаря взрывному росту IoT: и потребительские, и промышленные устройства внедряют распределённые сети и граничные вычисления (edge computing), а устройства с постоянной трансляцией данных становятся частью повседневной жизни.

Это означает, что лёгкие, открытые и доступные протоколы со временем станут ещё важнее. В этой статье приводится концептуальное погружение в MQTT: как он работает, как используется сейчас и как будет использоваться в будущем.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии8

Добавляем ZigBee устройства в Homebridge используя CC2531

Время на прочтение5 мин
Количество просмотров65K
На Хабре уже встречались статьи о том, как подружить ZigBee устройства различных производителей с системами управления умным домом, без использования фирменных хабов, вроде Xiaomi Gateway. Однако, инструкции для homebridge, я не нашел не только на Хабре, но и на других просторах интернета. Поэтому хочу поделиться опытом добавления ZigBee устройств в homebridge. Огромную благодарность надо выразить создателю ресурса zigbee2mqtt.io, там уже расписаны способы прошивки модема CC2531 и подключения к таким системам управления умным домом как Home Assistant, Domoticz и Majordomo. Статья рассчитана на пользователей, у которых уже установлен и настроен homebridge.

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

Курс лекций «Основы цифровой обработки сигналов»

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

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

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.


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

Радиолюбительская технология: как я заказал монтаж печатной платы на китайской фабрике

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

Цель публикации: рассказать, как подготовить несложную радиолюбительскую конструкцию к производству.

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

В этой статье описано: как производится монтаж печатных плат на производстве; как подготовить в CAD Eagle 7.7.0 проект для сборки прототипа на CAM, расположенной в КНР.

В этой статье не рассматриваются: критерии выбора контрагента, экономические аспекты, вопросы логистики.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии35

Использование верилятора как средства быстрого моделирования RTL проектов. Введение в UVM

Время на прочтение8 мин
Количество просмотров16K
В данной статье будут описаны установка и применение бесплатного ПО для моделирования схем цифровой логики на языке Verilog как альтернативы коммерческих продуктов Incisve от компании Cadense и ModelSim от компании MentorGraphics. Сравнение моделирования в ModelSim и Verilator. Так же будет рассмотрена универсальная методолгия верификации — UVM.

Установка ПО для SystemC UVM


1. Верилятор


Одним из языков описания аппаратуры является verilog. На этом языке можно написать модуль.

Например, есть схема счетика:

image

Его код будет выглядеть так:

reg [3:0]counter;
always @(posedge clk or posedge reset)
  if(reset)
    counter <= 4'd0;
  else
    counter <= counter + 1'd1;

После симуляции получим вейвформы:

image

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

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

Для тестирование кода проекта помимо таких языков как Verilog, SystemVerilog, Python (для написания моделей), можно использовать язык SystemC. SystemC — язык проектирования и верификации моделей системного уровня, реализованный в виде C++ библиотеки с открытым исходным кодом.

Один из способов верификации Verilog модулей с помощью SystemC является трансляция verilog файлов в С++. Поможет нам в этом Verilator.

Verilator — это самый быстрый бесплатный симулятор Verilog HDL, который превосходит большинство коммерческих симуляторов. Verilator компилирует синтезируемый SystemVerilog (обычно это не код тестового стенда), а также некоторые утверждения SystemVerilog и Synthesis в однопоточный или многопоточный код C ++ или SystemC. Verilator был разработан для больших проектов, где быстродействие симуляции имеет первостепенное значение, и особенно хорошо подходит для генерации исполняемых моделей процессоров для групп разработчиков встроенного программного обеспечения. Verilator используется для имитации многих очень больших многомиллионных конструкций шлюзов с тысячами модулей и поддерживается многими поставщиками IP-технологий, включая IP от Arm и всех известных поставщиков RISC-V IP.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

Информация

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